「ゆるふわ非構造 #0」に行ってきたよ

77d9bf4ca79842640b85e7ad94851ea8_s

なんとなく勉強会・イベントめぐりをすることにしたのです。
ということで、たまにこんな感じのレポートをあげます。

手始めに…と言うと主催者の方に失礼だけれど、
「ゆるふわ非構造 #0」
におじゃましてきたよ!

「ゆるふわ非構造」ってなに? というのがまず興味をそそられるけど。
親コミュニティとして「東京スクラッパー」
という「Webスクレイピング」をテーマにした集まりがあって、
その関連勉強会という位置づけだと勝手に理解して行ってきました。

たとえば、Webスクレイピングして「店舗の位置情報」などといった
「構造化データ」を取得できるんだったら便利なんだけど、
得られるデータが

  • 誰かが適当に書いた文章
  • 誰かが適当にしゃべった音声
  • 誰かが適当に描いた絵(とか写真)

みたいに、コンピュータには理解しづらい「非構造データ」だと困っちゃうよねー。
じゃあ、そういうのを扱うにはどうすればいいの? っていうのを話し合う会でした。

早い話が、

  • 自然言語
  • 音声データ
  • 画像データ

の処理について、ってことですね。

ちなみに誰も信じてくれないのですが、
ぼくは専攻が自然言語処理で、
かつて某社ではクローラーとスクレイパーの開発をやっていたのです。
だから、物見遊山で行ったんじゃなくて「最近の動向はどうなのかなー」って
興味があったから行ったんだからね。ぷんぷん。

非構造データ処理の基礎

で、会はだいたい二部構成。最初に「非構造データ処理の基礎」
ということで、

  • 自然言語処理の基礎知識
  • 音声解析・画像認識の基礎知識

を軽く説明してもらいました。

自然言語処理のほうはこちらのスライドで説明してくれました。

自然言語処理って、けっきょくおおまかにわけると

  • 情報の抽出
  • 情報の比較
  • 情報の高次化(抽象化。要約・概念抽出)

のことだよーと。
…ぼくがやってた「機械翻訳」は立ち入るスキもねぇorz(ただの愚痴です。人気ないのね)。

で、ツール・手法としては、

  • 形態素解析器
    • テキストを構文上の最少単位に分解するツール
      • ChasenとかMeCabとか。メジャーすぎるのでリンクしません
      • 今はR用に「RMeCab」もあるんだって…
      • 前もちょっとつぶやいたけどJava用に「kuromoji」ってのができてた!
        Solrとかで使ってるやつ。
        アティリカ って会社がつくって、
        Apacheに寄付したらしい。えらい!(主に「Javaでやった」というところが)
  • Ngramによる分析
    • 形態素リストから連なるn個を見てテキスト要約などをする。
      へぇ…。ぼく、サマライズの研究したことないので知らなかった。
      こんどやってみよう
  • 構文解析
    • すっごい簡単に言うと、文章を中学英語で習った「SVO」「SVC」とかに
      分析するやつです

      • 京大が 「KNP」
        として公開しててオンラインで試せます。辞書がでけえ。圧縮されて
        ても800MBある…

などがあるよ。課題としては、

  • Twitterとかむちゃくちゃなので、「非文」(語弊があるけど“正しくない”文
    を言語学的にこう呼ぶ)が多くて困るね
  • 処理するデータ量は増えてるけど並列化が大変だよね
    • ここらへん話をしなかったけど、自然文は並列処理が困難なデータだと思う

かなー、みたいな感じでした。

いっぽう、音声解析・画像認識については、主催者さんがホワイトボードで
ていねいに(笑)解説してくださって、

  • どちらも n次元の波の情報として捉えることができる
  • その波の特徴を抽出して、パターン認識をするんだよ

ってことでした(というかあの短い時間じゃこれ以上の説明はできん)。

で、ツールとしては、

  • 音声
    • 日本語のオープンソース音声認識エンジン 「Julius」
      っていうのがある。いつの間にかフリーの辞書もついていたらしい
  • 画像認識
    • OpenCV。説明不要。まあ、日本語テキストの認識っていうことでは
      日本語OCRライブラリについて言及があってもよかったのかなー

があるね、ってことでした。

ちなみにびっくりしたのは、どうやらJuliusって意外にフットプリント小さい
らしいってこと。会場に「Raspberry Pi」にJuliusを入れて家電コントロール
しているという女性がいらっしゃったのでホエー…と。うらやましい! やりたい!

アンカンファレンス

あとは、5人1組のチームにわかれていくつかのテーマに沿ってトークを
していました。

テーマのひとつは、第0回ということもあって「今後はどんなことをしていったらいいか」。
特に、

  1. すばやく興味のもてるOutputをゲットできないとつまらないから、
    MeCabとかJuliusとかOpenCVとかの道具をかんたんにそろえられないかなー
  2. フォーラムとかほしいよね
  3. この分野ではどうしても微積分・線形代数・統計の知識が必要。
    どうすべきか

というのを解決したいよね、ということでした。

1について、個人的には「AMIとかDockerで環境配布すればいいんじゃないの?」と
思ったんだけれど、「使う人はサーバ(仮想マシン)とローカルマシンでシームレス
につながっていてほしい」というニーズを指摘されて、ちと目からうろこでした。
そうすると、Homebrewとか使うしかないんだろうね。

あと、「Rだとインプット/アウトプットからビジュアライゼーションまでオールイ
ンワンでできそうだから、そういう環境配布にいちばん向いてるかも」という意見も。
むう。ぼくのPerl人生は終わったな。

2は、ほんと、あったら楽しいんだけどフォーラムって参加人数が多くてテーマが幅
広いところほど活発になるという矛盾があるので、専門性が高いのがネックだよね…。
いっぽうで、会場の人が「Stackoverflowではネガティブなことは言わないのがルール
でそれがいい」と言ってた。Stackoverflowがそうだというのは知らなかったけど、
そのルールはけっこううまく働くので必須かもね。

3は…オレは文系なんだよ! 大学院の受験前日に高校数学三年分を一夜漬けした
男に言うなよ! あ、関係ないな…。

数学の知識はたしかに必要なんだけれど、「必要なのは計算式の理解とか証明能力と
かじゃなくて、アルゴリズムとして理解できるかどうか」みたいな話が出てました。
んー。ぼくもTF-IDFとか、そんな感じで理解して実装したなあ…。

余談

会場で聞いたアイデア。

  • Webコミュニティ「つまったー」をつくる
    • おもしろいネーミングなので、誰かRailsで15分でつくるんだ!
  • 音声認識で「ものまねレコメンド」
    • 「あなたは美川憲一のものまねに向いています」とかレコメンドする。
      やばい。次世代ビジネスモデルの片鱗を感じた!(おおげさ)

ということで、なかなか楽しい会でした。
続けてやってほしーな。
ほんとは親イベントの「東京スクラッパー」も行きたいんだけど^^;

さあ、次はどこの会に行こうかな?!