当前位置:首页 > 日记本 > 正文内容

python 一个文本要和5000个文本对比相似度,判定和哪个文本相似度最高以及是否一致

zhangchap1年前 (2023-05-10)日记本423
import jieba
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

# 原始文本
input_text = "这是你要对比的文本。"

# 与该文本进行比较的其他5000个文本(示例数据)
compare_texts = [
    "这是第一篇文本。",
    "相似度不够高",
    "这一篇看起来和原始文本很相似。",
    "还有4967篇文本需要比较"
]

# 对原始文本及比较文本分词,并拼接为字符串
input_words = ' '.join(jieba.cut(input_text))
compare_words = [' '.join(jieba.cut(text)) for text in compare_texts]

# 初始化TF-IDF向量化器
vectorizer = TfidfVectorizer()

# 使用fit_transform函数将所有文本向量化
vectors = vectorizer.fit_transform([input_words] + compare_words)

# 计算余弦相似度
sims = cosine_similarity(vectors[0], vectors[1:])[0]

# 找到最高相似度的文本及其索引
max_sim = max(sims)
max_index = sims.tolist().index(max_sim)

# 判断最高相似度是否一致
if max_sim >= 0.8:  # 自定义阈值,根据需要调整
    print("原始文本和第{}篇文本相似度最高,相似度得分为{}".format(
        max_index + 1, max_sim))
else:
    print("没有找到足够相似的文本。")


请注意,本程序使用了jieba库、sklearn.feature_extraction.text库和sklearn.metrics.pairwise库中的一些功能,所以您需要安装它们,方法如下:

pip install jieba scikit-learn

在这个程序中,我们使用了jieba库对原始文本及比较文本进行分词,并将它们拼接为以空格分隔的字符串。这是因为,在将中文文本向量化时,要首先将其标记化(即将文本划分为有意义的单元)并转换为数字表示形式。这里我们使用TF-IDF(词频-逆文档频率)为基础的套袋模型来实现这一点。

最后,这个程序会计算每个文本与原始文本之间的余弦相似度分数,并找到具有最高分数的文本索引。如果最高相似度得分足够高(在此设为0.8),程序将打印出相应的结果,否则提示没有找到足够相似的文本。

希望这份针对中文环境的程序能满足您的需求!


在这个程序中, sims 是一个数组变量,存储了原始文本和每个比较文本之间的余弦相似度得分。max(sims) 是Python内置函数max作用在sims数组上返回的最大值。换句话说,它代表最高的余弦相似度得分,也就是与原始文本相似度最高的文本的相似度得分。

在这个程序中,我们使用这个最大值来判断返回结果是否符合要求。具体来说,如果最高相似度得分达到我们指定的阈值,则认为该文本与原始文本足够相似,可以输出相应信息。否则,如果没有符合条件的文本,我们将输出一个默认消息。



分享给朋友:

相关文章

python 函数 开启多线程示例

from threading import Thread def readfile(queue:Queue):    &nbs...

python补全网址代码示例

from urllib.parse import urljoin absurl = urljoin(backend,url) #backend:根...

python 发布文章 随机分类(choice)

from random import choice catid = choice([5,6]) #choice 函数从列表中随机提取...

python 获取当前时间及随机时间戳

import time from random import randint time.strftime('%Y-%m-%d %H:%M:...

Python 正则表达式 带分组的替换 \g

import re re.sub(r'([^a-z]*)[a-z]([^a-z]*)', '\g<1>\g<2>',wor...

减重五原则

1.主粮减半,少吃米面粥粉等;2.完全戒糖,包括可乐、奶茶等3.轻断食,每周一次,一日餐4.不限制任何动物脂肪和肉类,少吃植物油;5.保证随时喝到水,脂肪的消耗需要大量的水。...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。