Обучающий тег Brill в nltk, AttributeError: у объекта 'module' нет атрибута 'SymmetricProximateTokensTemplate'
Я тренирую Брилл Таггер против корпуса conll2000. По причинам, которые я не понимаю, у меня возникает следующая ошибка:
brill.SymmetricProximateTokensTemplate (brill.ProximateTagsRule, (1,1)), AttributeError: у объекта 'module' нет атрибута 'SymmetricProximateTokensTemplate'
Я следую [этому] ( http://streamhacker.com/2008/12/03/part-of-speech-tagging-with-nltk-part-3/) учебнику. Код ниже:
import nltk.tag
from nltk.tag import brill
raubt_tagger = backoff_tagger(train_sents, [nltk.tag.AffixTagger,
nltk.tag.UnigramTagger, nltk.tag.BigramTagger, nltk.tag.TrigramTagger],
backoff=nltk.tag.RegexpTagger(word_patterns))
templates = [
brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule, (1,1)),
brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule, (2,2)),
brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule, (1,2)),
brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule, (1,3)),
brill.SymmetricProximateTokensTemplate(brill.ProximateWordsRule, (1,1)),
brill.SymmetricProximateTokensTemplate(brill.ProximateWordsRule, (2,2)),
brill.SymmetricProximateTokensTemplate(brill.ProximateWordsRule, (1,2)),
brill.SymmetricProximateTokensTemplate(brill.ProximateWordsRule, (1,3)),
brill.ProximateTokensTemplate(brill.ProximateTagsRule, (-1, -1), (1,1)),
brill.ProximateTokensTemplate(brill.ProximateWordsRule, (-1, -1), (1,1))
]
trainer = brill.FastBrillTaggerTrainer(raubt_tagger, templates)
braubt_tagger = trainer.train(train_sents, max_rules=100, min_score=3)
2 ответа
Вероятно, вы получаете эти ошибки, потому что вы используете NLTK 3, где был изменен некоторый код тэгера Brill, включая шаблоны. Смотрите этот ответ для деталей.
Как упомянул предыдущий комментатор, в NLTK 3 было внесено изменение в тег Brill. Я создал здесь ветвь репозитория nltk-trainer:
https://github.com/burgersmoke/nltk-trainer
Единственное изменение в этом форке для тегера Brill было в этом файле:
https://github.com/burgersmoke/nltk-trainer/blob/master/nltk_trainer/tagging/training.py