Поиск дубликатов книг - PullRequest
       11

Поиск дубликатов книг

3 голосов
/ 06 декабря 2011

У меня есть номер списка названий книг вместе с их авторами (номер ISBN отсутствует). Я хочу вести единый список, содержащий уникальные записи книг, и удалять дублирующиеся записи каждой книги.

Проблема, с которой я сталкиваюсь, состоит в том, что разные списки могут следовать различным соглашениям для хранения записей книги. Например, список может хранить имя автора в соответствии с соглашением last name first name, в другом списке запись имени самой книги содержит некоторую дополнительную информацию, такую ​​как название серии вместе с порядковым номером.

Существует ли какой-либо стандартный алгоритм для решения проблем такого типа? Я не хочу изобретать велосипед. Прямо сейчас я использую php для кодирования решения. Для начала я попробовал levenshtein, soundex, metaphone, similar_text, но ни один из них не выглядит многообещающим для меня.

Пример: рассмотрим пример Цикл наследования , серия содержит четыре книги. Теперь запись во второй книге серии может быть Eldest, Eldest: The Inheritance Cycle (Book 2), Eldest (Inheritance), Eldest (Inheritance Cycle), Inheritance 002: Eldest.

1 Ответ

1 голос
/ 06 декабря 2011

Это звучит как проблема поиска, только с более ограниченным доменом. Возможно, я бы использовал существующую технологию поиска (возможно, используя Lucene или Solar ) и просто перебрал бы список, сначала ища совпадение, а затем, если достаточно близкое не найдено, добавив в документ "документ" (информация, которая у вас есть для одной книги).

Это не будет идеальный ответ, но он даст вам оценку за различные совпадения, поэтому он дает вам некоторые настраиваемые параметры для работы. Это особенно заманчивое решение, если это более чем одноразовая проблема, которую необходимо решить, поскольку «алгоритм» может учиться и настраиваться сам по себе, если необходимо.

...