国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

兩種實(shí)現(xiàn)模糊匹配的方法--python

這篇具有很好參考價值的文章主要介紹了兩種實(shí)現(xiàn)模糊匹配的方法--python。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

以下舉例以同一個excel中, sheet2的詞語去匹配sheet1中詞語找模糊匹配結(jié)果來舉例
導(dǎo)入數(shù)據(jù),讀取excel中sheet1(被匹配的目標(biāo)詞庫),sheet2(需要進(jìn)行匹配的詞)

import pandas as pd
import jieba
#需要進(jìn)行匹配的詞
attendee =  pd.read_excel('路徑/testnn.xlsx',sheet_name='Sheet2')
#被匹配的目標(biāo)詞庫
account =  pd.read_excel('路徑/testnn.xlsx',sheet_name='Sheet1')
attendee = attendee.values
account = account.values
#print(attendee)
#print(account)

結(jié)果:python模糊匹配,Python,python,開發(fā)語言,pandas

…………………………………………………………

一、分詞匹配

把需要匹配的詞語和目標(biāo)詞語做分詞,對比分詞匹配度判定關(guān)聯(lián)關(guān)系

1、導(dǎo)入jieba分詞包,對目標(biāo)詞和待匹配詞進(jìn)行分詞,并將其導(dǎo)入至新字典中

#需要進(jìn)行匹配的詞的分詞結(jié)果字典
Sheet2 = {}
for i in attendee:
    HCO=[]
    temp = jieba.cut(i[0], cut_all=False)
    for a in temp:
        HCO.append(a)
    Sheet2[i[0]] = HCO
#print(Sheet2)
#被匹配的目標(biāo)詞庫的分詞結(jié)果字典
Sheet1 = {}
for i in account:
     HCO = []
     temp = jieba.cut(i[0], cut_all=False)
     for a in temp:
         HCO.append(a)
     Sheet1[i[0]] = HCO
#print(Sheet1)

結(jié)果:
python模糊匹配,Python,python,開發(fā)語言,pandas
2、遍歷分詞后結(jié)果字典,對比相同的關(guān)鍵詞并記錄匹配情況

for i in Sheet1:
    a = i
    if i in Sheet2:
        #如果名稱完全相同則返回名稱
        resultstr = i
    #如果名稱不完全相同,對比分詞后的詞語
    for j in Sheet2:
        b = j
        #需要進(jìn)行匹配的詞的分詞數(shù)量
        origin_num = 0  
        #兩分詞結(jié)果中匹配成功的分詞詞語數(shù)量
        match_num = 0
        #存儲需要進(jìn)行匹配的詞的分詞結(jié)果
        origin_l=[]
        for k in Sheet1[i] :
            # xxxx代表分詞結(jié)果中需要人工判定排除的異常詞
            if k != 'xxxx':
                c = k
                origin_l.append(k)
                origin_num = origin_num +1
                target_l = []
                target_num = 0
                for h in Sheet2[j] :
                    # xxxx代表分詞結(jié)果中需要人工判定排除的異常詞
                    if h != 'xxxx':
                        d = h
                        target_num = target_num +1
                        target_l.append(h)
                        if c == d:
                            match_num = match_num + 1
        #選取符合條件的結(jié)果輸出,每條詞語對應(yīng)一條結(jié)果
        if match_num > origin_num - match_num:
            data = {'origin_str': a, 'target_str': b, 'origin_l': origin_l, 'target_l': target_l,'origin_num': origin_num, 'target_num':target_num, 'match_num':match_num}
            print(data)

結(jié)果概覽:
python模糊匹配,Python,python,開發(fā)語言,pandas
整體代碼

import pandas as pd
import jieba
#需要進(jìn)行匹配的詞
attendee =  pd.read_excel('路徑/testnn.xlsx',sheet_name='Sheet2')
#被匹配的目標(biāo)詞庫
account =  pd.read_excel('路徑/testnn.xlsx',sheet_name='Sheet1')
attendee = attendee.values
account = account.values
#print(attendee)
#print(account)

Sheet2 = {}
for i in attendee:
    HCO=[]
    temp = jieba.cut(i[0], cut_all=False)
    for a in temp:
        HCO.append(a)
    Sheet2[i[0]] = HCO
#print(Sheet2)
#被匹配的目標(biāo)詞庫的分詞結(jié)果字典
Sheet1 = {}
for i in account:
     HCO = []
     temp = jieba.cut(i[0], cut_all=False)
     for a in temp:
         HCO.append(a)
     Sheet1[i[0]] = HCO
