前回まで、自然言語処理の中で使用する
機械学習に焦点を当てて解説してきた。
具体的には、
学習時に正解データも与えて学習する教師あり学習、
その中でも二つ以上のラベルに分類する分類器
というものを扱ってきた。
しかし、これはあくまで手段だ。
そろそろ、大元の自然言語処理の方を進めたい。
というわけで、今回は
メインとなる自然言語処理の詳細に入っていこう。
まずは、(恐らく)解析対象となる日本語の構造と、
解析処理の概要を解説する。
その後、解析した自然言語の意味理解と、
その現実問題への応用、という流れだ。
その中でも、まず今回は
日本語の構造がどうなっているかを見ていこう。
なお、本講座は以下の本を参考に進めている。
もしよかったら、中身を覗いてみて欲しい。
日本語の構造
そもそも、私たちが普段使っている日本語は、
どのような構造になっているのだろうか。
これが分からないと、
機械に落とし込むことができない。
というわけで、こちらから見ていこう。
日本語の階層構造
まず、階層構造を考えることができる。
それぞれの意味は後で解説するので、
先に階層構造を全て見ていこう。
一番大きな階層を文章とする。
文章の中には、複数の段落がある。
その各段落は、
文や節と呼ばれるもので構成されている。
この文や節はさらに文節、
あるいは句に分割できる。
そこからさらに単語・形態素という
単位まで分解できる。
意味を保ったまま分解できるのはここまでで、
これ以上は1文字ずつ分解することになっていく。
最終的に、以下のような順番で並んでいることになる。
- 文章
- 段落
- 文・節
- 文節
- 句
- 単語・形態素
- 文・節
- 段落
文節からも単語・形態素への分解は可能なので、
そこだけ気を付けて欲しい。
では、それぞれの意味を解説していこう。
単語・形態素
まず形態素とは、意味を持つ最小単位だ。
それに対し、単語とは
まとまった意味を持つ最小の単位のこと。
何が違うんだということだが、
違う例を一つ取り上げてみよう。
例えば、形容動詞の「複雑だ」という単語。
これは、形態素に分けると、
「複雑」と「だ」という二つの形態素から成る。
こういった違いが現れる場合がある。
で、これについてだが…
実際に解析する際はツールを使うので、
いったんはそんなもんなんだなという理解だ。
明確に違いをはっきりさせたい場合があれば、
そのときに補足しよう。
文節、句
句とは、1つの意味を表す単語のまとまりのこと。
よく、名詞句とか、動詞句とか言ったりする。
例えば、「古い本」というのは、一つの名詞句だ。
もう一つ上げると、「店に行く」というのも、
一つの動詞句となる。
それに対し、文節とは、文を読むときに
区切っても不自然にならない最小単位のことを言う。
これは、自立語と付属語で構成されている。
自立語と付属語については、後で詳しく解説しよう。
で、このようにこれら二つは
単語をどのようにまとめるかという観点で異なる。
自然言語処理においては、
日本語は文節を用いることが多い。
文・節
この説明に入る前に、もう一つ解説を。
主語と述語だ。
動作を例にとると分かりやすいのだが、
その動作をする主体のことを主語、動作を述語という。
で、文は句点「。」や
疑問符「?」などで区切られた単位。
これは非常に分かりやすいと思う。
で、この中には省略されている場合もあるが、
主語と述語の組み合わせがある。
この組み合わせが一つの文を単文、
複数あるものを複文と呼ぶ。
この、複文の中にある一つの主語・述語の
組み合わせのことを節と呼ぶのだ。
例えば、
雨が降ってきたので、洗濯物を室内に取り込んだ。
これは、複文だ。
節で分けると、
前半の「雨が降ってきたので」が一つ、
後ろの「洗濯物を室内に取り込んだ」が一つ。
前半は「雨」が主語、
「降ってきた」が述語となっている。
後半は主語が省略されているが「私」が妥当だろう、
「取り込んだ」が述語だ。
ここまでが、一つの文に対する階層構造となる。
段落・文章
ここからは、文章自体の構造だ。
文が一つの主題について連結されたものを段落という。
で、最後にこの段落が複数まとまったものが、文章だ。
…形態素以外に関しては、実は中学の国語の内容だ。
覚えていただろうか?私は半分くらい忘れていた
格文法
ここは中学の内容ではない。
格文法というのは、述語をメインとして、
その他の部分が述語に対して
どのような役割を表しているかという
意味関係を捉えるものだ。
この役割のことを格と呼ぶ。
これは表層格、深層格という二つに分けることができる。
表層格はその名の通り、
表面上の構文的な役割を表しているもの。
これは、日本語だと格助詞と呼ばれる助詞で決まる。
それに対し、具体的に
どんな意味的な役割を表しているのかが、深層格だ。
この深層格は、以下のようなものがある。
この表は、参考書籍「Javaで学ぶ自然言語処理と機械学習」のP8から引用し、一部改変している。
深層格 | 役割 |
---|---|
動作主格(agent) | 動作を引き起こすもの |
対象格(object) | 動作や変化の影響を受ける対象、 属性を持つ対象 |
目標格(goal) | 移動における終点、 変化における最終状態 |
源泉格(source) | 移動における始点、 変化における初期状態 |
場所格(place) | 出来事が起こる場所や位置 |
時間格(time) | 出来事が起こる時間 |
具体例を出そう。
以下、二つの文を載せる。
太郎が 彼女に 本を 貸した
太郎が 6時に 家を 出発した
ともに、最後の部分が述語だ。
そして、両方とも各部分の助詞が共通しており、
表層格は共通している。
で、先頭の深層格も
動作を引き起こしている動作主格で共通。
では、二つ目と三つ目を見てみよう。
一文目、
二つ目の「彼女に」は対象を表しているので目標格、
三つ目の「本を」は物を表しているので対象格となる。
二文目、
二つ目の「6時に」は時間を表しているので時間格、
三つ目の「家を」は移動の出発点を表しているので源泉格だ。
このように、同じ表層格でも、
異なる深層格を表していることもある。
単語の分類
これまた中学の内容だ。
単語には、品詞という分類があったことを
覚えているだろうか。
品詞とは、その単語が持つ性質だ。
先に、分類を全部載せてしまおう。
単語 | 自立語 | 活用あり | 述語になる(用言) | 動詞 |
形容詞 | ||||
形容動詞 | ||||
活用なし | 主語になる(体言) | 名詞 | ||
連用修飾語になる | 副詞 | |||
連体修飾語になる | 連体詞 | |||
接続語になる | 接続詞 | |||
独立語になる | 感動詞 | |||
付属語 | 活用あり | 助動詞 | ||
活用なし | 助詞 |
相変わらず見た目の色がちょっとおかしいが…
気にしないでくれ。
大きな分類から見ていこう。
まず、自立語と付属語について。
自立語とは、文節の先頭に来る単語で、
具体的な意味を持つ。
それに対し、付属語は自立語にくっつくもので、
文法的な機能を持つものだ。
次に、活用の有無だ。
この活用というのは、後ろに来る言葉によって
形を変えることができるかどうかという分類。
形を変えれるのが活用あり、
変えれないのが活用なしだ。
これで、まず4つに分類できる。
自立語で活用ありのものは、
まとめて用言といって、どれも述語になることができる。
具体的には、動作を表す動詞、
物などの状態を表す形容詞、形容動詞からなる。
次に、自立語で活用がないものは5つある。
まずは主語になりうる名詞。
そして、それぞれ
連用修飾語、連体修飾語になる副詞、連体詞。
この連用修飾語、連体修飾語というのは、
それぞれ用言、体言に意味を付け加える
はたらきを持つものだ。
具体例を挙げると、
副詞には「いつも」、「ときどき」など、
連体詞には「大きな」、「いわゆる」など。
接続詞は、二つの塊を繋げ、その関係を表す。
感動詞は、呼びかけだったり応答などを表すものだ。
ここまでが、自立語の内容。
次に、付属語を見てみよう。
これは活用の有無だけで分かれており、
活用するものを助動詞、活用しないものを助詞という。
おわりに
本当は自然言語処理の内容にも入りたかったのだが…
ここまででかなりの長さになってしまったので
いったん区切ろう。
今回学習した内容を使って、
次回から実際に自然言語を解析する話に入っていく。
ちょっと省略した部分もあるので、
必要に応じて補足していくとしよう。
コメント