2016-05-31 10 views
3

に搬送されているかどうか、私は、次のセマンティックな意味を表現するものを抽出したいと思い、そこから文章のコレクションを持っているかを確認します。NLP:</p> <p>私はイタリア料理が好き:特定のセマンティックな意味が文

このような文章をどのように構成したり、言葉を付けたりすることができるかには、多くのバリエーションがあります。いくつかの例:

  • 私はイタリア料理、中国料理、インド料理を楽しんでいます。
  • 私が大好きな料理は、中国語、イタリア語、インド語です。
  • インド料理、イタリア料理、中国料理が好きな料理もあります。
  • 私はイタリア料理、中国料理、インド料理など、世界中のあらゆる種類の料理が好きです。

この問題にアプローチするにはどうすればよいでしょうか?

私はNLPの専門家ではありません。ここで私が考える可能性だけで何かです:

  • 「のような」とパーサーを使用して文章のための「料理」
  • ビルド依存関係ツリー(スタンフォードまたはParsey McParsefaceが)に依存関係ツリーをトリムするために同義語を探します(例えば 'I')、動詞キーワード(例えば 'like')、名詞キーワード(例えば 'food')、名詞修飾語(例えば 'Italian')のみを含む。これは、ツリー内のすべてのノードをカバーするパスを見つけることによって実行できます。
  • トレーニング文の依存関係ツリーのコレクションを格納します。
  • テスト文の依存関係ツリーは訓練

に存在するかどうかを確認任意のアイデア、提案、および/またはコメントをいただければ幸いです!

+1

これは関係抽出タスクであり、すべてのnlpタスクと同様に簡単ではありません。 Stanford CoreNLPには、関係抽出モジュールがあります。あなたがそれを使うことができるか、あなたのデータを鍛えることができるかどうかを見てください。 –

答えて

2

あなたは正しい方向にいると思います。私のアイデアには、最初に「enjoy」=「like」=「love」「food」=「料理」などの同義語が必要です。あなたのコーパスを見れば、あなたはすべての文章は、いくつかの同一のパターンを持って見つけることができる、すなわち

--- I ---

--- --- /愛のように/ イタリアを楽しみます

" - "は、文中の他のすべてのトークンを意味します。このパターンを最初に発見するには、パターンマイニングアルゴリズム(PrefixSpan)を使用できます。この手順を完了していれば、その答えにかなり近いところにいます。パターンの最後に単語「料理」を追加する方法については、依存関係を取得するためにStanford Dependency Parserを使用し、「イタリア語」と「Cuisine」という単語からなるペアを抽出する必要があります。最後に、これら2つの結果を組み合わせて答えを得ることができます。文をテストするには、パターンがあればそれを見てください。

このようなパターンが存在しないか、文の構文が複雑すぎてパターンを見つけられない場合、この方法には制限があります。そしてそれは意味論的なレベルにもありません。したがって、私はこの状況を解決する方法についての他の人の答えに非常に興味があります。本当の意味論的なレベルでそれを解決する方法についていくつかのアイディアを得たら、私は更新します。

希望します。

関連する問題