2017-07-28 19 views
-1

私はユーザーに話し、ユーザーからの入力を得るmlプログラムを作りたいと思う。 mlプログラムは入力データ(キーワード)を分析し、最良のソリューションを予測します。機械学習:どのアルゴリズムが答える質問に合う

+0

とは何ですか? –

+0

私はこの作業を行うための最良のアプローチ(アルゴリズム)を予測することができません。 –

答えて

-1

自然言語を処理するために何らかの機械インテリジェンスが必要なAIアプリケーションがあります。 ここで選択する言語は英語です。このようなシステムを構築する前に考慮すべきことがたくさんあります。

  • 語義曖昧さ回避の知識の
  • 動詞センス曖昧さ回避
  • 共参照の解決
  • 意味役割ラベリング
  • 宇宙を解析

    1. 依存。

    要するに、上記のすべての必須モジュールを構築してから、応答を生成する必要があります。 作業している問題の種類を判断する必要がありますか?それはオープンドメインかクローズドドメインの問題か、つまりこのアプリケーションの知識の範囲は何かを意味します。 例:Googleはオープンドメインの問題であり、実際には可能な限り入力できます。 しかし、アプリケーションの中には、質問することのできる範囲が限られているアプリなどで食品の注文を自動化するような特定のタスクがあります。

    これが決まると、入力文を解析し、依存解析を行う必要があります。スタンフォードコアのNLPスイートを使用すると、上記のNLPタスクのほとんどを達成できます。

    入力文が解析され、件名、オブジェクトなどがあると、特定の単語が異なる意味を持つ可能性があるため、文中の単語の曖昧さをなくすときが来ます。 (リターンは元の場所へ行くのか、何かをバック与える意味するかもしれないように)

    次に次にあなたが名詞と代名詞と他のエンティティでのマッピングを意味同一指示の解決を解決する必要があり

    を動詞のタイプを識別する意味の動詞を明確与えられた文脈。例: 私の名前はJohnです。私はABCの会社で働いています。

    ここで私は2番目の文でジョンを指しています。 これは、Johnがどこで働くのかといった質問に答えるのに役立ちます。 Johnは最初の文でのみ使用され、2番目の文では彼の作業が言及されているので、

    次の課題は、意味的役割ラベリングです。これは、基本的には、動詞のそれぞれについて文中のすべての引数にラベルを付けることを意味します。 例:JohnがMaryを殺しました。 動詞はkill、JohnとMaryは動詞killの引数です。ジョンはロールA0を、メアリーはロールA1を取る。各動詞に対するこれらの役割の定義は、NLPコミュニティによって作成された巨大なフレームおよび引数注釈フレームワークで記述されています。ここで、A0は殺した人を意味し、A1は殺された人を意味する。 今度は、A0とA1を特定したら、キルフレームの定義を調べ、A0をキラー、A1を被害者に返します。

    もう1つの重要なタスクは、システムが回答に応答する必要があるときを特定することです。与えられたセンテンスが宣言的または主張的な文か疑問のある文であるかを知る必要があります。入力文が疑問符で終わるかどうかを確認するだけで確認できます。

    あなたの質問に答えてください: アプリケーションへのあなたの入力は: 入力1:ジョンはメアリーを殺しました。 明らかにこれは主張文なので、上記のようにそれを保存して処理するだけです。 次の入力は次のとおりです。

    入力2:誰がMaryを殺しましたか?

    これは疑問文ですので、返信や返答が必要です。

    入力1と入力2の意味役割ラベルを見つけて、文2のWhoの引数に一致する入力1の単語を返します。 ここでは、誰がA0とラベル付けされ、JohnはA0、単にJohnを返す。

    上記のNLPモジュールのほとんどは、StanfordコアNLPを使用して直接実装できますが、独自のアルゴリズムを実装したい場合は、EMNLP、NIPS、ICML、CONLLなどの最新の出版物を参照してください。あなたに最も適したものを実装してください。

    幸運を祈る!