cpu-word - 是否有一种算法可以从给定的单词集中识别出最显着的单词?

标签 cpu-word similarity wordnet

我试图从一组给定的随机单词中找出一个单词的重要性。例如,我想知道“事故”是“男人、女人、事故”这三个词中最重要的一个词。一个简单的解决方案是获取每个单词的 WordNet 深度,并根据单词深度的差异来计算该单词的重要性。该解决方案非常耗时,因为这需要 n(n-1) 次计算才能生成最终重要性。有没有更好的解决方案来处理这种情况?

最佳答案

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

首先,选择一个代表您的问题领域的语料库。然后对其进行词频计数。您可以跳过这两组并使用预制列表,例如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 的单词使用趋势框中的频率计数。 :

man          0.0289
woman        0.0149
walk         0.0064
shot         0.0049
accident     0.0048

幸运的是,这些数字与您给出的正确答案相符:事故和枪击。

关于cpu-word - 是否有一种算法可以从给定的单词集中识别出最显着的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21928121/

相关文章:

javascript - 如何通过 Javascript 查询 Prolog?

java - 如何在我自己的java类中使用BerkeleyAligner?

iOS 版 Safari 上的 JavaScript 类错误

Java,以数字开头的单词

cluster-analysis - 结合不同的相似性来构建一个最终的相似性

nlp - 解决单词多义/同音异义的最先进算法是什么?

java - 使用字符串数组(JAVA)计算文件的字数

algorithm - 在数据集中查找相似记录

search - 您如何有效地实现文档相似性搜索系统?

WordNet,查询扩展,一步一步