2017-08-21 11 views
-2

LUISアプリケーションでbuiltin.numberを使用して、4桁のピン番号を収集しようとしました。以下は、入力が "one two three four"のときにLUISから返されるものです。Microsoft LUIS builtin.number

"エンティティ":[{ "エンティティ": "1"、 "タイプ": "builtin.number"、 "のstartIndex":0、 "endIndexの":2、 "解像度": { "値": "1" }}、{ "エンティティ": "二"、 "タイプ": "builtin.number"、 "のstartIndex":4、 "endIndexの":6、 "解像度":{ "値": "2" } }、 { "エンティティ": "3"、 "タイプ": "builtin.number"、 "のstartIndex":8、 "endIndexの":12、 "解像度":{ "値": "3"} }、{ "エンティティ": "4"、 "タイプ": "builtin.number"、 "のstartIndex":14、 "endIndexの":17、 "解像度":{ "値": "4" } }、

ご覧のとおり、文字と数字の両方の形式で個別の数字が返されます。個々のものよりも数字全体を返すことが重要だと私には思えます。 builtin.numberの結果として'1234 'が得られるようにする方法はありますか?

ありがとうございます!

+0

を連結してください。 – Sneftel

答えて

1

LUISのみを使用して求めていることはできません。 LUISがトークン化を行う方法は、空白のために各単語/数字を個別に認識することです。 「onetwothreefour」も1234を返さないことは言うまでもない。

さらに、ユーザーは個々のモデルレベルで事前構築されたエンティティの認識を変更することはできません。特定の言語のレコグナイザはopen-sourceであり、コミュニティからの寄付は大歓迎です。

すべてのことは、あなたが求めているものを達成できる方法は、数字を連結することです。あなたがあなた自身のハンドリング/正規表現を実行する必要があるだろうが、私はあなたにそれを残しておきますその後

var pin = ''; 
entities.forEach(entity => { 
    if (entity.type == 'builtin.number') { 
    pin += entity.resolution.value; 
    } 
} 

console.log(pin); // '1234' 

:JavaScriptの例では、次のようなものかもしれません。 (結局のところ、誰かが"seven eight nine ten"を提供する場合、または"twenty seventeen"

+0

ありがとう、スティーブン! – Michelle

関連する問題