Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алогоритмы поиска для "похожести" строк / 8 сообщений из 8, страница 1 из 1
20.06.2013, 13:10
    #38304670
Я
Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алогоритмы поиска для "похожести" строк
Наверняка есть что-то готовое, или я не прав ?

Задачка след.: есть 2 программы ТВ передач из разных источников. Нужно их "склеить" по названию передач ( по границам времени не получится - они немного разные ). Названия "примерно" одинаковые ( но не полностью ). Например могут встречаться такие строки:

Женский доктор 2 история чет
Премьера. "Женский доктор 2". Многосерийный фильм. 4-я серия

"Форс-мажоры". Новый сезон
Форсмажоры 2 сезон 10 серия


"склиевать" строки нужно в ограниченном объеме ( т е в объеме максимум 10 записей за раз ).
могут встречаться и орфографические ошибки.
и тп ...
...
Рейтинг: 0 / 0
20.06.2013, 13:23
    #38304695
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алогоритмы поиска для "похожести" строк
Поиск общих подстрок.
На случай опечаток определять "общесть" не сравнением, а по расстоянию Дамерау — Левенштейна.
...
Рейтинг: 0 / 0
20.06.2013, 14:52
    #38304907
AlexandrPlus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алогоритмы поиска для "похожести" строк
разбить (распарсить) все строки на слова
коллекция из распарсенных на слова предложений (что были строки в ТВ-программе на сутки)
искать в цикле - сперва все пары-тройки где одинаковы последовательности из 10 подряд - убрать из коллекции
одинаковы последовательности из 9 слов подряд - убрать
из 8
проверять не пуста ли уже коллекция

из 1
остались еще - просмотр непосредственно и анализ (или там словарь привлечь - разбить на слова из словаря или ...)
...
Рейтинг: 0 / 0
21.06.2013, 09:44
    #38305728
rdbmsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алогоритмы поиска для "похожести" строк
разбить на слова и левенштейном например. Куча статей в интернете как.. даже на русском есть. Реализация левенштейна тоже много где уже есть - может даже и разбираться в нем не придется.
...
Рейтинг: 0 / 0
21.06.2013, 10:21
    #38305808
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алогоритмы поиска для "похожести" строк
Разбиение на слова - не очень верный подход... "Хрен дубовый - не дуб хреновый"... тут как раз на подстроки задача, чем длиннее общая подстрока, тем больше соответствия.
...
Рейтинг: 0 / 0
21.06.2013, 13:43
    #38306191
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алогоритмы поиска для "похожести" строк
AkinaРазбиение на слова - не очень верный подход...
Не соглашусь. Критически верный.

Akina "Хрен дубовый - не дуб хреновый"...
Для телепрограммы, думаю, это соображение как минимум спорно. Скажем, "М/ф Варежка" и "Варежка (м/ф)" - это одно и то же. Но более важно другое: после сопоставления по словам никто не мешает уточнить порядок, зато само по себе оно даст гораздо лучшие результаты. Грубо говоря, если в строке присутствуют дуб* и хрен*, то вероятность иметь в течение одного дня "дуб хреновый" и "хрен дубовый" довольно мала и может быть обработана, а вот сопоставление, когда они замешаны в куче мусорного оформления будет очень надёжным.
...
Рейтинг: 0 / 0
21.06.2013, 14:14
    #38306264
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алогоритмы поиска для "похожести" строк
Ну может вы и правы...
...
Рейтинг: 0 / 0
05.07.2013, 11:13
    #38321569
nexoma
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алогоритмы поиска для "похожести" строк
http://search.cpan.org/~jhi/String-Approx-3.27/Approx.pm - String::Approx - Perl extension for approximate matching (fuzzy matching)

http://search.cpan.org/~tareka/String-Trigram-0.11/Trigram.pm - String::Trigram - Find similar strings by trigram (or 1, 2, 4, etc.-gram) method
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Алогоритмы поиска для "похожести" строк / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]