厳しい意見ですが、NLP は、ほとんどの人が考えているよりもはるかに広い分野です。基本的に、言語はいくつかのカテゴリーに分けることができ、まったく異なることを学ぶ必要があります。
始める前に、何らかの (密接に関連する) 分野で学位を取得していなければ、(少なくとも専門家として) 顕著な成功を収めることはできないと思います。関係する理論はたくさんありますが、そのほとんどは単調なもので、学ぶのが難しいものです。多くの持久力、そして何よりも時間が必要です。
テキストの意味に興味があるなら、それは次の大きな問題です。セマンティック検索エンジンは Web 3.0 を開始すると予測されていますが、まだ「そこ」にはほど遠い状態です。テキストからのロジックの抽出は、いくつかのステップに依存しています。
- トークン化、チャンキング
- 語彙レベルでの曖昧さの解消 (時間は矢のように過ぎ去りますが、果物はバナナのように過ぎ去ります。)
- 構文解析
- 形態素解析(時制、アスペクト、格、数など)
私の頭の上から離れた小さなリスト。他にもあります:-)、そして各ポイントにはさらに多くの詳細があります。たとえば、「解析」と言うと、これは何ですか? 多くの異なる構文解析アルゴリズムがあり、同じように多くの構文解析形式があります。最も強力なものには、ツリー隣接文法とヘッド駆動句構造文法があります。しかし、どちらも現場ではほとんど使用されていません (今のところ)。通常、中途半端な生成的アプローチを扱うことになり、自分で形態素解析を行う必要があります。
そこからセマンティクスに移行することは大きな一歩です。シンタックス/セマンティクス インターフェイスは、採用されているシンタックス フレームワークとセマンティック フレームワークの両方に依存しており、単一の実用的なソリューションはまだありません。セマンティック側には、古典的な生成セマンティクスがあり、次に談話表現理論、動的セマンティクスなどがあります。すべてが基づいている論理形式でさえ、まだ明確に定義されていません。一階論理を使うべきだと言う人もいますが、それだけでは十分ではないようです。次に、モンタギューが使用したように、内包論理がありますが、それは過度に複雑で、計算上実行不可能なようです。また、ダイナミック ロジックもあり (Groenendijk と Stokhof はこの分野の先駆者です。素晴らしいものです!)、ごく最近では、この夏、実際にJeroen Groenendijkが新しい形式主義Inquisitive Semanticsを提示しましたが、これも非常に興味深いものです。
非常に単純なレベルから始めたい場合は、Blackburn and Bos (2005) を読んでください。これは素晴らしい内容であり、計算意味論の事実上の入門書です! Groenendijk と Stokhof (1982) によって提案されたように、私は最近彼らのシステムを拡張して質問の分割理論 (質問応答は野獣です!) をカバーしましたが、残念なことに、この理論は個人の領域で O(n²) の複雑さを持っています。 . そうしているうちに、私は B&B の実装が少し、うーん…ハックっぽいところがあることに気付きました。それでも、計算セマンティクスに飛び込むのに非常に役立ちますし、何ができるかを示す非常に印象的なショーケースでもあります。また、パルプ フィクション (映画) で確立された文法を実装するための追加のクール ポイントに値します。
そして、私がそうしている間に、Prolog を手に取ってください。計算セマンティクスの多くの研究は Prolog に基づいています。今すぐプロローグを学ぼう!良いイントロです。「The Art of Prolog」と Covington の「Prolog Programming in Depth」と「Natural Language Processing for Prolog Programmers」もお勧めします。前者はオンラインで無料で入手できます。