数字列表之间的编辑距离

Levenshtein distance between list of number

有这个代码,我想在两个数字列表之间有 levenshtein 距离。

import textdistance
S1=[1,2,3,7,9,15,19,20]
S2=[1,2,3,7,8,14,20]
#convert lists to string 
Str1=‘’.join(str(e) for e in S1)
Str2=‘’.join(str(e) for e in S2)
textdistance.levenshtein.similarity(Str1,Str2)
textdistance.levenshtein.distance(Str1,Str2)

以上代码给出的相似度为:7 哪个是错误的,正确的是5。 并显示距离值为 4 ,这也错了,正确的距离是 3.

如何操作代码,以便像 14 和 15 这样的数字可以被视为上述函数的一个元素?任何想法..

尝试使用水母库:

import jellyfish
S1=[1,2,3,7,9,15,19,20]
S2=[1,2,3,7,8,14,20]
#convert lists to string 
Str1=‘’.join(str(e) for e in S1)
Str2=‘’.join(str(e) for e in S2)

jellyfish.levenshtein_distance(Str1, Str2)

您可以在这里找到更多相关信息:https://pypi.org/project/jellyfish/

pip install textdistance

不要转换为字符串,保持代码不变:

S1=[1,2,3,7,9,15,19,20]
S2=[1,2,3,7,8,14,20]

textdistance.levenshtein.similarity(S1,S2)
textdistance.levenshtein.distance(S1,S2)