by ご近所のきよきよ
未知の言語を自律学習していけるような能力を実現したい。これは自然言語処理を目指す人なら大きな目標の一つに加えることでしょう。言語というものを研究していくのに、日本語だけでは誤った言語観に捕らわれてしまうかも知れません。そこで、今回は英文を解析していくことを考えてみましょう。参考にしたのは、「ハートで話そう!マジカル英語塾」(NHK出版)です。
次の文を解析していくことを考えてみましょう。
(例文1)These concert tickets cost me an fortune.
先ずは日本語文解析と同じで、単語リストをつくります。
・these AN(+pronoun)
・concert ND
・tickets ND
・cost VB(他動詞;構文svoo)・cost VB(他動詞;構文svo)
・me ND(+pronoun;目的格)
・an AX
・fortune ND
【説明】
(1)名詞の列は名詞を作るという規則から、「these concert tickets」は名詞となります。
精確にはtheseは限定を表現する形容詞ですから、後ろの名詞を修飾します。
(2)動詞costによって格が決定します。例えばrunですと、「I run on the road.」とか、「I run the proguram.」とか、自動詞と他動詞の違いなども、前後の名詞の配置によって決まってきます。そのときには自動詞候補と他動詞候補の動詞記述をもって、文型を検査するプロセスを走らせて決定していくことになります。この点も気をつける点です。
また、例えば、「I text you」は「君にメールを送る」という意味です。「text」は文型に応じて、名詞となったり動詞となったりします。
(3)冠詞anは限定を表現しますから直後の名詞を修飾するということで、「an fortune」が名詞になります。
(4)日本語訳は「コンサートのチケットは高かった」ということで、直訳すると変になります。意味的には良いのですが文化の違いというか、異なった意味表現を一つの物として管理する機構が必要と言えます。連想関係で意味表記を統一して管理する、そんなテーブルが必要に成ることが分かります。
(5)単文の区切り(完成点)、to、-ingなどで、補足ルールに移行して解析していく。例えば、「I understand you didn't watch the French original」では、「I understand you」で単文は完成するので、移行は補足文であると判断します。
構文規則は単語にからめて提供するか、専用のテーブルで提供していくか、迷うところです。単語・・・例文1では動詞「cost」で提供していますが、名詞やなにかにいちいち文法規則を記述するのは手間です。単語で提供する方が処理速度が高くなります。文法規則テーブルをいちいち全件検索しなくてよいからです。ですが、単語ごとに文法を記述するほうが、処理は簡単になります。普通は名詞なのに動詞として働くなんてことが英語ではあり得るからです。文型によって単語の品詞も決定されるのです。そんなことを解決するのに、名詞としての単語と動詞としての単語を辞書に用意し、現在に文脈のパターンに合致する物を選択するようにした方が処理は簡単に成ります。
オブジェクト、アクション、限定修飾、補足修飾という4つが重要です。だから、単語は機能語と名詞(ND)、アクション(VB)、限定と補足で形容詞(AN)、副詞(AV)を品詞に立てます。文法は、意味マッチングにじゃまになりますから、意味と文法事項は別のくくりで知識化します。
自然言語処理を機械学習していくことを考えてみたいと思います。どんなことが言えれば良いのでしょうか。
機械学習は次の2つの基本プロセスです。
(1)共起を記録する。
(2)抽象化、記号化、特異化をしていく。
大まかな手順としては次の通り。
(1)意味情報と言語表記を対応させて、コーパスとしていく。
(2)単語については、名詞、動詞、形容詞、副詞、機能語に分類して、意味を記録していく。
(3)コーパスから文型パターンを発見し記録していく。コーパスそのものが辞書の見出しとなっていくように知識ベースを構成していくことが肝要。ASAMになるか。
(4)コーパスから抽象化していく。
(5)次元、メトリック、順序、位置、増分が基盤となるオントロジーに必要。
おわり