自然言語処理に欠かせない仕組み
自然言語処理のシステムには、機械が自然言語を理解するための仕組みが組み込まれています。まずは根本的な仕組みについて確認しましょう。
機械可読辞書
コンピューターが自然言語を処理するには、不明な点があったときに参照できる辞書のようなものが必要です。この辞書は、『計算機用辞書』あるいは『機械可読辞書(Machine Readable Dictionary)』と呼ばれます。
システムによって搭載されている辞書は異なりますが、単語の意味や文脈の理解に必要となる情報が、機械に理解できる形で書かれているのが特徴です。
自然言語処理では、コンピューターが形態素解析や構文解析を行う際に、搭載された辞書を参照して意味を理解します。人間が言葉を覚えるのと同じように、コンピューターも辞書を使って内容を把握しているのです。
コーパス
『コーパス』は、自然言語で書かれた文章を集めた、例文集のようなデータベースです。膨大な文章が記録され、容易に検索できるように整理されています。
インターネット上で人間が活用する『コーパス』には日本語・英語など複数の種類があり、実際の使われ方を学習したいときに便利です。
自然言語処理を行うシステムでは、辞書と同様に機械が理解できる形のコーパスを準備しなければなりません。搭載されたコーパスは、解析した文章・単語の実例を検索し、コンピューター側の理解が正しいかチェックする目的で使われます。
自然言語処理の主なステップ
自然言語処理を行うコンピューターは、文章を理解するためにいくつかのステップを踏んでいます。文章解析の流れや、特徴を確認しましょう。
形態素解析
形態素とは、意味を持つ最小の言語単位です。
自然言語処理における『形態素解析』は、文章を最小単位で区切る作業を指します。例えば、『私は家で寝ます』という文章を『私/は/家/で/寝/ます』のように区切り、分解した最小の単位が形態素です。
一つの文章を形態素まで分解した上で解析することで、その文章が何を意味しているのかをコンピューターが理解しやすくなります。
構文解析
形態素ごとに分解された文章は、文章の構造ごとに分類され『構文解析』が行われます。主語・述語のように大きなカテゴリだけでなく、名詞句・動詞句・形容詞句といった種類ごとに細分化していくのが基本です。
構文解析では文章を構造化し、いくつかの解釈を導き出します。例えば、『黄色いひよことニワトリが歩いている』という文章では、『黄色い』が『ひよこ』を修飾しているのか、『ひよことニワトリ』を修飾しているのかは、明確ではありません。
それぞれの解釈が合っているか間違っているかは、構文解析の時点では判断されず、次のステップに進みます。
意味解析
意味解析は、文章の正しい意味を理解するための作業です。構文解析では日本語のルールに沿って、可能性があるものを全てピックアップしますが、それだけでは正しい理解はできません。
『黄色いひよことニワトリが歩いている』という文章を正しく理解するには、『ひよこは黄色い』『にわとりは白(または茶色)が多い』という基礎知識が必要です。
コンピューターは、コーパスの例文やこれまでの傾向から、正解を導き出します。あくまでも、これまでの学習経験や使い方から推察されるものです。膨大なデータから意味を解析すれば、正解に近づきやすくなります。
文脈解析
複数の文章で構成された自然言語をコンピューターが理解するために、『文脈解析』が行われます。前後の文章の意味を理解し、全体の内容を把握するのが目的です。
特に文章が複数になると、主語や係り受けの判断が難しくなります。『次郎は目玉焼きを作った。それは、今日の夕食になる』という文章があった場合、一文に分解するだけでは正しい理解ができません。
『それ』が『目玉焼き』であると理解するには、両方の文をつなげて考える必要があります。自然言語処理の中でも、難易度の高い作業です。新しい技術を取り入れた一部のチャットボットやAIには、複数の文章を理解する機能が備わっています。