【问题标题】:How to deal with rasa nlu data imbalance problem?rasa nlu数据不平衡问题如何处理?
【发布时间】:2019-10-19 10:12:54
【问题描述】:

现在我有12个intent要识别,但是每个intent的数据量是不一致的,比如会议设置,提醒这些意图,数据量会上千。但是比如问候,谢谢这样的意图,有数据样本很少,可能只有几十个。

我该如何处理这个数据不平衡问题?

我的config.yml文件内容如下:

language: en

pipeline:
  - name: "WhitespaceTokenizer"
  - name: "RegexFeaturizer"
  - name: "CountVectorsFeaturizer"
    analyzer: char_wb
    min_ngram: 2
    max_ngram: 5
    stop_words: "english"
  - name: "CRFEntityExtractor"
  - name: "extractor.regex.RegexEntityExtractor"
  - name: "EmbeddingIntentClassifier"
    epochs: 100
    num_neg: 2
  - name: "DucklingHTTPExtractor"
    url: "http://localhost:8000"
    dimensions: ["time", "duration", "phone-number", "distance"]

policies:
  - name: MemoizationPolicy
  - name: EmbeddingPolicy
    epochs: 20
  - name: FormPolicy
  - name: MappingPolicy
  - name: FallbackPolicy
    fallback_action_name: "action_default_fallback"

【问题讨论】:

    标签: embedding rasa-nlu rasa-core rasa imbalanced-data


    【解决方案1】:

    我不知道我是否正确理解了您的问题。据我了解,您不必担心诸如问候之类的意图,拒绝数据很少(示例),而其他人则有数千数据(示例)。

    当您尝试处理多个意图并且这些意图以非常小的方式彼此不同时,就会出现问题。在这种情况下,如果您不向 RASA 提供正确且正确的数据,则会造成混淆并可能给出错误的输出。您应该担心如何使这些数据针对每个意图而有所不同,并使 RASA 不那么混乱,以便获得正确的输出。

    【讨论】:

    • 非常感谢!,我会试试的
    【解决方案2】:

    这里是 Rasa 文档,希望你得到你需要的。

    如果存在较大的类不平衡,分类算法通常表现不佳,例如,如果您有很多针对某些意图的训练数据而针对其他意图的训练数据很少。为了缓解这个问题,rasa 的 supervised_embeddings 管道使用了平衡批处理策略。

    【讨论】:

    • 是的,这确实回答了这个问题,使用 Rasa 提供的设置。但更好的答案会以一种不神秘的方式解释平衡批处理策略。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2020-09-25
    • 2022-10-14
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多