RSS フィード内のキーワードの頻度に基づいて Weka の J48 および Naive Bayes Multinomial (NBM) 分類子を使用して、フィードをターゲット カテゴリに分類しています。
たとえば、私の .arff ファイルの 1 つには、次のデータ抽出が含まれています。
@attribute Keyword_1_nasa_Frequency numeric
@attribute Keyword_2_fish_Frequency numeric
@attribute Keyword_3_kill_Frequency numeric
@attribute Keyword_4_show_Frequency numeric
…
@attribute RSSFeedCategoryDescription {BFE,FCL,F,M, NCA, SNT,S}
@data
0,0,0,34,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,BFE
0,0,0,12,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,BFE
0,0,0,10,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,BFE
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,BFE
…
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,FCL
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,F
…
20,0,64,19,0,162,0,0,36,72,179,24,24,47,24,40,0,48,0,0,0,97,24,0,48,205,143,62,7
8,0,0,216,0,36,24,24,0,0,24,0,0,0,0,140,24,0,0,0,0,72,176,0,0,144,48,0,38,0,284,
221,72,0,72,0,SNT
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,SNT
0,0,0,0,0,0,11,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,S
などなど: 合計 570 行あり、それぞれに 1 日のフィード内のキーワードの頻度が含まれています。この場合、10 日間で 57 のフィードがあり、合計 570 のレコードが分類されます。各キーワードにはサロゲート番号が前に付けられ、「頻度」が後置されます。
「ブラックボックス」ベースで、J48s と NBM 分類器の両方に 10 倍 x 検証を使用しています。使用されるその他のパラメータもデフォルトです。つまり、信頼度は 0.25 で、J48 のオブジェクトの最小数は 2 です。
これまでのところ、さまざまな日数、日付範囲、および実際のキーワード頻度のインスタンスに対する私の分類率は、J28 と NBM の両方の結果で 50 ~ 60% の範囲で一貫しています。でも、できればこれを改善したい。
デシジョン ツリーの信頼度を 0.1 まで下げることもありますが、改善はごくわずかです。
誰かが私の結果を改善する他の方法を提案できますか?
より多くの情報を提供するために、ここでの基本的なプロセスには、それぞれが 1 つのカテゴリに属する RSS フィードの多様なコレクションが含まれます。
2011 年 9 月 1 日から 10 日などの特定の日付範囲では、各フィードの item 要素のテキストが結合されます。次に、テキストを検証して、数字、アクセントなどを含む単語、およびストップ ワードを削除します (MySQL からの 500 個のストップ ワードのリストが使用されます)。残りのテキストは Lucene でインデックス化され、最も一般的な 64 語が計算されます。
次に、これらの 64 語のそれぞれが、指定された日付範囲内の各日のフィードの説明要素で検索されます。この一環として、説明テキストもタイトル テキストと同じ方法で検証され、Lucene によって再度インデックス化されます。したがって、「辞退」などのタイトルの人気キーワードは、「辞退」に語幹が付けられます。「辞退」などの「辞退」にも語幹が含まれる類似の単語が説明要素に見つかった場合、「辞退」の頻度は次のようになります。説明要素からの単語の Lucene の索引付けから取得されます。
.arff ファイルに示されている頻度は、これに基づいて一致しています。つまり、上記の最初の行で、'nasa'、'fish'、'kill' は、その日の BFE カテゴリの特定のフィードの説明項目にはありません。しかし、'show' は 34 回見つかりました。各行は、64 個のキーワードすべてについて、1 日のフィードの説明項目での出現回数を表します。
したがって、低周波はステミングによるものではないと思います。むしろ、あるカテゴリのフィードで人気があり、他のフィードではまったく表示されないキーワードがあることの必然的な結果だと私は考えています。したがって、結果に示されている余裕があります。ここでも一般的なキーワードが適切な場合があります。
他の可能性としては、カテゴリごとのフィード数の違いで、S よりも多くのフィードが NCA のようなカテゴリに含まれているか、キーワード選択プロセス自体に問題があります。