โปรเจ็กต์นี้มอบเครื่องมือดึงข้อมูลล้ำสมัยฟรี (แม้ใช้ในเชิงพาณิชย์) รุ่นปัจจุบันประกอบด้วยเครื่องมือสำหรับการดำเนินการแยกเอนทิตีที่มีชื่อและการตรวจจับความสัมพันธ์แบบไบนารี รวมถึงเครื่องมือสำหรับการฝึกอบรมตัวแยกข้อมูลแบบกำหนดเองและตัวตรวจจับความสัมพันธ์
MITIE ถูกสร้างขึ้นบน dlib ซึ่งเป็นไลบรารีการเรียนรู้ของเครื่องประสิทธิภาพสูง[1] MITIE ใช้เทคนิคที่ล้ำสมัยหลายประการ รวมถึงการใช้การฝังคำแบบกระจาย[2] และเครื่องเวกเตอร์สนับสนุนโครงสร้าง[3 ] MITIE นำเสนอแบบจำลองที่ได้รับการฝึกอบรมล่วงหน้าหลายแบบ ซึ่งให้การสนับสนุนในระดับที่แตกต่างกันสำหรับทั้งภาษาอังกฤษ สเปน และเยอรมันที่ผ่านการฝึกอบรมโดยใช้ทรัพยากรทางภาษาที่หลากหลาย (เช่น CoNLL 2003, ACE, Wikipedia, Freebase และ Gigaword) ซอฟต์แวร์ MITIE หลักเขียนด้วยภาษา C++ แต่การเชื่อมโยงสำหรับภาษาซอฟต์แวร์อื่นๆ หลายภาษา รวมถึง Python, R, Java, C และ MATLAB ทำให้ผู้ใช้สามารถรวม MITIE เข้ากับแอปพลิเคชันของตนเองได้อย่างรวดเร็ว
โครงการภายนอกได้สร้างการเชื่อมโยง API สำหรับ OCaml, .NET, .NET Core, PHP และ Ruby นอกจากนี้ยังมีเครื่องมือแบบโต้ตอบสำหรับการติดป้ายกำกับข้อมูลและการฝึกอบรม MITIE
API หลักของ MITIE คือ C API ซึ่งได้รับการบันทึกไว้ในไฟล์ส่วนหัว mitie.h นอกเหนือจากนี้ ยังมีโปรแกรมตัวอย่างมากมายที่แสดงวิธีใช้ MITIE จาก C, C++, Java, R หรือ Python 2.7
ก่อนที่คุณจะสามารถรันตัวอย่างที่ให้มา คุณจะต้องดาวน์โหลดไฟล์โมเดลที่ได้รับการฝึกซึ่งคุณสามารถทำได้โดยการรัน:
make MITIE-models
หรือเพียงดาวน์โหลดไฟล์ MITIE-models-v0.2.tar.bz2 แล้วแตกไฟล์ในโฟลเดอร์ MITIE ของคุณ โปรดทราบว่ารุ่นภาษาสเปนและเยอรมันมีให้ดาวน์โหลดแยกกัน ดังนั้นหากคุณต้องการใช้โมเดล NER ภาษาสเปน ให้ดาวน์โหลด MITIE-models-v0.2-Spanish.zip และแตกไฟล์ลงในโฟลเดอร์ MITIE ของคุณ ในทำนองเดียวกันสำหรับโมเดลเยอรมัน: MITIE-models-v0.2-German.tar.bz2
MITIE มาพร้อมกับเครื่องมือ NER สตรีมมิ่งขั้นพื้นฐาน ดังนั้นคุณจึงสามารถบอก MITIE ให้ประมวลผลแต่ละบรรทัดของไฟล์ข้อความโดยแยกจากกันและส่งออกข้อความที่มาร์กอัปด้วยคำสั่ง:
cat sample_text.txt | ./ner_stream MITIE-models/english/ner_model.dat
ไฟล์ปฏิบัติการ ner_stream สามารถคอมไพล์ได้โดยการรัน make
ในโฟลเดอร์ MITIE ระดับบนสุด หรือโดยการนำทางไปยังโฟลเดอร์ tools/ner_stream แล้วรัน make
หรือใช้ CMake เพื่อสร้างมัน ซึ่งสามารถทำได้ด้วยคำสั่งต่อไปนี้:
cd tools/ner_stream
mkdir build
cd build
cmake ..
cmake --build . --config Release
บนระบบที่คล้ายกับ UNIX สามารถทำได้โดยการรัน make
ในโฟลเดอร์ MITIE ระดับบนสุด หรือโดยการรัน:
cd mitielib
make
สิ่งนี้จะสร้างไฟล์ไลบรารีที่ใช้ร่วมกันและสแตติกในโฟลเดอร์ mitielib หรือคุณสามารถใช้ CMake เพื่อคอมไพล์ไลบรารีที่แบ่งใช้โดยพิมพ์:
cd mitielib
mkdir build
cd build
cmake ..
cmake --build . --config Release --target install
วิธีใดวิธีหนึ่งเหล่านี้จะสร้างไลบรารีที่ใช้ร่วมกันของ MITIE ในโฟลเดอร์ mitielib
หากคุณคอมไพล์ MITIE โดยใช้ cmake มันจะค้นหาและใช้ไลบรารี BLAS ที่ปรับให้เหมาะสมบนเครื่องของคุณโดยอัตโนมัติ อย่างไรก็ตาม หากคุณคอมไพล์โดยใช้ make ปกติ คุณจะต้องค้นหาไลบรารี BLAS ของคุณด้วยตนเอง มิฉะนั้น DLIB จะใช้ค่าเริ่มต้นเป็นการใช้งาน BLAS ในตัว แต่ช้ากว่า ดังนั้น หากต้องการใช้ OpenBLAS เมื่อคอมไพล์โดยไม่มี cmake ให้ค้นหา libopenblas.a
และ libgfortran.a
จากนั้นรัน make
ดังนี้:
cd mitielib
make BLAS_PATH=/path/to/openblas.a LIBGFORTRAN_PATH=/path/to/libfortran.a
โปรดทราบว่าหากไลบรารี BLAS ของคุณไม่อยู่ในตำแหน่งมาตรฐาน cmake จะไม่พบไลบรารีเหล่านั้น อย่างไรก็ตาม คุณสามารถบอกได้ว่าโฟลเดอร์ใดที่จะค้นหาโดยการแทนที่ cmake ..
ด้วยคำสั่งเช่น:
cmake -DCMAKE_LIBRARY_PATH=/home/me/place/i/put/blas/lib ..
เมื่อคุณสร้างไลบรารีที่ใช้ร่วมกันของ MITIE แล้ว คุณสามารถไปที่โฟลเดอร์ example/python และเรียกใช้สคริปต์ Python ใดก็ได้ แต่ละสคริปต์เป็นบทช่วยสอนที่อธิบายบางแง่มุมของ MITIE: การจดจำเอนทิตีที่มีชื่อและการแยกความสัมพันธ์ การฝึกเครื่องมือ NER แบบกำหนดเอง หรือการฝึกตัวแยกความสัมพันธ์แบบกำหนดเอง
คุณยังสามารถติดตั้ง mitie
ได้โดยตรงจาก github ด้วยคำสั่งนี้: pip install git+https://github.com/mit-nlp/MITIE.git
MITIE สามารถติดตั้งเป็นแพ็คเกจ R ได้ ดู README สำหรับรายละเอียดเพิ่มเติม
มีโปรแกรม C ตัวอย่างอยู่ในโฟลเดอร์ example/C ในการคอมไพล์คุณเพียงแค่เข้าไปในโฟลเดอร์เหล่านั้นแล้วเรียกใช้ make
. หรือใช้ CMake ดังนี้:
cd examples/C/ner
mkdir build
cd build
cmake ..
cmake --build . --config Release
มีตัวอย่างโปรแกรม C++ ในโฟลเดอร์ example/cpp หากต้องการคอมไพล์ไฟล์ใด ๆ คุณเพียงแค่เข้าไปในโฟลเดอร์เหล่านั้นแล้วเรียกใช้ make
. หรือใช้ CMake ดังนี้:
cd examples/cpp/ner
mkdir build
cd build
cmake ..
cmake --build . --config Release
มีตัวอย่างโปรแกรม Java อยู่ในโฟลเดอร์ example/java ก่อนที่คุณจะสามารถรันได้ คุณจะต้องคอมไพล์อินเทอร์เฟซจาวาของ MITIE ซึ่งคุณสามารถทำได้ดังนี้:
cd mitielib/java
mkdir build
cd build
cmake ..
cmake --build . --config Release --target install
ซึ่งจะวางไลบรารี่ที่แชร์ของ javamitie และไฟล์ jar ลงในโฟลเดอร์ mitielib เมื่อคุณมีทั้งสองไฟล์แล้ว คุณสามารถรันโปรแกรมตัวอย่างใน example/java ได้โดยการรัน run_ner.bat หากคุณใช้ Windows หรือ run_ner.sh หากคุณอยู่บนระบบ POSIX เช่น Linux หรือ OS X
โปรดทราบว่าคุณต้องมี Swig 1.3.40 หรือใหม่กว่า, CMake 2.8.4 หรือใหม่กว่า และติดตั้ง Java JDK เพื่อคอมไพล์อินเทอร์เฟซ MITIE สุดท้าย โปรดทราบว่าหากคุณใช้ Java 64 บิตบน Windows คุณจะต้องใช้คำสั่งเช่น:
cmake -G "Visual Studio 10 Win64" ..
แทนที่จะเป็น cmake ..
เพื่อให้ Visual Studio รู้ที่จะสร้างไลบรารี่ 64 บิต
คุณสามารถรันการทดสอบการถดถอยอย่างง่ายเพื่อตรวจสอบความถูกต้องของงานสร้างของคุณ ทำสิ่งนี้ได้โดยการรันคำสั่งต่อไปนี้จากโฟลเดอร์ MITIE ระดับบนสุด:
make test
make test
สร้างทั้งโปรแกรมตัวอย่างและการดาวน์โหลดโมเดลตัวอย่างที่จำเป็น หากคุณต้องการคอมไพเลอร์ C++ ที่ไม่ได้มาตรฐาน ให้เปลี่ยน CC
ใน examples/C/makefile
และใน tools/ner_stream/makefile
เราได้สร้างไบนารี Python 2.7 ที่มาพร้อมกับโมเดลตัวอย่างสำหรับ Linux และ Windows 64 บิต (Python เวอร์ชัน 32 และ 64 บิต) คุณสามารถดาวน์โหลดแพ็คเกจที่คอมไพล์แล้วได้ที่นี่: Precompiled MITIE 0.2
เราได้สร้างไบนารี Java สำหรับ JVM 64 บิตซึ่งทำงานบน Linux และ Windows คุณสามารถดาวน์โหลดแพ็คเกจที่คอมไพล์แล้วได้ที่นี่: Java MITIE 0.3 ที่คอมไพล์แล้ว ในไฟล์จะมีโฟลเดอร์ example/java คุณสามารถรันตัวอย่างได้โดยการรันไฟล์ .bat หรือ .sh ที่ให้มา
ไม่มีรายงานใดเกี่ยวกับ MITIE โดยเฉพาะ อย่างไรก็ตาม เนื่องจาก MITIE เป็นเพียงกระดาษห่อบางๆ รอบ dlib โปรดอ้างอิงรายงาน JMLR ของ dlib หากคุณใช้ MITIE ในการวิจัยของคุณ:
Davis E. King. Dlib-ml: A Machine Learning Toolkit. Journal of Machine Learning Research 10, pp. 1755-1758, 2009
@Article{dlib09,
author = {Davis E. King},
title = {Dlib-ml: A Machine Learning Toolkit},
journal = {Journal of Machine Learning Research},
year = {2009},
volume = {10},
pages = {1755-1758},
}
MITIE ได้รับอนุญาตภายใต้ Boost Software License - เวอร์ชัน 1.0 - 17 สิงหาคม 2546
อนุญาตให้บุคคลหรือองค์กรใดๆ ได้รับสำเนาซอฟต์แวร์และเอกสารประกอบที่ครอบคลุมโดยใบอนุญาตนี้ ("ซอฟต์แวร์") โดยไม่เสียค่าใช้จ่าย เพื่อใช้ ทำซ้ำ แสดง แจกจ่าย ดำเนินการ และส่งซอฟต์แวร์ และ เพื่อจัดเตรียมงานลอกเลียนแบบของซอฟต์แวร์ และเพื่ออนุญาตให้บุคคลที่สามที่ได้รับซอฟต์แวร์นี้ให้ทำเช่นนั้น ทั้งหมดนี้อยู่ภายใต้บังคับต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ในซอฟต์แวร์และคำแถลงทั้งหมดนี้ รวมถึงการอนุญาตให้ใช้สิทธิข้างต้น ข้อจำกัดนี้ และข้อจำกัดความรับผิดชอบต่อไปนี้ จะต้องรวมอยู่ในสำเนาทั้งหมดของซอฟต์แวร์ ทั้งหมดหรือบางส่วน และผลงานลอกเลียนแบบทั้งหมดของซอฟต์แวร์ เว้นแต่เช่นนั้น การทำสำเนาหรืองานลอกเลียนแบบจะอยู่ในรูปแบบของรหัสวัตถุที่ปฏิบัติการได้โดยใช้เครื่องซึ่งสร้างโดยตัวประมวลผลภาษาต้นทางเท่านั้น
ซอฟต์แวร์นี้มีให้ "ตามที่เป็น" โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันความสามารถในการซื้อขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ชื่อเรื่อง และการไม่ละเมิด ไม่ว่าในกรณีใดผู้ถือลิขสิทธิ์หรือใครก็ตามที่จำหน่ายซอฟต์แวร์จะต้องรับผิดชอบต่อความเสียหายหรือความรับผิดอื่น ๆ ไม่ว่าในสัญญา การละเมิดหรืออย่างอื่น ที่เกิดขึ้นจาก ออกจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือข้อตกลงอื่น ๆ ในซอฟต์แวร์
[1] เดวิส อี. คิง. Dlib-ml: ชุดเครื่องมือการเรียนรู้ของเครื่อง วารสารการวิจัยการเรียนรู้ของเครื่อง 10, หน้า 1755-1758, 2009
(2) Paramveer Dhillon, Dean Foster และ Lyle Ungar, Eigenwords: Spectral Word Embeddings, วารสารการวิจัยการเรียนรู้ของเครื่อง (JMLR), 16, 2015
(3) T. Joachims, T. Finley, Chun-Nam Yu, การฝึกอบรมการตัดระนาบของ SVM โครงสร้าง, การเรียนรู้ของเครื่อง, 77(1):27-59, 2009