Построить матрицу совпадения для каждой строки — python

У меня есть 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)

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *