自然言語処理

自然言語処理

分科会「自然言語処理」のメンバー齋藤が分科会の活動を報告します。

■自然言語処理とは何か
その前に、自然言語処理について簡単に説明します。
自然言語とは、日本語や英語など、人間が日常的に用いている言語(自然に用いられている言語)のことを指します。自然言語処理とは、自然言語をそのままコンピューターで処理することです。

例えば私がスイーツ食べ放題のお店を知りたい場合、友人同士なら以下のような会話になるかもしれません。

私:「スイーツ食べ放題に行きたいなぁ。新宿駅の近くにそういうお店ないかな?」
友人A:「○○ビルの××ってお店いいよ。駅東口出てすぐのビルの地下なんだけど」
友人B:「西口から少し歩くけど、△△って店がある。フルーツも食べ放題で最高」
私:「おお、ありがとう!」
友人A・B:「いえいえ」

これと同じことを、PCやスマホで行うとしたら、どうなるでしょうか。

●某検索サイトの画面で、「新宿 スイーツ 食べ放題」と単語を入力して検索する。
●某グルメサイトの画面で、エリア→関東→東京都→新宿(代々木)・千駄ヶ谷を選択して検索する

単語を入力する、エリアをマウス(タップ)で絞るのは、検索するコンピュータにあわせた操作であり、会話と比べると自然とは言いがたいものです。(友人Aに「新宿、スイーツ、食べ放題」と言ったら、「体調悪いの?」と聞き返されることでしょう)

ところで、Appleの携帯端末「iPhone」には、「Siri」という音声認識型パーソナルアシスタント機能があります。

私:「新宿駅の近くにあるスイーツ食べ放題のお店を教えてください」
Siri:「お探ししています…はい、こちらが見つかりました」(検索結果が iPhone画面に表示される)
私:「ありがとう」
Siri:「自分の仕事をしているだけですよ」

Siriさんが分かりやすいよう丁寧に話してみましたが、PCの検索と比べるとだいぶ自然ではないでしょうか。※上記は実際のやりとりです

私が声に出した
「しんじゅくえきのちかくにあるすいーつたべほうだいのおみせをおしえてください」
という音声をSiriさんは取得した後、
「新宿駅の近くにあるスイーツ食べ放題のお店を教えてください」
と変換して、検索処理を行ったことになります。

この言語の解析処理が「自然言語処理」にあたります。
人工知能(コンピュータを使って、学習・推論・判断など人間の知能のはたらきを人工的に実現したもの)の一分野です。

■各自で調査
分科会で検討した結果、「自然言語処理をどのようにソリューションとするか検討するための情報を提供する」という目的が決まりました。
その後、目的に沿った以下のテーマを決めて、各メンバーが興味を持った項目を調査するというスタイルになりました。調査内容は、会社共有のwikiに記載して、メンバー全員が確認できるようにしました。

【テーマ】
●自然言語処理とは
自然言語及び自然言語処理の概要
●自然言語処理でできること
・自然言語処理で何ができるのか
⇒自然言語処理によりどの様な効果をもたらすのか、何がうれしいのかなども
・世の中で自然言語処理がどのように使われているのか
⇒実例
●自然言語処理を使ったアプリ
・世の中にどんなアプリがあるのか
・どのようなAPIが提供されているのか

あるメンバーは「世の中で自然言語処理がどのように使われているのか」を調査し、またあるメンバーは、「自然言語及び自然言語処理の概要」を調査しました。同じ項目でも人によって視点が違うことが分かったり、自分の担当外の項目の調査結果を見ることができて面白かったです。

■発表会
年度末に行われた分科会の発表会では、リーダーがwikiの内容をパワーポイントにまとめて発表しました。その一部「自然言語処理でできること」を紹介します。

◆◆◆ 自然言語処理でできること ◆◆◆

【機械翻訳】
ある自然言語を別の自然言語へ機械的に変換する技術です。
一から十まで完璧な訳文を作るのはまだまだ難しいですが、翻訳作業支援ツールとして活躍しています。
翻訳サイト「エキサイト翻訳」「Google翻訳」
翻訳ソフト「本格翻訳」(ソースネクスト)「The翻訳」(東芝) など

【データマイニング】
データマイニングの定義は「明示されておらず今まで知られていなかったが、役立つ可能性があり、かつ、自明でない情報をデータから抽出すること」です。
大量のデータから使える知識や法則を見つける際に、自然言語処理が必要となります。
以下のようなデータから「柑橘系のジュースがどれくらい買われたか」を知りたい場合、人間なら落ち着いて読めば分かりますが、機械は取り込んだだけでは分かりません。

「コンビニでオレンジジュースを買った」
「スーパーでグレープフルーツジュースが売られていた」
「自動販売機でオレンジのイラストが描かれたミックスジュースを買った」
「私が『買ってきて』と頼んだのは、グレープジュースじゃなくてグレープフルーツジュースだったんだけど…」

【音声認識】
人間の声などをコンピューターに認識させることであり、話し言葉を文字列に変換したり、あるいは音声の特徴をとらえて声を出している人を識別する機能です。手順は以下の通りです。
1.音声を音素に変換する
2.音素を複数の言葉の候補に変換する
3.妥当なものを選択する
上記で例に挙げたSiri、Google音声検索、BizXaaS Voice(金融業界向けインサイダー対策ソリューション。金融機関に勤務する職員の通話をモニタリングすることで、インサイダー取引を未然に防止する)などがあります。

【電子メールフィルタ】
ベイジアンフィルタ (Bayesian Filter)という、迷惑メールフィルタリングソフトがあります。
従来のフィルタリング機能では、受信拒否のアドレス・題名・本文に含まれる特定の単語を、一つ一つ設定する必要があります。
ベイジアンフィルタは、対象データの内容をフィルタが学習して自動的に分類するため、ユーザーが煩雑な単語設定を行う必要がありません。迷惑メールを受け取れば受け取るほど、迷惑メールに該当する単語を自分で学習していくため、振り分け精度があがっていきます。
ベイジアンフィルタの解析は、単語単位でその数値を計算します。英語なら文章を単語単位に分解(スペースで分解)するのは簡単ですが、日本語は単語を区切るための印がないため、自然言語処理で単語単位に分割します。

■まとめ
調査して分かったことは、現在の自然言語処理は多少なりとも確定している基礎的なものに過ぎず、未だに完全な解法がない分野だ、ということです。
完全な解法があるのなら、世界に存在するすべての言語の構造が解明されていることになるからです。

とはいうものの、「完全な解法がないから使えない」というわけでは決してありません。
物理学で宇宙の構造をすべて解明できていなくても、人間は月に降り立ち、太陽系外にロケットを送りこんでいます。
自然言語処理も物理学同様、現在までに構築された言語理論を用いてさまざまな応用を実現しています。

自然言語処理では、コンピュータに合わせた特別な操作は必要ありません。
日常的に用いている言語は、人間が使いやすいインターフェースの1つといえるでしょう。
今後研究が進めば、既存の機能の精度が上がるだけではなく、応用の幅も広がると思われます。
Siriさんとの会話がより充実するだけではなく、自動販売機や駅の券売機と会話をする日も近いかもしれません。

分科会「自然言語処理」の活動報告は以上です。

※上記の報告内容は、下記の資料から一部引用・抜粋しています。
「IT Text 自然言語処理(天野真家・石崎俊・宇津呂武仁・成田真澄・福本淳一 共著/オーム社/2007)」