2017-07-31 21 views
0

我想從一個意圖檢測的實體,這可能在幾個方面來寫:LUIS模式功能沒有發現我的實體

AB 123456
AB 123 456
AB123456

AB是選項從一個封閉的列表中,其餘的應該被檢測爲數字。只要有是AB和號碼之間的空格,就會檢測/解析列表項目和號碼。

我發現了模式特徵,希望這可以幫助解析器。

不幸的是,該實體仍然無法識別。我試圖用不同的方式來編寫模式,但沒有成功。

^([A-ZA-Z] {1,2})([0-9] +)$

([AZ] {2})([\ d] +)

[az] {2} [\ d] +

任何想法?

+0

僅供參考,您是使用.NET或Node.js SDK開發您的機器人嗎? – nilsw

+0

與.net,但問題可以在路易斯門戶網站以及(使用火車和測試) – martinoss

回答

0

AB是一個封閉式列表中的一個選項,其餘應該被檢測爲數字。只要有是AB和號碼之間的空格,就會檢測/解析列表項目和號碼。

如果"AB"從關閉名單的實體,那麼你應該創建數字和複合實體持有兩者相加一個簡單的實體。簡單的實體需要用少量話語進行訓練,例如, "123456","123 789","456789","201731",然後該模型(藉助RegExp模式爲您的模式功能[\d]{6})應該能夠處理其餘部分。

您將使用您的列表實體和新創建的簡單實體作爲合成實體的子代。一個可能像「產品」或比這更好的東西。

我想你可能認爲一個封閉的列表是機器學習的,但事實並非如此。這是對話語直接匹配,因此,如果您的列表實體有以下幾點:

canonicalForm: "ProductId" 
synonyms: "AB", "BA", "AB 123456" 

而且話語"BA 123456"是由模型處理,該LUIS模型將承認"BA""ProductId"和不承認"123456"在所有。通過擴展,整個話語不會被識別爲一個"ProductId"

+0

我已經嘗試與複合實體,但與內置號碼,而不是一個簡單的類型。問題依然存在,只有在「AB」和數字之間存在空格的情況下,孩子纔得到認可。我知道關閉的列表項不是機器學習(不幸的是)。我也嘗試過使用簡單類型的建議,但結果更糟,因爲它現在檢測到「AB123456」爲簡單類型。目前我使用正則表達式在.net中預處理用戶輸入,並在組之間添加空間,然後將其發送到luis :( – martinoss

+0

Yuck :(您可以嘗試使用Authoring API或進行批量訓練以強制它識別白色當你選擇你的標籤實體的標記(不確定這是否工作,還沒有嘗試過),但它可能爲零取決於標記化。你還需要添加一個空白到你的正則表達式模式(我應該在我的第一個答案中有這樣的想法),這個空格會在數字前面出現...... –

+0

問題只存在於沒有**空**的情況下,如果我用「AB123456」訓練,我不能標註「AB 「我只能選擇整個單詞。 – martinoss