【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开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Python 字典 (Dictionary)使用详解

《Python字典(Dictionary)使用详解》字典是python中最重要,最常用的数据结构之一,它提供了高效的键值对存储和查找能力,:本文主要介绍Python字典(Dictionary)... 目录字典1.基本特性2.创建字典3.访问元素4.修改字典5.删除元素6.字典遍历7.字典的高级特性默认字典

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核