0

现在我有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"
4

2 回答 2

1

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

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

于 2019-10-22T11:05:21.027 回答
0

这是 Rasa 文档,我希望你能得到你需要的东西。

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

于 2020-01-16T11:35:09.733 回答