我正在针对conll2000语料库训练布里尔标记器。由于我不理解的原因,我出现了以下错误:
brill.SymmetricProximateTokensTemplate(brill.ProximateTagsRule,(1,1)),模块:“AttributeError”对象没有属性“”SymmetricProximateTokensTemplate“”
我正在关注this教程。代码如下:
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)发布于 2015-08-26 04:51:48
您可能会收到这些错误,因为您正在使用NLTK 3,其中一些Brill标记器代码发生了更改,包括模板。详情请参见this answer。
发布于 2017-10-17 23:46:24
正如前面的评论者所提到的,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
https://stackoverflow.com/questions/32213451
复制相似问题