《Ai企业数据库》rasa具体流程使用-story等流程使用

阿丹:

        在翻阅资料之后发现,rasa并不直接支持中文的nlp(自然语言理解)。那么这里就发现了一个东西就是一个其他的人写的这个。先继续学习,这里留一个坑后面时间的时候实践出来并完成一下。 

留个坑待实践:

用Rasa NLU构建自己的中文NLU系统 

《Ai企业知识库》rasa项目-项目启动命令集-开放api接口启动以及保证多轮对话!!-CSDN博客

拉取rasa源码: 

 git clone https://github.com/RasaHQ/rasa.git

第一次获取,在PyCharm中第一次打开要主动去设置poetry的路径,可以使用终端中的

 

where poetry

来快速查找到这个应用文件的位置。 

 poetry其实和maven一个道理,其实就是用来管理python的依赖的工具。

增强Rasa NlU生命周期

每一个管道都要创建起来。

 

Rasa是一个开源的机器学习框架,用于构建会话AI应用,如聊天机器人。在Rasa中,pipeline是Rasa NLU(自然语言理解)部分的核心组件,它负责将原始的用户输入(通常是文本)转换为机器可以理解的结构化数据,包括识别意图(intents)、提取实体(entities)等。Pipeline是一系列有序执行的组件(components),每个组件都有其特定的功能。以下是Rasa中常见的Pipeline组件及其功能概述:

  1. Tokenizers:

    • WhitespaceTokenizer: 基于空格分词的基本分词器。
    • JiebaTokenizer: 专为中国语言设计的分词器,适用于中文文本。
  2. Featurizers:

    • CountVectorsFeaturizer: 将文本转换为词频向量,用于后续的意图分类和实体识别。
    • TF-IDF Featurizer: 类似于CountVectors,但使用TF-IDF权重来强调文档中重要的词汇。
    • IntentFeaturizerEmbedding: 利用预训练的词嵌入模型(如Word2Vec, GloVe等)将文本转换成向量表示。
  3. Intent Classifiers:

    • IntentClassifierTensorFlowEmbedding: 使用TensorFlow模型进行意图分类,支持基于嵌入的分类。
    • IntentClassifierSklearn: 基于Scikit-learn的分类器,如SVM、Logistic Regression等,用于意图识别。
  4. Entity Extractors:

    • CRFEntityExtractor: 使用条件随机场(CRF)模型来识别和提取实体。
    • SpacyEntityExtractor: 利用Spacy的命名实体识别(NER)模型来提取实体。
    • DucklingEntityExtractor: 时间、日期、数量等实体的精确抽取,基于Duckling库。
    • RegexEntityExtractor: 使用正则表达式匹配文本中的模式以提取实体。
  5. Transformers-based Components:

    • HFTransformersNLP: 使用Hugging Face Transformers库中的模型进行嵌入、分类和实体识别,支持BERT、RoBERTa等多种预训练模型。
  6. Miscellaneous Components:

    • MitieNLP: 使用MITIE工具包进行NLP处理,包括特征提取和实体识别。
    • ConveRTTokenizer & ConveRTFeaturizer: 使用ConveRT模型进行文本编码,适合跨语言任务。
    • LanguageModelFeaturizer: 利用语言模型的特征,如Spacy的en_core_web_md模型。

每个组件在Pipeline中按顺序执行,前一个组件的输出作为后一个组件的输入,最终产生结构化的输出,如识别出的用户意图和相关的实体信息。开发者可以根据具体需求定制Pipeline,选择最适合项目的组件组合。

 小结:整个pipeline会是一种管道的顺序从上到下来完成h进步。

改进NLU方法

 组件区分:

Tokenizers(标记器):

做分词,将一段话分为一个一个词,(如果是默认的话是whitespaceTokenizers)一般是用英语的分词。如果是中文的话,其实是有的。

如果是中文的话就有Jieba的分词包。

MITIE训练的时间是很慢的。

目前最好的HanLP

Featurizers特征化

 这个都是在config中来配置的,这里官方提供了很多中方法。要根据具体的情况具体的来使用。

这些配置需要根据文档来完成这个。可以参考官方文档。

Models

Intent Classifiers 

选择意图识别包

通常选择:

选择意图识别包。

SklearnlntentClassifier(数据量小(用)、速度快)

DIETClassifier(正常推荐的使用的意图识别包)

FallbackClassifier(意图识别包)这个是用来处理定义的意图之外的数据

Entity Extractors实体提取和使用

 小知识点:rasa并不直接做模型的训练,rasa也只是调用了,一些开源的工具来帮助训练。

抽取实体:

        使用了很多开源的工具包来使用的。

怎么去选择这些组件呢?

这是一个官方的怎么选择正确的组件

How to Handle Multiple Intents Using Rasa NLU TensorFlow Pipeline | The Rasa Blog

总结:

在pipeline管道中使用正确组件来帮助rasa可以正确的识别正确的用户提问的意图。

这是一个用来帮助选择图。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值