nltk で品詞 (または POS) タガーを作成しようとしましたが、バックオフを使用して一度に複数の ngram タガーで動作させることができません。より高いスコアを得るために、より多くのタガーを使用していると読みましたが、私にはうまくいきません。最初はより多くの単語を使用し、次に使用する単語を 1 つに減らしたいと考えています。こんな感じでやってみたのですが、
import nltk
from nltk.corpus import brown
#sentence = brown.sents(categories = "news")
trains = brown.tagged_sents(categories = "news")
from nltk import NgramTagger
fortest = ["hi", "how","are", "you"]
tagger = (nltk.NgramTagger (n, trains, backoff=n-1) for n in range (3))
print tagger.tag(fortest)
しかし、エラー AttributeError: 'generator' object has no attribute 'tag' が表示されます
だから私はリストなしでそれを作ります:
for n in range(3):
tagger = nltk.NgramTagger(n, trains, backoff=n-1)
しかし、私は得る:
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/nltk/tag/sequential.py", line 271, in __init__
ContextTagger.__init__(self, model, backoff)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/nltk/tag/sequential.py", line 121, in __init__
SequentialBackoffTagger.__init__(self, backoff)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/nltk/tag/sequential.py", line 46, in __init__
self._taggers = [self] + backoff._taggers AttributeError: 'int' object has no attribute '_taggers'
私はPythonを初めて使用するので、助けていただければ幸いです。