【サービス公開】webレーティングシステム『Liibra』を開発しました

Qiitaにも投稿したのですが、こちらの読者にもぜひ見ていただきたいのでこっちにも投稿。
Ruby on Railsで作った、レーティングアプリケーションです。

ハッタリのためにとてもショボい英語で書いています。

Liibra ~Simply & Satisfactory Rating Application~
http://liibra.herokuapp.com/

あるものに対する、人の”考え”や”直感”を知ろうと思ったら、今はアンケートぐらいしか方法がないわけですが、その辺を何とか変えたいと考えて作りました。

アンケートといっても結局人気投票だったりするわけですし、他にも証明しにくい”風潮”や”雰囲気”などに何か根拠を示せれば良いんじゃないかとか、色々と考えています。

概要

イメージとしては、映画「ソーシャルネットワーク」で、マーク・ザッカーバーグ氏が大学でいたずらで作っていた『Hot or Not(女の子格付けサイト)』が近いです。

レーティングしたい集団(今回のプロトタイプでは、「都道府県」と「歴代アメリカ大統領」のジャンルを用意)から、ランダムで2つの対象(県・大統領)が表示されます。
テーマに沿って、その2つのどちらが良いかをユーザーに選んでもらいます。それを繰り返す。これだけです。

対象にはそれぞれレーティングのための点数が付けられていて、選び方によって点数を再計算します。

また、各ジャンル内でユーザーが好きにテーマを作ることができます。 例えば「住みたい都道府県は?」とか「お気に入りの大統領を教えて!」のような感じです。

大勢の人の意見を取り入れることができれば、今までアンケートやイメージで何となく語っていたものを、数値化してあげることで、Liibraの結果を参考にして意思決定に使うことも考えられます。
(ランキングをcsvでダウンロードすることも可能です)

技術的背景

Liibraの技術で、重要な点は3つです。

①スクレイピング
「都道府県」や「歴代アメリカ大統領」などのジャンルを作る際、スクレイピングを用いています。nokogiriやMechanizeを使って引っ張ってきました。

②レーティング計算式
得点をどのように計算するかはLiibraのキモです。
チェスの大会やMLBの殿堂入り選手を評価する計算アルゴリズムを参考にし、評価インフレにも対応しています。
Elo Rating
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%AD%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0

③DB設計
普通のことですが得点の変更やランキングへの反映など、頻繁にDBにアクセスするため、テーブル設計には気を使いました。レーティング対象と得点を別テーブルで作成し、場面によって必要なものだけを呼び出すようにしています。

今後の展望

①スマホアプリの開発
レーティングを行う回数を増やしたいので、スマホアプリ開発は必須かと…

②R言語による統計解析
Rは絶賛勉強中なんですが、せっかくデータを扱うんですから、何らかの統計処理を行おうかと考えています。

③ソーシャル機能の強化
ユーザのフォローとかいいね機能を追加して、ユーザーのアクティビティを増やしたい。

最後に

サービスを作るに当たり、インターネットの情報をたくさん参考にさせて頂きました。感謝いたします。
また、サービスを使ってみて、おかしいところや改善点などがあれば、ぜひツッコミをお待ちしています。

Railsでアンケートの再発明みたいなレーティングアプリ
https://qiita.com/Teryyy/items/0bf6c3acafb5ba4a8076

今後、色々と説明を追記した記事を作っていくので、そちらもぜひ御覧くださいな。

コメントを残す

メールアドレスが公開されることはありません。