2017-08-21 58 views
-2

我在我的LUIS應用程序中使用builtin.number試圖收集4位數的PIN號碼。以下是我的輸入是「一二三四」時從LUIS返回的內容。Microsoft LUIS builtin.number

「實體」:[{ 「實體」: 「一個」, 「類型」: 「builtin.number」, 「的startIndex」:0, 「endIndex的」:2, 「分辨率」: { 「值」: 「1」 } },{ 「實體」: 「二」, 「類型」: 「builtin.number」, 「的startIndex」:4, 「endIndex的」:6, 「resolution」:{ 「value」:「2」 } }, { 「實體」: 「三」, 「類型」: 「builtin.number」, 「的startIndex」:8, 「endIndex的」:12, 「分辨率」:{ 「值」: 「3」 } },{ 「實體」: 「4」, 「類型」: 「builtin.number」, 「的startIndex」:14, 「endIndex的」:17, 「分辨率」:{ 「值」: 「4」 } },

正如您所看到的,它會以文本和數字格式返回個別數字。在我看來,返回整個數字比單個數字更重要。有沒有辦法做到這一點,以便我得到'1234'作爲builtin.number的結果?

謝謝!

+0

連接它們? – Sneftel

回答

1

僅通過使用LUIS無法做到您要求的內容。 LUIS進行標記的方式是,由於空白,它可以單獨識別每個單詞/數字。不用說,'onetwothreefour'也不會返回1234.

此外,用戶無法修改單個模型級別上預構建實體的識別。某些語言的識別人員是open-source,歡迎社區貢獻。

所有這些說,你可以實現你要求的方式是通過連接數字。一個JavaScript示例可能如下所示:

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

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

之後,您將需要執行自己的處理/正則表達式,但我會將其留給您。 (畢竟,如果有人提供"seven eight nine ten"?或"twenty seventeen"?)

+0

謝謝,史蒂文! – Michelle