#print(Sheet1)
for i in Sheet1:
    a = i
    if i in Sheet2:
        #如果名稱完全相同則返回名稱
        resultstr = i
    #如果名稱不完全相同,對比分詞后的詞語
    for j in Sheet2:
        b = j
        #需要進(jìn)行匹配的詞的分詞數(shù)量
        origin_num = 0
        #兩分詞結(jié)果中匹配成功的分詞詞語數(shù)量
        match_num = 0
        #存儲需要進(jìn)行匹配的詞的分詞結(jié)果
        origin_l=[]
        for k in Sheet1[i] :
            # xxxx代表分詞結(jié)果中需要人工判定排除的異常詞
            if k != 'xxxx':
                c = k
                origin_l.append(k)
                origin_num = origin_num +1
                target_l = []
                target_num = 0
                for h in Sheet2[j] :
                    # xxxx代表分詞結(jié)果中需要人工判定排除的異常詞
                    if h != 'xxxx':
                        d = h
                        target_num = target_num +1
                        target_l.append(h)
                        if c == d:
                            match_num = match_num + 1
        #選取符合條件的結(jié)果輸出
        if match_num > origin_num - match_num:
            data = {'origin_str': a, 'target_str': b, 'origin_l': origin_l, 'target_l': target_l,'origin_num': origin_num, 'target_num':target_num, 'match_num':match_num}
            print(data)

二、距離匹配

調(diào)用fuzzywuzzy包中直接進(jìn)行判斷,采用距離匹配方式
兩個字符串之間,由一個轉(zhuǎn)成另一個所需的最少編輯操作次數(shù)。
編輯操作包括:將一個字符替換成另一個字符,插入字符,刪除字符。
一般來說,編輯距離越小,兩個串的相似度越大
整體代碼

import pandas as pd
import jieba
from fuzzywuzzy import fuzz
from fuzzywuzzy import process

attendee =  pd.read_excel('路徑/testnn.xlsx',sheet_name='Sheet2')
account =  pd.read_excel('路徑/testnn.xlsx',sheet_name='Sheet1')
attendee = attendee.values
account = account.values


Sheet2 = {}
for i in attendee:
    HCO=[]
    temp = jieba.cut(i[0], cut_all=False)
    for a in temp:
        HCO.append(a)
    Sheet2[i[0]] = HCO
print(Sheet2)
Sheet1 = {}
for i in account:
     HCO = []
     temp = jieba.cut(i[0], cut_all=False)
     for a in temp:
         HCO.append(a)
     Sheet1[i[0]] = HCO
print(Sheet1)
target_l = []
data = []
n = 0
for j in Sheet2:
    target_l.append(j)
for i in Sheet1:
    n = n+1
    target= {'搜索公司':i,'目標(biāo)公司': process.extractOne( i, target_l )[0],'目標(biāo)權(quán)重': process.extractOne( i, target_l )[1]}
    data.append(target)
    print (data)
df1 = pd.DataFrame(data)
print(df1)

writer = pd.ExcelWriter('路徑/testmm.xlsx')
df1.to_excel(writer, 'Final')
writer.save()
writer.close()

結(jié)果概覽:
python模糊匹配,Python,python,開發(fā)語言,pandas文章來源地址http://www.zghlxwxcb.cn/news/detail-650976.html

