自然言語処理

難しいプログラミング言語が、日本語で説明されていたらどんなにいいか!~プログラミングを説明するプログラム開発

Graham Neubig先生 奈良先端科学技術大学院大学 情報科学研究科

〈現在はCarnegie Mellon University/カーネギーメロン大学(米)〉

 

プログラミングって難しい。例えば「If  x  %  5  == 0」というプログラミング言語で書かれたものは「もしxが偶数であれば」という意味。って、そういう具合に日本語で書いてくれたら、うんとわかりやすいのにね。グラハム先生は、そういう、プログラムを言葉(日本語)で説明してくれるプログラムの開発に取り組んでいます。

みなさん、コンピュータは、プログラミングで情報処理をしていることはご存知と思います。でもプログラミングって難しいですね。例えば、Clojureというプログラム言語で書かれた

(def y

(if (= (mod x 5) 0) “yes” “no”))

を、日本語で「もしxが5で割り切れるならyを『yes』に設定し、そうでなければyを『no』と設定する」と書いてもらえたら、どんなにわかりやすいでしょう。ほかにもJava言語、Pythonなどプログラミング言語にはいろいろな書き方があります。どれも難しいです。

私たちは、難しいプログラミング言語を、日本語のような自然言語で説明してくれる手法に取り組んでいます。

 

きっかけは、私の専門の機械翻訳にあります。機械翻訳とは、英語から日本語への変換といったような、自動的に人間の言葉に翻訳する技術です。機械翻訳はコミュニケーションを円滑にする素晴らしい技術ですが、残念ながらよく失敗します。単語を正しく翻訳したとしても、単語の順番がおかしくなって、意味がわからなくなる問題がよく発生します。

我々はこのような失敗を減らす技術を長年開発してきました。それをどうやってやるか。

 

答えはすべての言語に存在する隠れた構造にあります。

この構造では、それぞれの単語がどの役割を持っているか、それぞれの単語がどう組み合わされるかがわかります。この構造をきちんと解析する手法を開発し、より原文の意味に沿った機械翻訳ができるようになりました。

 

同じことを、プログラミングでも利用することができます。例えば「If  x  %  5  == 0」というプログラミング言語で書かれたものは、「もしxが偶数であれば」という意味です。私たちは、プログラミング言語からも同じような隠れた構造を解析し、これを自動生成できるプログラムを開発しました。

実際にプログラミングを始めた初心者に見せると、プログラムがよりよく理解できたということも確認できました。

 

今後この研究が取り組むべきは、プログラミング言語から日本語への変換でなく、その逆の、日本語からプログラミング言語への翻訳です。

 

日本語で入力したら、プログラムが勝手に出てくる。これはなかなか難しいんです。というのは、日本語の表現には独特の曖昧性があるからです。そこを乗り越え、プログラムをわかりやすく説明できるような変換ができることが課題です。でも日本語でプログラミングできるよう期待していてください。

 

興味がわいたら

『自然言語処理の基本と技術』

奥野陽、Graham Neubig、萩原正人 小町守:監修(翔泳社)

Webやクラウド上の膨大な文字情報の中から、「意味のある」情報だけを取り出して文章を自動的に作る。そんな夢のようなことも実現可能にするのが「自然言語処理」と呼ばれるテクノロジー。この未来に不可欠となるに違いない自然言語処理をコンパクトに図解している。Graham Neubig先生はじめ、この分野の第一線で活躍するエキスパートが執筆。

[出版社のサイトへ]

『自然言語処理』

黒橋禎夫(放送大学教育振興会)

日本を代表する自然言語処理の研究室の一つである京都大学黒橋研修室。みらいぶプラスでも、自然言語処理について解説している黒橋先生の著書。自然言語処理の仕組み、難しさ、今後の展開などを理解し、ウェブサーチや機械翻訳等の自然言語処理の応用システムを健全に利活用する能力を身につけるための大学テキスト。高校生に難しいかもしれない。

[出版社のサイトへ]

『言語処理のための機械学習入門』

高村大也、奥村学(コロナ社)

東京工業大学の自然言語処理の研究室の先生による、自然言語処理における機械学習の利用について理解するためのテキスト。こちらも高校生にはやや難。

[出版社のサイトへ]

自然言語処理を学ぶ推薦書籍

首都大学東京システムデザイン学部 自然言語処理研究室(小町研)HPには、上記も含め、自然言語処理の関する本が推薦されています。

 

自然言語処理が学べる大学

自然言語処理が学べる研究室

首都大学東京システムデザイン学部 自然言語処理研究室(小町研)のHPに全国の大学から、自然言語処理を学ぶことができる研究室がリストアップされています。

 

海外で学ぶなら

◆Stanford University/スタンフォード大学(米)

http://www.stanford.edu/

 

◆Carnegie Mellon University/カーネギーメロン大学(米)

http://www.cmu.edu/

 

◆University of Edinburgh/エディンバラ大学(英)

http://www.ed.ac.uk/

 

※情報処理学会第78回大会 IPSJ-ONE講演より

<慶應義塾大学日吉キャンパス協生館藤原洋記念ホールにて>

他の若手IT研究者の記事を読む

 

⇒先生のプレゼンが見られます(IPSJ-ONEのページへ)

http://ipsj-one.org/2016/videos/6_neubig_fs.mp4

★情報系は特別ページ開設★

AI、IoT、ビッグデータ。広がる情報系。学べる大学もわかる!

情報系の学問はこちらのページにさらに詳しく

・人工知能 ・自然言語処理 ・インターネットと運用技術

・ユビキタスコンピューティング ・コンピュータグラフィクス

・音楽情報処理 ・エンタテインメント情報学 など