Rasa學習筆記

2021-08-28 21:47:21 字數 1168 閱讀 7659

目錄

典型pipeline​

1、初始化元件

2、分詞元件

3、提取特徵元件

4、ner元件

pipeline元件特徵

pipeline配置選擇

工具選擇

目前只有兩個初始化元件:nlp_spacy和nlp_mitie,分別對應 spacy和mitie。

基於mitie的元件,如: tokenizer_mitie、intent_featurizer_mitie、ner_mitie和intent_classifier_mitie都將依賴nlp_mitie 提供的物件。

基於spacy的元件,如:tokenizer_spacy、intent_featurizer_spacy和ner_spacy都將依賴nlp_spacy提供的物件。

rasa分詞元件中,tokenizer_jieba支援中文分詞,tokenizer_mitie經過改造可以支援中文分詞,tokenizer_spacy暫不支援中文分詞但未來會支援(需要跟進)。

命名實體識別和意圖分類,都需要上游元件提供特徵。常見特徵有:詞向量、bag-of-words、n-grams、正規表示式。使用者可以同時使用多個元件提取特徵,這些元件在實現層面上做了合併特性的操作。

rasa nlu的配置檔案使用的是yaml(yaml ain』t markup language)格式,例如:

language: "en"

pipeline:

- name: "nlp_mitie"

model: "data/total_word_feature_extractor.dat"

- name: "tokenizer_mitie"

- name: "ner_mitie"

- name: "ner_synonyms"

- name: "intent_entity_featurizer_regex"

- name: "intent_classifier_mitie"

rasa nlu的配置還可以採用預定義的pipeline的方式,例如:

pipeline: tensorflow_embedding
rasa nlu預定義的pipeline有:tensorflow_embedding、spacy_sklearn。

rasa安裝和測試

git源位址參考 pip install rasa nlu 0.13.4 pip install rasa core 0.11.4 pip install rasa core sdk 0.11.4 yum install npm npm install g chatito 影象化的語料生成工具 np...

簡介RASA中的TED Policy

簡單的會話中,可以直接根據意圖對映動作。但實際情況中,會話中會發生閒聊或場景切換,需要參考歷史來選擇動作。在tedpolicy中,rasa提取特徵,並通過特徵來決定採取何種動作。特徵包含使用者訊息中的意圖 實體 當前的槽值和之前所採取的動作。所有特徵向量拼接起來成為最終的feature t,tedp...

RASA中的填槽

填槽指在會話中從使用者處收集完成任務所需的資訊。如果需要連續收集多條資訊,可以建立乙個formaction。formaction中含有乙個迴圈的邏輯來詢問使用者所需的槽值。form在domain檔案中定義 使用form則需要在config檔案中引入formpolicy。formpolicy是memo...