ベイズ推定(データ処理編)
どうもこんにちは赤猫です。
皆さんはカレーが好きでしょうか。よく、カレー嫌いな子供はいないって言いますよね。給食の時とかもよく争いになっていた気がします。大人になってもインド人がやっているお店、とくにナンは人気ですよね。なぜこの話をしたかというと、辛いものが好きなんですが、(ほかにもタンタンメンとか)食べると必ずおなかの調子が悪くなるんですよね。この対策をどうにかしたい。なぜお腹が痛くなったり、翌日の排便がつらくなったりするのか。辛みが刺激成分だからですよね、たぶん。それは若手いるんですが、どうしても食べたい、おいしいから。という堂々巡りの状態になっているのですが、いったいどうすればいいのでしょうか。逆に甘いものを食べて中和?辛みに体が食べるぐらい、何回も食べてみる?結論を見つけたいですね。
では今回も続きをやっていきましょう。実際にどうするかが大事ですからね。この前は理論的なことをやりましたが。
流れをざっと説明すると
- まず元データの確認
- データの下処理
- 確率を求める
という順番になります。前も言いましたが、やはり2.の下処理が一番手間です。分析をどれだけ早く終わらせるかという点においては、どの方法を使うのか考えつくのも大事ですが。もうこの前処理にほぼかかっているのではと思うぐらい。まあ自分が知っている分析方法が少なすぎるのもあると思います。
データの下処理で何をしたかというと
- 大文字をすべて小文字に
- 数字を全部削除
- 記号を全部削除
- 動詞の変化形(英文だったので)を原型に
という処理です。エクセルでできそうなところもあるような気がするけど…時間があればまた調べようかな。
それではやっていきましょう。メールのデータを使います。
http:// www. dt. fee. unicamp. br/ ̃ tiago/ smsspamcollection/
というところにメールのデータがあり、それを加工したものを使っているようです。
データを読み込み、概観してみる
何も考えず、(stringsAsFactorsでファクターとして読み込むのか文字列として読み込むのか指定しなかった)ため、バグってますね。元に戻しましょう。
これでちゃんと文字列として読み込まれました。5559通のメールがあり
- メールの種類(スパムかどうか)
- メールの本文
から成り立つデータのようです。
ここから下処理をしていきます。文字の分析にはtmというパッケージが用意されているらしく、それを使うためにこのデータをコーパスと呼ばれる専用のデータ形式に直すよう…
VCorpusというのは揮発性でPCのメモリに格納されるらしく、PCorpusとすると永続的に格納できるよう。まあ、それはよいとして、コーパスに変形したことで、データの中身もいろいろ変わっていますね。日付や筆者なんか、文字は何語で書かれているのかなどもあります。
それでは、引き続いて大文字を小文字に直そうと思います。
あれーできない。文字コードが違うようで。いろいろ調べて(googleで「R tolower エラー」と検索)見ると…
iconvというものを使って、マルチバイト文字を読み込める形に変えろと
ではでは、
(@^^)/~~~