本文继续围绕工业级业务对话平台和框架Rasa从源码的角度来解析:
1,自定义Dense Message Featurizer和Sparse Message Featurizer
2,Rasa的Tokenizer及WhitespaceTokenizer
3,CountVectorsFeaturizer及RegexFeaturizer
六、定制Graph Components
4. 关于自定义组件的源码实现解析
1) Dense Message Featurizer
首先看一下Rasa框架中这个类DenseFeaturizer,它是所有dense featurizers的基类,在这个类中定义了一个静态方法aggregate_sequence_features:
下面是一个使用了预训练模型的dense message featurizer的实现样例,在package import部分可以看到使用了BPEmb,这是一个基于BPE(Byte-Pair Encoding)的使用275种语言进行预训练后的subword级别的编码集合,在NLP里被作为神经网络模型(如DIET)的输入来使用,另外还import了前面介绍的DefaultV1Recipe,GraphComponent,Resource,ModelStorage,Tokenizer等重要的类,除此之外,还import了DenseFeaturizer(上面图中所示的类):
下图中关于组件注册使用了decorator “DefaultV1Recipe.register”,由于使用了BPEmb,所以类名为”BytePairFeaturizer”: