私はいくつかの調査を行っており、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これは宿題プロジェクトではありません:)