У меня есть 1 набор данных (text1) плюс список слов (список A)
Я хочу построить матрицу совпадения для каждой строки слов в наборе данных и слов в списке A
в text1 около 10000 строк, в каждой строке есть описание товара.
Я токенизирую, удаляю стоп-слова и токенизирую описание для каждой строки, и у меня есть оставшиеся слова.
Я хочу построить матрицу совпадения (для измерения степени зависимости) между каждой строкой и списком A
Я написал следующие коды, но это дает мне только матрицу ключевых слов.
Как я должен это делать?
import numpy as np
import itertools
def by_indexes(iterable):
output = {}
for index, key in enumerate(iterable):
output.setdefault(key, []).append(index)
return output
def co_occurrence_matrix(text1, lista, window_size=5):
def split_tokens(tokens):
for token in tokens:
indexs = lista_indexes.get(token)
if indexs is not None:
yield token, indexs[0]
matrix2 = np.zeros((len(lista), len(lista)), np.float64)
lista_indexes = by_indexes(lista)
for sent in text1:
tokens = by_indexes(split_tokens(sent.split())).items()
for ((word_1, x), indexes_1), ((word_2, y), indexes_2) in itertools.permutations(tokens, 2):
for k in indexes_1:
for l in indexes_2:
if abs(l - k) <= window_size:
matrix2[x, y] += 1
return matrix2
product_matrix=co_occurrence_matrix(text1, lista)
print(product_matrix)
Кора
