使用spacy docker API

我正在尝试使用spacy作为一个API,如下所示:

安装完成后,testing案例工作得很好:

curl http://localhost:5000/api --header 'content-type: application/json' --data '{"text": "This is a text that I want to be analyzed."}' -X POST 

但我想用python处理输出,所以我试图使用请求库:

 import requests url = "http://localhost:5000/api" payload = {"text" : "This is a text that I want to be analyzed" } headers = {"content-type": "application/json"} res = requests.post(url, data=payload, headers=headers) res.json() 

但是我得到一个输出错误:

 {u'message': u'The browser (or proxy) sent a request that this server could not understand.'} 

我也尝试使用这个工具的build议:

 import requests data = '{"text": "This is a text that I want to be analyzed."}' requests.post('http://localhost:5000/api', data=data) 

但是也不行。

嘿使用这个docker的形象

 docker pull pasupulaphani/spacy-nlp 

启动服务器

 docker run --publish 4242:4242 -it spacy-nlp-zeromq:en 

(或)手动启动

 docker run -v ${PWD}:/usr/zeromq --publish 4242:4242 --entrypoint=/bin/bash -it spacy-nlp-zeromq:en python3 /usr/zeromq/zeromq/server.py 

APIparsing

 $ zerorpc tcp://0.0.0.0:4242 parse "hotel new york" 

u'[{“tag”:“NN”,“text”:“hotel new york”}]'实体

 $ zerorpc tcp://0.0.0.0:4242 entities "hotels in london" 

“{”end“:6,”start“:0,”text“:”hotels“,”type“:”“},{”end“:16,”start“:10,”text“伦敦“,”types“:”“}]'名词块

 $ zerorpc tcp://0.0.0.0:4242 nounChunks "hotels in london" 

u'[{“text”:“hotels”},{“text”:“london”}]'排除故障检查端口是否打开

如果! nc -z 0.0.0.0 4242 2>&1> / dev / null; 然后回显“不可用”; 科幻