python - 在python中计算单词相似度得分
问题描述
我试图通过比较主题列表来计算书籍的相似性。
需要从 0-1 之间的 2 个列表中获得相似度得分。
例子:
book1_topics = ["god", "bible", "book", "holy", "religion", "Christian"]
book2_topics = ["god", "Christ", "idol", "Jesus"]
尝试使用 wordnet 但不知道如何计算分数。
有什么建议么?
解决方案
我建议使用spaCy,一个 Python nlp 库
import spacy
book1_topics = ['god', 'bible', 'book', 'holy', 'religion', 'Christian']
book2_topics = ['god', 'Christ', 'idol', 'Jesus']
nlp = spacy.load('en_core_web_md')
doc1 = nlp(' '.join(book1_topics))
doc2 = nlp(' '.join(book2_topics))
print(doc1.similarity(doc2))
输出:
0.822639616995468
笔记
你可能想安装 spacy:
pip3 install spacy
和模型:
python3 -m spacy download en_core_web_md
推荐阅读
- laravel - URL 在 Laravel 8 中被添加了两次
- mysql - 将 terraform 与 heroku 一起使用时,有没有办法在附加插件后刷新应用程序状态?
- python - Django - ListView - 列出分配给帖子的图像
- android - 如何处理 ActionAppNotificationSettings?
- botframework - Slack Button 文本未完全显示。最后添加点
- vue.js - 我怎样才能使结构进入其中包含对象数组的对象?
- react-final-form - 通过观察状态变化来解决handleSubmit的promise
- python - 我想在“::”之后拆分这个列表,并且想在所有条目中只打印“::”之后的字符
- android - Directions API 返回 0 条路线
- html - 有没有一种方法可以将一个 html 文件的 div 标签的路径写入 django 中的另一个 html 文件 {% url 'file_name' %}