私は文を取り、それに含まれる各単語を識別し、各単語が品詞のどの部分であるかを定義する何かを書きたいです。
例えば
Hello World、私は文です
これを返します
verb noun, pronoun verb adjective noun
理想的には、最終的にそれをさらに一歩進めて文を取り、プログラムでそれが解釈しようとしていることを理解し、おそらくそれについて何かをしたいと思います。
だから私の質問は、誰かがこのようなことを聞いたことがありますか?
私は文を取り、それに含まれる各単語を識別し、各単語が品詞のどの部分であるかを定義する何かを書きたいです。
例えば
Hello World、私は文です
これを返します
verb noun, pronoun verb adjective noun
理想的には、最終的にそれをさらに一歩進めて文を取り、プログラムでそれが解釈しようとしていることを理解し、おそらくそれについて何かをしたいと思います。
だから私の質問は、誰かがこのようなことを聞いたことがありますか?
回答:
これは自然言語処理と呼ばれ、巨大で複雑な分野です。あなたが説明するようなものは記念碑的な成果であり、ワトソンのような最高のソリューションでさえ完璧に近いものではありません。
このようなことは難しいことです:「Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo」
同音異義語と同音異義語を使用して複雑な言語構造を作成する方法の例として使用される、アメリカ英語の文法的に正しい文。1972年以来、文学で議論されてきました...スティーブン・ピンカーの1994年の本The Language Instinctでも、「一見無意味な」文法の例として取り上げられました...
ニューヨーク州バッファロー市とやや珍しい動詞「to buffalo」(「いじめや脅迫」を意味する)を使用していることが理解され、句読点と文法が拡張されて文が拡張されると、文の意味がより明確になります。 「Buffalo buffalo that buffalo buffalo buffalo、buffalo buffalo buffalo」と読みます。同義語を使用すると、意味がさらに明確になります:「他のバッファローバイソンがいじめっ子であるバッファローバイソン、それ自体がバッファローバイソンをいじめている」。
文を分割し、最初の問題を解決するとともに文法の正確さを決定することは、2番目の問題よりも簡単です。動詞名詞や水泳やプログラミングなどの動詞のような多くの複雑さ、その他の複雑なことは、まだ挑戦です-モロンを参照してください回答。
しかし、2番目の問題-人々は完璧な解決策を見つけるために多大な努力を払っていますが、本当に完璧な「解釈」アルゴリズムは英語のような自然言語では実際に実現できません- アルゴリズムを台無しにするバリエーションがあります。この分野-AI、コンピューターサイエンス、言語学のハイブリッドはNLPとして知られています。これを考慮してください:文を「解釈」するとき、Google翻訳でさえ完璧ではありません。
しかし、それでも、これは手を出すには非常に興味深い分野です。
このウィキペディアの記事を読み始めるべきだと思います。
http://en.wikipedia.org/wiki/Part-of-speech_tagging
(これは研究分野であり、簡単な解決策を期待しないでください。)
これを行う簡単な方法は、辞書のデータベースをセットアップすることです(誰かがこれを行ったことはほぼ間違いありません)。
テーブル内の2つのフィールドが必要ですword
し、usage
フレーズを文字列の配列に変換します(各単語は文字列です)。
select 'usage' from Dictionary WHERE 'word' = $word;
それは重い解決策ですが、私が過去に使用したものです。