Эффективно выполнять итерацию по списку строк, чтобы получить матрицу попарных расстояний ОМУ - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь сгенерировать матрицу попарных расстояний из списка строк (газетные статьи).

Расстояние ОМУ не реализовано в scipy.spatial.distance.pdist, поэтому я подключаю эту реализацию: https://github.com/src-d/wmd-relax к SpaCy. Тем не менее, я не могу понять, как перебрать свой список для генерации матрицы расстояний.

1 Ответ

0 голосов
/ 09 июля 2019

Согласно документу:


import spacy
import wmd
import numpy as np


nlp = spacy.load('en_core_web_md')
nlp.add_pipe(wmd.WMD.SpacySimilarityHook(nlp), last=True)

# given articles is a list of strings
docs = [nlp(article) for article in articles]

# matrix is just a list of lists in terms of Python objects
m = []
for doc1 in docs:
    row = []
    for doc2 in docs:
        # if distance is similarity function
        row.append(doc1.similarity(doc2))
    m.append(row)

result = np.matrix(m)

Документ с матрицей Numpy

...