国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 比較文本相似性的方法(difflib,Levenshtein)

2020-01-04 14:21:26
字體:
來源:轉載
供稿:網友

最近工作需要用到序列匹配,檢測相似性,不過有點復雜的是輸入長度是不固定的,舉例為:

input_and_output = [1, 2, '你好', 世界', 12.34, 45.6, -21, '中國', '美麗']

其中,需要從input_and_output 中選取不固定長度的一段作為輸入,且順序不定,然后去與總體進行比較,找出最符合的,開始是對漢字進行數值化編碼,不過后來由于出現漢字越來越多,遂放棄該方法,轉向別的方式,查找資料發現了兩個python包廣被推薦,從下面來看各有優缺點,記錄之~

1、difflib

import difflib #python 自帶庫,不需額外安裝In [49]: test1Out[49]: ['你好', '我是誰']In [50]: test2Out[50]: ['你好啊', '我誰']In [51]: test3Out[51]: [12, 'nihao']In [52]: test4Out[52]: ['你好', 'woshi']In [53]: difflib.SequenceMatcher(a=test1, b=test2).quick_ratio()Out[53]: 0.0In [54]: difflib.SequenceMatcher(a=test1, b=test4).ratio()Out[54]: 0.5

2、Levenshtein

#pip install python-Levenshteinimport LevenshteinIn [56]: Levenshtein.distance(','.join(test1), ','.join(test2))Out[56]: 2In [57]: Levenshtein.distance(','.join(test1), ','.join(test4))Out[57]: 5

簡單來說,difflib使用時不一定為字符串,但匹配時只有單個元素完全匹配才計入,

而Levenshtein則需要輸入為字符串,匹配時是整體匹配(也可能跟把所有元素集中成一個字符串有關,具體待繼續使用再摸索)

以上這篇Python 比較文本相似性的方法(difflib,Levenshtein)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金湖县| 正安县| 定州市| 托克逊县| 万宁市| 临高县| 镇沅| 韩城市| 古田县| 东莞市| 石屏县| 黑水县| 陇川县| 淳化县| 贵南县| 麻城市| 莲花县| 兴文县| 新乡市| 砀山县| 家居| 开封县| 荔浦县| 新疆| 玉林市| 凤城市| 陆丰市| 巩义市| 溧阳市| 泉州市| 恩施市| 五指山市| 洛宁县| 宁波市| 射阳县| 杂多县| 酒泉市| 读书| 金门县| 德清县| 高雄市|