0

关于词性标注的最动态的语料库是树库语料库。然而,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))
4

1 回答 1

2

您的代码是正确的——hmm至少对于标记器是正确的。您没有说“只是拒绝产生结果”的真正含义,但您可能的意思是它似乎挂了?它没有。您必须意识到,使用这些算法训练模型需要很长时间,除此之外,nltk 通常不是为速度而设计的——它的主要重点是教育。

使用 100 句训练集测试您的代码,您应该能够确认它有效。(您仍然需要稍等片刻)。

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

TnT 代码是另一回事,因为它本身不支持未知单词。从那里看到help(tnt)并拿走它。

于 2017-03-17T10:19:59.943 回答