是否有算法来识别给定词组中最突出的单词?

时间:2014-02-21 07:34:06

标签: word similarity wordnet

我试图从一组给定的随机单词中找出一个单词的重要性。例如,我想知道“意外”是“男人,女人,意外”这个词中最重要的词。一个天真的解决方案是为每个单词获取WordNet深度,并根据单词深度的不相似性计算单词的重要性。该解决方案非常耗时,因为这需要n(n-1)次计算来产生最终的重要性。是否有更好的解决方案来处理这种情况?

1 个答案:

答案 0 :(得分:2)

通常的做法是,一个词越不常见,它就越重要。

首先,选择代表您的问题域的语料库。然后对它运行一个字频率计数。您可以跳过这两组并使用预先制作的列表,例如http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists例如http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/PG/2006/04/1-10000但是,制作单词频率是Python / NLTK中更容易做的事情之一。

第三步是找出每个输入字的频率,而最低频率的那个是最显着的。或者,如果输入到另一个步骤并且实数很有用,tf-idf会为您提供。

您可能希望首先规范化/干掉字词。这取决于您的申请。但是,如果你这样做,请确保你在生成阶段(即规范化你的语料库)和使用阶段(规范化你的输入)都这样做。

以下是一些示例,使用http://www.collinsdictionary.com/dictionary/english/man处的“Word使用趋势”框中的频率计数:

man          0.0289
woman        0.0149
walk         0.0064
shot         0.0049
accident     0.0048

幸运的是,这些数字与你给出的正确答案相符:意外和射击。