1

pos タグを多用するアプリケーションを作成しようとしています。しかし、nltk の pos タグ付け機能は、私には的を射ていないようです。たとえば、次のようになります。

import nltk
text = "Obama delivers his first speech."

sent  =  nltk.sent_tokenize(text)


loftags = []
for s in sent:
    d = nltk.word_tokenize(s)   

    print nltk.pos_tag(d)

結果 :

akshayy@ubuntu:~/summ$ python nn1.py [('Obama', 'NNP'), ('delivers', 'NNS'), ('his', 'PRP$'), ('first', ' JJ'), ('スピーチ', 'NN'), ('.', '.')]

これは、スタンフォード NLP と比較すると良くありません。現時点では、Python 環境に十分な時間と労力を費やしているため、Java への移行は現実的ではないように思えます。また、私は Java と比較して C に傾倒しているため、Python は将来の使用のために C に近いです。したがって、最初の質問は次のとおりです。1) Java は、多数のツールを利用できる nlp タスクに適していると本当に思いますか。私がよく調べたところ、Java には nlp タスク専用のより大きなコミュニティがあることがわかりました。

2)代わりに、独自の文パーサーを作成してから、将来使用される言語の変更に柔軟に対応できるようにタガーを配置できる良いアプローチはありますか。

4

2 に答える 2

2

Java ベースの POS-tagger のいずれかを必ず使用する必要があります。私はStanford Core NLP tagger を使用していますが、他にもあります。NLTK は主に教育用ツールキットであり、業務用としての使用を意図したものではありません。Java ベースのタガーも大幅に高速化されます。

ただし、Java ツールキットを使用しても、Python で作業できなくなるわけではありません。Java コマンドを実行し、Python コードで使用するために結果を解析するだけのラッパー クラスを Python で作成するのは簡単です。

于 2013-04-05T08:54:34.173 に答える