Есть ли другой способ найти метрику сходства между записями с низкими издержками и высокой точностью (кроме алгоритма Яро-Винклера)? - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь добиться показателя сходства между строками с помощью алгоритма Jaro Winkler в python, я использую среду anaconda и развернул ее в Alibaba Cloud ECS Instance.

Пример кода, который я использую для нахождения сходства:

from pyjarowinkler import distance
print ("Average Score ---->", distance.get_jaro_distance("hello", "haloa"))

Average Score ---->0.76

Когда я обрабатываю записи 600 КБ, это занимает более 20 минут.Обрабатывать большое количество записей очень медленно.Есть ли другой способ найти показатель сходства между записями с низкими издержками и высокой точностью?

1 Ответ

0 голосов
/ 28 ноября 2018

Jaro Winkler Расстояние, которое указывает оценку сходства между двумя строками.Мера Jaro - это взвешенная сумма процента совпадений символов в каждом файле и транспонированных символов.Винклер увеличил эту меру для сопоставления начальных символов.

Первоначальная реализация основана на статье об алгоритме подобия Jaro Winkler, которую можно найти в Википедии .Эта версия Python исходной реализации основана на библиотеке Apache StringUtils .

Unittest, аналогичный тому, что вы найдете в библиотеке StringUtils, использовался для проверки реализации.

>>> from pyjarowinkler import distance
>>> # Scaling is 0.1 by default
>>> print distance.get_jaro_distance("hello", "haloa", winkler=True, scaling=0.1)
0.76
>>> print distance.get_jaro_distance("hello", "haloa", winkler=False, scaling=0.1)
0.733333333333

Получите более подробную информацию по этой ссылке

Надеюсь, это поможет вам относительно вашего запроса.

...