python - 查找相似/同义词/上下文单词 Python

标签 python text-mining wordnet

您好,我正在寻找问题的解决方案: 我想找到与法语和英语相似的单词列表 例如 : 名字可以是:名字、姓氏、化名、普雷诺姆、用户名...... 邮政地址可以是:城市、国家、街道、维尔、付款、邮政编码......

最佳答案

另一个答案和评论描述了如何获取同义词,但我认为您想要的不仅仅是这些?

我可以建议两种广泛的方法:WordNet 和词嵌入。

使用 nltk 和 wordnet,您想要探索相邻的图节点。请参阅http://www.nltk.org/howto/wordnet.html了解可用功能的概述。我建议您在 Wordnet 中找到起始词后,跟踪其所有关系,同时查找上位词,并在那里执行相同的操作。

找到起始词并不总是那么容易: 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-similarityhttps://spacy.io/usage/vectors-similarity

关于英语和法语,通常您会独立使用这两种语言进行工作。但是,如果您搜索“多语言词嵌入”,您会发现一些论文和项目,其中对于不同语言的相同概念,向量保持相同。

注意:API 旨在告诉您两个单词的相似程度,而不是查找相似的单词。要找到相似的单词,您需要获取向量并与其他每个单词向量进行比较,该向量的词汇量大小为 O(N)。因此,您可能希望离线执行此操作,并为每个感兴趣的单词构建您自己的“同义词和相似”词典。

关于python - 查找相似/同义词/上下文单词 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54882858/

相关文章:

python - 是否有一种算法可以计算 NLP 中单词抽象程度的数值等级?

python - 如何获取utf8编码的html内容

python - 如何在 wordnet 词典中添加新词?

python - 检索与一个 WordNet 相关的所有单词

从简短的荷兰语文本中提取关键字

从数据框中删除非英语观察结果

r - 在 R 中使用西类牙语文本创建语料库

python - 使用 imshow 时自定义刻度自动缩放?

python - 如何在 python 中打开闭包?

Python:如何从函数中拆分并返回列表以避免内存错误