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

gensim的一些常见概念:

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

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

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

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

下面为相关代码,代码结构和前面的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%的结果可信度还是比较高的

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

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

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

    Fuzzywuzzy 是一款可以对字符串模糊匹配的工具, 它使用 Levenshtein Distance 来计算出那些易用包中序列之间的差异. Levenshtein Distance算法,又叫 E ...

  2. SilkTest 对 Excel 表操作的两种方式

    SilkTest 对 Excel 表操作的两种方式  这两种方式都是对 SilkTest 运用的最基础的东西,我写得也比较简单.国内这方面的资料实在太少,对初学者可能有帮助. 方式一 : Data D ...

  3. robot framework循环读取excel表操作

    robot framework循环读取excel表操作 1.安装excellibrary,注意python3.7版本,需安装:robotframework-excel,robotframework-e ...

  4. Excel表操作 将一列数据设为文本(单元格左上角标有绿色三角)

    当Excel表导入的SQL数据库时,Excel表中的一列数据若不一致,如,那么在导入到数据库时,有部分数据会为NULL,(不报错,只是数据为NULL). 这时我们就需要把这一列数据都设为文本,但是只是 ...

  5. python读写excel表操作

    安装xlrd模块 pip install xlrd或者去官网下载 使用 读取文件 file = xlrd.open_workbook("./sample.xlsx") 此时file ...

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

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

  7. xlwt对excel表的写入操作

    xlwt对excel表的写入操作 一.本教程适用范围 二.对excel表的操作顺序图 三.对excel表操作 四.总结 一.本教程适用范围 操作系统:能安python所有操作系统 软件:python. ...

  8. Excel表的相关操作(笔记)

    0.序言 关于LOOKUP,FIND,OFFSET等excel表操作的笔记. 1.excel往下拉复制横向数据 例子:   公式:OFFSET($S$26,1,V27,1,1) 用与数据++   R2 ...

  9. 【MySQL数据库系列】一、认识数据库、建库建表操作

    文章目录 一.初识数据库 二.MySQL基本数据类型 三.MySQL基本逻辑运算符 四."数据库"的基本操作 五."表"的基本操作 一.初识数据库 数据库:能更 ...

最新文章

  1. python语言表白源码-python七夕浪漫表白源码
  2. Solaris 11的ip地址配置
  3. python求两个列表的并集.交集.差集方法
  4. tensor转list_tensorflow中ckpt转pb
  5. SSO [ OAuth2.0 ]
  6. C++的4种类型转换关键字及其特点
  7. fastapi 模式的额外信息,示例 / Cookie参数 / Header参数
  8. Linux Socket函数手册(二)
  9. python 根据开头时间戳 合并两个文件
  10. Android studio中常用快捷键
  11. mysql server 6.0_MySQL Server 6.0完全卸载以及卸载中遇到的问题
  12. 大数据:对大数据的理解
  13. 计算机利用if函数总评,Excel中IF函数的嵌套用法_
  14. 基于学术研究下载NOAA气象雷达资料的详细步骤
  15. 美食杰(个人主页编辑资料)
  16. ips细胞技术治疗尿毒症最新进展
  17. python用于财务数据分析_财务数据分析进阶之路
  18. 使用MfgTool工具进行系统烧写
  19. 高中计算机高效课堂和有效教学模式论文,高中班主任高效课堂教学模式的探究...
  20. thinkphp6实现微信V3服务商支付接口

热门文章

  1. 永磁同步电机转子磁链_混合式永磁同步电机转子磁路结构研究
  2. 微信逆向 hook 2.8.0.121 源码分享
  3. 通辽有计算机二级考点吗,2018通辽高考考点考场安排及设置
  4. 眉骨高者为大贵之相_面相:额头天庭骨起,大贵之相
  5. 中小学图书馆阅览室建设方案
  6. flask、element、vue项目实战:搭建一个加密excel数据的网站
  7. 如何使用python和opencv4实现照片长曝光效果呢?
  8. python中np.randon.rand()随机种子
  9. 国科大人工智能技术学院揭牌,第一批研究生正式入学
  10. android六边形imageview