(これまでのあらすじ)前回、パソコン工房から「統計処理用のPCのPR企画をやりたい」と依頼を受けて、はてなエンジニアと一緒にword2vecで遊んでみた編集部。読者の皆さまにも好評だったので、調子に乗って第2弾を実施することにしました。今回は「"word2vec"で艦これ加賀さんから乳を引いてみる」で一世を風靡した、あの統計屋さんが全面協力です! 記事の最後にはプレゼントのお知らせも。
(※この記事は株式会社ユニットコムによるPR記事です)
皆さまは前回の記事を、覚えておりますでしょうか?
▽ Python - Perl + Java = ? はてなブログのデータとパソコン工房のPCを使って「word2vec」で遊んでみた - はてなニュース
パソコン工房の統計処理用PC × はてなブログのデータ × word2vec という記事でした。ブックマークコメントから感想をいくつかピックアップしてみましょう。
- どんな足し引きかと思ったら期待を裏切らない記事。おもしろかったw
- 似ている単語の「きんいろモザイク ゆゆ式」で草
- どんだけマニアックな広告記事なんだw
- PCの宣伝じゃなくて、word2vecの宣伝記事だなw
- 読んで「あんまりPR企画っぽくないな」と思いつつパソコン工房の方の記事見に行ったらそっちはさらにPRっぽくなくて吹いた。あ、PCのデザインが格好良くなってる、と思ったから一応PRにはなってたと思います(フォロー
け、結果的にパソコン工房のPRになってるもん! なってるもん……。ということで第2弾です。前回記事をご覧になった方の中には「ああ、word2vecって『艦これ加賀さんから乳を引いてみる』記事で話題になったやつか」と思われた方もいらっしゃるかもしれません。ということで今回は、まさにその「例の記事」を作られた、統計屋のあんちべさん(id:AntiBayesian / @AntiBayesian)にご協力いただきました!
▽ 自然言語処理の最新手法"word2vec"で艦これ加賀さんから乳を引いてみる - あんちべ!
―― こ、こんにちは。はてなニュースで前にこういう企画やりまして、第2弾なんですけど……(やばい、word2vecで面白いことやるっていうの、俺の企画のパクリじゃねえか!って怒られないかな……どきどき……)
あんちべ この記事、読みましたよー。第2弾ですか。ぜひぜひ!
―― (ホッ)今回はword2vecではなくて、何か別の面白い処理をしてみたいなと思うのですが、最近気になっていること、やってみたいこと、何かありますか?
あんちべ 実は「Rakuten MA」が気になってるんですよね。まだあまりブログ記事とか上がってないんですけど、これ面白いと思うんですよ! JavaScriptのみで書かれた形態素解析器で、ブラウザ上で実行が可能なんですよ。
▽ rakuten-nlp/rakutenma · GitHub
▽ JavaScriptで実装された日中形態素解析エンジンRakuten MA - 自然言語処理 on Mac
―― ほおおー、面白そうです! じゃあコーパス(もととなる自然言語のデータ)はTwitterのデータを使って、プログラミング言語で検索した結果をいろいろと解析してみるというのはどうでしょう。
あんちべ いいですね。それではやってみます!
―― ということで、CMの後は、あんちべさんによる「Rakuten MAとは」の解説です!
■ 【CM】パソコン工房の統計処理向けPC
今回パソコン工房さんからお借りしたパソコン。あんちべさんのご自宅でこんな感じで作業していただきました。奥にある「Land of Lisp」が気になります。
▽ BTOパソコン(PC)・ノートパソコンのことならパソコン工房【公式通販サイト】
―― CMです。前回、パソコン工房のPRになっていないのでは?という突っ込みを受けたので、CM形式にしてみました。いかがですか?
BTOパソコンのショップ/サイトであるパソコン工房、自作PCやゲームPCのようなイメージが強いかと思いますが、データサイエンティスト向けに、統計処理用に使えるパソコンも展開しています。今回の企画のように、高い負荷のかかる処理に最適とのこと。詳しくは以下のページをご覧ください!
ちなみに今回、あんちべさんにご利用いただいたパソコンのスペックは以下の通りです。
基本スペック
- PRO Advanced Z97M-S カスタム
- CPU:Intel Core i7-4790K(4.0-4.4GHz/4コア/8スレッド)
- マザー:ASUS社製 Intel Z97 Express チップセット搭載マザーボード
- メモリ:CENTURY MICRO社製 DDR3-1600 8GB×2(計16GB)
- HDD:1TB 7200rpm Serial-ATA 6Gbps
詳しい構成についてはパソコン工房さん側のコラボページで紹介されています。そちらもどうぞ!
▽ 「あんちべさんと一緒に Rakuten MA で形態素解析」はてなニュース連動企画 第二弾! : パソコン工房
それでは続きまして、あんちべさん執筆による「Rakuten MAとは」です。どうぞ!(※くどいようですがこの記事はパソコン工房のPR記事です。Rakuten MAのPR記事ではありません!)
■ あんちべ講座「Rakuten MAとは」
あんちべ Rakuten MAは、楽天技術研究所から2014年8月に公開された、JavaScriptのみで書かれた形態素解析器です。形態素解析とは文章を単語に切り分け(注1)、さらに各単語の品詞を付与する処理(注2)です。
形態素解析は、テキストを統計的に分析する際にほぼ必須で使われる、なくてはならない基礎技術です。これを応用すると、ある文章の中で頻出する語を求めたり、語彙がどの程度の水準なのかなど文書の特徴を把握したりができます。
注1 文章を単語に切り分け
正確には単語ではなく「形態素」という、意味を持つ最小の単位ごとに切り出します。また、文章を形態素ごとに分割する処理を「分かち書き」といいます。
英語などは単語ごとにスペースで区切られているため単語の切り出しが簡単ですが、日本語の場合はどこで単語として区切るかはそう簡単ではありません。人間が見ても、どこで単語として区切るべきか判断に困るケースもあります。
例:「東京タワー」は「東京」「タワー」と区切るべきか、「東京タワー」という一単語にすべきか
注2 各単語の品詞を付与する処理
正確に言うと、形態素解析には「形態素を原型復元する」という処理も必要です。Rakuten MAは原型復元の機能が備わっていないため、厳密な意味では形態素解析器ではありません。
あんちべ 数ある形態素解析器の中で、Rakuten MAを用いる主な利点は以下の3点です。
- 1. ブラウザ上での実行が可能で、形態素解析にサーバサイドのシステムが必要ありません。形態素解析するたびにサーバに負荷を掛けないため、気軽に実行しても問題ありませんし、クライアントアプリのように利用者に形態素解析器のインストール作業をお願いする必要がなく、即実行可能です。
- 2. 単語ごとに切り出すだけではなく、品詞まで付与できます。品詞の分布を把握したり、特定品詞だけの単語抽出も可能です。
- 3. 学習器(注3)が付いているため、ユーザの手によって特定分野に絞った形態素解析精度を向上することが可能です。
JavaScriptで分かち書きができるものはRakuten MA以外に、TinySegmenterや、分かち書きに加えて原型復元・読み仮名付与の機能を持ち、高速な処理を実現するkuromoji.jsなどがあります。その中でもRakuten MAの持つ他のJavaScript製形態素解析器にない強みは、使いやすい学習器が標準で用意されていることです。
学習器の存在は、さまざまな分野のテキストが存在するWebデータの分析をする際、非常に重要です。新聞で扱うような一般的な文章に対しては非常に高い精度で形態素解析が可能ですが、ジャンルや媒体によっては一般には使われない特定の単語や略語が多数存在することもあり、それが形態素解析の精度に悪影響を与えます。
そこで、取り扱いたいドメインごとの特定の単語を形態素解析器に学習させることによって、形態素解析の精度を高めることができます。実務や研究で形態素解析を活用する場合は、一般的に学習が欠かせません。
JavaScriptだけで簡単に形態素解析ができるRakuten MAで、形態素解析の世界に入門してみてください。
注3 学習器
付け加えると、Rakuten MAの学習器は、逐次で学習可能という特徴を持ちます。これは一旦作成したモデルに対し、追加で学習データを与えて元のモデルを補正できるという意味です。逐次で学習可能な学習器をオンライン学習器といいます。逆に、一括して全データを学習する学習器をバッチ学習器といいます。
学習には大変時間がかかります。ほんの少し学習データを追加したいがために0から全データを学習し直すのは非常に不便です。Rakuten MAの魅力の1つに、少しずつ学習データを追加して、より良い形態素解析結果を出力できるよう補正し続けられるという点が挙げられます。
あんちべ 私のブログで、Rakuten MAによる形態素解析入門の補足記事を書きました。実際に形態素解析の実行と形態素解析のモデル作成・更新をしてみたい方は、こちらもあわせてご覧ください。
■ 「Perl」「Scala」のTwitter検索結果を解析したり、Vim/Emacs判定したり
あんちべさんの作業環境の様子です。Land of Lisp(略)
あんちべ ということで学習と処理が終わりました。お借りした環境で、学習に約4時間半ほどかかりました。
―― わぁい。
あんちべ ちなみにここでいう学習とは、メタデータを付与したコーパスを与えることによってモデルを作成・改善することを指します。
形態素解析における「モデル」とは、「与えられた文字列のどこからどこまでを形態素として切り出すか」、さらに「その単語に最もふさわしい品詞は何か」を推定して割り当てるための情報です。
「メタデータ付与したコーパス」とは、例えば「すもももももももものうち」という文字列があったとき、最初の三文字の「すもも」で一単語を構成し、なおかつ名詞である、という情報を付与したテキストデータです。
今回は学習済みの形態素解析モデルを利用して、Rakuten MAで形態素解析を行いました。
―― ありがとうございます!
あんちべ あわせてデモサイトを作りました。読者の皆さまも試してみてください。
▽ ワードクラウドで遊ぼう :パソコン工房 (つながりづらい場合があります)
―― じゃあデータを入れてみますね。まずは、はてなで使っている言語でもある「Perl」のTwitterでの検索結果を適当に50件くらい入れて、ボタンを押して……。
―― おお、ワードクラウド画像が出てきました。「テスト」や「入門」が大きいですね。あとは「言語」「プログラミング」「サブルーチン」「Ruby」「PHP」などなど。
あんちべ 入れるデータを変えてみるとまた違ってみえると思います。
―― 次は、はてなが「Mackerel」の開発で使っているScalaの検索結果で。
―― あっ……(察し)。ええと、これは解説が必要で、ちょうど試しているときに、以下のslideshareのエントリーが話題になってたんですね。なので仕方ないというか。「速度」がでかいですね。Scalaのコンパイルにかかる時間、はい……。金の弾丸は「札束で殴る=まず良いCPU、SSD」だそうです。参考になります。
▽ Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ | PPT
あんちべ それからもうひとつ、「Vim/Emacs判定器」も作りました。文章を入れると、その文章がVimの話なのかEmacsの話なのかを判定します。
―― おおー。
▽ エディタ判定器 :パソコン工房 (つながりづらい場合があります)
あんちべ 例として「ずっとコーディングしてると小指が痛むエディタと言えば?」と入れると……。
―― ちゃんと「Emacs」って出ました! では「モードのあるエディタは?」……おお「Vim」と出ました。ばっちりですね。他にもいくつか実験したいですが、戦争の火種になりそうなので記事に書くのが恐ろしいです!
あんちべ 皆さま、いろいろ遊んでみてください。
―― 今回はここまで作っていただいて、ありがとうございました。
あんちべ ありがとうございました。
―― パソコン工房さんのサイトでは前回に引き続き、マシンの選定にあたって、さまざまな構成で検証していただきました。検証内容については、以下のパソコン工房さん側の記事をご覧ください!
▽ 「あんちべさんと一緒に Rakuten MA で形態素解析」はてなニュース連動企画 第二弾! : パソコン工房
―― 最後に、Rakuten MA開発者の萩原さん(@mhagiwara、楽天技術研究所NY)にもコメントをいただきましたので、そちらをもって記事を終えたいと思います。読者の皆さま、形態素解析をやってみるときは、パソコン工房のPCをご検討ください(露骨な宣伝)。記事の最後にはプレゼントのお知らせもあります!
萩原さんのコメント
日本語や中国語の分かち書き・品詞付与には、これまで MeCab や Stanford Parser などのサーバーインストール型のシステムが一般的に使われてきました。一方、スマートフォンなどの携帯デバイスや、各種ブラウザ上で動作するプラグインなどが普及するに従い、「クライアント側で手軽に言語処理をしたい」という需要が高まっています。また、楽天市場などEコマースサイトでは、ブランド名などの新語・未知語が商品名の中に次々と登場します。そこで、クライアント側で、Web上の文章をロバストに解析できるツールがあれば便利だと考え、JavaScript だけで書かれた分かち書き・品詞付与システムである RakutenMA を開発・公開しました。
RakutenMA では、オンライン機械学習の枠組みを取り入れることによって、クライアント側のみで、解析誤りを訂正したり、新しい分野の文章がうまく解析できるように再学習(これを分野適応といいます)したりできます。従来のサーバーインストール型の解析システムでも、このような仕組みで手軽にモデルを更新できるものはほとんどありませんでした。これを応用して、ある特定の分野に非常に強い解析器、たとえば、あるマンガの登場人物の名前が完璧に解析できるモデルや、最新のファッション用語を網羅した解析モデルなどが作れたら面白いと考えています。
あとは、公開の本来の目的であった、携帯デバイス上のアプリやブラウザのプラグインなどで、Rakuten MA の「JavaScriptならでは」の便利な使い方が登場するのを楽しみにしています。
■ 小型PC「ECS LIVA」をプレゼント!
※キャンペーンは終了しました。たくさんのご応募、ありがとうございました。
パソコン工房より、日本エリートグループ(ECS)の小型PC「LIVA(Windows 8.1 with Bing インストールモデル)」を1名様にプレゼントします(本体のみ。キーボードやマウス、ディスプレイは付属しません)。
応募方法は、Twitter連携した上で、この記事をはてなブックマークに追加するだけ。詳しくは、下の応募要項をご覧ください。
応募要項
- 応募期間
- 2015年1月8日(木)から2015年1月21日(水)24時まで
- 賞品と当選人数
- ECS LIVA(Windows 8.1 with Bing インストールモデル)本体:1名様
- プロセッサ:Intel Bay Trail-M SoC
- 標準メインメモリ:DDR3L 2GB
- ストレージ:eMMC 64GB
- 光学式ドライブ:非搭載
- グラフィック:Intel HD Graphics(※CPU統合)[HDMI×1 , D-sub×1]
- カードリーダー:非搭載
- オーディオ機能:Realtec ALC282 2 チャンネル(ステレオ)
- ネットワーク:IEEE802.11n/a/g/b、1000BASE-T、Bluetooth 4.0
- USB(2.0対応):USB 3.0×1、USB 2.0×1
- LAN:ギガビットLANポート×1
- サウンド関連:3.5mmコンボジャック(音声出力とマイクイン)×1
- OS:Windows 8.1 with Bing(メディアは付属しておりません)
- 主な付属品:ACアダプター、ドライバCD
- 外形寸法:118mm×70mm×56mm (W×D×H)
- 重量:190g(LIVA本体のみ)
- 備考:HDMIケーブルは付属していません。メモリ、ストレージの変更はできません。
- キーボード:別売
- マウス:別売
- 応募方法
- Twitter連携した上で、この記事をはてなブックマークに追加
- ※プライベートモードでご利用の方は対象となりません
- 当選発表
- 厳正なる抽選の後、本記事で、当選者様を発表させていただきます
- 賞品発送
- 当選発表後、はてなよりメールをお送りし、送付先情報(送付先住所、受取人氏名、電話番号)をお聞きします
- ※プレゼントの発送は日本国内に限らせていただきます
■ 2015年1月26日追記:プレゼント当選者発表!
厳正な抽選のうえ、当選された方を発表します。おめでとうございます!
ECS LIVA(Windows 8.1 with Bing インストールモデル)
当選者の方には、のちほど送付先情報を確認するメールをお送りいたします。
- ※期日までにご返信をいただけなかった場合は、再度抽選を実施し、繰り上げ当選者へ当選権をお渡しします。
- ※繰り上げ当選が発生した場合、発表は、はてなからの当選連絡をもって代えさせていただきます。ご了承ください。