关于Excel表操作-通过gensim实现模糊匹配

article/2025/9/13 13:23:20

gensim是一个Python的自然语言处理库,能够将文档根据TF-IDF,LDA,LSI等模型转换成向量模式,此外,gensim还实现了word2vec,能够将单词转换为词向量。

05d38ae722484633041a19478e881de7.png

gensim的一些常见概念:

语料Corpus: 一组原始文本的集合,用于无监督地训练文本主题的隐层结构,语料中不需要人工标注的附加信息。在Gensim中,Corpus通常是一个可迭代的对象(比如列表)。每次迭代返回一个可用于表达文本对象的稀疏向量。

向量Vector: 由一组文本特征构成的列表,是一段文本在Gensim中的内容部表达。

稀疏向量SparseVector: 通常 我们可以略去向量中多余的0元素,此时向量中的每一个元素是一个(key,value)的tuple.

模型Model: 是一个抽象的术语,定义了两个向量空间的变换(即从文本的一种向量表达变换为另一种向量表达)

cbcc368050f3670c28f7c54645b1ef24.png

下面为相关代码,代码结构和前面的Fuzzywuzzy是类似的,不过执行起来,效率是前者的几十倍上百倍。

关于本文的步骤:

1、读取Excel表格

2、进行jieba分词

3、构建语料字典

4、通过doc2bow转换为稀疏向量

5、构建TfidfModel模型,进行训练

6、实现相似度查找

from gensim import corpora, similarities, models
import jieba
import pandas as pd
import datetime
filename=r'C:\Users\baoqi\Documents\比较清单.xlsx'
targetfilename=r'C:\Users\baoqi\Documents\目标文件.xlsx'
# A比B多   21409  CONT_NAME
# B比A多   3236   HTMC
# ---------------------------写入财务域比资产域多的非物资合同补充列-------------------
data = pd.read_excel(filename,sheet_name='B比A多',engine='openpyxl')
find= pd.read_excel(filename,sheet_name='B比A多',engine='openpyxl')data_split_word = data.CONT_NAME.apply(jieba.lcut)
dictionary = corpora.Dictionary(data_split_word.values)
data_corpus = data_split_word.apply(dictionary.doc2bow)
find_corpus=find.HTMC.apply(lambda  x:dictionary.doc2bow(jieba.lcut(x)))
tfidf = models.TfidfModel(data_corpus.to_list())
index = similarities.SparseMatrixSimilarity(tfidf[data_corpus], num_features=len(dictionary))
result = []
for corpus in find_corpus.values:sim = pd.Series(index[corpus])result.append(['\t'.join([str(s) for s in data.CONT_NAME[sim.nlargest(2).index].values]), '','\t'.join([str(s) for s in sim.nlargest(2).values]), ''])
result = pd.DataFrame(result)
result.rename(columns={0:'匹配值1',1:'匹配值2',2:'阈值1',3:'阈值2'}, inplace=True)
result = pd.concat([find, result], axis=1)writer = pd.ExcelWriter(targetfilename, mode="w", engine="openpyxl")
result.to_excel(writer,index=False,sheet_name='匹配值')
writer.save()
writer.close()

通过实际测试,阈值70%的结果可信度还是比较高的

最后,谢谢关注,谢谢支持!

7d71e57beefc7201469d2f2b18e2c0a2.png


http://chatgpt.dhexx.cn/article/GyP7L7no.shtml

相关文章

Excel效率提升|解决不完全匹配数据整理

以各地级市(1-5线城市)人均GDP数据为例 从国家统计局或wind导出来的数据: 而我们整理后的目标sheet的匹配字段如图: 如何进行有效匹配? 观察可知:我们需要以城市名作为匹配的依据 如何将城市名批…

ExcelWPS通配符的使用方法,一招解决模糊查询!

大家好,本期和大家分享Excel通配符的使用方法! Excel 通配符一共有3个。 它们的含义如下图所示: 符号含义举例?表示任意单个字符比如要查找所有姓王的名字为2个字的人,则可以使用 【 王? 】 代替;查找所…

[Excel]vlookup的内在逻辑以及模糊检索

作为一个excel的用户,vlookup可能是使用频度最高的一个函数 但是有关这个函数当中的数学意义不知道大家具体了解多少 今天就在这里讲讲我个人的vlookup的一些用法 比一般的使用方法稍微高阶一点(求保命) 大部分人刚开始使用vlookup的时候都…

python 模糊匹配字符串 excel,python pandas模糊匹配 读取Excel后 获取指定指标的操作...

1.首先读取Excel文件 数据代表了各个城市店铺的装修和配置费用,要统计出装修和配置项的总费用并进行加和计算; 2.pandas实现过程 import pandas as pd #1.读取数据 df = pd.read_excel(r./data/pfee.xlsx) print(df) cols = list(df.columns) print(cols) #2.获取含有装修 和…

模糊匹配省市区地址

用户输入地址不可能一定规范,如按习惯省略掉:“省”、“市”、“区”等关键字,此时安装正则匹配很容易查找不到正确的地址。 以下代码按照用户输入的先后顺序,相同的词组进行匹配,可靠性与适配性大大提高,记…

excel根据不同的条件模糊匹配,替换,做计算

