Python 如何计算dicts值之间的相似性
我有一个这样的单词列表,其中每个单词都有一个匹配项。我想计算所有单词之间的相似性,例如,Python 如何计算dicts值之间的相似性,python,levenshtein-distance,Python,Levenshtein Distance,我有一个这样的单词列表,其中每个单词都有一个匹配项。我想计算所有单词之间的相似性,例如,python和mypython,它们都是相似的,所以所有匹配项的总和都是: my_list = [{ "name": "python", "occ": 1623 }, { "name": "C++", "occ": 1527
python
和mypython
,它们都是相似的,所以所有匹配项的总和都是:
my_list = [{
"name": "python",
"occ": 1623
},
{
"name": "C++",
"occ": 1527
},
{
"name": "programming",
"occ": 390
},
{
"name": "programme",
"occ": 371
},
{
"name": "mypython",
"occ": 252
},
{
"name": "pythonne",
"occ": 219
}]
我想计算一下这个列表中所有单词之间的相似性,并将出现的单词加起来,得到类似的结果
my_list = [{
"name": "python",
"occ": 2094
},
{
"name": "C++",
"occ": 1527
},
{
"name": "programming",
"occ": 761
}]
我想使用Levenshtein距离,但我不知道这是否是一个好的选择和最快的方法
def levenshtein(seq1, seq2):
size_x = len(seq1) + 1
size_y = len(seq2) + 1
matrix = np.zeros ((size_x, size_y))
for x in xrange(size_x):
matrix [x, 0] = x
for y in xrange(size_y):
matrix [0, y] = y
for x in xrange(1, size_x):
for y in xrange(1, size_y):
if seq1[x-1] == seq2[y-1]:
matrix [x,y] = min(
matrix[x-1, y] + 1,
matrix[x-1, y-1],
matrix[x, y-1] + 1
)
else:
matrix [x,y] = min(
matrix[x-1,y] + 1,
matrix[x-1,y-1] + 1,
matrix[x,y-1] + 1
)
print (matrix)
return (matrix[size_x - 1, size_y - 1])
这个问题是相关的,并讨论了一些选项:如果你熟悉NLP,你可以使用词干或柠檬化谢谢你的回答,但我不能得到的是我如何将其应用到我的列表中