`
haoningabc
  • 浏览: 1449332 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rasa-nlu的使用

    博客分类:
  • nlu
nlu 
阅读更多
中文的rasa分支Rasa_NLU_Chi在安装过程中有一些错误:

https://blog.csdn.net/qq_30650047/article/details/96697361



在mac上使用conda,避免污染环境
conda info --env
conda create --name rasa_chi  python=3.7
conda activate rasa_chi

避免mkl报错,需要安装mkl
conda install mkl-devel

如果需要升级conda
conda update -n base -c defaults conda


需要下载模型  total_word_feature_extractor_zh.dat
链接:https://pan.baidu.com/s/1kNENvlHLYWZIddmtWJ7Pdg 密码:p4vx


git clone https://github.com/crownpku/Rasa_NLU_Chi.git

python setup.py install 之前需要安装依赖
pip install -r requirements.txt
alt_requirements/requirements_bare.txt
这个里面对应的一些包可能不适合当前的mac版本10.15.6
```
#gevent==1.2.2
gevent==20.6.2
klein==17.10.0
hyperlink==17.3.1
boto3==1.5.20
typing==3.6.2
future==0.16.0
six==1.11.0
jsonschema==2.6.0
matplotlib==2.1.0
requests==2.20.0
tqdm==4.19.5
#numpy==1.14.0
numpy==1.14.5
simplejson==3.13.2
cloudpickle==0.5.2
msgpack-python==0.5.4
packaging==17.1
pyyaml==5.1
coloredlogs==9.0


```
其中
使用pip freeze|grep numpy 查看已经安装的版本。,
可能需要的依赖
gevent有问题,安装最新版
pip install gevent==20.6.2
pip install numpy==1.14.5
pip install scipy==1.5.2 


brew install svn
brew install blis
brew install openblas


没有scipy 也会报sklearn的错
有一些也没包含在这个依赖里面,需要手动安装下

分词组件:
pip install jieba
pip install  mitie pathlib



https://blog.csdn.net/sinat_21591675/article/details/82770360
pip install 后面加 -i url
国内源
pip install -i  https://pypi.tuna.tsinghua.edu.cn/simple  -r alt_requirements/requirements_bare.txt



注意:最终error shape (1, 5) 类似的问题都是scikit-learn 版本不对,scikit-learn 又依赖mkl等,最终0.19.2版本通过,0.19.1似乎不行
pip uninstall scikit-learn
pip install scikit-learn==0.19.2

依赖装完之后,最后
python setup.py install

注意安装完之后重新训练模型,模型训练也是需要scikit-learn 等依赖的

################
重要概念

pipeline的选择
MITIE+Jieba+sklearn
sample_configs/config_jieba_mitie_sklearn.json
没有修改,
```
{
  "name": "rasa_nlu_test",
  "pipeline": ["nlp_mitie",
        "tokenizer_jieba",
        "ner_mitie",
        "ner_synonyms",
        "intent_entity_featurizer_regex",
        "intent_featurizer_mitie",
        "intent_classifier_sklearn"],
  "language": "zh",
  "mitie_file": "./data/total_word_feature_extractor_zh.dat",
  "path" : "./models",
  "data" : "./data/examples/rasa/demo-rasa_zh.json"
}
```

MITIE:https://blog.csdn.net/wangyizhen_nju/article/details/93622942
支持分布式词嵌入和结构化SVM(support vector machine),支持向量机
个性化的数据加入到这里

注意把下载total_word_feature_extractor_zh.dat 放到这个配置里了

数据:
data/examples/rasa/demo-rasa_zh.json
可以加一些数据,比如加两个意图,问天气和想要点外卖
```json
{
  "rasa_nlu_data": {
    "common_examples": [
      {
        "text": "今天天气怎么样",
        "intent": "ask_weather",
        "entities": []
      },
      {
        "text": "今天天气如何呀",
        "intent": "ask_weather",
        "entities": []
      },
      {
        "text": "天气",
        "intent": "ask_weather",
        "entities": []
      },
      {
        "text": "外卖",
        "intent": "want_waimai",
        "entities": []
      },
      {
        "text": "我想点外卖",
        "intent": "want_waimai",
        "entities": []
      },
      {
        "text": "我想点一些吃的",
        "intent": "want_waimai",
        "entities": []
      },
      {
        "text": "我想吃好吃的",
        "intent": "want_waimai",
        "entities": []
      },
      {
        "text": "附近有什么好吃的",
        "intent": "want_waimai",
        "entities": []
      },
```


训练后模型在model下,变更数据后重新训练



####################


使用:

训练
python -m rasa_nlu.train -c sample_configs/config_jieba_mitie_sklearn.yml --data data/examples/rasa/demo-rasa_zh.json --path models


启动server:
python -m rasa_nlu.server -c sample_configs/config_jieba_mitie_sklearn.yml --path models


客户端测试:
curl -XPOST localhost:5000/parse -d '{"q":"我发烧了该吃什么药?", "project": "default", "model": "model_20200804-010331"}' | python -mjson.tool





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics