溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

用Python的fuzzy、wuzzy模塊進(jìn)行字符串模糊匹配

發(fā)布時(shí)間:2020-07-22 05:47:29 來(lái)源:網(wǎng)絡(luò) 閱讀:1809 作者:nineteens 欄目:編程語(yǔ)言

? ? ? Python提供fuzzywuzzy模塊,不僅可用于計(jì)算兩個(gè)字符串之間的相似度,而且還提供排序接口能從大量候選集中找到最相似的句子。

  (1)安裝

  pip install fuzzywuzzy

  (2)接口說(shuō)明

  兩個(gè)模塊:fuzz, process,fuzz主要用于兩字符串之間匹配,process主要用于搜索排序。

  fuzz.ratio(s1,s2)直接計(jì)算s2和s2之間的相似度,返回值為0-100,100表示完全相同;

  fuzz.partial_ratio(S1,S2)部分匹配,如果S1是S2的子串依然返回100;

  fuzz.token_sort_ratio(S1,S2)只比較S1,S2單詞是否相同,不考慮詞語(yǔ)之間的順序;

  fuzz.token_set_ratio(S1,S2)相比f(wàn)uzz.token_sort_ratio不考慮詞語(yǔ)出現(xiàn)的次數(shù);

  process.extract(S1, ListS,limit=n),表示從列表ListS中找出Top n與S1最相似的句子;

  process.extractOne(S1,ListS),返回最相似的一個(gè)

  (3)使用

  from fuzzywuzzy import fuzz

  a = 'a b c'

  b = ' a c b '

  c = 'a c'

  fuzz.ratio(a, c)

  >> 75

  fuzz.ratio(b, c)

  >> 60無(wú)錫知名的婦科醫(yī)院 http://www.wxbhnkyy39.com/

  fuzz.partial_ratio(a, c)

  >> 67

  fuzz.partial_ratio(b, c)

  >> 100

  fuzz.token_sort_ratio(a, c)

  >> 75

  fuzz.token_sort_ratio(b, c)

  >> 75

  fuzz.token_set_ratio(a, c)

  >> 100

  fuzz.token_set_ratio(b, c)

  >> 100


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI