rasa中文语言模型spacy配置

spacy最新版本开始支持中文

1, 下载 中文语言模型 zh_core_web_md-2.3.1.tar.gz

     下载地址:https://spacy.io/models/zh

2,rasa 聊天机器人 config.yml 改进 配置:

language: zh
pipeline:
  - name: SpacyNLP                   # 预训练词向量
    model: "zh_core_web_md"
  - name: SpacyTokenizer          # 文本分词器
  - name: SpacyEntityExtractor  #文本特征化
  - name: SpacyFeaturizer         #特征提取器 将一句话变成一个向量
    pooling: mean
  - name: CountVectorsFeaturizer  #创建用户信息和标签(意图和响应)的词袋表征 为意图分类和 response selection创建特征
  - name: CountVectorsFeaturizer
    analyzer: "char_wb"
    min_ngram: 1
    max_ngram: 4
  - name: DIETClassifier              #意图分类
    epochs: 100
  - name: EntitySynonymMapper   #同义实体
  - name: ResponseSelector
    epochs: 100

# Configuration for Rasa Core.
# https://rasa.com/docs/rasa/core/policies/
policies:
  - name: MemoizationPolicy
  - name: TEDPolicy
    max_history: 5
    epochs: 100
  - name: MappingPolicy
~

直接在nlu.md中写入中文:

## intent:greet
- 你好
- 您好
- hi
- 早上好
- 中午好
- 晚上好

## intent:goodbye
- 再见
- 回头见
- 拜拜

## intent:affirm
- 好的
- 好
- 行

## intent:deny
- 不行
- 不可以
- 不同意
- 没门

## intent:bot_challenge
- 你是人吗
- 你是机器人吗
- 我在和机器人说话吗
- 我在和人说话吗?
~

3,如何挑选哪个意图分类的组件?

组件有两类 预训练Embedding 和 监督式Embedding。

第一类 预训练Embedding: sklearnintentclassifier

使用 spaCy library加载预训练语言模型,包含中文。

什么时候使用此组件? 满足项目场景的预训练词嵌入存在,且能适用于项目时。

第二类 监督式Embedding:embeddingintentclassifier

从0开始训练词嵌入。通常和 countvectorsfeaturizer 组件一起使用。

特点:需要足够的训练数据,此分类器独立于语言,只带多意图的消息,十分灵活。


以上两种分类器的选择可以通过以下决策树进行:

是否有符合场景机器人语言的预训练词嵌入? 是 --> 下一题,?否 --> 监督式,

是否需要每次消息支持多意图分类??是 --> 监督式, 否 --> 下一题

是否存在领域特殊的词典? 是 --> 下一题,?否 --> 预训练,

是否有足够多的训练数据??是 --> 监督式, 否 --> 预训练

你可能感兴趣的:(rasa,人工智能)