最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+fuzzywuzzy計算兩個字符串之間的相似度

 更新時間:2022年09月27日 09:10:44   作者:古明地覺  
fuzzywuzzy?可以計算兩個字符串之間的相似度,它依據(jù)?Levenshtein?Distance?算法來進(jìn)行計算,該算法又叫?Edit?Distance?算法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

fuzzywuzzy 可以計算兩個字符串之間的相似度,它依據(jù) Levenshtein Distance 算法來進(jìn)行計算。該算法又叫 Edit Distance 算法,是指兩個字符串之間,由一個轉(zhuǎn)成另一個所需要的最少編輯操作次數(shù)。許可的編輯操作包括將一個字符替換成另一個字符,插入一個字符,刪除一個字符。一般來說,編輯距離越小,兩個串的相似度越高。

我們來看一下該模塊的用法,非常簡單:

from?fuzzywuzzy?import?fuzz

#?調(diào)用?fuzz.ratio?即可計算兩個字符串的相似度
print(
????fuzz.ratio("古明地覺",?"古明地戀")
)??#?75

#?我們看到?ratio?是完全匹配的
#?它把字符串的長度也考慮在內(nèi)了
print(
????fuzz.ratio("古明地覺",?"古明地覺aa")
)??#?80

#?partial_ratio是非完全匹配
#?如果一方結(jié)束了,那么剩下的就不考慮了
print(
????fuzz.partial_ratio("古明地覺",?"古明地覺,小五蘿莉")
)??#?100

#?token_sort_ratio表示忽略順序匹配
#?但前提是多個詞,以空格進(jìn)行分隔
print(
????fuzz.ratio("古?明?地?覺",?"古?明?地?覺"[::?-1])
)??#?25
print(
????fuzz.token_sort_ratio("古?明?地?覺",?"古?明?地?覺"[::?-1])
)??#?100

#?token_set_ratio表示去重匹配
#?同樣:前提是多個詞,以空格進(jìn)行分隔
print(fuzz.ratio("a?a?a?he",?"a?he"))??#?67
print(
????fuzz.token_set_ratio("a?a?a?he",?"a?he")
)??#?100

當(dāng)我們使用 git 的時候,如果命令輸錯了,那么會告訴你此命令不是一個 git 命令,這是理所應(yīng)當(dāng)?shù)?。然后重點來了,git 還會提示一些與你輸錯的命令長得非常相似的一些命令。

所以這里面也用到了字符串的相似度原理,找出 git 命令中和你輸錯的命令最相似的幾個,然后進(jìn)行提示。

如果我們也寫了一個類似的程序,需要用戶通過命令行參數(shù)的方式,那么當(dāng)用戶輸入了一個不存在的命令時,我們也可以這么做。而實現(xiàn)方法也很簡單,就是將所有的命令和用戶輸錯的命令都計算一個相似度,然后返回相似度最高的 n 個即可。

使用上面的 fuzz 完全可以實現(xiàn),當(dāng)然 fuzzywuzzy 模塊還提供了一個 extract 函數(shù),可以讓我們更加輕松地做到這一點。

from?fuzzywuzzy?import?process

words?=?["hello?python",?"hello?java",?
?????????"hello?golang",?"hello?php"]
#?會自動和?words?里面的每一個元素進(jìn)行比較
#?然后按照相似度從高到低排列
print(process.extract("hello?thon",?words))
"""
[('hello?python',?91),?('hello?php',?74),?
?('hello?golang',?73),?('hello?java',?64)]
"""

#?還可以傳入一個?limit?參數(shù)
#?表示只返回前?limit?個,默認(rèn)為5
print(
????process.extract("hello?thon",?words,?limit=2)
)?
"""
[('hello?python',?91),?
?('hello?php',?74)]
"""

#?返回分?jǐn)?shù)最高的,此時返回一個元組
print(
????process.extractOne("hello?thon",?words)
)??
"""
('hello?python',?91)
"""

這個模塊使用起來還是比較簡單的,當(dāng)然核心是字符串相似度的計算原理,這才是重點,有興趣可以去了解一下。

