EmbeddingIntentClassifier稀疏特征输入来源及作用咨询
首先明确一点:CountVectorsFeaturizer和RegexFeaturizer生成的sparse_features都会作为EmbeddingIntentClassifier的输入。Rasa的NLU管道会自动收集所有组件输出的对应类型特征,合并后传给下一个需要该特征的组件,不会只选用其中某一个的输出。
下面具体说说这两类稀疏特征的作用:
CountVectorsFeaturizer的作用
它是基于词袋模型的特征提取组件,核心功能是把输入文本转换成基于词汇出现频率的稀疏向量。简单来说,它会统计文本里每个词汇的出现次数,帮模型捕捉文本的核心词汇分布——比如用户说“我想预约下周的体检”,它会重点标记“预约”“体检”这类高频关键词,让模型快速关联到“预约服务”类的意图。这类特征是意图分类的基础通用特征,能覆盖大部分常规的意图识别场景。
RegexFeaturizer的作用
这个组件则是通过你预先定义的正则规则,来捕捉文本中的特定格式或模式信息。比如你配置了匹配日期、手机号、订单编号的正则,它会把文本中是否存在这类模式作为特征传递给模型。举个例子,如果用户说“帮我查一下订单号12345的物流”,RegexFeaturizer会识别出“12345”符合订单编号的规则,生成对应的稀疏特征,帮模型更精准地定位到“查询物流”这个意图,尤其是当意图依赖特定格式信息时,这类特征能大大提升识别的准确性。
总结一下,两者的特征是互补的:CountVectorsFeaturizer负责通用词汇特征,RegexFeaturizer负责特定模式特征,EmbeddingIntentClassifier会结合这两类信息来做更准确的意图判断。
内容的提问来源于stack exchange,提问作者kogha

