2011-12-06 12 views
3

私は書籍の名前のリストを著者と一緒に数多く持っています(ISBN番号なし)。私は本のユニークなエントリを含む単一のリストを維持し、すべての本の重複したエントリを削除したい。重複する書籍を見つける

私が直面している問題は、異なるリストが本のエントリを格納するために異なる規則に従うことがあるということです。たとえば、リストには著者名がlast namefirst nameという規則で格納されていてもよく、別のリストでは、その本自体の名前エントリには、系列番号のような追加情報が含まれています。

この種の問題を処理するための標準アルゴリズムはありますか?私は車輪を再発明したくありません。今私は、ソリューションをコーディングするためにPHPを使用しています。初心者として、私はlevenshtein, soundex, metaphone, similar_textを試しましたが、どれも私に有望に見えません。

例:Inheritance Cycleの例を考えてください。このシリーズには4冊の書籍が含まれています。今シリーズの第2冊のエントリは、Eldest,Eldest: The Inheritance Cycle (Book 2),Eldest (Inheritance),Eldest (Inheritance Cycle),Inheritance 002: Eldestとすることができます。

+0

これは複雑な問題です。書籍タイトルと著者名のデータベースを使用して、データのパターン認識を試みることができます。また、ここで使用できるAmazon APIがあるかどうかを調べる予定です。 –

+0

無料の最新の本のデータベースや何らかの種類の定期購読がありますか? –

答えて

1

これは検索の問題のように聞こえますが、ドメインが制限されているようです。おそらく、既存の検索技術(おそらくLuceneまたはSolarを使用)を使用してリストを繰り返し、最初に一致するものを検索し、十分に近いものが見つからなければ、 "文書"(あなたが持っている情報1つの書籍について)をインデックスに追加します。

これは完璧な答えではありませんが、さまざまな試合の得点を与えるため、操作するための調整可能なパラメータがいくつか用意されています。これは、「アルゴリズム」が必要に応じて学習して調整できるため、これが解決する必要のある1-off問題以上のものであれば、特に魅力的な解決策です。

関連する問題