Stanford CoreNLP 可以理解为斯坦福大学用于自然语言处理(NLP)的一个工具,功能强大。可以实现分词、词性标注(POS)、实体识别(NER)、情感分析等等。
以下是使用docker管理CoreNLP的步骤:
1.创建Dockerfile:
FROM java:jre-alpine
RUN apk add --update --no-cache \
unzip \
wget
RUN wget https://nlp.stanford.edu/software/stanford-corenlp-full-2017-06-09.zip
RUN unzip stanford-corenlp-full-2017-06-09.zip && \
rm stanford-corenlp-full-2017-06-09.zip
WORKDIR stanford-corenlp-full-2017-06-09
RUN export CLASSPATH="`find . -name '*.jar'`"
ENV PORT 9000
EXPOSE $PORT
CMD java -cp "*" -mx4g edu.stanford.nlp.pipeline.StanfordCoreNLPServer
代码中的 stanford-corenlp-full-2017-06-09.zip 是截止到发稿官网最新版本,可以对照官网下载的链接替换成最新的即可
image.png
2.通过该 Dockerfile build成images:
docker build -t alex/corenlp:3.8.0 .
这里 -t, --tag list Name and optionally a tag in the 'name:tag' format
3.不出意外的话过一会儿应该就提示成功了,然后执行
docker images
即可发现我们build成功的images:
image.png
4.如果不需要中文分词的话基本上到这就可以执行
docker run -itd -p 9000:9000 --name my_corenlp alex/corenlp:3.8.0
就可以直接访问 http://localhost:9000 访问到一下页面:
但是我们的目的就是为了用它来处理中文。所以我们还需要进行下面的步骤:
5.去官网 https://stanfordnlp.github.io/CoreNLP/download.html 下载对应上面Dockerfile中的版本的 CoreNLP:
同时还需要下载下面的 Chinese .
下载完以后把 CoreNLP解压,如我的目录是 /Users/alex/opt/stanford-corenlp-full-2017-06-09
然后把下载的中文相关的 jar 包 stanford-chinese-corenlp-2017-06-09-models.jar 给放到上述目录中即可
6.通过目录映射的方式把上述文件夹中的内容给映射到docker中:
docker run -itd -p 9000:9000 -v /Users/alex/opt/stanford-corenlp-full-2017-06-09:/stanford-corenlp-full-2017-06-09 --name my_coreNLP alex/corenlp:3.8.0
然后继续访问 http://localhost:9000 ,此时我们输入中文,
第一次启动比较慢,耐心等待后即可看到对应的结果:
该工具比较吃内存,建议分配4g内存
网友评论