Python:求矩阵中Levenshtein编辑距离的有效方法

2024-09-22 16:39:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想确定两个列表之间的相似性,然后我要做描述的聚类。在

          L2D1    L2D2     L2D2 .........L2Dn
  L1D1     0       0.3     0.8............0.5  
  L1D2     0.2     0.7     0.3............0.2
  L1D3     0       0.3     0.8............0.5   
  .        .        .       .              .
  .        .        .       .              .   
  .        .        .       .              .
  L1Dn    0.6      0.1     0.9............0.4           

from Levenshtein import distance
List1 = list(new['Description'])
List2 = list(clean['Description'])

Matrix = np.zeros((len(List1),len(List2)),dtype=np.int)

for i in range(0,len(List1)):
  for j in range(0,len(List2)):
      Matrix[i,j] = distance(List1[i],List2[j])

由于上述方法由于数据的大小和长度而非常耗时。在

我试图比较前五个描述词,如果它只匹配,然后计算两个字符串之间的距离,否则移动到method2中列表的下一个描述。在

^{pr2}$

但由于我是新手,因此缺少了一些逻辑,因此:

TypeError: 'int' object does not support item assignment

我还想在接下来的10个和100个单词中实现相同的方法。提前谢谢。在


Tags: 方法in列表forlennprangedescription
1条回答
网友
1楼 · 发布于 2024-09-22 16:39:06

我认为,你应该检查numpy文档和ndarray class。在

这里有一个小Python的方式:

for i, new_value in enumerate(List1):
   for j, clean_value in enumerate(List2):
      Matrix[i,j] = distance(new_value, clean_value)

相关问题 更多 >