IF(COUNTIF(E2,“Gbps”)>0,VALUE(SUBSTITUTE(E2," Gbps","")),IF(COUNTIF(E2,“Tbps”)>0,VALUE(SUBSTITUTE(E2," Tbps","")*1024),IF(COUNTIF(E2,“Mbps”)>0,VALUE(SUBSTITUTE(E2," Mbps","")/1024),…

【Python处理EXCEL】轻办公实用篇1:通过模糊匹配算法对两个excel表格的内容进行匹配归类

目录 一、问题描述 二、运用方法 三、代码编写 3.1 3.2 3.3 3.4 3.5 四、代码集合 一、问题描述 在实习的时候,需要将两个表格的内容进行匹配分类,比如两个不同的工程项目针对的对象都是A,那么就需要将这两个工程项目归类到A当中&am…

python 模糊匹配字符串 excel,python pandas模糊匹配Excel指定指标 python pandas模糊匹配 读取Excel后 获取指定指标的操作...

想了解python pandas模糊匹配 读取Excel后 获取指定指标的操作的相关内容吗,D_grey在本文为您仔细讲解python pandas模糊匹配Excel指定指标的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,pandas,模糊匹配,读取Excel,指定指标,下面大家一起来学习吧。 1.首…

wps中excel如何实现模糊搜索匹配的内容(可以匹配想要的各种格式)

1,在某一列进行搜索-筛选搜索-如包含“XXX信息XX公司XX”这种格式的。 输入 :信息*公司 (1)选择第一种搜索方式代表寻找符合条件: 包含信息和公司两个关键字, 且信息在前公司在后, 且两个词语之…

【如何使用Excel进行两表之间模糊匹配查找】

在特殊情况下,A表中表示人名字段的内容只是包含名字,B表中表示人名字段包含姓和名字,如A表:yinxu ,B表:li yinxu ,我们认为是同一个人,如何通过Excel更好的匹配出来呢? &#xff0…

excel部分字段相同模糊匹配

一、提出问题 你要么获取一批数据,然后根据它提问,或者先提问,然后根据问题收集数据。在这两种情况下,好的问题可以帮助你将精力集中在数据的相关部分,并帮助你得出有洞察力的分析。 二、理解数据 1、理解各字段的意思,如果有英文可修改成中文更易理解。 2、在数据清洗…

excel模糊匹配sql server数据库

假如数据库中已经有数据了 步骤1 在Excel表格中新建一页表格用于存储数据库的数据 步骤2 将待输入数据的表格与数据库关联 步骤3 在表格启动时,将表格与数据库进行关联 注意:一定要在ThisWorkbook的Workbook_open()方法中实现。 附上代码&#x…

Excel技巧:模糊匹配包含项

公式:VLOOKUP("*"&B2&"*",M:M,1,0) // 待查找的元素中前后 加*, 表示匹配含该元素 案例:

Excel模糊匹配相同内容的数据求和,使用SUMIF函数

看到朋友在对Excel表格数据进行机械操作,想到excel应该是个很强大的应用,这些机械操作应该可以通过函数简化操作的,于是不正经的研究下。 首先我们上图: 简单的需求,把每个店铺的每个月充值分别是200,500,1000,1500,2…

Excel之vlookup函数的模糊匹配和精准匹配

先复习一下,在Excel单元格中输入“Vlookup”提示如下 VLOOKUP(lookup_value,table_array,col_index_num.[range_lookup])其表达的意思为:Vlookup(查找的值,查找的区域,查找的数据所在的列,精确匹配/模糊匹配) 其中精准配相信大家都…

Excel模糊匹配

方法一: LOOKUP(1,0/FIND(A1,B2:C5),B2:C5) —A1,要查找的字符串 ; B2:C5可以是一个单元格 情形一:基于列1的值,在列2中模糊查找,如果有,则返回列2中找到的值 情形二:基于列1的值,在列2中模糊查找&#x…

关于Excel表操作-通过Fuzzywuzzy实现模糊匹配

Fuzzywuzzy 是一款可以对字符串模糊匹配的工具, 它使用 Levenshtein Distance 来计算出那些易用包中序列之间的差异。 Levenshtein Distance算法,又叫 Edit Distance算法,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次…

【操作篇】Excel中如何自定义搜索(模糊匹配)不再需要一个个勾选l啦!

在Excel筛选下,可以在每个项目前勾选选择项,如果勾选项有上万上千个,难道要从万千个选项种一个个挑出来筛选吗? 当然不必,学会通配符,按照自己想要的方式进行查找。 通配符用法(表示)“”&am…

【Excel高效工作3】VLOOKUP函数实例使用(二):精确匹配进阶——反向查找,多条件查找 / 模糊匹配的使用

本章内容: 上一章用实例展示了VLOOKUP函数最基本的功能:精确匹配 的基础用法。然而,实际工作中对我们提出的需求会更高,面对某些更加复杂的情况,我们可能需要对Excel表格数据先进行预处理,再使用VLOOKUP函…

fastadmin使用editable实现行内编辑无刷新效果

记录:fastadmin使用editable实现行内编辑无刷新效果。 一、下载资源 editable资源下载地址 二、放在如下目录 三、引入并应用 代码示例: require.config({paths: {editable: ../libs/bootstrap-table/dist/extensions/editable/bootstrap-table-edit…