到了這里,關(guān)于兩種實(shí)現(xiàn)模糊匹配的方法--python的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 折半查找(二分查找)的兩種方法及實(shí)現(xiàn) Python

    概念: 在計算機(jī)科學(xué)中,折半查找,也稱二分查找,是一種在有序數(shù)組中查找某一特定元素的搜索算法。 搜索過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結(jié)束;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一

    2024年02月09日
    瀏覽(28)
  • 【python】虛擬屏幕實(shí)現(xiàn)selenium截圖的兩種方法介紹

    可以使用虛擬屏幕的方式,在虛擬屏幕上運(yùn)行瀏覽器并進(jìn)行截圖操作,這樣就不會影響當(dāng)前屏幕的展示。 具體實(shí)現(xiàn)可以使用Xvfb和pyvirtualdisplay庫。Xvfb是虛擬X11服務(wù)器,可以在內(nèi)存中創(chuàng)建一個虛擬屏幕,而pyvirtualdisplay是一個Python庫,可以在Python代碼中啟動和控制Xvfb。 以下是一

    2024年01月22日
    瀏覽(24)
  • Python數(shù)據(jù)分析實(shí)戰(zhàn)-格式化字符串的兩種方法(附源碼和實(shí)現(xiàn)效果)

    Python數(shù)據(jù)分析實(shí)戰(zhàn)-格式化字符串的兩種方法(附源碼和實(shí)現(xiàn)效果)

    實(shí)現(xiàn)功能 格式化字符串的兩種方法 實(shí)現(xiàn)代碼 實(shí)現(xiàn)效果 本人讀研期間發(fā)表5篇SCI數(shù)據(jù)挖掘相關(guān)論文,現(xiàn)在某研究院從事數(shù)據(jù)挖掘相關(guān)科研工作,對數(shù)據(jù)挖掘有一定認(rèn)知和理解,會結(jié)合自身科研實(shí)踐經(jīng)歷不定期分享關(guān)于python機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、數(shù)據(jù)挖掘基礎(chǔ)知識與案例。 致力

    2024年02月13日
    瀏覽(26)
  • 圖像處理(1):用Python實(shí)現(xiàn)彩色圖像轉(zhuǎn)為灰度圖像的兩種方法以及批量將圖片轉(zhuǎn)為灰度圖

    圖像處理(1):用Python實(shí)現(xiàn)彩色圖像轉(zhuǎn)為灰度圖像的兩種方法以及批量將圖片轉(zhuǎn)為灰度圖

    用Python實(shí)現(xiàn)彩色圖像轉(zhuǎn)為灰度圖像的兩種方法介紹 這篇文章給大家主要介紹使用 Python 將彩色圖像轉(zhuǎn)為灰度圖像的兩種方法,以及用 Python 批量將圖片轉(zhuǎn)為灰度圖的方法,供大家參考: 使用Python中的cv2庫,它自帶彩色轉(zhuǎn)灰度的方法,并且代碼非常簡單。 先讀取一張彩色圖片,然

    2024年02月11日
    瀏覽(28)
  • 【OpenCV Python實(shí)現(xiàn)圖像增強(qiáng):高斯模糊和運(yùn)動模糊】

    【OpenCV Python實(shí)現(xiàn)圖像增強(qiáng):高斯模糊和運(yùn)動模糊】 圖像處理是計算機(jī)視覺領(lǐng)域的重要分支,它在各個領(lǐng)域都有廣泛的應(yīng)用。圖像增強(qiáng)是其中的一個重要技術(shù),可以幫助我們提升圖像的質(zhì)量和清晰度。本文將介紹如何使用Python和OpenCV庫來實(shí)現(xiàn)兩種常見的圖像增強(qiáng)方法:高斯模

    2024年02月12日
    瀏覽(19)
  • es多字段模糊匹配wildcardQuery,java實(shí)現(xiàn)

    es多字段模糊匹配wildcardQuery,java實(shí)現(xiàn)

    es 版本:7.10.1 spring-cloud版本:2.3.5.RELEASE spring-boot-starter-data-elasticsearch 版本?2.3.12.RELEASE spring-data-elasticsearch 版本?4.0.9.RELEASE es查詢,需求:title或者content任意一個字段能匹配到即可 使用dsl查詢語句如下,構(gòu)建一個query ,should只要一個匹配即可 運(yùn)行結(jié)果,可以查出數(shù)據(jù)

    2024年02月11日
    瀏覽(15)
  • python實(shí)現(xiàn)模糊洗衣機(jī)

    python實(shí)現(xiàn)模糊洗衣機(jī)

    使用python設(shè)計并實(shí)現(xiàn)一個洗衣機(jī)模糊推理系統(tǒng)實(shí)驗(yàn)。 已知人的操作經(jīng)驗(yàn)是: 污泥越多,油脂越多,洗滌時間越長 污泥適中,油脂適中,洗滌時間適中 污泥越少,油脂越少,洗滌時間越短 洗衣機(jī)的模糊控制規(guī)則如表1所示: 表1 洗衣機(jī)的模糊控制規(guī)則表 污泥油脂 NG(無油脂)

    2024年02月07日
    瀏覽(20)
  • python圖像的模板匹配方法

    在 Python 中,可以使用 OpenCV 庫來實(shí)現(xiàn)圖像模板匹配。 首先,需要準(zhǔn)備好要用來匹配的模板圖像和待匹配的大圖像。然后,可以使用 OpenCV 庫中的 matchTemplate 函數(shù)來進(jìn)行模板匹配。這個函數(shù)需要傳入待匹配的大圖像和模板圖像,并返回一個結(jié)果圖像,其中包含了匹配的結(jié)果。

    2024年02月15日
    瀏覽(22)
  • Python實(shí)現(xiàn)高斯模糊算法(含完整源碼)

    Python實(shí)現(xiàn)高斯模糊算法(含完整源碼) 在圖像處理中,高斯模糊是一種常用的模糊濾鏡算法,其主要原理是通過對圖像進(jìn)行卷積操作來減少噪點(diǎn)和細(xì)節(jié),從而得到更加平滑的圖像效果。在Python語言中,我們可以通過NumPy和OpenCV等第三方庫來實(shí)現(xiàn)高斯模糊算法。 下面是基于Nu

    2024年02月14日
    瀏覽(19)
  • python實(shí)現(xiàn)模糊綜合評價法(FCE)

    python實(shí)現(xiàn)模糊綜合評價法(FCE)

    1 基本概念 綜合評價是指按預(yù)定的目的確定研究對象的屬性 (指標(biāo) ) 并將這種屬性變?yōu)榭陀^定量的計值或主觀效用的行為 。 評價特指多屬性對象的綜合評價 。屬性是關(guān)于目的的框架結(jié)構(gòu)是對研究對象本質(zhì)特征的概括 。 指標(biāo)是關(guān)于研究對象屬性的測度是對對象屬性的具體化

    2023年04月14日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包