我有一系列transition字串序列,每個字串用'<'分隔,每個序列的最后一個元素總是相同的,例如:
0 b>c>d>a
1 d>c>c>a
2 e>e>c>a
3 d>b>c>a
4 d>c>c>a
我想計算每個序列與所有其他序列之間的相似性,該相似性的水平百分比,并獲得資料集中最頻繁的序列。我知道這是一般性的,但最好的方法是什么?
這是我到目前為止嘗試過的,但只是回傳一個矩陣,而不是相似度或最頻繁的序列:
n = transition.shape[0]
for i,p1 in enumerate(transition):
for j,p2 in enumerate(transition[i:]):
sim[i,j i] = sim[j i,i] = np.sum(np.array(p1) == np.array(p2))
uj5u.com熱心網友回復:
一種可能的解決方案是使用Levenshtein Distance
然后使用 Python,您的代碼將如下所示:
pip install python-Levenshtein
import Levenshtein
dist = Levenshtein.distance('Levenshtein', 'Lenvinsten')
print(dist)
而且您必須創建一個資料透視表,將所有字串的距離放在一個位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494164.html
標籤:Python python-3.x 细绳
下一篇:尋找表達方式的優雅方式
