使用HMM和TnT标记物,Brown Corpus不会产生结果

时间:2017-03-16 20:50:53

标签: python nlp nltk pos-tagger trigram

关于POS标记符的最动态语料库是 树库语料库 。然而,Brown Corpus Just拒绝用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)
print(tagger.evaluate(test))

tnt_tagger = tnt.TnT()
tnt_tagger.train(train)
print(tnt_tagger.evaluate(test))

1 个答案:

答案 0 :(得分:2)

您的代码是正确的 - 至少对于hmm标记符。你不会说什么"只是拒绝产生结果"真的意思是,但你可能意味着它似乎挂起了?它没有。您必须意识到使用这些算法训练模型需要很长时间,而且最重要的是nltk通常不是为速度而设计的 - 它主要关注的是教育。

使用100个句子的训练集测试您的代码,您应该能够确认它是否有效。 (你还需要等一下)。

train = brown.tagged_sents()[:100]
test = brown.tagged_sents()[100:200]

TnT代码是另一回事,因为它本身不支持未知单词。请参阅help(tnt)并从那里获取。