- Регистрация
- 29.03.2016
- Сообщения
- 24
- Благодарностей
- 0
- Баллы
- 1
Друзья, здравствуйте. Задача достаточно тривиальная, однако реализация тратит невероятно много времени на просчет. Возможно кто-либо из вас сталкивался с подобным и подскажет верный путь, либо предложит свое решение, так как пока не могу решить задачу более быстрым путем.
В обоих списках похожие тексты, но незначительно различающиеся. Мне нужно сопоставить каждой строке из 1 списка строку из 2 списка с максимальным процентом схожести. В тестовой выборке ниже всего 3 элемента в списках. В реальной ситуации - около 200 в каждом.
1й список:
========
Строка 1
Строка 2
Строка 3
2й список
========
Строка 2хпила
Строка 3хавпвл
Строка 1хваав
У 1й строки 1го списка - максимальное сходство с 3й строкой 2го списка. Желательно, в процентном соотношении это показать также. Итог в любом виде нужен, но, полагаю, это будет таблица вида:
Строка из 1й таблицы | Найденная строка из 2й таблицы | % сходства
Строка из 1й таблицы | Найденная строка из 2й таблицы | % сходства
Строка из 1й таблицы | Найденная строка из 2й таблицы | % сходства
На текущий момент реализовано при помощи стандартных элементов ZP, получить одна строку, получить вторую строку, проверить в JavaScript функцией по Оливеру на сходство. Увеличить вторую строку. И так полный перебор двух списков. После выявления максимумов.
В общем, считает 3-4 минуты.
Нужно максимум в несколько секунд находить максимально похожую запись из второго списка для каждого элемента первого.
Буду очень благодарен за решение этой задачи!
В обоих списках похожие тексты, но незначительно различающиеся. Мне нужно сопоставить каждой строке из 1 списка строку из 2 списка с максимальным процентом схожести. В тестовой выборке ниже всего 3 элемента в списках. В реальной ситуации - около 200 в каждом.
1й список:
========
Строка 1
Строка 2
Строка 3
2й список
========
Строка 2хпила
Строка 3хавпвл
Строка 1хваав
У 1й строки 1го списка - максимальное сходство с 3й строкой 2го списка. Желательно, в процентном соотношении это показать также. Итог в любом виде нужен, но, полагаю, это будет таблица вида:
Строка из 1й таблицы | Найденная строка из 2й таблицы | % сходства
Строка из 1й таблицы | Найденная строка из 2й таблицы | % сходства
Строка из 1й таблицы | Найденная строка из 2й таблицы | % сходства
На текущий момент реализовано при помощи стандартных элементов ZP, получить одна строку, получить вторую строку, проверить в JavaScript функцией по Оливеру на сходство. Увеличить вторую строку. И так полный перебор двух списков. После выявления максимумов.
В общем, считает 3-4 минуты.
Нужно максимум в несколько секунд находить максимально похожую запись из второго списка для каждого элемента первого.
Буду очень благодарен за решение этой задачи!