我正在使用NLTK中提供的py crfsuite培训Brill的POS tagger。但是,当我试图保存一个经过训练的模型时,我得到了以下错误
crf_tagger = CRFTagger()
crf_tagger.train(train_sents, 'model_trained.crf.tagger')
templates = nltk.tag.brill.nltkdemo18()
trainer = nltk.tag.brill_trainer.BrillTaggerTrainer(crf_tagger, templates)
bt = trainer.train(train_sents, max_rules=10)
file_writing = file('trained_brill_tagger.yaml', 'w')
yaml.dump(bt, file_writing)
#even pickle fails
file_w = open('trained_brills.pickle', 'wb')
pickle.dump(bt, file_w)
file_w.close()
File "stringsource", line 2, in pycrfsuite._pycrfsuite.Tagger.reduce_cython TypeError: self.c_tagger cannot be converted to a Python object for pickling
我试过用泡菜,莳萝和山药,但错误似乎仍然存在。有什么解决办法吗。这是因为使用CRF标签作为基线吗?谢谢您。在
下面是一个如何在nltkv3.2.5中训练
nltk.tag.brill_trainer.BrillTaggerTrainer
的示例然后要保存培训师,只需
^{pr2}$pickle
:我意识到问题出在CRFTagger模块中。如果我在Brill's中使用不同的初始标记器,则不会产生错误并保存模型。在
当baseline_tagger是CRFTagger()对象时,我无法保存经过训练的模型。使用NgramTagger之类的东西出于某种原因解决了这个问题。在
相关问题 更多 >
编程相关推荐