私は単語のPOSタグを取得するためにNLTKのデフォルトタガーで働いていますが、私は期待通りの結果を得ていない午前:カスタムタガーNLTK 3
>>> nltk.pos_tag(nltk.tokenize.word_tokenize("I want a watch"))
[('I', 'PRP'), ('want', 'VBP'), ('a', 'DT'), ('watch', 'NN')]
>>> nltk.pos_tag(nltk.tokenize.word_tokenize("Lets watch a movie"))
[('Lets', 'NNS'), ('watch', 'VBP'), ('a', 'DT'), ('movie', 'NN')]
あなたが上見ることができるように、pos_tag
機能が正しくタグ単語watch
。しかし、以下の場合には:
>>> nltk.pos_tag(nltk.tokenize.word_tokenize("I want to read a book"))
[('I', 'PRP'), ('want', 'VBP'), ('to', 'TO'), ('read', 'VB'), ('a', 'DT'), ('book', 'NN')]
>>> nltk.pos_tag(nltk.tokenize.word_tokenize("I want to book a ticket"))
[('I', 'PRP'), ('want', 'VBP'), ('to', 'TO'), ('book', 'NN'), ('a', 'DT'), ('ticket', 'NN')]
それは間違って単語book
のタグを予測します。 私はカスタムタガーを作ることができますが、タガを1単語だけ作成する方が好きではありません。私は単語book
のためのタガーの精度を向上させるために探しています。私はこのanswerを参照しましたが、最新のバージョンはメソッドnltk.tag._POS_TAGGER
を持っていないようです。
この場合、回避策はありますか?
私はそれが正しく私のマシン上の ' 'VB''(NLTK3)としてタグ付けされています。これをチェックする[Python NLTK pos_tagが正しい品詞タグを返さない](http://stackoverflow.com/questions/30821188/python-nltk-pos-tag-not-returning-the-correct-part-of-音声タグ) –
@MosesKoledoye NLTKが完璧ではないというご意見に同意します。しかし、私は既存のアルゴリズムの重みを修正して、 "book"という単語のタグを正しく割り当てるようにしたい。 –
FWIW、Stanford POS tagger(遅い)は私にずっと良い結果をもたらした。デフォルトのタガーは "クイックブラウンキツネが怠け者の犬の上を飛び越えた"ことも正しく処理できません。 – Ares