美文网首页rasa
rasa对话系统踩坑记(七)

rasa对话系统踩坑记(七)

作者: colin_gao | 来源:发表于2018-12-17 13:47 被阅读0次

    如何在rasa-core框架下使用第三方nlu服务

    现阶段我们rasa-core都是配合rasa-nlu使用的,但也会有配合使用第三方或者已有的nlu模型的情况,所以这篇分享下如何在rasa-core的框架下使用nlp-architect。具体的代码参见rasa-nlp-architect,这个repo一个月前写的了,只不过弄完之后一直没有用起来,这次就做个总结,不然我估计会忘了。

    nlp-architect

    nlp-architect是英特尔推出的自然语言开源库,这个库支持很多自然语言处理相关的问题。如下图:

    nlp_architect_diag.png
    这里我使用了其中的Intent Extraction的功能,nlp-architect库中意图抽取提供了两种模型,分别是mtl和seq2seq。对应的模型如下图:
    mtl_model.png enc-dec_model.png

    简而言之,mtl模型用的是双向LSTM + CRF实现slot filling,双向LSTM + FC + Softmax实现intent extraction。而seq2seq其实是在提取特征这块进行了替换,将mtl的双向LSTM替换成了seq2seq,其中也加入了attention机制。比较基础就不再赘述。

    rasa-nlp-architect

    rasa-nlp-architect这个repo是我在nlp-architect基础上改的,为了能够实现提供rasa-core支持的nlu格式数据。

    rasa_data文件夹下存放的是训练和测试数据,且都是rasa_nlu格式的训练数据。在rasa_nlu_data.py这段代码中,对rasa_nlu的json格式数据进行了处理。模型训练的代码分别是train_mtl_model.py和train_seq2seq_model.py。查看README可以了解如何训练。

    • Train the mtl model

      python train_mtl_model.py --dataset_path rasa_data/rasa_nlu_data/ -b 100 -e 10
      
    • Train the seq2seq model

      python train_seq2seq_model.py --dataset_path rasa_data/rasa_nlu_data/ -b 100 -e 10
      

      interactive.py是进行交互式测试的,server.py是提供了一个server让rasa-core进行调用。拿mtl模型举个例子:

    • Interactive

      python interactive.py --model_path models/mtl/model.h5 --dataset_path rasa_data/rasa_nlu_data/
      
    • Provide a server

      python server.py -m models/mtl/model.h5 -i models/mtl/model_info.dat
      

    当你起了一个server后,就可以用rasa-core进行调用。在实现rasa-nlp-architect中,有一个功能点还没做,就是intent ranking,没有给每个intent算概率,现有代码是返回confidence: 1,这个后续需要完善和优化。

    rasa-core调用rasa-nlp-architect的server

    上面步骤中已经实现了提供nlu的server,接下来就是使用rasa-core进行调用。其实很简单,只需要在endpoints.yml中设置nlu的服务配置,比如:

    nlu:
        url: "http:localhost:5000"
        token: 'colin_gao'
        token_name: 'token'
    

    这样rasa-core就可以顺利地调用第三方nlu服务了。如果你用的不是nlp-architect,用的其他也是相同的思路。最终希望的结果是能够提供rasa-core支持的数据格式即可。原创文章,转载请说明出处

    相关文章

      网友评论

        本文标题:rasa对话系统踩坑记(七)

        本文链接:https://www.haomeiwen.com/subject/ksdqkqtx.html