Rasa官方视频教程整理(二):管道中的组件

- Rasa官方视频教程整理(一):愉快的开始

- Rasa官方视频教程整理(二):管道中的组件

- Rasa官方视频教程整理(三):Core

-训练NLU模型:理解管道的组件-

    管道不仅定义了NLU模型由哪些组件组成,还定义了这些组件按什么顺序排列、被训练和执行。每个组件都处理输入并创建输出,输出可以由管道中该组件之后的任何组件使用。有的组件仅产生其他组件所用信息,还有些组件有Output属性,信息将在之后返回。

    下面列出了管道中包含的组件:

pretrained_embdddings_spacy  

    了解了组件,可以更好的自定义管道或更改现有管道。

                                                                                -1-

pretrained_embdddings_spacy 管道中的组件 :

    SpacyNLP:负责加载Spacy语言模型,并准备好进行后续处理。仅在使用spacy语言模型时才有意义。

    SpacyTokenizer:令牌生成器。作用类似于WhitespaceTokenizer。此类令牌生成器创建的令牌通常由许多后续组件使用。

    SpacyFeaturizer:功能化器。

    SklearnIntentClassifier:意图分类器。如果你正在是用预训练的词嵌入,用此组件。对嵌入的词进行提取,并训练模型。允许你的模型学习并进行预测。

supervised_embeddings 

                                                                               -2-

supervised_embeddings 管道中的组件 :

    WhitespaceTokenizer:令牌生成器,在句子中寻找空格,并为每个由空格分隔的字符序列创建令牌。很适合处理大多数语言,没有空格的语言要使用专业的标记器。如中文:使用结巴(jieba)

    CountVectorsFeaturizer:功能化器。不使用预训练词嵌入,用此组件。通过计算用户一句话中单词的出现频率来猜测意图。除了使用单词令牌计数,还可以通过更改它的analyzer等属性,使得意图分类对错别字更可靠,但也增加了训练时间。

CountVectorsFeaturizer

    EmbeddingIntentClassifier:意图分类器。不是用预训练词嵌入时,这是最佳选择。建议放在CountVectorsFeaturizer 后面,他提取的特征会放入到意图分类器中,并产生意图分类结果。 此组件允许你处理高级的语言(有多种意图的)。

EmbeddingIntentClassifier 工作过程

                                                                               -3-

两种管道共有组件:

    CRFEntityExtractor:实体提取器。用于提取实体过程中的实体识别。该组件定义了一个模型,该模型通过观察句子中目标词的文本特征以及周围单词来识别实体,可以是前缀、后缀、目标单词的大小写,如果是数字等,还可以用此模型的POS标记功能,但是需要安装Spacy。CRFEntityExtractor将令牌作为输入,提供一个输出(句子有哪些实体,是什么样的实体,对预测的信心如何,以及用了哪种提取器),该输出直接添加到NLU模型。如果你正在处理高级的实体提取案例,基于模型的缺乏,需要用到正则表达式(与某些硬编码匹配)或查表(当你的实体具有一组预定义的值时,会很有用),可用此提取器。

CRFEntityExtractor  

    SpacyEntityExtractor:实体提取器。如果你的训练数据很少,并正在用spacy语言模型来提高模型的性能,可以用SpacyEntityExtractor,默认情况下利用已知的POS和其他功能在训练示例中定位实体。

    DucklingHttpExtractor:实体提取器。有时你会发现你尝试提取的实体严格遵循模式(日期,邮编等)。可以用一些预先训练的组件(如DucklingHttpExtractor)来提取模型,无需从头开始训练NER模型。

    RegexFeaturizer:给CRFEntityExtractor添加查表和正则功能。标记一个单词是否由正则表达式或查找条件匹配。

                                                                                -4-

组件的顺序:很重要

    令牌生成器 > RegexFeaturizer(若实体提取器是CRFEntityExtractor) > 实体提取器 > 功能化器 > 意图分类器(若其他组件输出的内容对意图分类器有用,就一定要放在意图分类器之前)

    问题讲解:如何处理用户输入错别字的问题?

    自定义拼写检查器,并将其添加到自定义的管道配置中。也可以添加一些带有错别字的示例到nlu.md。

下一章:Rasa官方视频教程整理(三):Core

你可能感兴趣的:(Rasa官方视频教程整理(二):管道中的组件)