1

画像メタデータの大規模な(約250万レコード)データベースがあります。各レコードは画像を表し、一意のID、説明フィールド、キーワードのコンマ区切りリスト(たとえば、画像ごとに20〜30個のキーワード)、およびその他のフィールドがあります。実際のデータベーススキーマはありません。また、すべての画像を繰り返し処理してカウントしない限り、データベースにどのキーワードが存在するかを知る方法はありません。また、メタデータはいくつかの異なるサプライヤからのものであり、それぞれが異なるフィールドに入力する方法について独自のアイデアを持っています。

このメタデータを使ってやりたいことがいくつかありますが、私はこの種のアルゴリズムにまったく慣れていないため、どこから始めればよいのかさえわかりません。

  1. これらの画像の一部には(テキストで指定された)特定の使用制限がありますが、各サプライヤーはそれらを異なる言い回しであり、一貫性を保証する方法はありません。画像に制限がないかどうかを示す簡単なテストを画像に適用したいと思います。完璧である必要はなく、「十分に良い」だけです。これには、ある種のベイジアンフィルターを使用できると思いますよね?制限付きまたは制限なしの画像のコーパスを使用してフィルターをトレーニングすると、フィルターは残りの画像の予測を行うことができますか?それとももっと良い方法がありますか?
  2. また、これらの画像を「キーワードの類似性」に従ってインデックス付けできるようにしたいと思います。これにより、1つの画像があれば、他のどの画像と最も多くのキーワードを共有しているかがすぐにわかります。理想的には、アルゴリズムは、一部のキーワードが他のキーワードよりも重要であり、それらの重みが異なることも考慮に入れます。私はここでどこから始めればよいのかさえわかりません、そしてどんなポインタでも非常にうれしいです:)

私は主にJavaで作業していますが、ここでは言語の選択は関係ありません。私は、どのアプローチが私が読み始めるのに最適であるかを学ぶことにもっと興味があります。前もって感謝します :)

4

2 に答える 2

1

(1)テキスト内の単語を特徴として、「制限付き」と「制限なし」をラベルとして使用する分類の問題のように見えます。ベイジアンフィルタリングまたは任意の分類アルゴリズムでうまくいくはずです。

(2)クラスタリングの問題のようです。まず、キーワードに基づいて2つの画像の類似度スコアを返す優れた類似度関数を考え出します。キーワードを比較しているので、コサインの類似性は良い出発点かもしれません。そこから、類似性マトリックスを計算して、データセット内の各画像の「最近傍」のリストを覚えておくか、さらに進んでクラスタリングアルゴリズムを使用して、実際の画像のクラスターを考え出すことができます。

非常に多くのレコードがあるため、類似性マトリックス全体の計算をスキップして、データセットの小さなランダムサンプルのクラスターを計算することをお勧めします。次に、他のデータポイントを適切なクラスターに追加できます。より多くの類似性情報を保持したい場合は、ソフトクラスタリングを調べることができます。

うまくいけば、それはあなたが始めるのに役立つでしょう。

于 2009-02-10T21:59:15.847 に答える