词性标注:对未知词进行标注

4

在词性标注器中,使用隐马尔可夫模型确定给定句子的最佳可能标记。

    P(T*) = argmax P(Word/Tag)*P(Tag/TagPrev)
              T

但是,当“Word”未出现在训练语料库中时,“P(Word / Tag)”对于所有可能的标记都会产生零,这样就没有选择最佳标记的余地了。
我尝试过几种方法:
1)为所有未知单词分配一小部分概率,即"P(UnknownWord/AnyTag)~Epsilon"。这完全忽略了未知单词的"P(Word/Tag)",而是通过分配常数概率来进行决策制定。正如预期的那样,它并没有产生良好的结果。
2)拉普拉斯平滑:我对此感到困惑。我不知道这与(1)有什么区别。我理解的拉普拉斯平滑是将常数概率(lambda)添加到所有未知和已知单词中。因此,所有未知单词将获得常数概率(lambda的一小部分),而已知单词的概率相对相同,因为所有单词的概率都增加了Lambda。
*)是否有更好的处理未知单词的方法?
2个回答

9
你的两种方法很相似,但是如果我理解正确的话,它们在一个关键方面有所不同。在(1)中,你将额外的质量分配给未知单词的计数,在(2)中,你将额外的质量分配给所有计数。你肯定想做(2),而不是(1)。
拉普拉斯平滑的问题之一是它对未知的单词给予了太多的提升,并且相对地拉低了高概率单词的概率。你的版本(1)实际上会加剧这个问题。基本上,它会过度平滑。
拉普拉斯平滑对于HMM来说还可以,但并不是很好。大多数人都使用加一平滑,但是你可以尝试像加半个一样的东西。
如果你想超越这种简单的平滑方法,请查看“一计数平滑”(one-count smoothing),如Jason Eisner's HMM tutorial附录所述。基本思想是对于未知词,应该给予更多的概率质量给出现在更多低频词汇上的标签。例如,由于名词标记出现在许多不同的单词上,而限定词标记仅出现在少数不同的单词上,因此未知词更有可能是名词。
如果你想变得更加高端,可以使用来自非参数贝叶斯统计学的中餐馆过程模型来对未知的词/标记组合进行先验分布。Kevin Knight's Bayesian inference tutorial有详细说明。

0

我认为基于HMM的TnT标注器提供了更好的方法来处理未知词汇(请参见TnT标注器的论文中的方法)。

关于13种语言(包括保加利亚语、捷克语、荷兰语、英语、法语、德语、印地语、意大利语、葡萄牙语、西班牙语、瑞典语、泰语和越南语)上TnT和其他两个POS和形态标注器在已知单词和未知单词方面的准确性结果,可以在本文中找到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接