I love to eat chicken.
Today I went running, swimming and played basketball.
私の目的は、これら2つの文を分析するだけでFOODとSPORTSを返すことです。どうやってそれができる?
私はNLPとWordnetに精通しています。しかし、もっとハイレベル/実用的/現代的なテクノロジーはありますか?
単語を自動的に「レベル」に分類するものはありますか?
さらに重要なことに、このプロセスの専門用語は何ですか?
その問題を手続き的に解決することは困難ですが、最近この地域では多くの進歩が見られます。
ほとんどの自然言語処理は文法から始まります(文脈自由である場合とそうでない場合があります)。それは、より一般的なものがより具体的なものからどのように作られるかを示す一連の構築規則です。
文脈自由文法の例:
Sentence ::= NounPhrase VerbPhrase
NounPhrase ::= ["The"] [Adjective] Noun
Adjective ::= "big" | "small" | "red" | "green"
Noun ::= "cat" | "man" | "house"
VerbPhrase ::= "fell over"
これは明らかに過度に単純化されていますが、英語のすべてを定義するための完全な文法を作成するタスクは膨大であり、ほとんどの実際のシステムは、問題のあるドメインに適用できるサブセットのみを定義します。
文法が定義されると(またはGoogleのようなものだけが知っている複雑なアルゴリズムを使用して学習されると)、「模範」と呼ばれる文字列が文法に従って解析されます。各単語に品詞をタグ付けします。非常に複雑な文法には、学校で学んだ品詞だけでなく、「ウェブサイト」、「お年寄りの名前」、「材料」などのカテゴリが含まれます。
これらのカテゴリは、人間が手間をかけて文法に組み込むことも、アナロジーモデリングやサポートベクターマシンなどを使用して推測することもできます。それぞれにおいて、「チキン」、「サッカー」、「バーベキュー」、「クリケット」などは、他の何百万ものポイントとともに、非常に高次元の空間内のポイントとして定義され、クラスタリングアルゴリズムは、グループを定義します。互いに対するそれらのポイントの位置に基づいています。次に、サンプルテキストからグループの名前を推測しようとする場合があります。
リンクテキスト このGoogle検索には、NLPで使用されているいくつかの手法がリストされており、それらから多くのことを学ぶことができます。
この問題を解決するために編集すると、「 _は_ 」という形式の文をWebでクロールして、アイテムとカテゴリの関係のデータベースを構築できます。次に、上記のように文字列を解析し、データベース内の既知のアイテムである単語を探します
あなたが尋ねる質問は、トピックテキスト分類と呼ばれる研究の全領域です。テクニックの優れた概要は、FabrizioSebastianiによるACMComputingSurveysの「自動テキスト分類における機械学習」です。。最も単純な手法の1つ(必ずしも最高のパフォーマンスとは限りませんが)は、各カテゴリに多数(数百)の文の例を用意し、それらのサンプル文で単純ベイズ分類器をトレーニングすることです。NLTKには、モジュールに単純ベイズ分類器が含まれていますnltk.classify.naivebayes
。
あなたはFBKの人々によるWordNetドメインリソースを見るかもしれません。これはWordNetの拡張であり、テキストの分類と語義の曖昧性解消に使用するように設計されています。さまざまな粒度が可能です。
それをタスクに適用するための可能な方法の1つは、文からNPチャンクを取得し、それらのヘッドワードを取得し、それらからWordNetドメインからカテゴリを取得することです。
Tenqyuは、Pythonと機械学習を使用して問題を解決しました。
プロセスの詳細はこちら: https ://hackernoon.com/how-to-better-classify-coachella-with-machine-learning-part-1-dc84c53d1a9c