我真的是Chatbots的新手,并开始使用框架学习这些知识。我开始使用这个开源框架RASA并对其进行学习。然后,我发现RASA使用了此实体提取工具Spacy。
谁能解释一下两者之间的实际关系是什么? Spacy在RASA中的作用是什么?
最佳答案
Rasa堆栈具有两个主要组件:NLU和Core。在Rasa NLU内部,有用于提取意图和实体的管道。管道组件之一使用ojit_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库,例如spaCy和nltk。
但是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应用程序是: