日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/3/26 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Excel表操作-通过gensim实现模糊匹配 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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实现模糊匹配的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。