2、【rasa】问题的意图识别和实体提取

文件目录

.
├── actions
│   ├── actions.py 
│   └── __init__.py
├── config.yml  # 告诉rasa如何训练模型。配置组件,例如分词组件、特征提取组件等
├── credentials.yml
├── data
│   └── nlu.yml  # 让rasa理解用户问题。用于存放处理好的用户问题数据
├── domain.yml  # 在本项目中只是申明了在nlu.yml文件中出现的意图
├── endpoints.yml
├── models  # 用于存放训练好的模型
│   ├── nlu-20220809-221140-maroon-canary.tar.gz
│   └── nlu-20220813-112249-generative-fjord.tar.gz
└── README.md

重要文件

./data/nlu.yml

该文件定义了意图,例如 intent: greet 、实体,例如 [感冒](disease)

在nlu定义的意图需要在./domain.yml重新申明一次。

version: "3.0"
nlu:
  - intent: greet
    examples: |
      - 你好
      - hello
      - hi
      - 喂
      - 在么

  - intent: goodbye
    examples: |
      - 拜拜
      - 再见
      - 拜
      - 退出
      - 结束

  - intent: medicine
    examples: |
      - [感冒](disease)了该吃什么药
      - 我[便秘](disease)了,该吃什么药
      - 我[胃痛](disease),该吃什么药
      - 一直[打喷嚏](disease)吃什么药好
      - 父母都有[高血压](disease),我应该推荐他们吃什么药好呢
      - 头上烫烫的,感觉[发烧](disease)了,该吃什么药好
      - [减肥](disease)有什么好的药品推荐吗?

  - intent: medical_department
    examples: |
      - [感冒](disease)了该吃去哪个科室看病
      - 我[便秘](disease)了,该去挂哪个科室的号
      - 我[胃痛](disease),该去医院看哪个门诊啊
      - 一直[打喷嚏](disease)挂哪一个科室的号啊
      - [头疼](disease)该挂哪科

  - intent: medical_hospital
    examples: |
      - 我生病了,不知道去哪里看病
      - [减肥](disease)有什么好的医院或者健康中心推荐吗?
      - 想做个[体检](disease),有哪家医院或者哪里的诊所或者健康中心比较实惠啊?
      - 父母都有[高血压](disease),我应该推荐他们去哪家医院好呢

./domain.yml

在这个例子中只是申明了在nlu.yml文件中出现的意图

version: "3.0"

intents:
  - greet
  - goodbye
  - medicine
  - medical_department
  - medical_hospital

./config.yml

用于定义模型的配置

recipe: default.v1

language: zh  # 设置语言为中文

# 定义流水线
pipeline:
  - name: JiebaTokenizer  # 分词组件
  - name: LanguageModelFeaturizer  # 特征提取组件
    model_name: bert
    model_weights: bert-base-chinese
  - name: "DIETClassifier"  # 实体和意图联合提取组件
    epochs: 100

# 定义模型训练策略,这里没有定义,所以将采用默认配置
policies:

参考资料

http://www.broadview.com.cn/book/5958

下载本书的代码,然后看第2章的内容。同时注意安装requirements.txt中的依赖

如何运行

首先训练模型:

rasa train

然后调试nlu模块,也就是意图识别和实体提取模块:

rasa shell nlu
posted @ 2022-08-13 16:42  tiansz  阅读(674)  评论(0编辑  收藏  举报