6-2-1 自然言語処理とは何か

朝起きて、ニュースを読む。
メッセージを返す。
検索窓に知りたいことを打ち込む。
誰かのポストを読んで、「うれしそうだな」「怒っているのかな」と感じる。

こうしたことを、私たちはほとんど無意識にしています。
でも機械にとって、言葉は最初から意味のあるものではありません。
機械に見えているのは、文字の並びや記号の列です。
そこから

・どこで区切ればいいのか
・何が主語で、何が述語なのか
・この文は何を伝えたいのか
・どう返事をすればよいのか

を読み取るには、たくさんの工夫が必要です。
その工夫の集まりが、自然言語処理です。
自然言語処理とは、ひとことで言えば、人が使う言葉を、機械が扱えるようにする技術のことです。
そしてその仕事は、大きく分けると、言葉を分ける、意味を読み取る、言葉を返すの三つに整理できます。

■ 形態素解析と構文解析
― まずは、言葉を分ける

言葉を理解するには、まずどこで区切るかを知らなければなりません。
たとえば日本語は、英語のように単語と単語の間にいつも空白が入っているわけではありませんよね。

「私は本を読む」

という文も、機械にとっては最初はただの文字の並びです。
でも私たちは自然に、





読む

と区切れます。

これを行うのが、形態素解析です。

形態素解析では、文を、意味を持つ最小の単位に分けていきます
これは、長い文章を読む前に、まず文を単語カードに切り分けて机に並べるような作業に近いです。
でも、区切るだけではまだ足りません。

次に知りたくなるのは、

・何が主語なのか
・何をしているのか
・どの言葉がどの言葉にかかっているのか

です。

これを扱うのが、構文解析です。
構文解析は、言葉どうしのつながりを見て、文の骨組みをつかもうとする仕事です。

たとえるなら、形態素解析が、文を単語の部品に分ける作業だとすれば、構文解析はその部品を見ながら「この部品とこの部品は、こうつながっている」と組み立て図を描く作業に近いです。

つまり自然言語処理は、いきなり意味を読むのではなく、まず言葉を分けて、骨組みを知るところから始まるのです。

■ 感情分析と情報検索
― 次に、意味を読み取る

言葉を分けて、文の形が見えてくると、今度はその文が何を意味しているのかを知りたくなります。
ここで出てくるのが、感情分析や情報検索です。

感情分析

感情分析では、文章を読んで、

・うれしい
・怒っている
・悲しい
・好意的
・否定的

といった感情や評価を読み取ろうとします

たとえばレビュー文なら、「最高だった」「もう二度と買わない」では、感じ方がかなり違いますよね。
感情分析は、文章の中にあるそうした気持ちの向きを見つける仕事です。
これは、手紙を読んで「この人、ちょっと怒ってるかも」「すごく喜んでるな」と感じ取るのに似ています。

情報検索

情報検索は、知りたいことに合う情報を、たくさんの文書の中から探す仕事です。

たとえば検索エンジンで「G検定 勉強法」と打つと、関連するページが並びますよね。
ここでは機械が、入力された言葉は何を求めているのか、どの文書がそれに近いのかを考えて、順番をつけています。
これは、大きな図書館で「このテーマに合う本はどれだろう」と探すのに少し似ています。

つまり自然言語処理は、ただ文を読めるようになるだけでなく、その中から感情や必要な情報を見つけることもしているのです。

機械翻訳・文書要約・質問応答
― そして、言葉を返す

自然言語処理の面白いところは、読むだけでは終わらないことです。
機械は、言葉を読んだあとで、別の言葉にして返すこともできます。

ここで出てくるのが、

・機械翻訳
・文書要約
・質問応答

です。

機械翻訳

機械翻訳は、ある言語の文を、別の言語の文へ変える仕事です。
たとえば英語を日本語に訳すとき。これは単語を一つずつ置き換えるだけではうまくいきません。
文全体の意味を読み取って、別の言葉の流れとして自然に組み直す必要があります。
だから機械翻訳は、自然言語処理の中でも読む力と書く力の両方が必要な代表例だと言えます。

文書要約

文書要約は、長い文章の大事な部分を取り出して、短くまとめる仕事です。
たとえば長い記事を読んで、「つまり何が言いたいの?」を短く言い直すようなものです。
これは、人間にとってもなかなか難しい作業ですよね。
全部をそのまま残すのではなく、本質を選んで短くする必要があるからです。
だから文書要約は、自然言語処理の中でも意味をつかみ、本質を残して言い直す力が問われるタスクです。

質問応答

質問応答は、与えられた質問に対して、適切な答えを返す仕事です。

たとえば、

「富士山の高さは?」
「この文章の主人公は誰?」
「会議は何時からですか?」

といった問いに答える。

これは単なる検索より一歩進んでいて、文章の中から必要な情報を見つけたり、質問の意図を読んだりしなければなりません。
つまり質問応答は、言葉を読んで、問いに合う形で返すという、自然言語処理らしさがとてもよく表れた仕事なのです。

まとめ

ここまで見てくると、自然言語処理は、一つの技術というより、言葉にまつわるいろいろな仕事の集まりだとわかります。

・言葉を分ける
・文の骨組みを知る
・感情を読む
・情報を探す
・翻訳する
・要約する
・質問に答える

つまり自然言語処理とは、人が言葉を使ってしていることを、少しずつ機械にもできるようにしていく試みなのです。

「自然言語」と聞くと、少しかたい言葉に見えるかもしれません。
でも、意味はとても身近です。

自然言語とは、私たちがふだん使っている言葉のことです。
日本語や英語のように、人が生活の中で話し、書き、少しずつ育ててきた言葉ですね。

たとえば、

・今日は寒いね
・この文章、やさしく言い換えて
・旅行の計画を考えて
・なんだか少しさみしい

こうした、日常の会話や文章に使われる言葉は、みんな自然言語です。

これに対して、よく対比されるのがプログラミング言語です。
プログラミング言語は、機械に処理をさせるために、人がルールをはっきり決めて作った言葉です。
自然言語が人の生活の中で生まれた言葉だとすれば、プログラミング言語は機械に正確な命令を伝えるための言葉だと言えます。

この対比で考えると、生成AIのおもしろさも見えてきます。

昔は、コンピュータに何かをさせるためには、人が機械に合わせて、きっちりした命令を書かなければなりませんでした。
でも今は、

・もう少しやさしくして
・初心者向けに説明して
・この気持ちを言葉にして

のように、私たちがいつも使っている自然な言葉で、機械とやりとりできるようになっています。

つまり生成AIのすごさのひとつは、人が機械の言葉を覚えるのではなく、機械のほうが人の自然言語に近づいてきたことなのかもしれません。
機械がただ計算する道具であるだけでなく、言葉を通して人の世界に一歩近づいてきた、ということだと考えると、面白い進化だなあと思うのです。

next ▶ 機械にとって、言葉とは何か