Rasa NLU 示例

该存储库包含一些用于教育和启发目的的示例组件。这些是我们开源以鼓励实验的组件,但这些组件不受官方支持。会有一些测试和一些文档,但这是一个社区项目,而不是核心 Rasa 的一部分。

这些工具的目标是仅与最新版本的 rasa 兼容。如果您希望它与旧版本的 Rasa 兼容,您可能需要指向该项目的旧版本。

安装

要在本地使用这些工具,您需要通过 git 安装。

python -m pip install "rasa_nlu_examples @ git+https://github.com/RasaHQ/rasa-nlu-examples.git"

请注意,如果您还想安装可选的依赖项,则需要运行:

python -m pip install "rasa_nlu_examples[flashtext] @ git+https://github.com/RasaHQ/rasa-nlu-examples.git"
python -m pip install "rasa_nlu_examples[stanza] @ git+https://github.com/RasaHQ/rasa-nlu-examples.git"
python -m pip install "rasa_nlu_examples[thai] @ git+https://github.com/RasaHQ/rasa-nlu-examples.git"
python -m pip install "rasa_nlu_examples[fasttext] @ git+https://github.com/RasaHQ/rasa-nlu-examples.git"
python -m pip install "rasa_nlu_examples[all] @ git+https://github.com/RasaHQ/rasa-nlu-examples.git"

如果您使用任何依赖 spaCy 的模型,您需要先安装 spaCy 的 Rasa 依赖项。

python -m pip install rasa[spacy]

分词器

Rasa NLU 示例_第1张图片

分词器可以将输入文本拆分为标记。根据您选择的 Tokenizer,您还可以选择应用词形还原。对于具有丰富语法特征的语言,这可能有助于减少所有可能的标记的大小。

  • rasa_nlu_examples.tokenizers.BlankSpacyTokenizer 文档
  • rasa_nlu_examples.tokenizers.StanzaTokenizer 文档
  • rasa_nlu_examples.tokenizers.ThaiTokenizer 文档

特征提取器

Rasa NLU 示例_第2张图片

密集特征化器为每个标记以及整个话语附加密集的数字特征。这些特征在管道后期被意图分类器和实体检测器拾取。

  • rasa_nlu_examples.featurizers.dense.FastTextFeaturizer 文档
  • rasa_nlu_examples.featurizers.dense.BytePairFeaturizer 文档
  • rasa_nlu_examples.featurizers.dense.GensimFeaturizer 文档
  • rasa_nlu_examples.featurizers.sparse.SparseBytePairFeaturizer 文档
  • rasa_nlu_examples.featurizers.sparse.SemanticMapFeaturizer 文档

意图分类器

Rasa NLU 示例_第3张图片

意图分类器是根据给定的用户消息文本预测意图的模型。Rasa NLU 中的默认意图分类器是DIET 模型,它的计算成本可能相当高,尤其是在您不需要检测实体的情况下。我们在这里提供了一些替代意图分类器的示例。

rasa_nlu_examples.classifiers.SparseNaiveBayesIntentClassifier 文档 rasa_nlu_examples.classifiers.SparseLogisticRegressionIntentClassifier 文档

实体提取器

Rasa NLU 示例_第4张图片

  • rasa_nlu_examples.extractor.FlashTextEntityExtractor 文档
  • rasa_nlu_examples.extractor.DateparserEntityExtractor 文档

回退分类器

Rasa NLU 示例_第5张图片

  • rasa_nlu_examples.fallback.FasttextLanguageFallbackClassifier 文档

元组件

此处列出的组件很有用,但属于“其他”类别。

  • rasa_nlu_examples.meta.Printer 文档
  • rasa_nlu_examples.meta.StopWordsRemover 文档
  • rasa_nlu_examples.scikit.RasaClassifier 文档
  • rasa_nlu_examples.scikit.dataframe_to_nlu_file 文档
  • rasa_nlu_examples.scikit.nlu_path_to_dataframe 文档

人名名单

spaCy 中的语言模型通常在西方新闻数据集上进行训练。这意味着报告的基准可能不适用于您的用例。例如; 检测来自法国的文本中的名称与检测马达加斯加的名称不同。即使认为法语在两个国家/地区都被广泛使用,但其公民的姓名可能如此不同,以至于您无法假设这些基准是普遍适用的。

为了解决这个问题,我们已经开始收集名单。这些可以用作查找表,可以由 Rasa 的RegexEntityExtractor 或我们的FlashTextEntityExtractor 获取。它不会是 100% 完美的,但它应该给出一个合理的起点。

您可以在此处找到名单。我们目前提供美国、德国以及常见阿拉伯名称的名单。随意提交更多语言的 PR。我们也渴望收到反馈。

Ref:
https://rasahq.github.io/rasa-nlu-examples/

你可能感兴趣的:(RASA,git,python,自然语言处理)