在上一篇中,我們新建了一個rasa項目,接下來需要准備nlu訓練數據,一般存在一個yaml格式文件里,默認為nlu.yml
。當然用戶可以自己指定,如果自定義訓練的時候得指定訓練數據的位置,不然rasa train
的時候會默認去data文件文件夾下查找nlu.yml
。
rasa的訓練數據一般有四種參數類型
-
intent
意圖數據,為該意圖下所有語料
version: "3.0" nlu: - intent: greet examples: | - 你好 - 你好啊 - 早上好 - 晚上好 - hello - hi - 嗨 - 嗨嘍 - 見到你很高興 - 嘿 - 早 - 上午好 - hello哈嘍 - 哈嘍哈嘍 - hello hello - 喂喂
同時在語料中還可以用
[entity value](entity name)
的方式來標注實體,也可以用[entity name]{"key": "value"}
的方式來標注,其中大括號里的key
可取值有entity、value、rule、group
。其中value
表示同義詞,如- intent: request_weather examples: | - 查天氣 - 幫我查下天氣 - 告訴我天氣怎么樣 - 查下天氣 - 我要查天氣 - 天氣怎么樣 - 看下天氣 - 天氣如何 - 天氣 - 查詢天氣 - 幫我查天氣信息 - 我想知道[明天](date_time)的天氣 - [星期一]{"entity": "date_time", "value": "周一"}的天氣 - [今天](date_time)的天氣怎么樣 - 幫我查下[后天](date_time)的天氣 - 查下[廣州](address)的天氣怎么樣
-
synonym
同義詞,比如某個實體的同義詞,可以單獨列出來如:
- synonym: 周一 examples: | - 星期一 - 禮拜一
-
lookup
查找表,比如某個實體可能從某些值里面取值,比如點奶茶是的杯型,有大杯、小杯、中杯,則可定義
- lookup: cup type examples: | - 大杯 - 中杯 - 小杯
-
regex
正則表達式,有些實體用正則表達式來抽取可能會比較方便,比如手機號,則可以定義
- regex: phone number examples: | - 1\d{10}