Как рассчитать эффективную матрицу расстояний между строками? - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть массив как

array(['apple', 'hello', 'world'])

. Из этого я создал два массива с использованием методов numpy np.tile и np.repeat, а 2 массива следующие:

firstмассив:

term1 = ['apple', 'apple', 'apple', 'hello', 'hello', 'hello','world','world', 'world']

второй массив:

term2 = ['apple', 'hello', 'world', 'apple', 'hello', 'world', 'apple', 'hello', 'world']

после этого у меня есть такой код:

terms = list(zip(term1,term2))
scores = [function1(frozenset(t)) for t in terms]

и у меня есть функция

from fuzzywuzzy import fuzz
from fuzzywuzzy import process
def function1(terms):
    if len(terms) == 1:
        return 100
    return fuzz.token_set_ratio(*terms)

Приведенный выше код работает нормально, но занимает больше времени.Теперь я хотел бы знать, если я изменю массивы term1 и term2 на:

[[apple   apple   apple],
 [hello   hello   hello],
 [world   world   world]]


[[apple   hello   world],
 [apple   hello   world],
 [apple   hello   world]]

, и я хочу выбрать apple и apple, apple и hello ии в то же время я хотел бы выбрать все элементы и передать его в function1.Есть ли способ сделать это (например, использовать apply() над этими двумя массивами и каким-то образом сделать это как поэлементную операцию)?

...