StanfordTokenizer
/ StanfordSegmenter
、 StanfordPOSTagger
、 StanfordNERTagger
は非推奨になりました。
古いStanfordParser
、 StanfordDependencyParser
、 StanfordNeuralDependencyParser
も非推奨にするのがよいでしょう。
2a。 古いインターフェースの機能をエミュレートするCoreNLPParser
のアヒルタイプをラップします
2b。 CoreNLPParser
を使用して依存関係とニューラル依存関係の解析を使用する方法のドキュメントを作成します
(2a)と(2b)の両方のメソッドは、 api_call
のproperties
引数にのみ影響するはずです。
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この問題に関心をお
単体テストでモックが使用されたのは、APIのPythonフローとユーザーがそれをどのように使用するかを文書化する簡単な方法でしたが、実際にはCoreNLPを呼び出さなかったためです。
単体テストに関しては、おそらくunittest.mock
は、CoreNLP機能をテストするための最良の方法ではありません。 お気軽に書き直し・編集してPRを作成してください=)
ポート9000でPOStagger「サーバー」に接続する方法に関する情報はここにありますが、ポート9000でリッスンするためにStanfordpostaggerサーバーを
それで、これは決定されているかどうか?
nltk.tag.StanfordNERTagger()
を実行しようとしています。 修正したい小さな問題があります。 やろうか?
パーサーをAPI呼び出しなしでローカルで実行したい。 これはCoreNLPParser
ですか?
最も参考になるコメント
@artiemqこの問題に関心をお
単体テストでモックが使用されたのは、APIのPythonフローとユーザーがそれをどのように使用するかを文書化する簡単な方法でしたが、実際にはCoreNLPを呼び出さなかったためです。
単体テストに関しては、おそらく
unittest.mock
は、CoreNLP機能をテストするための最良の方法ではありません。 お気軽に書き直し・編集してPRを作成してください=)