ツイートの感情分析に取り組んでいます。私は mahout ナイーブ ベイズ分類器を使用しています。ディレクトリ「data」を作成しています。「data」内に、「positive」、「negative」、「uncertain」という名前のさらに 3 つのディレクトリを作成しています。その後、151 個のファイルを保持しました(合計151Mb) これらのポジティブ、ネガティブ、および不確実なディレクトリのそれぞれに..次に、hdfs にデータ ディレクトリを保持しました..以下は、モデルとラベルインデックスを生成するために実行した一連のコマンドです。
bin/mahout seqdirectory -i ${WORK_DIR}/data -o ${WORK_DIR}/data-seq
bin/mahout seq2sparse -i ${WORK_DIR}/data-seq -o ${WORK_DIR}/data-vectors -lnorm -nv -wttfidf
bin/mahout split -i ${WORK_DIR}/data-vectors/tfidf-vectors --trainingOutput ${WORK_DIR}/data-train-vectors --testOutput ${WORK_DIR}/data-test-vectors --randomSelectionPct 40 --overwrite --sequenceFiles -xm sequential
bin/mahout trainnb -i ${WORK_DIR}/data-train-vectors -el -o ${WORK_DIR}/model -li ${WORK_DIR}/labelindex -ow $c
以下に示すように、「testnb」コマンドを使用して同じデータセットでテストした後、混同マトリックスを取得しています。
bin/mahout testnb -i ${WORK_DIR}/data-train-vectors -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -ow -o ${WORK_DIR}/data-testing $c
Confusion Matrix
-------------------------------------------------------
a b c <--Classified as
151 0 0 | 151 a = negative
0 151 0 | 151 b = positive
0 0 151 | 151 c = uncertain
次に、同じ方法で別のディレクトリ「data2」を作成し、ランダムデータ(トレーニングデータのサブセット(30ファイル(合計サイズ30MB)))をその中のポジティブ、ネガティブ、不確実なディレクトリに配置しました。次に、以下に示す「seq2sparse」コマンドを使用して、そこからベクトルを作成しました:-
bin/mahout seqdirectory -i ${WORK_DIR}/data2 -o ${WORK_DIR}/data2-seq
bin/mahout seq2sparse -i ${WORK_DIR}/data2-seq -o ${WORK_DIR}/data2-vectors -lnorm -nv -wttfidf
以下のコマンドを使用して、以前のデータセットから作成されたモデル/ラベルインデックスを使用して「testnb」を実行すると:-
bin/mahout testnb -i ${WORK_DIR}/data2-vectors/tfidf-vectors/part-r-00000 -m ${WORK_DIR}/model -l ${WORK_DIR}/labelindex -ow -o ${WORK_DIR}/data2-testing $c
このような混同行列を取得しています。
Confusion Matrix
-------------------------------------------------------
a b c <--Classified as
0 30 0 | 30 a = negative
0 30 0 | 30 b = positive
0 30 0 | 30 c = uncertain
なぜこれが来るのか教えてもらえますか.モデルをテストするために正しい方法を使用していますか、それとも mahout 0.7 のバグです.正しい方法でない場合は、それから抜け出す方法を提案してください.