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

首頁(yè) > 編程 > Python > 正文

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

2020-02-15 23:12:49
字體:
供稿:網(wǎng)友

最近工作需要用到序列匹配,檢測(cè)相似性,不過有點(diǎn)復(fù)雜的是輸入長(zhǎng)度是不固定的,舉例為:

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

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

1、difflib

import difflib #python 自帶庫(kù),不需額外安裝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

簡(jiǎn)單來說,difflib使用時(shí)不一定為字符串,但匹配時(shí)只有單個(gè)元素完全匹配才計(jì)入,

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

以上這篇Python 比較文本相似性的方法(difflib,Levenshtein)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長(zhǎng)站。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湖南省| 乐陵市| 铁岭县| 兰西县| 江门市| 梁平县| 常山县| 太康县| 乌恰县| 陈巴尔虎旗| 嘉兴市| 浑源县| 涪陵区| 新密市| 德兴市| 普兰店市| 林芝县| 平和县| 揭西县| 山东省| 渭南市| 泸溪县| 兴山县| 化隆| 博兴县| 武山县| 济阳县| 柳河县| 于都县| 泗阳县| 永春县| 遂川县| 平乡县| 哈密市| 长寿区| 甘南县| 齐河县| 珲春市| 泽州县| 靖江市| 扎鲁特旗|