1

私はいくつかの調査を行っており、Apache Mahout 0.6 で遊んでいます

私の目的は、ユーザー入力に基づいてドキュメントのさまざまなカテゴリに名前を付けるシステムを構築することです。ドキュメントは事前に知らされておらず、これらのドキュメントを収集しているときにどのカテゴリに属しているのかもわかりません。しかし、モデル内のすべてのドキュメントが事前定義されたカテゴリの 1 つに属している必要があることはわかっています。

例: 3 つの異なるグループに属する N 個のドキュメントを収集したとします。

  • 政治
  • マドンナ (ポップスター)
  • SF

どのドキュメントがどのカテゴリに属しているかはわかりませんが、N 個のドキュメントのそれぞれがそれらのカテゴリのいずれかに属していることはわかっています (たとえば、これらの N 個のドキュメントの中にバスケットボールなどのドキュメントはありません)。

そこで、次の案を思いつきました。

  • mahout クラスタリングを適用します (たとえば、これらのドキュメントで k=3 の k 平均)。これにより、N 個のドキュメントが 3 つのグループに分割されます。これは、学習するための私のモデルのようなものでなければなりません。どのドキュメントが実際にどのグループに属しているかはまだわかりませんが、少なくともドキュメントはグループごとにクラスター化されています

  • 「マドンナ」に関するウェブ上のドキュメントを検索するようにユーザーに依頼します (N 個のドキュメントをユーザーに表示することはできません。これは制限です)。次に、このドキュメントと 3 つのグループのそれぞれの「類似性」を測定します。モデル内のマドンナ グループの user_doc とドキュメントとの類似度の測定値は、user_doc と政治に関するドキュメントとの類似度よりも高くなると予想されます。

「Mahout in Action」ブックを使用して、ドキュメントのクラスターを作成することができました。しかし、Mahout を使用してドキュメントの「準備完了」クラスタ グループと特定のドキュメントの類似性を測定する方法がわかりません。

同じ重心 (k 平均クラスタリングの観点から) を持つ N+1 ドキュメントに対して k=3 でクラスターを再実行し、新しいドキュメントがどこに該当するかを確認することを考えましたが、それを行う他の方法があるでしょうか?

Mahout を使用することは可能ですか、それとも私の考えは概念的に間違っていますか? (Mahout API の例は本当に良いでしょう)

長い質問で申し訳ありません(うまく説明できませんでした)

どんな助けでも大歓迎です

PSこれは宿題プロジェクトではありません:)

4

1 に答える 1

2

これは可能かもしれませんが、はるかに簡単な解決策(IMHO)は、各カテゴリからいくつかのドキュメントに手動でラベルを付け、それらを使用してk-meansをブートストラップすることです。つまり、手作業でラベル付けされた政治/マドンナ/サイエンスフィクションのドキュメントの重心を計算し、そこからk-meansで取得します。

(派手な言葉で言えば、半教師ありの最も近い重心分類を行うことになります

于 2012-06-12T14:02:29.167 に答える