Обучающий тег 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

Другие вопросы по тегам