我真的是Chatbots的新手,并开始使用框架学习这些知识。我开始使用这个开源框架RASA并对其进行学习。然后,我发现RASA使用了此实体提取工具Spacy。
谁能解释一下两者之间的实际关系是什么? Spacy在RASA中的作用是什么?
答案 0 :(得分:13)
Rasa堆栈具有两个主要组件:NLU和Core。在Rasa NLU内部,有用于提取意图和实体的管道。管道组件之一使用spaCy。例如,在以下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用于话语的预处理,标记化和特征化。它还利用nltk和sklearn之类的其他python库。
但是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应用程序是: