|
|
|
Алогоритмы поиска для "похожести" строк
|
|||
|---|---|---|---|
|
#18+
Наверняка есть что-то готовое, или я не прав ? Задачка след.: есть 2 программы ТВ передач из разных источников. Нужно их "склеить" по названию передач ( по границам времени не получится - они немного разные ). Названия "примерно" одинаковые ( но не полностью ). Например могут встречаться такие строки: Женский доктор 2 история чет Премьера. "Женский доктор 2". Многосерийный фильм. 4-я серия "Форс-мажоры". Новый сезон Форсмажоры 2 сезон 10 серия "склиевать" строки нужно в ограниченном объеме ( т е в объеме максимум 10 записей за раз ). могут встречаться и орфографические ошибки. и тп ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 13:10 |
|
||
|
Алогоритмы поиска для "похожести" строк
|
|||
|---|---|---|---|
|
#18+
Поиск общих подстрок. На случай опечаток определять "общесть" не сравнением, а по расстоянию Дамерау — Левенштейна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 13:23 |
|
||
|
Алогоритмы поиска для "похожести" строк
|
|||
|---|---|---|---|
|
#18+
разбить (распарсить) все строки на слова коллекция из распарсенных на слова предложений (что были строки в ТВ-программе на сутки) искать в цикле - сперва все пары-тройки где одинаковы последовательности из 10 подряд - убрать из коллекции одинаковы последовательности из 9 слов подряд - убрать из 8 проверять не пуста ли уже коллекция из 1 остались еще - просмотр непосредственно и анализ (или там словарь привлечь - разбить на слова из словаря или ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 14:52 |
|
||
|
Алогоритмы поиска для "похожести" строк
|
|||
|---|---|---|---|
|
#18+
разбить на слова и левенштейном например. Куча статей в интернете как.. даже на русском есть. Реализация левенштейна тоже много где уже есть - может даже и разбираться в нем не придется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2013, 09:44 |
|
||
|
Алогоритмы поиска для "похожести" строк
|
|||
|---|---|---|---|
|
#18+
Разбиение на слова - не очень верный подход... "Хрен дубовый - не дуб хреновый"... тут как раз на подстроки задача, чем длиннее общая подстрока, тем больше соответствия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2013, 10:21 |
|
||
|
Алогоритмы поиска для "похожести" строк
|
|||
|---|---|---|---|
|
#18+
AkinaРазбиение на слова - не очень верный подход... Не соглашусь. Критически верный. Akina "Хрен дубовый - не дуб хреновый"... Для телепрограммы, думаю, это соображение как минимум спорно. Скажем, "М/ф Варежка" и "Варежка (м/ф)" - это одно и то же. Но более важно другое: после сопоставления по словам никто не мешает уточнить порядок, зато само по себе оно даст гораздо лучшие результаты. Грубо говоря, если в строке присутствуют дуб* и хрен*, то вероятность иметь в течение одного дня "дуб хреновый" и "хрен дубовый" довольно мала и может быть обработана, а вот сопоставление, когда они замешаны в куче мусорного оформления будет очень надёжным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2013, 13:43 |
|
||
|
Алогоритмы поиска для "похожести" строк
|
|||
|---|---|---|---|
|
#18+
Ну может вы и правы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2013, 14:14 |
|
||
|
Алогоритмы поиска для "похожести" строк
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2013, 11:13 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38305728&tid=1341749]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
138ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 461ms |

| 0 / 0 |
