2015年 8月 の投稿一覧

「RをWEBアプリケーションに」Shinyを使ってみた(お試し編)

こんにちは、mergyです。前回までテキスト自動要約の手法を書いていたのですが、一旦お休みして、今回は趣向を変えたテーマで書きたいと思います。
Rのpackage「Shiny」を紹介します。

Shinyとは

Rは解析をするのにとっても便利ですが、解析結果を誰かに見せるときに意外と不便だったりしますよね。
Shinyは、そんな悩みを解決する、Rで書いたスクリプトを簡単にWEBアプリに出来るパッケージです。

動作環境

Mac Yosemite 10.10.4
RStudio Version 0.98.1103
R version 3.2.0

Shiny使い方

RStudioのメニューから「File」→「New Project」を選択し、
「Create project from:」の画面が表示されたら「Shiny Web Application」を選びましょう。

new_project

その後はディレクトリ名を決めて「Create Project」を押すだけです。

directly_name

実はRstudioでは最初からサンプルが用意されており、projectを作成した後に以下のコマンドを入力するだけでサンプルを実行することが出来ます。

実行した結果が以下になります。

Old_Faithful_Geyser_Data

このようにブラウザでRの解析結果を見ることが出来ます。
Shinyは内部でtwitter bootstrapを利用しているのでUIもキレイです。

注目すべきは、左側のスライダーです。これを変更すると…

Old_Faithful_Geyser_Data2

動的にグラフが描画されます。とても便利ですね。

GithubにShinyのexampleがあるので、git cloneしておくとよいでしょう。
試しに「050-kmeans-example」を使ってみます。

Iris_k-means_clustering

「050-kmeans-example」の場合、X軸変数、Y軸変数、クラスター数を動的に変更することが出来ます。
このように簡単に解析結果をブラウザで表示し、直感的な操作で動的に結果を変更することが可能です。

まとめ

Rのpackage「Shiny」を試しに使ってみました。
次回はもう一歩踏み込んで、サーバーでの実行について書きたいと思います。

手がかり表現の自動取得方法

こんにちは、マージーです。引き続き、テキストの自動要約技術について書きたいと思います。
前回までで、「手がかり表現」を用いる事によってテキストの自動要約技術の一つである重要文抽出を行えるということを書きました。

前回のおさらい

軽く前回のおさらいをしたいと思います。前回は、「森のくまさん」を題材にしました。

image3

ここから『くまさん』『おじょうさん』という「手がかり表現」を用いることにより、以下のように重要文を抽出することが出来ました。

image6

手がかり表現の取得方法

ここまでが前回の内容です。今回は「ではどうやって、「手がかり表現」を取得するのか」という話です。

「森のクマさん」のような簡単な例だったら、『くまさん』『おじょうさん』という簡単な例で良いのですが、例えば判決文のような複雑な文章だと大量の「手がかり表現」が必要になります。しかし、「森のクマさん」のように手作業で「手がかり表現」を選別するのは大きな手間がかかります。

そこで登場するのが、CrossBootstrap法です。大分高専の野中先生らによって提案された「手がかり表現」を自動で取得するアルゴリズムです。

CrossBootstrap法

CrossBootstrap法の概要は以下のようになります。

1、 CrossBootstapに「初期集合」と「十分な量の該当データ(判決文の自動要約)なら判決文」を入力

MojarSeminarFeb.047

2、 CrossBootstrapが「手がかり表現の集合を出力」

MojarSeminarFeb.048

少々わかりづらいところもあると思うのですが、「森のくまさん」で言えば
1、で「初期集合」というのは、「くまさん」「お嬢さん」にあたり、手作業で見つけられる範囲の「手がかり表現」です。「十分な量の該当データ」というのは、もし今回が「童謡の要約をしたい」という目的だった場合、「数万件程度の童謡データ」となります。

2、「手がかり表現の集合」は「くまさん」「お嬢さん」以外の手がかり表現が大量に出力されることになります。(他の童謡の要約で使える手がかり表現が主に出力されるはずです)

まとめ

以上がCrossbootstrap法の概要になります。次回はCrossBootstrap法のアルゴリズムの内容について書けたら書きたいと思います。難しそうだったら別のテーマにするかもです笑

よろしくお願いします。