Rasa 入门教程 NLU 系列(四)

rasa_tutorial_nlu_background.png

Rasa 入门教程 NLU 系列包括六个部分,前面介绍了Rasa 入门教程 NLU 系列(三),本文主要介绍 Rasa 框架中的 NLU 系列中的第四部分:语言支持。你可以使用 Rasa 来构建任何你所需要的语言助手!Rasa 的 supervised_embeddings pipeline 可以用在任何语言的训练数据集上。这个 pipeline 使用你提供的数据从头开始创建词嵌入。

另外,我们也提供了预训练好的词嵌入,比如:spaCy。有关哪种 pipeline 适合你的应用场景,请参阅选Rasa 入门教程 NLU 系列(三)。

本文的目录结构:

  1. 使用任何语言训练模型
  2. 预训练词向量

1. 使用任何语言训练模型

Rasa 的 supervised_embeddings pipeline 可以用于任何语言训练模型,它将使用你自己的训练数据来创建自定义词嵌入。这意味着任何特定单词的向量表示形式将取决于与其他在训练数据集中的单词的关系。这种定制化意味着,该 pipeline 非常适合依赖于特定领域数据的示例,比如:需要哪些提取特定产品名称的示例。

使用你的首选语言训练 Rasa 模型,可以通过Rasa 入门教程 NLU 系列(二)中的说明,将 supervised_embeddings pipeline 配置在 config.yml 文件中,或者配置其他文件中的 pipeline。

配置 supervised_embeddings pipeline 并生成一些 NLU 训练数据后,使用 rasa train nlu 命令训练模型。当训练完成后,你就可以测试该语言模型了。通过以下来运行你的 NLU 模型:

rasa shell nlu

注意:如果你发现你的模型识别效果不佳,或者无法识别,请尝试更多的示例数据来训练模型。

2. 预训练词向量

如果预训词向量中有你使用的语言,那么预训练词向量是一个不错的好方法,因为词向量是根据是大量数据训练得到的,例如维基百科。

2.1 spaCy

通过 pretrained_embeddings_spacy pipeline,你可以使用 spaCy 的预训练语言模型或者加载 fastText 向量,这些向量可用于数百种语言。如果你想将自定义的模型合并到 spaCy 中,请查看他们有关添加语言部分。如文档中所述,你需要注册你的语言模型并将其链接到语言标识符,这将允许 Rasa 通过传递语言标识符作为 language 来加载和使用你的新语言。

2.2 MITIE

你还可以使用 MITIE 从语料库中预先训练自己的词向量,需要做以下几点:

  1. 获得干净的语料库作为一组文本文件。
  2. 在语料库上构建并运行 MITIE Wordrep 工具。这可能需要几小时或几天,这取决于你的数据量和硬件配置。你需要大约 128G 的 RAM 才能运行 Wordrep 工具。
  3. 将你的配置文件中的 model 参数设置为新的路径:total_word_feature_extractor.dat

有关如何训练 MITIE 词向量的完整示例,请查看这篇文章。


作者:关于我

备注:转载请注明出处。

如发现错误,欢迎留言指正。

你可能感兴趣的:(Rasa 入门教程 NLU 系列(四))