Nltk: تقديرا لمحلل ستانفورد القديم

تم إنشاؤها على ٢٦ سبتمبر ٢٠١٧  ·  4تعليقات  ·  مصدر: nltk/nltk

لقد أوقفنا استخدام StanfordTokenizer / StanfordSegmenter و StanfordPOSTagger و StanfordNERTagger .

سيكون من الجيد أيضًا إهمال StanfordParser و StanfordDependencyParser و StanfordNeuralDependencyParser بواسطة

  1. إضافة التحذيرات المناسبة للواجهة القديمة

2 أ. لف أنواع البط مقابل CoreNLPParser الذي يحاكي وظائف الواجهة القديمة

2 ب. اكتب وثائق عن كيفية استخدام CoreNLPParser لاستخدام التبعية وتحليل التبعية العصبية

  1. اكتب اختبارات لواجهات محلل CoreNLP الجديد

يجب أن تؤثر كلتا الطريقتين (2 أ) و (2 ب) على الوسيطة properties للوسيط api_call

الواجهة الحالية لـ CoreNLPParser :

>>> from nltk.parse.corenlp import CoreNLPParser
>>> sent = 'The quick brown fox jumps over the lazy dog.'
>>> next(parser.raw_parse(sent)).pretty_print()  # doctest: +NORMALIZE_WHITESPACE
                         ROOT
                          |
                          S
           _______________|__________________________
          |                         VP               |
          |                _________|___             |
          |               |             PP           |
          |               |     ________|___         |
          NP              |    |            NP       |
      ____|__________     |    |     _______|____    |
     DT   JJ    JJ   NN  VBZ   IN   DT      JJ   NN  .
     |    |     |    |    |    |    |       |    |   |
    The quick brown fox jumps over the     lazy dog  .

قد تبدو الواجهة المطلوبة كما يلي:

# Using Duck-types
>>> from nltk.parse.stanford import CoreNLPParser
>>> depparser = CoreNLPDependencyParser('http://localhost:9000')
>>> depparser.parse(sent)
>>> ndepparser = CoreNLPNeuralDependencyParser('http://localhost:9000')
>>> ndepparser.parse(sent)
# Using arguments to control `properties` for `api_call()` 
>>> from nltk.parse.stanford import CoreNLPParser

>>> depparser = CoreNLPParser('http://localhost:9000', parser_type="dependency")
>>> depparser.parse(sent)

>>> ndepparser = CoreNLPNeuralDependencyParser('http://localhost:9000', parser_type="neural_dependency")
>>> ndepparser.parse(sent)

هذا من شأنه أن يجعل مشروعًا جيدًا أو تحديًا أولًا جيدًا ؛ P

dependency parsing enhancement goodfirstbug inactive nice idea tests

التعليق الأكثر فائدة

artiemq شكرا لك على الاهتمام بالقضية!

تم استخدام Mock في أحسن الظروف لأنها كانت طريقة سريعة لتوثيق كيفية تدفق Python لواجهات برمجة التطبيقات وكيف يجب على المستخدم استخدامها ولكنه لم يستدعي CoreNLP بالفعل.

فيما يتعلق بالأشياء غير الملائمة ، ربما لا يكون استخدام unittest.mock هو أفضل طريقة لاختبار وظائف CoreNLP. لا تتردد في إعادة كتابته / تحريره وإنشاء علاقات عامة =)

ال 4 كومينتر

مرحبًا ، أود العمل على هذه المشكلة ، لكنني لم أفهم سبب استخدام محاكاة مثل هذا

الآن الاختبارات لا تختبر أي شيء. حتى إذا تم محو رمز رمز الجسم تمامًا ، فستظل الاختبارات تمر. ربما يجب علينا تصحيح طريقة api_call ثم استدعاء tokenize

  corenlp_tokenizer = CoreNLPTokenizer()
  corenlp_tokenizer.api_call = MagicMock(return_value=predefined_return_value)
  corenlp_tokenizer.tokenize(input_string)

artiemq شكرا لك على الاهتمام بالقضية!

تم استخدام Mock في أحسن الظروف لأنها كانت طريقة سريعة لتوثيق كيفية تدفق Python لواجهات برمجة التطبيقات وكيف يجب على المستخدم استخدامها ولكنه لم يستدعي CoreNLP بالفعل.

فيما يتعلق بالأشياء غير الملائمة ، ربما لا يكون استخدام unittest.mock هو أفضل طريقة لاختبار وظائف CoreNLP. لا تتردد في إعادة كتابته / تحريره وإنشاء علاقات عامة =)

يمكنني رؤية معلومات هنا حول كيفية الاتصال بـ "خادم" POStagger في المنفذ 9000 ، لكن لا يمكنني العثور على معلومات حول كيفية تشغيل خادم Stanford postagger للاستماع على المنفذ 9000 ... هل يعرف أحد؟

فهل تقرر هذا أم لا؟
أحاول الآن تشغيل nltk.tag.StanfordNERTagger() . هناك مشكلة صغيرة في ذلك ، أردت إصلاحها. هل أفعل ذلك أم لا؟

أريد أن يعمل المحلل اللغوي محليًا بدون مكالمات API. هل هذا ممكن مع CoreNLPParser ؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات