Proyek ini menyediakan alat ekstraksi informasi canggih yang gratis (bahkan untuk penggunaan komersial). Rilis saat ini mencakup alat untuk melakukan ekstraksi entitas bernama dan deteksi relasi biner serta alat untuk melatih ekstraktor khusus dan pendeteksi relasi.
MITIE dibangun di atas dlib, perpustakaan pembelajaran mesin berkinerja tinggi[1], MITIE menggunakan beberapa teknik canggih termasuk penggunaan penyematan kata distribusi[2] dan Mesin Vektor Dukungan Struktural[3 ]. MITIE menawarkan beberapa model terlatih yang menyediakan berbagai tingkat dukungan untuk pelatihan bahasa Inggris, Spanyol, dan Jerman menggunakan berbagai sumber linguistik (misalnya, CoNLL 2003, ACE, Wikipedia, Freebase, dan Gigaword). Perangkat lunak inti MITIE ditulis dalam C++, tetapi pengikatan untuk beberapa bahasa perangkat lunak lain termasuk Python, R, Java, C, dan MATLAB memungkinkan pengguna dengan cepat mengintegrasikan MITIE ke dalam aplikasinya sendiri.
Proyek luar telah membuat pengikatan API untuk OCaml, .NET, .NET Core, PHP, dan Ruby. Ada juga alat interaktif untuk memberi label data dan melatih MITIE.
API utama MITIE adalah C API yang didokumentasikan dalam file header mitie.h. Selain itu, ada banyak contoh program yang menunjukkan cara menggunakan MITIE dari C, C++, Java, R, atau Python 2.7.
Sebelum Anda dapat menjalankan contoh yang diberikan, Anda perlu mengunduh file model terlatih yang dapat Anda lakukan dengan menjalankan:
make MITIE-models
atau cukup dengan mendownload file MITIE-models-v0.2.tar.bz2 dan mengekstraknya ke dalam folder MITIE Anda. Perhatikan bahwa model Spanyol dan Jerman disediakan dalam unduhan terpisah. Jadi jika Anda ingin menggunakan model NER Spanyol, unduh MITIE-models-v0.2-Spanish.zip dan ekstrak ke folder MITIE Anda. Demikian pula untuk model Jerman: MITIE-models-v0.2-German.tar.bz2
MITIE hadir dengan alat streaming NER dasar. Jadi Anda dapat memberitahu MITIE untuk memproses setiap baris file teks secara independen dan mengeluarkan teks yang diberi markup dengan perintah:
cat sample_text.txt | ./ner_stream MITIE-models/english/ner_model.dat
Eksekusi ner_stream dapat dikompilasi dengan menjalankan make
di folder MITIE tingkat atas atau dengan menavigasi ke folder tools/ner_stream dan menjalankan make
atau menggunakan CMake untuk membangunnya yang dapat dilakukan dengan perintah berikut:
cd tools/ner_stream
mkdir build
cd build
cmake ..
cmake --build . --config Release
Pada sistem mirip UNIX, hal ini dapat dilakukan dengan menjalankan make
di folder MITIE tingkat atas atau dengan menjalankan:
cd mitielib
make
Ini menghasilkan file perpustakaan bersama dan statis di folder mitielib. Atau Anda bisa menggunakan CMake untuk mengkompilasi perpustakaan bersama dengan mengetik:
cd mitielib
mkdir build
cd build
cmake ..
cmake --build . --config Release --target install
Salah satu metode ini akan membuat perpustakaan bersama MITIE di folder mitielib.
Jika Anda mengkompilasi MITIE menggunakan cmake maka secara otomatis akan menemukan dan menggunakan perpustakaan BLAS yang dioptimalkan pada mesin Anda. Namun, jika Anda mengkompilasi menggunakan make biasa maka Anda harus menemukan perpustakaan BLAS Anda secara manual atau DLIB akan default ke implementasi BLAS bawaannya, tetapi lebih lambat. Oleh karena itu, untuk menggunakan OpenBLAS saat kompilasi tanpa cmake, cari libopenblas.a
dan libgfortran.a
, lalu jalankan make
sebagai berikut:
cd mitielib
make BLAS_PATH=/path/to/openblas.a LIBGFORTRAN_PATH=/path/to/libfortran.a
Perhatikan bahwa jika perpustakaan BLAS Anda tidak berada di lokasi standar, cmake akan gagal menemukannya. Namun, Anda dapat menentukan folder mana yang harus dicari dengan mengganti cmake ..
dengan pernyataan seperti:
cmake -DCMAKE_LIBRARY_PATH=/home/me/place/i/put/blas/lib ..
Setelah Anda membangun perpustakaan bersama MITIE, Anda dapat membuka folder contoh/python dan menjalankan skrip Python mana pun. Setiap skrip adalah tutorial yang menjelaskan beberapa aspek MITIE: pengenalan entitas bernama dan ekstraksi relasi, pelatihan alat NER khusus, atau pelatihan ekstraktor relasi khusus.
Anda juga dapat menginstal mitie
secara langsung dari github dengan perintah ini: pip install git+https://github.com/mit-nlp/MITIE.git
.
MITIE dapat diinstal sebagai paket R. Lihat README untuk lebih jelasnya.
Ada contoh program C di folder contoh/C. Untuk mengkompilasinya, Anda cukup masuk ke folder tersebut dan menjalankan make
. Atau gunakan CMake seperti ini:
cd examples/C/ner
mkdir build
cd build
cmake ..
cmake --build . --config Release
Ada contoh program C++ di folder example/cpp. Untuk mengkompilasinya, Anda cukup masuk ke folder tersebut dan menjalankan make
. Atau gunakan CMake seperti ini:
cd examples/cpp/ner
mkdir build
cd build
cmake ..
cmake --build . --config Release
Ada contoh program Java di folder example/java. Sebelum Anda dapat menjalankannya, Anda harus mengkompilasi antarmuka java MITIE yang dapat Anda lakukan seperti ini:
cd mitielib/java
mkdir build
cd build
cmake ..
cmake --build . --config Release --target install
Itu akan menempatkan perpustakaan bersama javamitie dan file jar ke dalam folder mitielib. Setelah Anda memiliki kedua file tersebut, Anda dapat menjalankan program contoh di example/java dengan menjalankan run_ner.bat jika Anda menggunakan Windows atau run_ner.sh jika Anda menggunakan sistem POSIX seperti Linux atau OS X.
Perhatikan juga bahwa Anda harus memiliki Swig 1.3.40 atau lebih baru, CMake 2.8.4 atau lebih baru, dan Java JDK diinstal untuk mengkompilasi antarmuka MITIE. Terakhir, perhatikan bahwa jika Anda menggunakan Java 64bit di Windows maka Anda perlu menggunakan perintah seperti:
cmake -G "Visual Studio 10 Win64" ..
daripada cmake ..
agar Visual Studio tahu membuat perpustakaan 64bit.
Anda dapat menjalankan uji regresi sederhana untuk memvalidasi build.gradle Anda. Lakukan ini dengan menjalankan perintah berikut dari folder MITIE tingkat atas:
make test
make test
membangun program contoh dan mengunduh model contoh yang diperlukan. Jika Anda memerlukan kompiler C++ non-standar, ubah CC
di examples/C/makefile
dan di tools/ner_stream/makefile
.
Kami telah membuat biner Python 2.7 yang dikemas dengan model sampel untuk Linux 64bit dan Windows (Python versi 32 dan 64 bit). Anda dapat mengunduh paket yang telah dikompilasi di sini: MITIE 0.2 yang telah dikompilasi
Kami telah membuat biner Java untuk JVM 64bit yang berfungsi di Linux dan Windows. Anda dapat mengunduh paket yang telah dikompilasi di sini: Java MITIE 0.3 yang telah dikompilasi. Di dalam file tersebut ada folder contoh/java. Anda dapat menjalankan contoh dengan menjalankan file .bat atau .sh yang disediakan.
Tidak ada makalah khusus tentang MITIE. Namun, karena MITIE pada dasarnya hanyalah pembungkus tipis dlib, harap kutip makalah JMLR dlib jika Anda menggunakan MITIE dalam penelitian Anda:
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 dilisensikan di bawah Lisensi Perangkat Lunak Boost - Versi 1.0 - 17 Agustus 2003.
Izin dengan ini diberikan, secara gratis, kepada setiap orang atau organisasi yang memperoleh salinan perangkat lunak dan dokumentasi yang menyertainya yang tercakup dalam lisensi ini ("Perangkat Lunak") untuk menggunakan, mereproduksi, menampilkan, mendistribusikan, melaksanakan, dan mengirimkan Perangkat Lunak, dan untuk menyiapkan karya turunan Perangkat Lunak, dan mengizinkan pihak ketiga yang menerima Perangkat Lunak untuk melakukan hal tersebut, dengan ketentuan sebagai berikut:
Pemberitahuan hak cipta dalam Perangkat Lunak dan seluruh pernyataan ini, termasuk pemberian lisensi di atas, pembatasan ini, dan penafian berikut, harus disertakan dalam semua salinan Perangkat Lunak, secara keseluruhan atau sebagian, dan semua karya turunan Perangkat Lunak, kecuali jika hal tersebut salinan atau karya turunannya hanya berupa kode objek yang dapat dieksekusi mesin yang dihasilkan oleh pemroses bahasa sumber.
PERANGKAT LUNAK INI DISEDIAKAN "APA ADANYA", TANPA JAMINAN DALAM BENTUK APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN DAPAT DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, JUDUL DAN TIDAK ADA PELANGGARAN. DALAM KEADAAN APA PUN, PEMEGANG HAK CIPTA ATAU SIAPA PUN YANG MENDISTRIBUSIKAN PERANGKAT LUNAK INI TIDAK BERTANGGUNG JAWAB ATAS KERUSAKAN ATAU TANGGUNG JAWAB LAINNYA, BAIK DALAM KONTRAK, HUKUM ATAU LAINNYA, YANG TIMBUL DARI, DARI ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU HAL-HAL LAIN DALAM PERANGKAT LUNAK.
[1] Davis E.Raja. Dlib-ml: Perangkat Pembelajaran Mesin. Jurnal Penelitian Pembelajaran Mesin 10, hlm.1755-1758, 2009.
[2] Paramveer Dhillon, Dean Foster dan Lyle Ungar, Eigenwords: Spectral Word Embeddings, Journal of Machine Learning Research (JMLR), 16, 2015.
[3] T. Joachims, T. Finley, Chun-Nam Yu, Pelatihan Bidang Pemotongan SVM Struktural, Pembelajaran Mesin, 77(1):27-59, 2009.