0

我已经在config.yml文件的管道中提到它,我将使用 FallbackClassifier。

所以我的代码看起来像:

language: en
pipeline:
  - name: FallbackClassifier
    threshold: 0.7
    ambiguity_threshold: 0.1

但是,当我尝试运行它时收到此错误:

InvalidConfigException: The pipeline configuration contains errors. The component 'FallbackClassifier' requires 'IntentClassifier' to be placed before it in the pipeline. Please add the required components to the pipeline.
4

2 回答 2

3

当 IntentClassifier 对意图没有信心时,FallbackClassifier 会介入。所以你不能在不使用 Intentclassifier 的情况下使用 Fallback 分类器。

您可以从此https://rasa.com/docs/rasa/components/#intent-classifiers选择一个 IntentClassifier

最简单的 Intentclassifier 是“KeywordIntentClassifier”,但如果希望机器人进行复杂的对话,它不会是一个很好的选择。

这是使用 Fallbackclassifier 的工作管道的示例:

language: "en"

pipeline:
 - name: "WhitespaceTokenizer"
 - name: "CountVectorsFeaturizer"
 - name: "DIETClassifier"
 - name: FallbackClassifier
    threshold: 0.7
    ambiguity_threshold: 0.1
于 2021-09-06T16:17:37.737 回答
0

你的 FallbackClassifier 需要一个 IntentClassifier,它还需要一个 Featurizer,而 Featurizer 需要一个 Tokenizer。

因此,使您的 FallbackClassifier 工作的最简单方法是从您在CLI上运行时获取config.yml文件。复制粘贴 config.yml 代码并从"pipeline"的属性中删除所有 "#" 注释行。rasa init

因此,您的管道代码应如下所示:

language: en

pipeline:
# # No configuration for the NLU pipeline was provided. The following default pipeline was used to train your model.
# # If you'd like to customize it, uncomment and adjust the pipeline.
# # See https://rasa.com/docs/rasa/tuning-your-model for more information.
  - name: WhitespaceTokenizer
  - name: RegexFeaturizer
  - name: LexicalSyntacticFeaturizer
  - name: CountVectorsFeaturizer
  - name: CountVectorsFeaturizer
    analyzer: char_wb
    min_ngram: 1
    max_ngram: 4
  - name: DIETClassifier
    epochs: 100
    constrain_similarities: true
  - name: EntitySynonymMapper
  - name: ResponseSelector
    epochs: 100
    constrain_similarities: true
  - name: FallbackClassifier
    threshold: 0.7
    ambiguity_threshold: 0.1

现在你的 FallbackClassifier 应该像一个魅力一样工作!

于 2021-09-02T14:22:16.607 回答