Python 布朗不';t使用HMM和TnT标记器生成结果
词性标注者方面最具活力的语料库是树库语料库。然而,布朗语料库只是拒绝产生HMM和TnT标记的结果。有什么解释吗Python 布朗不';t使用HMM和TnT标记器生成结果,python,nlp,nltk,pos-tagger,trigram,Python,Nlp,Nltk,Pos Tagger,Trigram,词性标注者方面最具活力的语料库是树库语料库。然而,布朗语料库只是拒绝产生HMM和TnT标记的结果。有什么解释吗 size = int(len(brown.tagged_sents())*0.9) train = brown.tagged_sents()[:size] test = brown.tagged_sents()[size:] trainer = hmm.HiddenMarkovModelTrainer() tagger = trainer.train_supervised(train)
size = int(len(brown.tagged_sents())*0.9)
train = brown.tagged_sents()[:size]
test = brown.tagged_sents()[size:]
trainer = hmm.HiddenMarkovModelTrainer()
tagger = trainer.train_supervised(train)
print(tagger.evaluate(test))
tnt_tagger = tnt.TnT()
tnt_tagger.train(train)
print(tnt_tagger.evaluate(test))
您的代码是正确的——至少对于hmm
标记器是正确的。你没有说“只是拒绝产生结果”的真正含义,但你的意思可能是,它似乎挂了?没有。您必须意识到,使用这些算法训练模型需要很长时间,而且nltk通常不是为速度而设计的——它的主要重点是教育
用一个100句的训练集测试你的代码,你应该能够确认它是有效的。(你还得等一会儿)
TnT代码是另一回事,因为它本身不支持未知单词。查看帮助(tnt)
并从那里获取它。您的代码是正确的——至少对于hmm
标记符是正确的。你没有说“只是拒绝产生结果”的真正含义,但你的意思可能是,它似乎挂了?没有。您必须意识到,使用这些算法训练模型需要很长时间,而且nltk通常不是为速度而设计的——它的主要重点是教育
用一个100句的训练集测试你的代码,你应该能够确认它是有效的。(你还得等一会儿)
TnT代码是另一回事,因为它本身不支持未知单词。查看
帮助(tnt)
并从那里开始。没有任何代码就很难解释。size=int(len(brown.tagged_sents())*0.9)train=brown.tagged_sents()[:size]test=brown.tagged_sents()[size:]trainer=hmm.HiddenMarkovModelTrainer()tagger=trainer.train\u监督(train)打印(tagger.evaluate(test))谢谢请将其放入您的问题中,并将其格式化为代码块。在没有任何代码的情况下更新了难以解释的问题。size=int(len(brown.tagged_sents())*0.9)train=brown.tagged_sents()[:size]test=brown.tagged_sents()[size:]trainer=hmm.HiddenMarkovModelTrainer()tagger=trainer.train\u监督(train)打印(tagger.evaluate(test))谢谢。请将其放入您的问题中,并将其格式化为代码块。更新了问题
train = brown.tagged_sents()[:100]
test = brown.tagged_sents()[100:200]