39th tokyo.r "rstudioを日本語化してます、という話"
DESCRIPTION
第39回Tokyo.Rで発表した資料です。TRANSCRIPT
39th Tokyo.R
(1) RStudioを日本語化してます(2) データサイエンスの研修やってます
という話
@data_sciesotist
2014/05/31
1
1 まずは、自己紹介• 社会人5年目の研修講師 (Linux、仮想化、ストレージ、クラウド、ビッグデータ・データサイエンスなど担当)です
• その前は長々と大学にいました (心理学、教育工学、障害者支援などを研究)が、学位もポストも・・・だったので就職
• 2002年にLinuxにはじめて触れて以来、細々とOSS関係の活動をしています
• 主に組版ソフトTEXの周りで IDEの日本語化、ドキュメントの翻訳、解説サイトの運営などをしています
• データサイエ「ソ」ティストに悪意はありません2
2 本日のお題1. RStudioのインターフェースを日本語化しているので、手順と成果を紹介したい
2. Rとかデータサイエンス関係の研修を提供しているので、「世間の『データサイエンス』に対する捉え方とか反応」を紹介したい
3. その他おまけ
3
お題1
RStudioの日本語化
4
3 RStudioの概要 (1)まずは大前提 https://www.rstudio.com/
• RStudio — “Open source and enterprise-readyprofessional software for the R community”
• デスクトップ版 (Win, Mac, Linux) とサーバー版 (Linux)
• サーバー版には有償ライセンスあり
• Rを用いたWebアプリ開発を容易にするShinyなども提供
• 最近はknitrやR Presentationなど「文書」の執筆環境としても活用される
5
4 RStudioの概要 (2)
6
5 RStudioの課題
インターフェースが英語*1
*1 もちろん、他にいろいろ改善して欲しいところはあると思いますが。
7
6 日本語化に取り組むことに
• 他の分野で経験はあるし、ソースがあるんだからできるんじゃないの、という軽い気持ち
•「OSSに (ちょっと) 貢献する」ことを考えた時の選択肢として、日本語化はわりと取っ付きやすいそして感謝を得やすいw
8
7 どこをいじればよいのか• “File” Ô “ファイル”だとしても、ソースコードのどこに書いてあるのか
• 最悪なのは、各ファイルに分散している場合Ô Ô Ô• grepさんに聞いてみる• $SRC DIR/src/gwt/src/org/rstudio/studio/client/workbench/commands/Commands.cmd.xmlらしい
9
8 Commands.cmd.xmlの中身<commands>
<menu id="mainMenu" vertical="false">
<separator/>
<menu label="_File">
<menu label="New _File">
</menu>
<menu label="_Recent Files">
</menu>
<menu label="Recent Pro_jects">
</menu>
</menu>
<menu label="_Edit">
<menu label="_Folding">
</menu>
</menu>
..........
• なんとなくメニュー項目が書かれている
• “ 英字” がショートカット設定っぽい
• テキストファイルなので作業も楽そう
• じゃあやるか• 全部で375個ほどのメッセージ
10
9 やってみた結果wwwwwwwww• 見出しは草を生やしてみたかっただけ• そんなに厳密に動作検証してない “雰囲気訳”
11
10 ちなみに、RStudioのビルド環境
https://github.com/rstudio/rstudio/tree/master/dependencies
• 必要なのは、g++、JDK、Qt、boost、Ant、NSISなど
• GitHub上の文書を読めば、準備は簡単 (ただしチョー時間がかかる)
• WindowsではスムーズにビルドできるがLinuxだと・・・12
11 RStudioのビルド
• 2コア、4GBの仮想マシンで15分くらいかかる
• Windowsでのビルドオプションは以下のような感じ
cmake .. -G "MinGW Makefiles" -DRSTUDIO_TARGET=Desktop
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:\opt\RStudio"
13
12 成果の公開と課題
http://datasciesotist.hatenablog.jp/
• 日本語化したRStudioをブログで配布する予定• 忙しくて375個中112個までしか終わってない• しかし、この方法では日本語化 “しか” できない• 開発元に多言語化を提案するのがOSS的 (めんどい・・・)
• 日本語化では「最新版への追従」がプレッシャー• 公開して、やりたい人に「はい、ヨロシクぅ!」としたい
14
お題2
データサイエンスの
研修15
13 宣伝かよチッうぜえなぁ• だがしかし。ここで宣伝して、論評されるリスクを侵す勇気がある非専門家がいるだろうか
• いや、いない (反語)Ô Ô Ô• なので、「一般企業向けにこんなことをやってると、こんなことが見えてきます」というのを紹介しようと思ってます
16
14 まず、世間一般におけるニーズ•「データサイエンティスト」と「Data Scientist」の検索トレンド
• 同じ時にもっと有名な方が取り上げたので、二番煎じにorz
2012 2013 2014
020
4060
8010
0
「Data Scientist」と「データサイエンティスト」の検索数の推移
Google Trendsのデータを元に当社にて作成
検索
数(
比率
)
Data Scientistデータサイエンティスト
17
15 「本当の」ニーズかはさておき•「データサイエンス」と「Data Science」の検索トレンド
• ニーズがあればそれをコースにして商売するのが研修会社の仕事
2004 2006 2008 2010 2012 2014
020
4060
8010
0
「Data Science」と「データサイエンス」の検索数の推移
Google Trendsのデータを元に当社にて作成
検索
数(
比率
)
Data Scienceデータサイエンス
18
16 研修ラインアップ
2011年からインフラ技術を中心にビッグデータ関連研修を提供開始
2012年ころからデータ活用、分析にテーマを広げ、続々と提供中
Rに関しては同業他社より1年早く提供を実現
2011年11月 「Hadoop入門」提供開始
2012年11月 「ビッグデータの基礎」提供開始
2013年4月 「R言語によるデータ分析入門」提供開始
2013年10月 「R言語によるデータ分析応用編」提供開始
2014年4月 「データサイエンスの基礎」提供開始
19
17 申込者数の推移• いろいろあるので縦軸はナシで……ただ、他の分野と比べても増加は顕著• Rおよびデータサイエンスに関する (初歩的)教育ニーズは高い• 弊社教室での研修以外に、お客様先での個別研修もたくさん
2012 2013 2014
ビッグデータ・データサイエンス研修の申込者数(累計)
申込者数
Hadoopビッグデータ基礎R入門R応用データサイエンス基礎
20
18 お客様の声■受講のきっかけ
• 「データはあるが使い方がわからない」という声が多数• なんだかんだ、製造・販売の現場には大量のデータがある•「ビッグデータソリューションの営業を担当しているが、自分が何を売っているのかわからない」なども
•「Rの研修を検索したら見つかったから」という方も多い
■最近は……
•「社内におけるデータ活用の仕組みを作りたい」という方も• 技術は一段落して、これからは方法論に注目が集まりそう
21
19 この分野を担当して思うこと• 思った以上に「データ分析カルチャー」を根付かせるのは難しい
• 多くの企業において「データサイエンス」はData ScienceやQuantsではない
• ごく基本的な「卒論の書き方」を忘れている・知らない人が多い
• とはいえ、そこらへんを埋めるのが商売なので、いろいろ葛藤しつつやってます
22
お題3
Sparkの研修作ってます
23
20 Apache Sparkの概要 (1)
Hadoopよりも速い分散並列処理環境 http://spark.apache.org/
Java、Python、Scala(関数型言語)に対応、SQLなどにも対応可能
2014年3月にApache財団のトップレベルプロジェクトに昇格
Hadoopより100倍速い!(当社比)
24
21 Apache Sparkの概要 (2)
Sparkプロジェクトの目標は以下の2点
MapReduceモデルを拡張し、インタラクティブな分析ができる
Scala(関数型言語)の採用によるプログラミング可能性の向上
http://spark.apache.org/talks/overview.pdf より Scalaシェルからのインタラクティブな操作
機械学習のためのアルゴリズムを数多く提供
25
22 Apache Sparkの概要 (3)
基本的にはHadoopと同様の大量データを分散並列処理する仕組み
複数台のコンピュータでクラスタを構成し、Scalaシェルによる
インタラクティブ処理またはプログラムのバッチ実行が可能
クラスタマネージャMesosでリソース管理可能
http://spark.apache.org/talks/overview.pdf より
http://spark.apache.org/ より
Scala、Java、Pythonに対応
26
23 Apache Sparkが来そう• 機械学習など「パラメータを変えて繰り返し同じ処理を適用する」場合にインメモリコンピューティングが適する
• Hadoopの機械学習ライブラリとして有名だったMahoutも “Goodbye MapReduce”*2 とHadoopからSpark等への切り替えを表明している
• Rとも連携できそう (SparkRパッケージがある)
• まだよくわかってないですが9月に提供開始します
*2 https://issues.apache.org/jira/browse/MAHOUT-1510
https://mahout.apache.org/
27
24 ちなみに、先日こんなことが
28