【python 走进NLP】两两求相似度,得到一条文本和其他文本最大的相似度

2024-09-07 07:58

本文主要是介绍【python 走进NLP】两两求相似度,得到一条文本和其他文本最大的相似度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

应用场景:
一个数据框里面文本,两两求相似度,得到一条文本和其他文本最大的相似度。

              content source_id
0  丰华股份军阀割据发生的故事大概多少w         1
1   丰华股份军阀割据发生的故事大概多少         2
2   丰华股份军阀割据发生的故事大概多少         3
3   丰华股份军阀割据发生的故事大概多少         4
4   丰华股份军阀割据发生的故事大概多少         5

一开始数据框是这样子,要计算 第一行文本和第二行文本,第三行文本,第四行文本,第五行文本的相似度,并求最大,以此类推。
这其实是个排列问题,先要数据排列,再处理数据。

希望得到如下结果:

              content source_id  max_similar
0  丰华股份军阀割据发生的故事大概多少w         1       0.9444
1   丰华股份军阀割据发生的故事大概多少         2       1.0000
2   丰华股份军阀割据发生的故事大概多少         3       1.0000
3   丰华股份军阀割据发生的故事大概多少         4       1.0000
4   丰华股份军阀割据发生的故事大概多少         5       1.0000
# -*- encoding=utf-8 -*-
import pandas as pd
from itertools import permutationsfrom 文本防刷系统.text_anti_brush_function import *
content_list=['丰华股份军阀割据发生的故事大概多少w','丰华股份军阀割据发生的故事大概多少','丰华股份军阀割据发生的故事大概多少','丰华股份军阀割据发生的故事大概多少','丰华股份军阀割据发生的故事大概多少']source_id_list=['1','2','3','4','5']
data1=pd.DataFrame({'content':content_list,'source_id':source_id_list})print(data1)
test_data=dict(data1['content'])
print('排列有:')
max_similar_list = []
k1=[]
k2=[]
for i,j in permutations(test_data, 2):similar=lcs_similarity(str(data1.iloc[i,0]),str(data1.iloc[j,0]))print(i,j,data1.iloc[i,0],data1.iloc[j,0],similar)k1.append(i)k2.append(similar)data3=pd.DataFrame({'k1':k1,'k2':k2})
print(data3)# 分组取最大相似度
data3 = data3.groupby(['k1'], as_index=False)['k2'].max()print(data3)
# 新增一列相似度
data1['max_similar']=data3['k2']print(data1)
E:\laidefa\python.exe F:/文本标签/文本防刷系统/相似度.pycontent source_id
0  丰华股份军阀割据发生的故事大概多少w         1
1   丰华股份军阀割据发生的故事大概多少         2
2   丰华股份军阀割据发生的故事大概多少         3
3   丰华股份军阀割据发生的故事大概多少         4
4   丰华股份军阀割据发生的故事大概多少         5
排列有:
0 1 丰华股份军阀割据发生的故事大概多少w 丰华股份军阀割据发生的故事大概多少 0.9444
0 2 丰华股份军阀割据发生的故事大概多少w 丰华股份军阀割据发生的故事大概多少 0.9444
0 3 丰华股份军阀割据发生的故事大概多少w 丰华股份军阀割据发生的故事大概多少 0.9444
0 4 丰华股份军阀割据发生的故事大概多少w 丰华股份军阀割据发生的故事大概多少 0.9444
1 0 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少w 0.9444
1 2 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
1 3 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
1 4 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
2 0 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少w 0.9444
2 1 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
2 3 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
2 4 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
3 0 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少w 0.9444
3 1 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
3 2 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
3 4 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
4 0 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少w 0.9444
4 1 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
4 2 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0
4 3 丰华股份军阀割据发生的故事大概多少 丰华股份军阀割据发生的故事大概多少 1.0k1      k2
0    0  0.9444
1    0  0.9444
2    0  0.9444
3    0  0.9444
4    1  0.9444
5    1  1.0000
6    1  1.0000
7    1  1.0000
8    2  0.9444
9    2  1.0000
10   2  1.0000
11   2  1.0000
12   3  0.9444
13   3  1.0000
14   3  1.0000
15   3  1.0000
16   4  0.9444
17   4  1.0000
18   4  1.0000
19   4  1.0000k1      k2
0   0  0.9444
1   1  1.0000
2   2  1.0000
3   3  1.0000
4   4  1.0000content source_id  max_similar
0  丰华股份军阀割据发生的故事大概多少w         1       0.9444
1   丰华股份军阀割据发生的故事大概多少         2       1.0000
2   丰华股份军阀割据发生的故事大概多少         3       1.0000
3   丰华股份军阀割据发生的故事大概多少         4       1.0000
4   丰华股份军阀割据发生的故事大概多少         5       1.0000Process finished with exit code 0

这篇关于【python 走进NLP】两两求相似度,得到一条文本和其他文本最大的相似度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144509

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部