視聴者の声をMySQLでMeCabをRubyで可視化する
最近はやりのビッグデータのキモは可視化だとおもっているいくしです。
最後はユーザーに還れといわれまして、実際のユーザーを観察するのが一番でもなかなかそういう機会もない
そんな中でもとっつきやすいのが、ユーザーの声、例えばコメントやアンケート、クレーム、レビュー記事や評価の星の数なんてのもそう
こういうデータは、放っておくと数が膨大に膨れ上がって手のつけようがなくなる。
手がつけられないと、人間卑怯なもので、その有用性を懐疑的と断定することで自己満足な解決をする。
そこをなんとかしてみせるのがエンジニアの腕じゃないかなと。
というわけで、具体例として毎日3000件の問い合わせを可視化してみようなお話
細かい設定や技術的な要素は、追記するかもしれないけど、多分各自でGoogleったほうがいいし、結局その結果をコピペになりそう
使うものはこちら
後はざっくり
create table ToiAwase (date date, id int, content text)
create table KeyWord (word text, primary key word(100))
my.query("select content from ToiAwase").each do |q|
wordArray = contentParse(q[0])
wordArray.each do |r|
my.query("insert into ignore KeyWord values('#{r}')")
end
end
result = {}
my.query("select word from KeyWord").each do |q|
my.query("select count(*) from ToiAwase where content like '%#{q[0]}%'").each do |r|
result.push(q, r)
end
end
これで2年落ちのコンシューマー用PCで約2年分、200万件のデータを処理して処理時間が2Hほど
大分簡略化したけども、数十行のコードを書くだけで、ちょっとした統計位なら大した時間リソースもかけずにまとめられますよってこと
さぁみんなもレッツビッグデータ
※文中のcontentParse関数内でMeCabを利用してます。