rasa浅层理解

本文介绍了rasa自学过程中的关键点,包括rules.yml中的规则编写注意事项,如冒号不能使用中文,需要后跟空格;nlu.yml中的意图和实体定义,如枚举法和正则匹配法。还阐述了nlu.yml、rules.yml和stories.yml之间的联系,指出意图识别后在rules.yml中定义动作和插槽,插槽与表单的互动实现多轮对话。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文意在记载自学过程中遇到的细节问题。相关网址

一、rules.yml

1、编写剧本和规则时冒号:不能用中文

错误示例(可以复制到rules.yml中观察二者区别):

- rule: 通过城市激活天气情况
  steps:
  - intent: 城市
  - action: weather_form

正确示例:

- rule: 通过城市激活天气情况
  steps:
  - intent: 城市
  - action: weather_form

2、冒号:后有空格才能将冒号前面的字符视为命令

错误示例:

- rule: 通过城市激活天气情况
  steps:
  - intent:城市
  - action: weather_form

正确示例:

- rule: 通过城市激活天气情况
  steps:
  - intent: 城市
  - action: weather_form

二、nlu.yml

1、枚举法编写

意图+实例

- intent: 性别
  examples: |
    - 你是男的?
    - 你是男的
    - 你是女的
    - 你的性别?
    - 你是男还是女

2、枚举替换法(自己命名的)

..........[实体](属性)......[实体](属性)......

- intent: 问路
  examples: |
    - 请问[西湖](位置)怎么走?
    - 我想请问[灵隐寺](位置)怎么走?
    - 请问[西湖](位置)或者是[灵隐寺](位置)怎么走?

3、正则匹配法

正则表达式匹配问题意图(regex正则表达式,需要正则表达式实体提取器提取)

- regex: 城市
  examples: |
    - (.{2,4}省)?.{2,4}市
- regex: 日期
  examples: |
    - [前昨今明后]天

三、nlu.yml与rules.yml、stories.yml的联系

在nlu.yml中定义意图(由examples中的内容匹配相应的意图),进行意图识别,获取意图后

在rules.yml和stories.yml中定义每个意图的动作名(注意:是动作名不是动作)并定义插槽名和循环表单名

nlu.yml中:

- regex: 城市
  examples: |
    - (.{2,4}省)?.{2,4}市

rulues.yml中:

- rule: 通过城市激活天气情况
  steps:
  - intent: 城市
  - action: weather_form
  - slot_was_set:
    - requested_slot: city
  - active_loop: weather_form

还想提一嘴,插槽slot_was_set和表单active_loop必然是同时存在的,有了插槽才能实现多轮对话。他们的关系是:通过表单不断询问插槽中未知的信息,直到插槽填满。

以上是基础理解后续会更新理解.

求个三连.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值