另一个答案和注释描述了如何获得同义词,但我想你想要的不止这些?在
我可以建议两种广泛的方法:WordNet和word嵌入。在
使用nltk和wordnet,您需要探索相邻的图形节点。有关可用函数的概述,请参见http://www.nltk.org/howto/wordnet.html。我建议,一旦你在Wordnet中找到了你的起始词,就可以追踪它的所有关系,但也可以找到它的上一个词,然后在那里做同样的事情。在
开放的多语言WordNet试图链接不同的语言。http://compling.hss.ntu.edu.sg/omw/这样你就可以把你的英文WordNet代码移到法语WordNet,或者反过来。在
另一种方法是使用单词嵌入。你找到,比方说,300维,你的源单词的向量,然后在这个向量空间中寻找最近的单词。这将返回在相似上下文中使用的单词,因此它们可以具有相似的含义,或者在语法上相似。在
关于英语和法语,通常你会独立使用这两种语言。但是如果你搜索“多语言单词嵌入”,你会发现一些论文和项目中,对于不同语言的相同概念,向量保持不变。在
注意:这个API是用来告诉你两个单词是如何相似的,而不是找到相似的单词。为了找到相似的单词,你需要把你的向量与其他单词向量进行比较,这个向量在词汇表中的大小是O(N)。因此,您可能希望离线执行此操作,并为每个感兴趣的单词构建自己的“同义词和类似词”词典。在