您好我正在寻找我的问题的解决方案:我想找到一个与法语和英语相似的单词列表例如:名称可以是:名字,姓氏,nom,prénom,用户名....邮政地址可能是:城市,国家,街道,维尔,支付,代码postale ....
另一个答案和评论描述了如何获取同义词,但我认为你想要更多的东西?
我可以提出两种广泛的方法:WordNet和文字嵌入。
使用nltk和wordnet,您想要探索相邻的图节点。有关可用功能的概述,请参阅http://www.nltk.org/howto/wordnet.html。我建议,一旦你在Wordnet中找到了你的起始单词,遵循它的所有关系,还要达到hypernym,并在那里做同样的事情。
找到起始词并不总是那么简单:http://wordnetweb.princeton.edu/perl/webwn?s=Postal+address&sub=Search+WordNet&o2=&o0=1&o8=1&o1=1&o7=&o5=&o9=&o6=&o3=&o4=&h=
相反,似乎我必须使用“地址”:http://wordnetweb.princeton.edu/perl/webwn?s=address&sub=Search+WordNet&o2=&o0=1&o8=1&o1=1&o7=&o5=&o9=&o6=&o3=&o4=&h=然后决定哪些是正确的意义。然后尝试点击上位词,下位词,姐妹词等。说实话,这些都不是很正确。
打开多语言WordNet尝试链接不同的语言。 http://compling.hss.ntu.edu.sg/omw/所以你可以使用你的英文WordNet代码,然后用它移动到法语WordNet,反之亦然。
另一种方法是使用单词嵌入。您可以找到源词的300维矢量,然后搜索该矢量空间中最近的单词。这将返回在类似上下文中使用的单词,因此它们可能具有相似的含义或类似的语法。
Spacy有很好的实现,请参阅https://spacy.io/usage/spacy-101#vectors-similarity和https://spacy.io/usage/vectors-similarity
关于英语和法语,通常你会独立使用两种语言。但是如果你搜索“多语言单词嵌入”,你会发现一些论文和项目,其中向量在不同语言中对于相同的概念保持相同。
注意:API旨在告诉您两个单词是如何相似的,而不是找到相似的单词。要找到相似的单词,您需要使用向量并与其他每个单词向量进行比较,即词汇量大小为O(N)。因此,您可能希望离线执行此操作,并为每个感兴趣的单词构建自己的“同义词和类似”词典。
from PyDictionary import PyDictionary
dictionary=PyDictionary()
answer = dictionary.synonym(word)
word
是您找到同义词的词。