自然言語処理の中身と、解析の先にあるもの

自然言語処理の中身と、解析の先にあるもの

そもそも、自然言語処理とは

私たちは日常的に、「コトバ」を使ってコミュニケーションをとることで日々を営んでいます。
こういった、私たち人間が会話で扱う「コトバ」は、ソフトウェア業界で扱う「プログラミング言語」と区別するために「自然言語」と呼ばれます。「自然言語」は私たち人間の文化・歴史の中に脈々と受け継がれながら発展してきたものであり、「プログラミング言語」、つまりコンピュータを意図通りに操作する人工言語とは明確に区別されます。
こうした自然言語を、コンピュータ等を用いて処理することで、人間が生活するうえで何か役立たせることが出来ないか?といった意図で、数十年も前から世界中で研究開発が行われている技術が、「自然言語処理」と呼ばれるものです。

たとえば昨今の、Google翻訳をはじめとした翻訳技術の発達。
あるいは国内の空港ですでに運用が始まっている、逐次通訳をしてくれるメガホン。
これらの技術開発の発展にはたいへん目覚ましいものがあり、ますます注目が集まっています。

中身は、解析、解析、解析

では、そんな自然言語処理という技術の中身は、一体どうなっているのでしょう。
もちろん「翻訳」や「逐次通訳」、さらには「特定ツイートの検出」など様々な技術応用があるのですが、基本的には以下の流れで解析処理が進みます。

いきなり「形態素」など馴染みのないワードが出てきましたが、1つずつ見ていきましょう。
ここでは分かりやすく、「僕は朝にパンを食べる。」という日本語の一文を例に解析を進めてみます。

形態素の解析
そもそも、「形態素」とは何でしょうか。
これは言語学で扱う専門用語で、それ以上分解するとその語で意味をなさなくなるような、言わば「意味をもつコトバの最小単位」のようなものです。
例で言いますと「僕/は/朝/に/パン/を/食べる/。」のように分解され、「朝」や「パン」は名詞、「食べる」は動詞などの品詞の認識も、一般的にはこの段階で行います。

構文の解析
先ほど形態素の解析を行ったことで、文章を「朝」や「パン」「食べる」といった各品詞へと分解できました。
しかしここでは未だ、食べるのは「朝」なのか「パン」なのか、つまり「食べる」の対象が何なのか、誰が「食べる」のかが掴めていません。これを掴もうとするのが構文の解析です。
具体的には、「朝に」が副詞句、「僕」が主語で「食べる」が述語といった、文章の構造を把握するのがこのフェーズです。こういった構造をツリー状に構築する(こうしたツリーは「構文木」と呼ばれます)ことで、その文章の構文を把握します。

意味の解析
構文を解析することで、主語と述語の関係などの”文章の構造”が分かってきました。
ただし未だ、意味の通じる文章として解釈するまでには至っていません。この時点では複数の構文木が可能性としては存在しているからです。例えば、「朝にパン」という商品名の菓子パンをお昼に食べている可能性もあり得ます。
しかし、こうした現実には考えにくいケースは除外して考えたい。そのために、意味の解析を行います。
具体的には、この文章の意味する所は、朝に「パン」を食べるのか、それとも「朝にパン」という菓子パンか何かを食べるのか。一般には「食べる」というワードに対して対応する可能性の高いワードを計算し、これがどちらなのかを判断することで、その文章の意味を掴みます。

文脈の解析
意味を解析することで、文章全体の意味が大まかに掴むことができました。しかし現実には、翻訳だけでなく「特定ツイートの検出」や「記事の分類」などといった技術応用がしたい場合、大抵は複数の文章が関わります。
つまり、そのツイートや記事の文脈を把握する必要が出てくるという訳です。具体的には、「僕は朝にパンを食べる。」のあとに「それは美味しかった。」という文章が続けば、美味しかったのは何か?という意味を把握するために「それ」という指示語が「パン」であることを掴まなければなりません。こういった文脈の把握も、自然言語処理の後段では行います。

解析の先にあるもの

以上のように自然言語に対して様々な”解析”処理を加えることで、その文章の持つ意味や文脈がある程度把握できることが分かりました。これらの解析により、自然言語処理の様々な技術応用が可能になります。
例えば特定政党に対してネガティブな意味合いの単語を多く含むツイートの割合から、その政党が政権を奪取しうる可能性を計算したり。あるいは記事に含まれる表現の傾向から、その記事が男性向けなのか女性向けなのかといった分類を試みたり。基本的な自然言語処理を通じた意味・文脈解析の先には、翻訳・通訳だけでなく上述のような事例、さらには選挙結果予測や会議における感情の可視化など、現在も様々な社会実装が試みられています。