另外使用 fuzzywuzzy 這個模塊的時候,會彈出一個警告:

UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning

提示我們可以通過安裝 python-Levenshtein 得到解決,這是一個用于加速字符串匹配的庫,可提供 4 到 10 倍的加速。當(dāng)然即使沒有這個庫也是可以的,沒有的話 fuzzywuzzy 底層會使用標(biāo)準(zhǔn)庫 difflib 進(jìn)行匹配,只是會彈出警告罷了。

到此這篇關(guān)于Python+fuzzywuzzy計算兩個字符串之間的相似度的文章就介紹到這了,更多相關(guān)Python fuzzywuzzy內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django零基礎(chǔ)入門之自定義過濾器及模板中的使用

    Django零基礎(chǔ)入門之自定義過濾器及模板中的使用

    這篇文章主要介紹了Django零基礎(chǔ)入門之自定義過濾器及模板中的使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 詳解Python字符串對象的實現(xiàn)

    詳解Python字符串對象的實現(xiàn)

    本文介紹了 python 內(nèi)部是如何管理字符串對象,以及字符串查找操作是如何實現(xiàn)的,感興趣的小伙伴們可以參考一下
    2015-12-12
  • python 發(fā)送郵件的四種方法匯總

    python 發(fā)送郵件的四種方法匯總

    這篇文章主要介紹了python 發(fā)送郵件的四種方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • 解決python 自動安裝缺少模塊的問題

    解決python 自動安裝缺少模塊的問題

    今天小編就為大家分享一篇解決python 自動安裝缺少模塊的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Django URL傳遞參數(shù)的方法總結(jié)

    Django URL傳遞參數(shù)的方法總結(jié)

    這篇文章主要介紹了Django URL傳遞參數(shù)的方法總結(jié),需要的朋友可以參考下
    2016-08-08
  • python爬取晉江文學(xué)城小說評論(情緒分析)

    python爬取晉江文學(xué)城小說評論(情緒分析)

    這篇文章主要介紹了使用python爬取晉江文學(xué)城小說評論(情緒分析),全文代碼詳細(xì),邏輯清晰,很適合學(xué)習(xí)爬蟲爬取的朋友,需要的朋友可以參考下
    2021-04-04
  • python opencv 簡單閾值算法的實現(xiàn)

    python opencv 簡單閾值算法的實現(xiàn)

    這篇文章主要介紹了python opencv 簡單閾值算法的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 使用Python從PDF中提取圖片和圖片信息(坐標(biāo)、寬度和高度等)

    使用Python從PDF中提取圖片和圖片信息(坐標(biāo)、寬度和高度等)

    PDF文件作為一種廣泛使用的電子文檔格式,不僅包含文字信息,還可能包含各種圖片、圖表等視覺元素,在某些場景下,我們可能需要從PDF文件中提取這些圖片,用于其他用途,這篇博客將探討如何使用Python從PDF中提取圖片以及圖片的相關(guān)信息如坐標(biāo)、寬度和高度等
    2025-02-02
  • Python實現(xiàn)登錄接口的示例代碼

    Python實現(xiàn)登錄接口的示例代碼

    本篇文章主要介紹了Python實現(xiàn)登錄接口的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • python使用多進(jìn)程的實例詳解

    python使用多進(jìn)程的實例詳解

    本文通過實例代碼給大家介紹了python使用多進(jìn)程的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09

最新評論

亳州市| 义乌市| 尚义县| 瓮安县| 阳东县| 滨州市| 浑源县| 资阳市| 遂川县| 朝阳区| 尼勒克县| 赫章县| 鹰潭市| 碌曲县| 安徽省| 鄂托克旗| 南华县| 辽宁省| 烟台市| 南江县| 通海县| 曲阳县| 定远县| 江门市| 乡城县| 五家渠市| 巢湖市| 长春市| 辉县市| 遵义市| 封开县| 贡觉县| 昂仁县| 常宁市| 犍为县| 当雄县| 沙坪坝区| 邹平县| 青田县| 漳浦县| 盐源县|