如何检测两篇新闻文章是否具有相同的主题?(Python语义相似度)

res*_*ion 6 python comparison nlp similarity

我正在尝试从一些特定网站上的文章中抓取标题和正文,类似于谷歌对谷歌新闻的做法。

问题是,在不同的网站上,他们可能有关于同一主题的文章,措辞略有不同。

谁能告诉我我需要知道什么才能编写一个比较算法来自动检测相似的文章?或者,是否有任何库可用于文本比较并返回某种类型的相似度评级?需要使用 Python 的解决方案。

Sil*_*oud 2

我认为最简单的方法是使用 HuggingFace 库中的 SentenceSimilarity 模型,例如使用此模型

首先你必须

pip install sentence_transformers
Run Code Online (Sandbox Code Playgroud)

然后代码非常简单,正如您在提供的链接中看到的:

from sentence_transformers import SentenceTransformer
import numpy as np

sentences = ["Text number 1", "Text number 2"]
model = SentenceTransformer('sentence-transformers/all-mpnet-base-v1')
embeddings = model.encode(sentences)
np.dot(embeddings[0], embeddings[1], out=None)
Run Code Online (Sandbox Code Playgroud)

点积的结果将是两个字符串之间的相似度得分。基本上,1意味着它们是相同的,-1意味着它们是相反的(更多细节请看这里