لقد أوقفنا استخدام StanfordTokenizer
/ StanfordSegmenter
و StanfordPOSTagger
و StanfordNERTagger
.
سيكون من الجيد أيضًا إهمال StanfordParser
و StanfordDependencyParser
و StanfordNeuralDependencyParser
بواسطة
2 أ. لف أنواع البط مقابل CoreNLPParser
الذي يحاكي وظائف الواجهة القديمة
2 ب. اكتب وثائق عن كيفية استخدام CoreNLPParser
لاستخدام التبعية وتحليل التبعية العصبية
يجب أن تؤثر كلتا الطريقتين (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
مرحبًا ، أود العمل على هذه المشكلة ، لكنني لم أفهم سبب استخدام محاكاة مثل هذا
الآن الاختبارات لا تختبر أي شيء. حتى إذا تم محو رمز رمز الجسم تمامًا ، فستظل الاختبارات تمر. ربما يجب علينا تصحيح طريقة 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
؟
التعليق الأكثر فائدة
artiemq شكرا لك على الاهتمام بالقضية!
تم استخدام Mock في أحسن الظروف لأنها كانت طريقة سريعة لتوثيق كيفية تدفق Python لواجهات برمجة التطبيقات وكيف يجب على المستخدم استخدامها ولكنه لم يستدعي CoreNLP بالفعل.
فيما يتعلق بالأشياء غير الملائمة ، ربما لا يكون استخدام
unittest.mock
هو أفضل طريقة لاختبار وظائف CoreNLP. لا تتردد في إعادة كتابته / تحريره وإنشاء علاقات عامة =)