首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算给定单词与随机单词列表之间的相似度。

计算给定单词与随机单词列表之间的相似度。
EN

Stack Overflow用户
提问于 2022-01-27 18:25:26
回答 1查看 244关注 0票数 0

我想计算出一个给定的单词和一个随机的单词列表之间的相似性,然后在一个新的列表中对结果进行排序,例如:

代码语言:javascript
复制
list = ['bark','black','cat','bite','human','book'] #it could be another list

与以下词相似:

代码语言:javascript
复制
word = ['dog']

--

代码语言:javascript
复制
import spacy
nlp = spacy.load('en_core_web_md')


bark = nlp("bark")
bite = nlp("bite")
human = nlp("human")
book = nlp("book")
cat = nlp("cat")
black = nlp("black")

print("dog - bark", dog.similarity(bark)) #0.4258176903285793
print("dog - bite", dog.similarity(bite)) #0.4781574605069981
print("dog - human", dog.similarity(human)) #0.35814872466230835
print("dog - book", dog.similarity(book)) #0.22838638167627964
print("dog - cat", dog.similarity(cat)) #0.8016854705531046
print("dog - black", dog.similarity(black)) #0.30601667459001575

那么,我如何能够自动计算列表中每个单词与给定单词的相似度呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-27 18:54:16

你可以这样做:

代码语言:javascript
复制
import spacy
nlp = spacy.load('en_core_web_md')

words = ['bark','black','cat','bite','human','book']
word = 'dog'
word_nlp = nlp(word)

new_words = [(w, word_nlp.similarity(nlp(w))) for w in words]
new_words.sort(key=lambda x: x[1], reverse=True)

for w, value in new_words:
    print(f"{word} - {w}", value)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70883842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档