「意図的認識機能」はどのように機能しますか?


11

AmazonのAlexa、NuanceのMix、およびFacebookのWit.aiはすべて同様のシステムを使用して、テキストコマンドをインテントに変換する方法、つまりコンピューターが理解できるものを指定する方法を指定しています。これの「正式な」名前が何であるかはわかりませんが、「意図認識」と呼んでいます。基本的に、「ライトを50%の明るさに設定してください」からに進む方法lights.setBrightness(0.50)です。

それらが指定される方法は、インテントに関連付けられ、オプションで「エンティティ」(基本的にパラメータ)の場所でタグ付けされた「サンプル発話」のリストを開発者に提供することです。Wit.aiの例を次に示します。

wit.aiの例

私の質問は、これらのシステムどのように機能するのですか?それらはすべて非常に類似しているので、私はそれらすべてが使用するいくつかの精巧な仕事があると思います。誰か知っていますか?

興味深いことに、Houndifyは正規表現に似た別のシステムを使用しています["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]。私はそれが彼らの音声認識システムのビーム検索に統合されていると思いますが、Alexa、Wit.ai、Mixは別々のSpeech-> TextおよびText-> Intentシステムを持っているようです。

編集:出発点- 非公式の音声コマンドによる人間とロボットの相互作用のメカニズムを見つけました。これは、潜在セマンティック分析と呼ばれるものを使用して発話を比較します。私はそれについて読みます。少なくともそれは私に引用ネットワークの出発点を与えました。

編集2: LSAは基本的に、テキストの各段落で使用されている単語(Bag of Words)を比較しています。この場合、単語の順序が完全に失われるため、どのようにうまく機能するかわかりません。おそらく、これらの種類のコマンドでは、単語の順序はそれほど重要ではありません。

編集3: 非表示のトピックマルコフモデルは、興味深いかもしれないように見えます。


この投稿では、インテント分類について詳しく説明しています。mrbot.ai
blog

これは、質問で述べた「バッグオブワード」方式を使用しているようです。基本的には、文中の単語ベクトルを合計するだけです。しかし、それはそれがどのように機能するかではありません。WitとNuanceのインターフェースは、単語の袋では簡単に実行できないエンティティを認識することを示しています。また、bag of wordはすべての順序を失います。したがって、「10を5にアラームを設定」のようなものは「10を5にアラームを設定」と区別できません。もっと何かが起こっているに違いない。
Timmmm 2017年

エンティティの抽出は、シーケンスが重要な別の問題です。たくさんのデータがある場合、Rnnは機能しますが、チャットボットで頻繁に発生する小さなデータセットでは、条件付きランダムフィールドが非常に適切に機能します
znat

では、「RNNが機能する」よりも詳細な答えを探しています。最近のほとんどのシーケンス学習システムはRNNを使用しているため、これは当たり前のようです。
Timmmm 2017年

インテントは、文の一般的な意味(ベクトルの平均)に関するものであり、エンティティは、それらが現れるコンテキスト(周囲の単語)を学習するためのものです。RnnまたはCRFは、シーケンスから学習するため使用できるアルゴリズムにすぎません。詳細を知りたい場合は、Rasaのソースコードを調べてください
znat

回答:


4

質問に直接回答するわけではありませんが、自動化された質問回答の分野に興味があるかもしれません。自然言語のテキストの質問に答えるには、まずそれらを理解する必要がありますが、これは問題と重なります。

良いリソースは、ジュラフスキーとマニングによるコースです。特に、セマンティクスと質問応答に関するセクションは、あなたが探しているものを助けるかもしれません。ここにyoutube 利用できる付随する講義ビデオがあります


私はあなたの回答の最初の部分が非常に面白いが有益であると思います。
ディエゴ

おそらく、これはコメントとしてはよいでしょう。なぜなら、あなたが認めるように、質問には答えないからです。
kbrose 2017年

2

この投稿にはアプローチがあります。基本的には、bag of wordsを使用します-単語をスパースベクトルに変換し、それらを加算します。

かなりうまく機能しているように見えますが、大きな欠点の1つは、答えが単語の順序に依存しないことです。そのため、特別な場合を除いて、「1ポンドのキロ数」のようなクエリは実行できません。

しかし、私はアレクサでテキストをやりました、そしてそれは単語の順序の変更にかなり敏感ではないので、おそらく彼らは同じようなものを使うでしょう。


好奇心が強い-疎ベクトルはナイーブベイジアンよりもどのような利点がありますか?どちらも、単純な単語の仮定を使用して線形分離可能な問題を解決します
Angad
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.