Я хотел бы выявить сходство между двумя списками, после чего я хочу выполнить кластеризацию описаний.
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])
Поскольку вышеупомянутый метод занимает много времени в качестве размера и длины данных.
Я пытался сравнить первые пять слов описания, если они совпадают, только затем вычислить расстояние между двумя строками, иначе перейти к следующему описанию списка в методе 2.
#Method2
for i in range(0,len(List1)):
K1[i]=str(List1[:1]).split()[0:5]
for j in range(0,len(List2)):
K1[i]=str(List2[:1]).split()[0:5]
if (distance(K1[i],K2[j]))==0:
Matrix[i,j]=distance(List1[i],List2[j])
else:
Matrix[i,j]=1000
Но поскольку я новичок в этомпропуская некоторую логику и получая:
TypeError: объект 'int' не поддерживает назначение элементов
Я также хочу реализовать то же самое для следующих 10 и 100 слов.Заранее спасибо.