LINEって履歴をテキストファイルで保存できるじゃないですか。
なんか遊べないかなってことで顔文字の出現頻度を出力してみました。
適当なグループの会話を使ってます。
履歴はlinetalk.txtとして保存
コードこんな感じ
・face_check.rb
dic = Hash.new(0) while line = ARGF.gets if seed = /(¥(.*?¥))/.match(line) match_words = seed.captures match_words.each do |word| dic[word] += 1 end end end puts dic.sort { |a,b| b[1] <=> a[1] }[0...30]
linetalk.txtを引数にして
ruby face_check.rb linetalk.txt
を実行
結果こんな感じ
みにくー
あと正規表現の精度が低いですね。
(((o(*゚▽゚*)o)))の顔文字が(((o(*゚▽゚*)になってるし。。
下の方で(月)とかもカウントされてます。
whileの中もわかりにくい
というわけでお次はこのコードをリファクタリングしていきます。
発言者ごとの頻度分けもしたいですね。
http://melborne.github.io/2013/04/26/find-most-frequently-words-with-ruby/
こんなところに参考になりそうなサイトが・・・!
とか言いながらこの記事がまとまった電子書籍を既に買ってあったりします。
てか上のソート部分とかそのまま使わせて頂いております。
これを見ながらこのコードをよりオブジェクト指向的にしていきたいです。
続きはまた今度。おやすみなさいー