見出し画像

誰でもわかる!「構文解析」とは

こんにちは。言語理解研究所(以下、ILU)の開発本部 本社開発部です。

今回は、「自然言語処理」で「形態素解析」の次のステップでおこなわれる「構文解析こうぶんかいせき」について、「自然言語処理」を専門とするILUが、あえて専門用語を使わず、分かりやすく解説しました。

前回記事の振り返り

前回までの記事「誰でもわかる!「自然言語処理」とは」、「誰でもわかる!「形態素解析」とは」に続いて、今回は「構文解析」について解説します。 

前回までの記事で、コンピュータが文を理解する過程は、3つの手順から成り立っているとお伝えしました。

<コンピュータが文を理解する手順>
1.文法ルールを使って、文を意味の通じる最小単位である「単語」まで分けます。
2.単語の品詞を手がかりに、文の要素(主語・述語・目的語など)を特定します。
3.文の要素の組み合わせから、文の意味を理解します。

<コンピュータが文を理解する手順>

今回お伝えする「構文解析」は、手順「2.単語の品詞を手がかりに、文の要素(主語・述語・目的語など)を特定する方法」にあたります。 

自然言語処理における構文解析は、文節の働きを明らかにし、文節と文節の関係や、どのように結びついているのかを特定することです。
端的に言えば、「私は宝くじに当たりました」で「主語=私は」「目的語=宝くじに」「述語=当たりました」と特定するのが、構文解析です。

文節とは?文節どうしにはどんな関係がある?

<コンピュータが文を理解する手順>の手順1によって分けられた「単語」を組み合わせると、「文節」になります。
文節とは、発音や意味のうえで不自然にならないように、文を区切ったときの最小の単位です。

小中学校の国文法で、文節は、『「ネ」や「ヨ」を入れて区切れるかどうかを確認する』と教わったと思います。
例えば、「私は今年の夏に宝くじに当たりました」 は、「私は (ネ) 今年の(ネ)夏に(ネ)宝くじに (ネ) 当たりました (ヨ)」となり、「私は」「今年の」「夏に」「宝くじに」「当たりました」の5つの文節から構成されていることが分かります。

文は、さまざまな働きをする文節がお互いに関係をもつことで成り立っています。本記事では、文を組み立てる部分となる文節や文節のまとまり(連文節)を、「文の要素」と呼びます。

● 主語・述語の関係
主語は、「何(誰)が」を表します。述語は、「どうする」「どんなだ」「何だ」「ある・いる」「ない」を表します。
主語が述語に係り、述語が主語を受けるという関係を、主語・述語の関係といいます。

● 修飾・被修飾の関係
修飾語は、他の文節を詳しく説明したり、内容を補ったりします。
また、修飾語によって詳しく説明される(内容を補われる)文節を被修飾語といいます。
修飾語が被修飾語に係り、被修飾語が修飾語を受けるという関係を、修飾・被修飾の関係といいます。

接続の関係、独立の関係については、今回の記事では説明を割愛いたします。

目的語とは?

日本語で書かれた文の構造を理解する上で、主語・述語の関係とともに重要となるのが「目的語」です。
目的語とは何でしょうか。なぜ目的語が重要なのでしょうか。 

目的語は、文を構成する要素のひとつで、述語の対象「何(誰)を」を表します。
日本語には「犬が逃げた」のように、主語と述語だけで成り立つ文もありますが、述語の対象となる目的語を文の要素として加えなければ、述語の表す意味を正確に伝えることができない場合があります。

例えば、「当たる」という動詞を述語として文を書く際、主語と述語だけの「私は当たりました」よりも、「何に」当たったのかを明示した「私は宝くじに当たりました」の方が、正確に情報を伝えることができます。

だからこそ、日本語で書かれた文の構造を把握するうえでは、主語・述語の関係とともに、目的語が重要になるのです。

構文解析のひとつである「係り受け解析」とは?構文解析の曖昧性って?

日本語の構文解析では、「係り受け解析」を用いる手法が一般的です。
「係り受け」とは、何でしょうか。

係り受けとは、主語・述語の関係、修飾・被修飾の関係のように、1つの文の中で2つの文節が相互に関連し合っていることをいいます。
以下に挙げる3つは全て係り受けの関係です。

こうした関係では「AがBに係っている」「BがAを受けている」と表現します。またAを「係る文節」、Bを「受ける文節」といいます。

例えば、「私は今年の夏に宝くじに当たりました」の係り受けの関係は、以下の図のとおりです。

ここから「誰=私」が「何=宝くじ」に「いつ=今年の夏」に当たったのがわかります。

自然言語処理における構文解析は、この係り受け関係を明確にすることで、文の構造を明らかにするステップです。
これらの情報を使って、<コンピュータが文を理解する手順>の手順3で文の意味を理解できるようになります(手順3を「意味解析」といいます)。

ところで、構文解析には曖昧性があります。
例えば「私は父と映画を観ました」という文では、2種類の解釈が考えられます。

私たちは当然、前者の解釈が正しいと考えますが、なぜでしょうか。
それは、私たちが普段無意識に、言葉の意味や組み合わせを考えながら、係り受け関係を明確にしているからです。

まとめ

今回は、自然言語処理で形態素解析に続いておこなわれる構文解析について解説しました。
人間にとっては解釈が明白に思える文も、コンピュータにとっては曖昧な文であることがあります。そのため、続く意味解析で、構文解析で得た解釈の中から正しい解釈を導き出す必要があるのです。

意味解析については、ILUの技術紹介の記事でふれる予定です。
読み逃したくないという方は、ぜひ、ILUのアカウントフォローをお願いします。