2009-08-19 7 views
3

У меня есть 2 текста (не более 4000 символов) различной длины. И мне нужно получить коэффициент сходства, основанный на (частичном) перефразировании. Обратите внимание, что та же часть текстов может быть в разных положениях в каждом тексте (So Levenshtein не является решением).Сходство двух текстов (адаптивное локальное выравнивание ключевых слов?)

Процесс сравнения следует также:

  • не увеличивает экспоненту. с размером текста
  • be performance friendly. :)

Похоже, что «адаптивное локальное выравнивание ключевых слов» является возможным решением.

У вас есть пример внедрения? Предпочтительным языком является PHP, но я могу переводить. :)

Есть ли у вас другое решение/идея/опыт по этой теме?

Спасибо за вашу большую помощь.

ответ

4

Посмотрите на функции levenshtein и similar_text, которые должны сделать вашу жизнь проще:

EDIT: @Toto указал, что те не могут быть пригодны для этого приложения см. его комментарии ниже.

+0

levenshtein не является решением в этом случае. Возьмите 2 последовательности: «ABC» и «BCA». Заменить каждую (ту же) букву одним и тем же словом (той же) фразой или (тем же) абзацем. Расстояние редактирования высокое, даже если это только разница в заказе. Также Левенштейн - убийца (на уровне производительности). – Toto

+0

Similar_text похоже также является базой редактирования расстояния на уровне символов ... => не решение ... – Toto

+0

Спасибо за ваш ответ. (Мой вопрос был не совсем ясен. Извините за путаницу). :)) – Toto

0

Needleman-Wunsch работал достаточно хорошо для приложения, где мне приходилось сопоставлять имена, присваиваемые тем же самым людям разными людьми.

 Смежные вопросы

  • Нет связанных вопросов^_^