svmでテキスト分類
明けましておめでとうございます.今年もよろしくお願いします. 早速ですが,SVM(サポートベクターマシン)を試してみたので,その方法を書いておきます.ナイーブベイズなどと同様にテキストの分類ができます.ここでは,svm_lightを使いました.
1.svm_lightのインストール
svm lightを公式ページからダウンロードしてきます.
|
|
インストール後,/usr/local/src/svm_lightへパスを通しておきます.
2.学習データを用意する
まず,適当な文書をとってきて,それぞれに1,-1のラベルをつけておきます. 1:ポジティブな発言 -1:ネガティブな発言
|
|
次に,それぞれの単語と数字の対応表を作ります.
|
|
最後にこの対応表をもとに,学習データを作ります.(このファイルを"example_file"とする.)
|
|
3.モデルファイルを作成する.
|
|
svm_learnコマンドでモデルファイル(“model_file”)を作ります.
4.テストファイルを作成する.
2.学習データと同様にテストファイルを作ります.例えば ``` i am bad ``` を分類するときは,次のようなファイルを作っておきます.("test_file"とする.) ``` 0 1:1 2:1 6:1 ```5.実際に分類する.
``` svm_classify test_file model_file output_file ``` これで,分類完了です."output_file"内に以下のように分類結果が記録されます. ``` -0.99984155 ``` マイナスに大きく傾いていることが分かります.・参考ページ http://svmlight.joachims.org/