哪个nltk.corpus.wordnet的相似性函数适合于找到两个单词的相似度?

时间:2011-09-13 10:42:56

标签: python nlp nltk wordnet corpus

nltk.corpus.wordnet中的哪个相似度函数适合于找到两个单词的相似度?

 path_similarity()?
    lch_similarity()?
    wup_similarity()?
    res_similarity()?
    jcn_similarity()?
    lin_similarity()?

我想使用word clusteringyarowsky algorightm的函数在大文本中找到类似的collocation

2 个答案:

答案 0 :(得分:7)

这些措施实际上是针对词义(或概念)而非单词。这种区别可能很重要。换句话说,“火车”一词可以表示“机车”或“被教导做某事”。要使用这些措施,您需要知道哪种意义。

如果你想进行单词聚类,这些措施可能可能不是你想要的......

答案 1 :(得分:3)

我自己一直在玩NLTK / wordnet,目的是尝试以某种自动方式匹配某些文本。正如Ted Pedersen的答案所指出的那样,nltk.corpus.wordnet中的相似性函数很快就会变得清晰,只有非常密切相关的术语才能产生非零的相似性,并且具有可靠的IS-A谱系。

我最终做的是在我的文本中使用词汇,然后使用lemma-> synset-> lemmas和lemma-> similar_tos来增长我自己的单词链接图(graph_tool非常棒然后计算链接2个单词所需的minimum number of hops以获得它们之间的某种(dis-)相似性度量(非常有趣的打印出来;就像观看一个非常奇怪的单词关联游戏)。即使没有尝试将POS /感觉考虑在内,这确实对我的目的来说也足够好。