い、い、、いっくし!!

各記事はkwskってコメントすると詳しく書き直します

視聴者の声を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を利用してます。