基于Pycharm的Rasa NLU chi项目调试及观察

基于Pycharm的Rasa NLU chi项目调试及观察

环境:python 3.7,rasa_NLU_chi、linux版pycharm。

1、安装rasa_nlu_chi

conda create -n rasanluchi python=3.6
conda activate rasanluchi
git clone https://github.com/crownpku/rasa_nlu_chi.git
cd rasa_nlu_chi
python setup.py install
#安装需要的第三方库 mitie、sklearn
pip install mitie
pip install sklearn
pip install jieba

下载mitie使用的模型文件,将这个dat后缀的文件放到rasa_nlu_chi-master/data/文件夹中。

链接:https://pan.baidu.com/s/1kNENvlHLYWZIddmtWJ7Pdg 密码:p4vx

查看rasa_nlu_chi-master文件夹:

image-20210811170743805

rasa_nlu_chi-master/rasa_nlu的文件夹中,可以看到rasa nlu所用的组件源码等。

image-20210811171013383

tokenizers:分词器组件源码,其中包括jieba_tokenizer.py、mitie_tokenizer.py等,中文上常使用jieba_tokenizer.py

extractors:实体提取器,包括crf_entity_extractor等

各个组件具体内容可看官网https://rasa.com/docs/rasa/reference/rasa/nlu/classifiers/diet_classifier,通过左侧栏Reference–Code reference-rasa.nlu可看到各组件详情。

2、训练模型

新建一个终端,进入rasa_nlu_chi-master目录,运行下面指令,完成模型训练。

python train.py -c ../sample_configs/config_jieba_mitie_sklearn.yml -d ../data/examples/rasa/demo-rasa_zh.json --path models

-c …/sample_configs/config_jieba_mitie_sklearn.yml #nlu需要的配置文件,记录着模型的pipline
-d …/data/examples/rasa/demo-rasa_zh.json
#训练数据文件夹,json格式,因为rasa_nlu_chi是rasa=1.0版本左右的,不是2.0后的数据格式
image-20210812154203106

3、pycharm打开rasa_nlu_chi-master文件,点击左上角设置小齿轮选择settings,将该工程的环境设为刚才创建并且安装rasa_nlu_chi的rasanluchi环境。

image-20210811172606312

4、运行sever.py,运行前需要先设置参数,不能直接运行,打开Edit Configuarations

image-20210811172958380

image-20210811174233840

Script path:运行的py文件就是sever.py,记得填写绝对路径,防止出现路径对不上的错误。

Parameters:传入的参数,这里传入的参数是Script path:运行的py文件就是train.py,记得填写绝对路径,防止出现路径对不上的错误。

Parameters:传入的参数,这里传入的参数如下

-c ../sample_configs/config_jieba_mitie_sklearn.yml      #nlu需要的配置文件,记录着模型的pipline
-d ../data/examples/rasa/demo-rasa_zh.json               
#训练数据文件夹,json格式,因为rasa_nlu_chi是rasa=1.0版本左右的,不是2.0后的数据格式
#上述两个文件,如果在运行过程中出现找不到文件的错误,只需要在rasa_nlu_chi-master文件中找到对应的文件,然后将-c、-d后面的参数修改为对应的文件绝对地址即可
--path models #模型保存路径,将保存到同级目录的model文件夹下,如果没有model,将自动建立model文件夹。

3、在sever.py的同级目录的model.py中设置断点(如337行)

image-20210811174723248

4、进入sever.py的debug,将初始化一个rasa nlu 的服务。

image-20210811174855386

image-20210811174925997

可以看到开启了一个端口为5000的服务,

5、打开任意终端,向上面的rasa nlu端口发送数据,命令如下

curl -XPOST localhost:5000/parse -d '{"q":"我发烧了该吃什么药?", "model": "model_20210810-191021"}' | python -mjson.tool

-d 后面是实际发送的数据,其中model属性后是第2步训练得到的模型名称,这里需要读者自行修改,可以从rasa_nlu_chi-master/model文件中可以查看,将模型名称修改为最新的模型即可。

6、此时可以看到程序将停在设置的断点处,接下来就可以一步一步的调试了。

image-20210811175255463

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值