You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用RASA从用户语句中提取产品名称实体?

RASA固定句式任意产品实体提取解决方案

1. 排查正则不生效的核心原因

你写的正则没生效90%概率是配置问题:RASA中RegexFeaturizer仅负责给分类模型提供正则特征,不会直接提取实体,要让正则规则直接匹配实体,必须在pipeline中添加RegexEntityExtractor组件。

2. 调整config.yml配置

在你的pipeline中按如下顺序添加对应组件:

pipeline:
  - name: WhitespaceTokenizer
  - name: RegexFeaturizer
  - name: LexicalSyntacticFeaturizer
  # 新增正则实体提取组件
  - name: RegexEntityExtractor
    use_regexes: true
    # 匹配含特殊字符的产品名可以关闭单词边界校验
    use_word_boundaries: false
  - name: DIETClassifier
    epochs: 100
  - name: EntitySynonymMapper

3. 编写匹配规则

在nlu.yml中添加对应正则规则,直接提取三类句式中的实体内容:

nlu:
- regex: product
  examples: |
    # (?i)代表忽略大小写,括号内捕获组内容会被识别为product实体
    - (?i)^add\s+(.+)\s+to\s+cart$
    - (?i)^select\s+(.+)$
    - (?i)^put\s+(.+)\s+in\s+cart$

可选:无正则训练方案

如果不想维护正则规则,可以在nlu训练示例中加入20-30条不同的示例,覆盖不同长度、包含数字/特殊字符/多空格的产品名,DIET会自动学习到add和to cart中间、select之后、put和in cart中间的内容就是product实体,训练充分的情况下也能稳定识别任意产品名,示例如下:

- intent: add_to_cart
  examples: |
    - Add [cotton oversized t-shirt](product) to cart
    - Add [wireless noise-cancelling headphone pro 2](product) to cart
    - Add [5-pack 100% organic bamboo socks](product) to cart
    - Select [US 9.5 black waterproof hiking shoes](product)
    - Select [vintage brown leather crossbody bag](product)
    - Put [24-pack 550ml mineral water](product) in cart
    - Put [limited edition RGB wireless gaming mouse](product) in cart

兜底优化方案(100%识别任意内容)

如果希望完全不依赖模型,固定提取对应位置的内容,可以自定义轻量实体提取组件:

  • 继承RASA的EntityExtractor基类
  • 对识别到add_to_cart/select_item/put_in_cart意图的用户输入做字符串切割,直接取出对应位置的内容作为product实体
  • 将自定义组件添加到pipeline的最后即可

内容的提问来源于stack exchange,提问作者Pola8976

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 16:21:04