2017-05-27 7 views
1

私はPythonとNLPで初心者だ、と私の問題は、与えられた質問の意図を見つけ出すには、例えば、私は、このような質問と回答のセットを持っているかである:PythonのNLPテント識別

question:What is NLP; answer: NLP stands for Natural Language Processing

I上記の質問で特定の質問に少し基本POS taggerをしましたentety [NLP]私もやったString Matchingusing this algo。基本的に私は次の問題に直面

:ユーザーがmeaning of NLPを尋ねるユーザーがDefinition of NLPを聞いて、それが

  • 場合に失敗した場合、それは
  • を失敗した場合、ユーザーがwhat is NLPを頼む場合、それは正確に戻ります

    1. に答えますユーザーはWhat is Natural Language Processingと尋ねます。失敗すると

    だから、私の場合、文字列のマッチングやパターンのマッチングは機能しないので、どのようにして質問のユーザの意図を特定するべきですか。

  • +0

    簡単な(または明確な)回答がなければ難しい問題です。 NLPを初めてお使いになる場合は、まずこれは良い仕事ではありません。 – lenz

    +0

    「インテント」とは何ですか? – Daniel

    +0

    @ダニエル 'インテント 'は、これをさらに確認するために、'場所、順序、定義など 'のための意図を求めるユーザの質問を意味します[http://pavel.surmenok.com/2016/09/11]/chatbot-architecture /) – Yogesh

    答えて

    0

    私はこれがあなたのフレームとあなたのドメインの仕組みに本当に依存していると思います。 Hereは質問タイプの分類に役立つデータセットであり、hereは実装です。

    これらは言われているように、あなたのテキストにChunkerSRLなどの注釈を付ける必要があり、興味深いパターンを抽出する必要があると思います。

    1

    これを使用してください https://github.com/RasaHQ/rasa_nlu 意図の識別とエンティティ抽出に適したフレームワークです。 モデルトレーニングも簡単です。

    0

    CNNとWord2Vecのような詳細な学習モデルを使用します。

    これらのモデルは、あなたが言及した文章のバリエーションに合わせて調整することができます。ここKeras実装うち

    チェック - 一般的な知識と質問のための優れた例のリストと答えるベースのシステムの場合https://github.com/sarweshsuman/keras-text-classification

    1

    は、業界でNLPのリーダーボードは、ここに記載されています:https://rajpurkar.github.io/SQuAD-explorer/ このプロセスは、実際に本当に得ることができますあなたのドメインの複雑さと範囲によって複雑です。たとえば、より高度なアプローチでは、1次+命題論理と複雑なニューラルネットが適用されます。私が見てきたより印象的なソリューションの 一つは、双方向の注目の流れである:https://github.com/allenai/bi-att-flow、デモはここにある:http://beta.moxel.ai/models/strin/bi-att-flow/latest

    実際に、私はあなたのコーパスは、よりドメイン固有の用語を持っている場合、あなたが構築する必要があることを発見したあなたの自分の辞書。あなたの例では、 "NLP"と "Natural Language Processing"は同じエンティティなので、これを辞書に含める必要があります。

    基本的には、コサイン距離のような純粋な統計的アプローチで逃げることができれば、本当にラッキーだと考えてください。おそらく、レキシコンベースのアプローチと組み合わせる必要があります。私が行ったすべてのNLPプロジェクトには、ドメイン固有の用語と「スラング」があります。そのため、特にトピック、インテント、エンティティなどのフィーチャ抽出に統計とレキシコンの両方の方法を組み合わせて使用​​しました。

    関連する問題