2

テキストから Mahout Vector オブジェクトを作成する例があります。それは言います:

ベクトルを作成する前に、ドキュメントを SequenceFile 形式に変換する必要があります。SequenceFile は、任意のキーと値のペアを書き込むことができる Hadoop クラスです。DocumentVectorizer では、キーが一意のドキュメント ID を持つテキストである必要があり、値が UTF-8 形式のテキスト コンテンツである必要があります。

SequenceFile とは何かを知っているので、これはやや明確です。ただし、すべての Mahout アルゴリズム (クラスタリング、分類など) では、コンテンツは実際には単語 (または n-gram) のバッグです。値はスペース区切りとして扱われますか?

さらに重要なことは、実際にはテキストではないものをクラスター化したいということです。たとえば、スペース区切り形式で映画を評価したユーザーがいたとします。

user1 movie_11 5
user1 movie_12 4
..
user2 movie_21 1
user2 movie_22 5
..

映画をクラスタリングしたいとします。ユーザーを「ドキュメント」(ムービーのグループ) のように扱い、ムービーを「単語」のように扱うことができます。これらの評価をベクトル ファイルに取り込むにはどうすればよいですか? それをarffに変換し(正確な方法はまだわかりません)、Mahout のarff.vectorを使用できます。ドキュメントと単語の関連付け (またはカウント) を取得してベクトルを作成する、より単純なユーティリティはありますか?

シーケンス ファイルに入れるためだけに、たとえば 1 億の評価を ARFF としてディスクに入れる必要がなく、ベクターに入れるだけで便利です。

4

0 に答える 0