株式会社Jurabiさん「形態素解析エンジンAyu」の巻
このコラムでは、「製品開発」や、「オープンソース開発」「コア技術の確立」に携わる人の体験談や戦略などを、対話方式で掲載していこうと思います。
特に気負いもせず、ダラダラと会話して、そのログを紹介することで、「システム開発」「ソフトウェア開発」に携わるということの、もう一つの楽しい側面を、それとなく感じていただけたら楽しいなぁという思いで書いています。
僕個人の、大きな誤解なのかもしれないけど、製品や、それに近いものを開発するというのは、「生産性」を軸にして語られる「受託請負のシステム開発」とはまた違った「ある種のプロジェクトX」的な「男のロマン」があるに違いない!(笑)と思っています。
初めての今回は、うちの会社(株式会社ヌーラボ)とも、取引関係のある、「株式会社Jurabi(じゅらび)」さんに訪問し、エンジニア(そろそろ50歳!)の岡俊行さんと、株式会社Jurabiさんの製品「形態素解析エンジンAyu(デモサイト:http://ayu.jurabi.org/)」について、ビールを片手にお話しをしてみました。
ビール片手に話す岡さん |
僕:……という趣旨でお話しさせていただき、@IT自分戦略研究所さんにBlogみたいなコンテンツができるらしいので、掲載しようかと思っています。まず初めに、「株式会社Jurabi」は、どのような会社さんですか?
岡さん:いきなり、難しい質問ですね(笑)。知識と理解力、技術力、調査力という3つのパワーを武器に難易度の高い受託開発や先端技術に対してどんどんチャレンジしていく会社でしょうか。あと、壁を乗り越える精神力とお客様に対する心づかいは非常に重視していると思います。
僕:岡さんの主たる業務は、なんでしょうか?
岡さん:主たる業務は、「システム開発」の受託や、「システム開発のコンサルティング」です。
僕:どういったお客様がいらっしゃるのですか?
岡さん:証券や、銀行などの金融系です。そこの基幹システムの開発や、コンサルティングをやっています。
僕:会社では、岡さんの立場というか、役職はどういった……?
岡さん:CTOですが、今の仕事はわたしのバックボーンと、ちょっと、ずれちゃっていますねぇ。でも、過去に培ってきたものがあるので、精神的な支え役になっています。
僕:Jurabiさんの「形態素解析エンジンAyu」を作ったきっかけってなんだったのですか? あ! 「形態素解析エンジンAyu」って、そもそもどういったものですか?(笑)
岡さん:Ayuは日本語の形態素解析のエンジンです。結構昔、6~7年前に、暇だったから作ったのですよ(笑)。そのころはフリーで、独りでやっていて、仕事がなくて(笑)。
Jurabiさんの書籍棚 |
Ayuを作る前に、某大手ポータルサイトの機械翻訳のエンジンを作っていたのです。
日本語から、英語に機械翻訳するのですけど、パーツとして、「形態素解析」「構文解析」「英語への構文変換」「英語生成」というものがあるのですが、わたしがやっていたのは、「形態素解析」以外の、「構文解析」「構文変換」「英語生成」でした。
僕:え!? その時は、「形態素解析」ってやってなかったのですか。
岡さん:はい。やってなかったので、やってみたかった(笑)。もう一度、すべてを通して「機械翻訳」を作りなおしてみたかったのです。その第1弾として、「形態素解析」をやった。
僕:機械翻訳で、日本語から英語に変換するときって、「意味論」を取らないといけないじゃないですか。難しそうですけど、そのときも、やはり「意味論」を取ったのですか?
岡さん:はい。ここでの、「意味論」っていうのは、「意味属性」みたいなものですね。オントロジーのような「分類」です。動詞に注目して、それから主語、述語を見つけ出すようなことをしていました。「英語への構文変換」や、「構文解析」で、「意味論」の解析は使いましたね。
僕:ほー。やっぱり、そういうことやるのですね。ところで、「形態素解析エンジンAyu」の名前の由来ってなんですか?
岡さん:魚の「アユ」です。機械翻訳のシステムのコードネームが「鳥シリーズ」だったので、今回は「魚シリーズ」で、「あいうえお順」にと。「アユ」の次は「イワナ」。出来る限り、川魚で(笑)。
僕:「Ayu」なので、てっきり「人の名前」からだろうと思っていました。
岡さん:「浜崎あゆみ」とか(笑)。
僕:どんな場面で、Ayuを使いますか?
岡さん:「ジオコーディング」という分野で使いました。住所から、緯度、経度を求める仕組みですね。昔は手書きで、住所がバラバラだったのですよ。形態素解析を使って、住所を、都道府県や、市区町村など6個位に分解しました。古い住所と新しい住所をマッピングしたりとかね。
他には、ユーザが「何かについての意見」を投稿するサイトで。キーワードを入力して、キーワードに関連する「意見」を表示させたりするようなことにも使いました。キーワードとキーワードの距離を算出して、近いものを抽出するような感じですね。そこでは、最初にキーワードの学習として(キーワードとキーワードの距離を出す素材として)、ウィキペディアを読み込ませました。
僕:えっと、「学習」というと「機械学習」?
岡さん:ん~、「学習」というか、ポアソン分布を使って、キーワードとキーワードの距離を取っただけですね。
僕:今後、「形態素解析」は、どういうところで役立つと思いますか?
岡さん:まぁ、テキスト検索とかでしょうね。「Nグラムとどっちがいいか?」という課題はあります。形態素解析で、テキスト検索をすると「ゴミ(検索キーワードと関係のないもの)」が減りますが、漏れがでやすいのですよ。Nグラムは、その逆で。
僕:「Nグラム」って?
岡さん:「形態素解析」のように「意味」で、文章を切るわけじゃなく、2文字ずつとか、N文字ずつ「意味」に関係なく、文章を切る方法ですね。
僕:僕はですね、「形態素解析」は「占い」に役立つと思うのですよ(笑)。
岡さん:どんな?(笑)
僕:統計学に基づくような……。たとえば、ブログのように、日付毎に区切られているものがあるじゃないですか。「数日前にあるキーワードを書いていると、その数日後には、あることが起きている」のような統計が取れたら、まるで未来予測のようなことができる(笑)。
岡さん:テクニカル分析のような(笑)。
僕:超高度で、頭がいいことやっているのだけど、「占い」に見えてしまう。テクニカルに頑張るのだけど、結果的には、仕方なく「占い」になっちゃう(笑)。
岡さん:使う人からすれば、そう見えたほうが入りやすいし、使いやすい。そう見えなければ、使わないだろうしねぇ(笑)。
僕:さっき「キーワードとキーワードの距離を測る」って言っていたじゃないですか。そういう「文字」から「数字」に変わるマジックは、これからも多く使われるようになる気がします。それをどう活用するのかは、僕にはわかりませんけど(笑)。
Jurabiさんの田岡社長 |
岡さん:遊びネタは沢山あるけど、シリアスネタで、どこまでやれるか? だよね。
僕:例えば、シリアスネタだと?
岡さん:「データマイニング」や「テキストマイニング」。「クラスタリング」「分類」で使われる。
僕:あー、「分類」! 僕も「分類」って面白いって思っていてですね、「繋がらないSNS(ソーシャル・ネットワーク・システム)」とかって、できないかな? と思いますね。また、遊びネタですけど(笑)。
岡さん:「ネットワーク」なのに「繋がらない」(笑)?
僕:ほら、SNSって、人と人とが凄く密に繋がるじゃないですか。本当は、そんなに繋がっているほど気持ちのある人って、少ないのに。本当は、薄い繋がりのことが多いのに(笑)。繋がってたくないのに(言いすぎ)。どちらかと言えば、たぶん、みんな薄く繋がっていたいはずなのに、楽しくて始めたSNSが、だんだんと面倒になるというか、なぜか、疲れてくる。密に繋がっちゃっているから。
岡さん:「足跡」とか、「コメントつけなきゃ!」とかを気にしたり(笑)。
僕:そこで、「分類」という感じで、繋がってはいないのだけど、(形態素解析を使う範囲では)ブログの記事や、メールの内容とかを収集、分析することで、人を「趣味趣向」や、「今、興味のあること」で「分類」して、同じ「分類」の人だけ繋がっている感があるようなSNSができるんじゃないかな? と思います。興味が薄れていくと、自然に、今の「分類」から別の「分類」になっちゃう。繋がりがなくなる。
同じ「分類」のクラスタ内だけで、(Twitterのような)「他人のボヤキ」が聞こえるような感じのものがあると、ノイズがなくて面白いなぁと思います。
岡さん:2ちゃんねるの「板」や「スレ」が勝手に生成される感じだね(笑)。
僕:セカンドライフは、疑似空間における「位置」でそれが可能になっていますけど、「趣味趣向」での「分類」とかで、そのような体験ができると面白いですね。
まぁ、自分ではできもしないことを、勝手に言ってます(笑)。
岡さん:面白いですね。橋本さん、作りましょうよー。
僕:今後、「自然言語処理系」で何かやりたいことって、あります?
岡さん:やっぱり、機械翻訳。機械翻訳の精度が低いので、何とかしたいですね。
僕:では、そろそろ、終わりますが、最後の締めでいい質問を見つけました(笑)。今から「形態素解析」にチャレンジしようとしている人に何か一言お願いします。
岡さん:ある意味、完成された技術なのですよね。「MeCab」や、「茶筌」を超えるものは、なかなか作れない。「形態素解析」後の、「構文解析」、「意味解析」と合わせて、「形態素解析」の精度を上げてもらいたい。
究極の目標は、自然言語の理解。人工無能ではなく、ちゃんと会話ができること!(笑)
岡さんは、もうすぐ50歳とのことでしたが、とても若々しいです。特に僕が「日本語スクリプトの作成」にチャレンジして以来、興味を持っている「日本語」とその周辺技術に触れることが出来たので、とても楽しかったです。
しかし、「暇だったから作った」という、なんとも面白い動機に肩透かしを食らいましたが、いやいや、多分、その後に言っていた「機械翻訳を一通り作りなおしてみたかった」というのが本音でしょう(笑)。
「形態素解析」を「コア技術」にして、統計分析などを絡めていくと、実に面白い発見があって、可能性がまだまだあるなぁ……と思いました。確かに「形態素解析」は完成された技術で「古典」かもしれませんが、実装するには、時間がかかるし、勉強しなければいけなくて、なかなか真似できない技術だと思います。
オモロー!
今後も、今回のように「製品開発」や「オープンソース開発」、「コア技術の開拓」などを軸に、ビール片手にお話ししてくださる方を募集しています。ご連絡ください。