画像メタデータの大規模な(約250万レコード)データベースがあります。各レコードは画像を表し、一意のID、説明フィールド、キーワードのコンマ区切りリスト(たとえば、画像ごとに20〜30個のキーワード)、およびその他のフィールドがあります。実際のデータベーススキーマはありません。また、すべての画像を繰り返し処理してカウントしない限り、データベースにどのキーワードが存在するかを知る方法はありません。また、メタデータはいくつかの異なるサプライヤからのものであり、それぞれが異なるフィールドに入力する方法について独自のアイデアを持っています。
このメタデータを使ってやりたいことがいくつかありますが、私はこの種のアルゴリズムにまったく慣れていないため、どこから始めればよいのかさえわかりません。
- これらの画像の一部には(テキストで指定された)特定の使用制限がありますが、各サプライヤーはそれらを異なる言い回しであり、一貫性を保証する方法はありません。画像に制限がないかどうかを示す簡単なテストを画像に適用したいと思います。完璧である必要はなく、「十分に良い」だけです。これには、ある種のベイジアンフィルターを使用できると思いますよね?制限付きまたは制限なしの画像のコーパスを使用してフィルターをトレーニングすると、フィルターは残りの画像の予測を行うことができますか?それとももっと良い方法がありますか?
- また、これらの画像を「キーワードの類似性」に従ってインデックス付けできるようにしたいと思います。これにより、1つの画像があれば、他のどの画像と最も多くのキーワードを共有しているかがすぐにわかります。理想的には、アルゴリズムは、一部のキーワードが他のキーワードよりも重要であり、それらの重みが異なることも考慮に入れます。私はここでどこから始めればよいのかさえわかりません、そしてどんなポインタでも非常にうれしいです:)
私は主にJavaで作業していますが、ここでは言語の選択は関係ありません。私は、どのアプローチが私が読み始めるのに最適であるかを学ぶことにもっと興味があります。前もって感謝します :)