私はWeka Java APIを使用してドキュメントの分類をしようとしています。StringToWordVector()の出力を解釈する - Weka
ここに私のデータファイルのディレクトリ構造があります。
私は 'TextDirectoryLoader'で作成された 'arff'ファイルを持っています。次に、作成されたarffファイルにStringToWordVector
フィルタを使用します(filter.setOutputWordCounts(true)
)。
以下は、フィルタが適用された後の出力のサンプルです。私は明確にされたものはほとんど得られない。
@attribute </form> numeric
@attribute </h1> numeric
.
.
@attribute earth numeric
@attribute easy numeric
この膨大なリストは、最初のhtmlファイルの内容をトークン化する必要があります。右?最初の3つの項目にはクラス属性が存在しない理由を
は、それから私は、
@data
{1 2,3 2,4 1,11 1,12 7,..............}
{10 4,34 1,37 5,.......}
{2 1,5 6,6 16,...}
{0 class2,34 11,40 15,.....,4900 3,...
{0 class3,1 2,37 3,40 5....
{0 class3,1 2,31 20,32 17......
{0 class3,32 5,42 1,43 10.........
がありますか? (それはclass1を持つべきです)。 先頭の0は{0 class2、..}、{0 class3 ..}のように何を意味しますか? たとえば、class3フォルダの3番目のhtmlファイルでは、整数32で識別される単語が5回表示されます。ちょうど私が32によって参照される言葉(トークン)を得る方法を見るためにか。
フィーチャベクターの次元をどのように減らすか?すべての特徴ベクトルを同じサイズにする必要はありませんか? (訓練セットの100の最も頻繁な用語だけを考えてみましょう。後でテストになるときは、テスト文書の100語の出現を考慮してください。このように、まったく新しい単語テスト段階では、分類器は無視しますか?)。
ここに何か不足していますか?私はWekaが初めてです。
また、誰かがこのベクトルをStringToWordVector
フィルタで作成したものをどのように使用しているのか説明できれば、本当に助けになります。 @attribute
の(それらのウェカコードの内部で起こっている、次元削減、トレーニングデータと語彙を作成するような?)
はい、答えはちょっと遅いので、私は自分で答えを学びました。しかし、あなたの答えに感謝し、私はそれを受け入れています。あなたはwekaのlibsvm(ラッパー)を使って1つのクラス分類についての経験がありますか?私はそれにこだわっている。 – KillBill
@ user601いいえ、申し訳ありません。 Wekaでlibsvmを使ったことはありませんでした。好奇心からちょうどあなたが機械学習/データマイニングの話題に論文を書いていますか? – Malhelo
はい私はテキストの分類を含む私の上級年度の論文をやっています。似たようなことをしていますか? – KillBill