私たちは現在、さまざまな質問に答えることができる AI (Alexa 用) を開発しています。バックエンドで分析される複雑な質問をユーザーが表現できることが非常に重要です。発話とスロットの種類が限られているために、Alexa が早い段階でそれらを削除した場合、そのようなサービスを提供することはできません。
現時点では、次のアプローチを試しています。(私たちの実験はドイツ語に基づいていることに注意してください。他の言語では動作が異なる場合があります。)
1. Word クラスごとのカスタム スロット タイプ
次の単語クラスのカスタム スロット タイプを定義しました。
- 尋問(何を、誰が、いつ)
- 項目 (サイバーセキュリティ、ダークネット、マルウェア)
- 動詞(ある、持っている、できる)
- 形容詞(人気、安価、不安定)
- 代名詞(その、彼、彼女)
2. 文構造のサンプル発話
次に、発話のサンプルを含む文の可能な構造を定義しました。
QuestionIntent {Interrogation}
QuestionIntent {Item}
QuestionIntent {Verb}
QuestionIntent {Adjective}
QuestionIntent {Interrogation} {Verb} {Item}
QuestionIntent {Interrogation} {Verb} {Item} {Adjective}
QuestionIntent {Interrogation} {Verb} {Pronoun} {Item}
QuestionIntent {Interrogation} {Verb} {Pronoun} {Pronoun} {Item}
QuestionIntent {Interrogation} {Verb} {Pronoun} {Item} {Preposition} {Item}
QuestionIntent {Interrogation} {Verb} {Adjective} {Item}
QuestionIntent {Interrogation} {Verb} {Pronoun} {Adjective} {Item}
QuestionIntent {Interrogation} {Item} {Verb}
QuestionIntent {Interrogation} {Item} {Verb} {Adjective}
QuestionIntent {Interrogation} {Item} {Verb} {Pronoun} {Adjective}
QuestionIntent {Item} {Verb} {Interrogation}
QuestionIntent {Verb} {Item} {Verb}
QuestionIntent {Verb} {Adjective} {Item} {Verb}
3. バックエンドでの NLP 分析
次に、バックエンドで送信された単語の NLP 分析を行います。受信したデータは次のようになります。
"intent": {
"name": "QuestionIntent",
"slots": {
"Item": {
"name": "Item",
"value": "darknet"
},
"Preposition": {
"name": "Preposition"
},
"Adjective": {
"name": "Adjective"
},
"Verb": {
"name": "Verb",
"value": "is"
},
"Interrogation": {
"name": "Interrogation",
"value": "what"
},
"Pronoun": {
"name": "Pronoun",
"value": "the"
}
}
}
いくつかの言葉は失われるかもしれませんし、他の言葉は聞き間違えられるかもしれません。この場合、以前のやり取りのトピックを覚えており、不足している単語をこれらで「埋めます」。例:What is {it}?
⇒What is {Darknet}?
スロット タイプの広範なリストを試していました。しかし、これは何かを聞き間違えるリスクを高めます (英語の良い例はwriteとrightです。幸運なことに、これらは同じ単語クラスに割り当てられていません)。そこで、非常に狭いアプローチに切り替えました。リストには、AI が処理できる単語のみが含まれ、ナレッジ ベースに格納されます。たとえば、アイテムのリストにはponyやunicornという単語は含まれていません。これにより、より良い結果が得られることを期待しています (混乱の少ない回答)。
発話構造で定義されていない複雑な文は、操作が非常に混乱します。たとえば、文に 2 つ以上の動詞が含まれている場合 (時制を構築するために必要な場合があります)。しかし、これまでのところ、ユーザーがある程度の礼儀正しさを持って行動している限り、私たちのアプローチは良好なレベルの精度で結果をもたらします。
しかし最後に: 残念ながら、現時点では、無限の異なる単語や文構造を持つメモのようなものを口述することはできません。