rasa使用教程二——NLU数据准备

在上一篇中,我们新建了一个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}
    
posted @ 2022-02-25 17:27  理想几岁  阅读(1117)  评论(0编辑  收藏  举报