寻找重复的书籍

时间:2011-12-06 18:09:42

标签: php algorithm string-matching similarity

我有很多书名和他们的作者名单(没有ISBN号)。我想维护一个包含书籍唯一条目的列表,并删除每本书的重复条目。

我面临的问题是,不同的列表可能遵循不同的约定来存储书籍的条目。例如 - 列表可能将作者姓名存储在last name first name约定中,在另一个列表中,书本身的名称条目包含一些附加信息,如系列名称和序列号。

是否有任何标准算法来处理此类问题?我不想重新发明轮子。现在我正在使用php来编写解决方案。作为初学者,我尝试了levenshtein, soundex, metaphone, similar_text,但他们中没有一个对我很有希望。

示例:考虑Inheritance Cycle的示例,该系列包含四本书。现在,该系列的第二本书的输入可以是EldestEldest: The Inheritance Cycle (Book 2)Eldest (Inheritance)Eldest (Inheritance Cycle)Inheritance 002: Eldest

1 个答案:

答案 0 :(得分:1)

这听起来像一个搜索问题,只是一个更受限制的域。我可能会使用现有的搜索技术(可能使用LuceneSolar),只是遍历列表,首先搜索匹配,然后如果找不到足够接近的搜索技术,则添加(一本书的信息)到索引。

这不是一个完美的答案,但它会为你提供各种比赛的分数,因此它为你提供了一些可调节的参数。如果这不仅仅是需要解决的一次性问题,这是一个特别诱人的解决方案,因为“算法”可以根据需要学习和调整自身。