首页 > 解决方案 > 在python中计算单词相似度得分

问题描述

我试图通过比较主题列表来计算书籍的相似性。

需要从 0-1 之间的 2 个列表中获得相似度得分。

例子:

book1_topics = ["god", "bible", "book", "holy", "religion", "Christian"]

book2_topics = ["god", "Christ", "idol", "Jesus"]

尝试使用 wordnet 但不知道如何计算分数。

有什么建议么?

标签: pythonnlpwordnetcosine-similaritysentence-similarity

解决方案


我建议使用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

推荐阅读