首页 > 学院 > 开发设计 > 正文

使用Stanford CoreNLP工具包处理中文

2019-11-11 05:04:22
字体:
来源:转载
供稿:网友

这几天刚刚接触自然语言处理,使用了Stanford CoreNLP工具。但毕竟是第一次用,所以遇到很多问题,现将解决方案记下(容易百度到的错误就不记了)。

其中用Stanford CoreNLP集合工具来处理中文的方法网上很少有说明,官方Demo也没有说明,特在此记下。

Stanford 提供了很多NLP工具,默认均直接支持英文,部分需要model支持中文。这是这些工具官方列表地址:http://nlp.stanford.edu/software/

部分工具列表如图:

其中第一个Stanford CoreNLP工具可以说是其它工具的集合,功能相对强大。假如你只需要进行分词,则使用Stanford Word Segmenter工具即可。该工具支持中文。而且下载的文件中也有适用于中文的Demo,比较容易理解。但是如果你想使用集合工具Stanford CoreNLP处理中文,则网上相关资料很少,下载的Demo文件中只有处理英文的。

下面介绍怎么用集合工具Stanford CoreNLP处理中文:

注意:需要java8,怎么配合eclipse使用,自己百度,目前需要安装一个更新。

1、你需要下载Stanford CoreNLP,我下载的是3.6.0:http://stanfordnlp.github.io/CoreNLP/index.html#download

2、你需要下载中文支持包:stanford-chinese-corenlp-models.jar,我下载的也是3.6.0:http://stanfordnlp.github.io/CoreNLP/index.html#download

3、下载完毕后,Stanford CoreNLP需要解压,然后将stanford-chinese-corenlp-models.jar放到解压文件夹里,将文件夹中的所有.jar加入你建立的工程中。

然后测试代码与英文的Demo不同,代码很简单

public class test_demo {    public static void main(String[] args) {    String PRops="StanfordCoreNLP-chinese.properties";    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);    Annotation annotation;    //if  data from file    //annotation = new Annotation(IOUtils.slurpFileNoExceptions(file));     annotation = new Annotation("这家酒店很好,我很喜欢。");    pipeline.annotate(annotation);    pipeline.prettyPrint(annotation, System.out);}}

主要就是标红的代码。这个是stanford-chinese-corenlp-models.jar中的一个文件,可以用解压软件打开查看一下,里边默认定义了使用哪些工具,以及相应的设置,可以自己根据需要修改,箭头指示的为默认支持的工具,分词、分句、词性标注、命名实体识别、语法分析等等,下边是每个工具对应的参数设置,这样就可以用这一强大工具来处理中文了。

结果截图:


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表