CoreNLP 项目是Stanford开发的一套开源的NLP系统。包括tokenize, pos , parse 等功能,与SpaCy类似。SpaCy号称是目前最快的NLP系统, 并且提供现成的python接口,但不足之处就是目前还不支持中文处理, CoreNLP则包含了中文模型,可以直接用于处理中文, 但CoreNLP使用Java开发,python调用稍微麻烦一点。
安装
安装的方式比较简单,下载CoreNLP最新的压缩包,再下载对应的语言jar包。从CoreNLP下载页面下载。将压缩包解压得到目录,再将语言的jar包放到这个目录下即可。
启动NLPServer
由于corenlp使用Java开发,所以没有python包可以直接使用,但是corenlp可以启动Server端,接收http请求。所以使用python简单的封装,就可以与server端进行通信,像使用原生python包一样使用。
对于中文的情况,启动corenlp server的方式是,到corenlp的目录下,执行如下代码
java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -serverProperties StanfordCoreNLP-chinese.properties -port 9000 -timeout 15000
目前corenlp对jdk的要求是1.8以上。 上面的-Xmx4g
的含义是为这个server端申请4G的内存。-serverProperties
指定properties文件,这个文件在chinese-model的jar包里面。
启动Server之后,第一次执行的时候会比较慢,需要载入各种包。
基本HTTP 请求
wget --post-data 'The quick brown fox jumped over the lazy dog.' 'localhost:9000/?properties={"annotators