我真的是Chatbots的新手,并开始使用框架学习这些知识。我开始使用这个开源框架RASA并对其进行学习。然后,我发现RASA使用了此实体提取工具Spacy。

谁能解释一下两者之间的实际关系是什么? Spacy在RASA中的作用是什么?

最佳答案

Rasa堆栈具有两个主要组件:NLUCore。在Rasa NLU内部,有用于提取意图和实体的管道。管道组件之一使用oj​​it_a。例如,在此Rasa管道中:

pipeline:
- name: "nlp_spacy"
- name: "tokenizer_spacy"
- name: "intent_entity_featurizer_regex"
- name: "intent_featurizer_spacy"
- name: "ner_crf"
- name: "ner_synonyms"
- name: "intent_classifier_sklearn"

spaCy用于话语,标记化和特征化的预处理。它还利用了其他python库,例如spaCynltk

但是Rasa NLU有几种不同的管道选项。因此,在下面的管道中:
pipeline:
- name: "tokenizer_whitespace"
- name: "ner_crf"
- name: "intent_featurizer_count_vectors"
- name: "intent_classifier_tensorflow_embedding"

完全不使用spaCy,但使用sklearn和tensorflow。

Rasa NLU试图抽象化使用spaCy和其他库的一些困难,以使其更轻松,更专注于构建聊天机器人。然后,还有其他一些应用程序正在尝试采用Rasa NLU,并通过提供更加抽象的GUI使其变得更易于使用。在开放源代码中,这是一种相当普遍的模式,其中一种工具建立在另一种工具之上。 Rasa的一些GUI应用程序是:
  • sklearn
  • Rasa UI
  • Rasa Talk
  • 10-04 13:00