Я попытался сделать тег части речи (или POS) в nltk, но я не могу заставить его работать более чем для одного тега ngram за раз, используя отсрочку. Я читал, что вы используете больше тегов для более высоких результатов, но это не сработает для меня. Я хочу, чтобы он сначала использовал больше слов, а затем использовал меньше до одного. Я пробовал так,
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: объект «генератор» не имеет атрибута «тег»
поэтому я делаю это без списка:
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.