准备好训练数据之后要进行的就是模型训练。而RASA NLU可以定义不同的pipeline。
Rasa_NLU_Chi方案
官方地址在: https://github.com/crownpku/Rasa_NLU_Chi
配置文件如下:
language: "zh" pipeline: - name: "nlp_mitie" model: "data/total_word_feature_extractor_zh.dat" - name: "tokenizer_jieba" - name: "ner_mitie" - name: "ner_synonyms" - name: "intent_entity_featurizer_regex" - name: "intent_classifier_mitie"
tensorflow_embedding
language: "zh" pipeline: - name: "tokenizer_jieba" - name: "ner_crf" - name: "intent_featurizer_count_vectors" OOV_token: oov token_pattern: '(?u)\b\w+\b' - name: "intent_classifier_tensorflow_embedding"
Rasa_NLU自定义component
参考: https://www.jianshu.com/p/4ecd09be4419,作者定义了一套component,可以实现两个实体识别模型: bilstm+crf 和 idcnn + crf。代码在https://github.com/GaoQ1/rasa_nlu_gq,可以通过pip3安装
pip3 install rasa-nlu-gao
ner_bilstm_crf
language: "zh" pipeline: - name: "tokenizer_jieba" - name: "intent_featurizer_count_vectors" token_pattern: '(?u)\b\w+\b' - name: "intent_classifier_tensorflow_embedding" - name: "ner_bilstm_crf" lr: 0.001 char_dim: 100 lstm_dim: 100 batches_per_epoch: 10 seg_dim: 20 num_segs: 4 batch_size: 200 tag_schema: "iobes" model_type: "bilstm" # 模型支持两种idcnn膨胀卷积模型或bilstm双向lstm模型 clip: 5 optimizer: "adam" dropout_keep: 0.5 steps_check: 100
jieba_pseg_extractor
上面对slot filling的精度进行了提高,但是前提还是需要有大量的训练数据,如果训练数据不多的话还是建议使用ner_crf。原作者还自定义了组件jieba_pseg_extractor,以借助jieba来解决人名识别的问题。
language: "zh" pipeline: - name: "tokenizer_jieba" - name: "ner_crf" - name: "jieba_pseg_extractor" part_of_speech: ["nr", "ns", "nt"] - name: "intent_featurizer_count_vectors" OOV_token: oov token_pattern: '(?u)\b\w+\b' - name: "intent_classifier_tensorflow_embedding"
版权声明
本文标题:109-【RASA系列教程-3】-RASA NLU模型训练
文章作者:盛领
发布时间:2020年09月26日 - 13:48:40
原始链接:http://blog.xiaoyuyu.net/post/3d9c5ef.html
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
如您有任何商业合作或者授权方面的协商,请给我留言:sunsetxiao@126.com

欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!