[英]Does watson conversation intents and entities support regular expressions?
我正在使用公司想要創建的可能對話框來測試Watson Conversation API。 我們正在與巴西葡萄牙語一起發展。 鑒於葡萄牙語是一種豐富的語言,有時用戶可能會犯錯誤,因此我們希望預測這些可能的錯誤,主要是使用特殊字符和重音符號。
例如,單詞produção
可以由以下用戶編寫: produção
, producao
, produçao
, producão
。 是否可以在意圖和實體上使用正則表達式以具有類似圖片的東西? 有時我們會用另一個詞來使produção final
, produção geral
, produção passada
等produção passada
。
另一個快速的問題,是否可以使用諸如@(producao)
類的東西(例如圖像)來創建與實體值合並的意圖的示例?
謝謝
您不能在意圖或實體中使用正則表達式,但是我認為您仍然應該能夠應對變化。
匹配意圖時,目前沒有內置的錯別字或口音歸一化處理功能,但是,如果句子中有足夠的特征可以匹配,那么偶爾的錯字就不會造成問題。 對於非常簡短的示例,為常見錯誤添加其他示例可能會有一定的價值。
對於實體,您可以包含同義詞,而我之前曾使用它來包含常見錯誤。
您不應嘗試在意圖中直接包含對實體的引用。 例如,您應該僅使Qual a produção
而不是Qual a @(producao)
,以及具有相同意圖的其他示例,可能具有不同的實體,或者同一實體的不同同義詞。 例如,對於#directions意圖,我可能有以下示例...
以及@transport實體的值,例如汽車,公共汽車,火車,自行車等。 (很抱歉,我無法提供巴西葡萄牙語示例!)無需明確地命名您希望在意圖中找到的實體。
最后,您可以在對話框節點上的條件中使用正則表達式,例如...
input.text.matches( 'produ[cç][aã]o' )
在這種情況下,僅出於補充和更多知識的考慮,幾天前IBM Watson Conversation發布了一個新的Beta版以供Patterns使用。
通過@Entities中的模式,您可以使用正則表達式。
模式字段可讓您定義實體值的特定模式。 必須在字段中將模式作為正則表達式輸入。
如本例所示,對於實體“ ContactInfo”,電話,電子郵件值的模式可以定義如下:
例子:
localPhone : (\\d{3})-(\\d{4})
,例如426-4968
fullUSphone : (\\d{3})-(\\d{3})-(\\d{4})
,例如800-426-4968
電子郵件 : \\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}\\b
,例如測試@ gmail.com
通常,在使用模式實體時,有必要在對話框樹中的上下文變量(或動作變量)中存儲與模式匹配的文本。
設想一下您要向用戶詢問其電子郵件地址的情況。 對話框節點條件將包含類似於@contactInfo:email
的條件。 為了將用戶輸入的電子郵件分配為上下文變量,可以使用以下語法在對話框節點的響應部分內捕獲模式匹配:
{
"context" : {
"email": "@contactInfo.literal"
}
}
觀察:會話服務使用的模式匹配引擎具有一些語法限制,這是避免使用其他正則表達式引擎時可能發生的性能問題所必需的。 值得注意的是,實體模式可能不包含:
查看有關在Watson Conversation中定義實體的更多信息(重點在步驟7中)
您無需擔心重音,復數或拼寫錯誤的單詞。 Watson,LUIS,API.AI等將其作為功能並適用於每個單詞。 例如:
卡唐信貸銀行>ķartão信貸銀行>車A○德CRE b ITO
所有這些都很好!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.