目錄
典型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...