infoseiri’s blog

映画から食からサッカーまで

ベイズ推定(データ処理編)

どうもこんにちは赤猫です。

皆さんはカレーが好きでしょうか。よく、カレー嫌いな子供はいないって言いますよね。給食の時とかもよく争いになっていた気がします。大人になってもインド人がやっているお店、とくにナンは人気ですよね。なぜこの話をしたかというと、辛いものが好きなんですが、(ほかにもタンタンメンとか)食べると必ずおなかの調子が悪くなるんですよね。この対策をどうにかしたい。なぜお腹が痛くなったり、翌日の排便がつらくなったりするのか。辛みが刺激成分だからですよね、たぶん。それは若手いるんですが、どうしても食べたい、おいしいから。という堂々巡りの状態になっているのですが、いったいどうすればいいのでしょうか。逆に甘いものを食べて中和?辛みに体が食べるぐらい、何回も食べてみる?結論を見つけたいですね。

 

 

 

では今回も続きをやっていきましょう。実際にどうするかが大事ですからね。この前は理論的なことをやりましたが。

 

infoseiri.hatenablog.com

 流れをざっと説明すると

  1. まず元データの確認
  2. データの下処理
  3. 確率を求める

という順番になります。前も言いましたが、やはり2.の下処理が一番手間です。分析をどれだけ早く終わらせるかという点においては、どの方法を使うのか考えつくのも大事ですが。もうこの前処理にほぼかかっているのではと思うぐらい。まあ自分が知っている分析方法が少なすぎるのもあると思います。

 

データの下処理で何をしたかというと

  • 大文字をすべて小文字に
  • 数字を全部削除
  • 記号を全部削除
  • 動詞の変化形(英文だったので)を原型に

という処理です。エクセルでできそうなところもあるような気がするけど…時間があればまた調べようかな。

それではやっていきましょう。メールのデータを使います。

http:// www. dt. fee. unicamp. br/ ̃ tiago/ smsspamcollection/

というところにメールのデータがあり、それを加工したものを使っているようです。

データを読み込み、概観してみる

f:id:infoseiri:20181022113001p:plain

何も考えず、(stringsAsFactorsでファクターとして読み込むのか文字列として読み込むのか指定しなかった)ため、バグってますね。元に戻しましょう。

f:id:infoseiri:20181022113246p:plain

これでちゃんと文字列として読み込まれました。5559通のメールがあり

  • メールの種類(スパムかどうか)
  • メールの本文

から成り立つデータのようです。

ここから下処理をしていきます。文字の分析にはtmというパッケージが用意されているらしく、それを使うためにこのデータをコーパスと呼ばれる専用のデータ形式に直すよう…

f:id:infoseiri:20181022114014p:plain

VCorpusというのは揮発性でPCのメモリに格納されるらしく、PCorpusとすると永続的に格納できるよう。まあ、それはよいとして、コーパスに変形したことで、データの中身もいろいろ変わっていますね。日付や筆者なんか、文字は何語で書かれているのかなどもあります。

それでは、引き続いて大文字を小文字に直そうと思います。

f:id:infoseiri:20181022114550p:plain

あれーできない。文字コードが違うようで。いろいろ調べて(googleで「R tolower エラー」と検索)見ると…

f:id:infoseiri:20181022120102p:plain

iconvというものを使って、マルチバイト文字を読み込める形に変えろと

 

ではでは、

(@^^)/~~~