日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python计算两字符串中的位置_python – 计算两个字符串之间距离的算法

發(fā)布時間:2025/3/11 python 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python计算两字符串中的位置_python – 计算两个字符串之间距离的算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

是否有任何字符串距離算法沒有考慮到單詞的順序?

以下算法未提供所需結(jié)果(在該示例中,所需結(jié)果應(yīng)為1):

import jaro

jaro.jaro_winkler_metric(u'Michael Jordan',u'Jordan Michael')

>>>0.47

import Levenshtein

Levenshtein.ratio('Michael Jordan','Jordan Michael')

>>>0.5

from difflib import SequenceMatcher

SequenceMatcher(None,'Michael Jordan','Jordan Michael').ratio()

>>>0.5

制作它的一種方法是按字母順序排列字符串,然后使用上述算法:

''.join(sorted('Michael Jordan'))

>>>' JMaacdehilnor'

''.join(sorted('Jordan Michael'))

>>>' JMaacdehilnor'

但是這里姓名和姓氏的信息丟失了,不會有“穩(wěn)定”的結(jié)果.

我使用itertools的排列創(chuàng)建了一個函數(shù),它接受所有可能的單詞編譯并比較字符串并輸出最大值.結(jié)果令人滿意,但是當(dāng)我必須比較數(shù)百萬個名字時,整個程序真的很慢.

可以做的其他事情是對單詞進行排序,例如:

' '.join(sorted('Michael Jordan'.split()))

>>>'Jordan Michael'

' '.join(sorted('Jordan Michael'.split()))

>>>'Jordan Michael'

似乎很好的方式和簡單的方法來減少計算,但我們放松了一些敏感的情況.例:

name1 = ' '.join(sorted('Bizen Dim'.split()))

>>>'Bizen Dim'

name2 = ' '.join(sorted('Dim Mpizen'.split()))

>>>'Dim Mpizen'

SequenceMatcher(None,name1,name2).ratio()

>>> 0.55

這兩個名字是相同的,有些人將’他們的名字’從’b’翻譯成’mp'(我就是其中之一).用這種方式我們就失去了這個’匹配’.

是否有任何字符串距離算法比較單詞而不考慮單詞的順序?或者是否有建議如何有效地實現(xiàn)所需的功能?

總結(jié)

以上是生活随笔為你收集整理的python计算两字符串中的位置_python – 计算两个字符串之间距离的算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。