يوفر هذا المشروع أدوات مجانية لاستخراج المعلومات (حتى للاستخدام التجاري). يتضمن الإصدار الحالي أدوات لإجراء استخراج الكيانات المسماة واكتشاف العلاقات الثنائية، بالإضافة إلى أدوات لتدريب المستخرجين المخصصين وكاشفات العلاقات.
تم بناء 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.
واجهة برمجة التطبيقات الأساسية لـ MITIE هي واجهة برمجة تطبيقات C والتي تم توثيقها في ملف الرأس 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 محسنة واستخدامها على جهازك. ومع ذلك، إذا قمت بالتجميع باستخدام إجراء عادي، فسيتعين عليك تحديد موقع مكتبات 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 المشتركة، يمكنك الانتقال إلى مجلد الأمثلة/python وتشغيل أي من نصوص Python النصية. كل برنامج نصي عبارة عن برنامج تعليمي يشرح بعض جوانب MITIE: التعرف على الكيانات المسماة واستخراج العلاقات، أو تدريب أداة NER مخصصة، أو تدريب مستخرج علاقات مخصص.
يمكنك أيضًا تثبيت mitie
مباشرة من github باستخدام هذا الأمر: pip install git+https://github.com/mit-nlp/MITIE.git
.
يمكن تثبيت MITIE كحزمة R. راجع التمهيدي لمزيد من التفاصيل.
توجد أمثلة لبرامج C في مجلد الأمثلة/C. لتجميعها، ما عليك سوى الانتقال إلى تلك المجلدات وتشغيل make
. أو استخدم CMake مثل ذلك:
cd examples/C/ner
mkdir build
cd build
cmake ..
cmake --build . --config Release
توجد أمثلة لبرامج C++ في مجلد الأمثلة/cpp. لتجميع أي منها، ما عليك سوى الانتقال إلى تلك المجلدات وتشغيل make
. أو استخدم CMake مثل ذلك:
cd examples/cpp/ner
mkdir build
cd build
cmake ..
cmake --build . --config Release
يوجد مثال لبرنامج Java في مجلد الأمثلة/Java. قبل أن تتمكن من تشغيله، يجب عليك تجميع واجهة جافا الخاصة بـ MITIE والتي يمكنك القيام بها على النحو التالي:
cd mitielib/java
mkdir build
cd build
cmake ..
cmake --build . --config Release --target install
سيؤدي ذلك إلى وضع مكتبة javamitie المشتركة وملف jar في مجلد mitielib. بمجرد حصولك على هذين الملفين، يمكنك تشغيل البرنامج النموذجي في examples/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 بت (كلا الإصدارين 32 و64 بت من Python). يمكنك تنزيل الحزمة المترجمة مسبقًا هنا: Precompiled MITIE 0.2
لقد قمنا ببناء ثنائيات Java لـ JVM 64 بت والتي تعمل على Linux وWindows. يمكنك تنزيل الحزمة المترجمة مسبقًا هنا: Precompiled Java MITIE 0.3. يوجد في الملف مجلد أمثلة/جافا. يمكنك تشغيل المثال عن طريق تنفيذ الملف .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 - الإصدار 1.0 - 17 أغسطس 2003.
يُمنح الإذن مجانًا لأي شخص أو مؤسسة تحصل على نسخة من البرنامج والوثائق المصاحبة التي يغطيها هذا الترخيص ("البرنامج") لاستخدام البرنامج وإعادة إنتاجه وعرضه وتوزيعه وتنفيذه ونقله، و لإعداد أعمال مشتقة من البرنامج، والسماح للأطراف الثالثة التي تم توفير البرنامج لها بالقيام بذلك، وكل ذلك يخضع لما يلي:
يجب تضمين إشعارات حقوق الطبع والنشر في البرنامج وهذا البيان بأكمله، بما في ذلك منح الترخيص أعلاه وهذا القيد وإخلاء المسؤولية التالي، في جميع نسخ البرنامج، كليًا أو جزئيًا، وجميع الأعمال المشتقة من البرنامج، ما لم يكن هذا تكون النسخ أو الأعمال المشتقة فقط في شكل كود كائن قابل للتنفيذ آليًا ويتم إنشاؤه بواسطة معالج اللغة المصدر.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين والملكية وعدم الانتهاك. لا يتحمل أصحاب حقوق الطبع والنشر أو أي شخص يوزع البرنامج بأي حال من الأحوال المسؤولية عن أي أضرار أو مسؤوليات أخرى، سواء في العقد أو الضرر أو غير ذلك، والتي تنشأ عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في البرنامج.
[1] ديفيس إي. كينغ. Dlib-ml: مجموعة أدوات التعلم الآلي. مجلة أبحاث التعلم الآلي 10، الصفحات من 1755 إلى 1758، 2009.
[2] بارامفير ديلون، دين فوستر ولايل أونغار، الكلمات الذاتية: تضمينات الكلمات الطيفية، مجلة أبحاث التعلم الآلي (JMLR)، 16، 2015.
[3] تي. يواكيمز، تي. فينلي، تشون نام يو، التدريب على قطع الطائرة لآلات SVM الهيكلية، التعلم الآلي، 77(1):27-59، 2009.