42

質問

そこで、私は最近、ユーザーによって送信および生成されたテキストから「意味」を導き出すことに対処しなければならない、いくつかの新しい可能なプロジェクトを考え出しました。

自然言語処理は、この種の問題を扱う分野であり、いくつかの初期調査の後、私はOpenNLP Hubと、 attempt プロジェクトのような大学のコラボレーションを見つけました。そしてstackoverflowにはこれがあります。

研究論文や紹介テキストから API に至るまで、誰かが私をいくつかの優れたリソースにリンクしてくれたら、6 歳の子供がクリスマス プレゼントを開けるよりも幸せです!

アップデート

あなたの推奨事項の 1 つを通じて、私はopencyc ( 「世界最大かつ最も完全な一般知識ベースおよび常識推論エンジン」 ) を見つけました。さらに驚くべきことに、 UMBEL と呼ばれるopencycの蒸留バージョンであるプロジェクトがあります。これは、rdf/owl/skos n3 構文のセマンティック データを備えています。

また、「文法記述からレコグナイザー、インタープリター、コンパイラー、およびトランスレーターを構築する」ためのパーサージェネレーターであるantlrにも出くわしました。

そして、ここに私の質問があります。それは、大量の無料でオープンなデータをリストしています。

スタックオーバーフロー コミュニティに感謝します。

4

10 に答える 10

29

厳しい意見ですが、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」もお勧めします。前者はオンラインで無料で入手できます。

于 2008-10-18T14:00:44.443 に答える
10

Chomskyは、NLP を探すには完全に間違った情報源です (彼自身も同じことを強調して言っています) 。

上記のJurafskyとMartinは標準的なリファレンスですが、私自身はManningとSchützeの方が好きです. NLP に真剣に取り組んでいる場合は、おそらく両方を読みたいと思うでしょう。マニングのコースの 1 つのビデオがオンラインで利用できます。

于 2009-03-16T04:05:56.080 に答える
4

Learn Prolog Now! の DCG チャプターまで Prolog を読み終えたら、上記の Dimitrov 氏が言及したように、Prolog は質問応答を通じて更新できる知識と信念のデータベースを維持する非常に簡単な方法を提供するため、システムにいくつかのセマンティクスを導入するための良いスタートを切ることができます。

文献に関しては、1 つの大きなお勧めがあります。Jurafsky & Martinの Speech and Language Processingを使い果たして購入してください。これはほとんどNLP に関する本です (最初章はオンラインで入手できます)。無数の大学のコースで使用されているだけでなく、非言語学者にとっても非常に読みやすく、実践志向であると同時に、言語学の問題をかなり深く掘り下げています。本当にお勧めできません。第 17 章、18 章、および 21 章は、探しているもののようです (初版では 14、15、および 18)。それらは、機能を備えた Prolog DCG にかなりうまく変換される単純なラムダ表記を示しています。

ところで、言語学の修士号を取得することについて。NL セマンティクスに関心がある場合は、見つけられるすべての AI 関連のコースを受講することをお勧めします (ただし、「プレーンな」言語セマンティクス、ロジック、論理セマンティクス、DRTLFG /HPSG/CCG、NLに関するコースはすべて受講できます)。構文解析、正式な言語理論などは問題ありません...)

チョムスキーのオリジナルの文献を読むことはあまり役に立ちません。私の知る限り、彼の理論に直接対応する現在の実装はありません.彼の有用なものはすべて他の理論にほとんど含まれています. .

于 2009-02-23T09:38:48.563 に答える
3

NLTKをいじって、 NLTKブックを読むことを強くお勧めします。NLTKは非常に強力で、簡単に使用できます。

于 2009-03-14T02:23:01.750 に答える
2

Cycorp は、Cyc ナレッジ ベースがどのように文から意味を導き出すかについて簡単に説明しています。

共通の事実に関する膨大な知識ベースを利用することで、システムは文の最も論理的な解析を決定できます。

于 2008-10-17T14:20:19.880 に答える
2

基本的に多くの言語処理の背後にある数学である、フレーズ構造化文法について少し読んでみてください。実際にはそれほど重くはなく、主に集合とグラフの理論に基づいています。私は何ヶ月も前に個別の数学コースの一環としてそれを勉強しましたが、この段階では多くの優れた参考文献が利用できると思います.

編集:これは良い学習源のように見えますが、Googleで期待したほどではありません.

于 2008-10-17T14:00:28.860 に答える
2

NLP の初期の探検家の 1 人に Noam Chomsky がいます。彼は 50 年代から 70 年代にかけて、このテーマに関する小さな本を書きました。あなたはその魅力的な読書を見つけるかもしれません.

于 2008-10-17T14:01:11.417 に答える
1

ビルディング ブロックから始めるより簡単な場所は、それを試みているパッケージのドキュメントを参照することです。私は Python [Natural Language Toolkit (NLTK) 1 ] をお勧めします。これは特に、よく書かれた無料の本であり、例が満載です。それはあなたが望むものに完全に到達するわけではありませんが (これは AI にとって困難な問題です)、良い足がかりを与えてくれます。NLTK には、パーサー、チャンカー、文脈自由文法などがあります。

于 2008-10-20T14:33:54.657 に答える
1

これは本当に大変なことです。少なくとも言語学の修士号を取得することから始めて、それからコンピューター サイエンスの博士号を取得し、NLP に専念しました。

問題は、私たちのほとんどが言語とは何かを理解していないことです。そして、その理解がなければ、ソリューションを実装するのは非常に困難です。

他のコメントは、問題の小さなサブセットを試してみたい場合にはおそらく問題ないでしょうが、本当に堅牢なソリューションを考え出すために、近道はありません。両方の分野の学歴が必要です。

于 2008-10-20T14:50:11.067 に答える
0

非常に楽しく読みやすい紹介は、Steven Pinker による The Language Instinct です。それはチョムスキーの話に入り込み、進化生物学の観点からも興味深い話をしています。このテーマに慣れていない場合は、チョムスキーの論文や関連する研究に飛び込む前に、そのようなことから始める価値があるかもしれません。

于 2008-10-20T14:44:47.803 に答える