官网下载:https://stanfordnlp.github.io/CoreNLP/index.html#download
~~~~~~ coreNLP是斯坦福大学开发的一套关于自然语言处理的工具(toolbox),使用简单功能强大,有:命名实体识别、词性标注、 词语词干化、语句语法树的构造还有指代关系等功能,使用起来比较方便。
PART1:安装Stanford NLP
1) 安装Stanford nlp自然语言处理包:pip install stanfordcorenlp
2) 下载Stanford CoreNLP文件:http://stanfordnlp.github.io/CoreNLP/download.html
3) 下载中文模型jar包:
4) 把解压后的Stanford CoreNLP文件夹(个人习惯,这里我重命名为stanford_nlp)和下载的Stanford-chinese-corenlp-2018-02-27-models.jar放在同一目录下(注意:一定要在同一目录下,否则执行会报错
5) 在Python中引用模型,执行下面语句:
from stanfordcorenlp import StanfordCoreNLP nlp=StanfordCoreNLP(r’D:\stanford_nlp’,lang=‘zh’)
PART2:安装过程问题
~~~~~~~~
然而,很多朋友在上面的执行过程中,总遇到下面的问题:系统提示环境变量找不到文件
,我当时也是特别郁闷,我明明配置好了,怎么会找不到文件呢,在网上对于这个问题的解答比较少,忙了一整天也没找到问题的原因,这里依据我的血泪史给大家做个分享,希望对大家有所帮助:
最好放在目录下,我这边是已经下好的文档
开始安装java的 JDK了,我安装的是:jdk-8u171-windows-x64
链接
:https://pan.baidu.com/s/1EWp3KPCrlB4q5nwGx2brqQ
提取码
:aqw5
1)安装包问题
双击安装包,进入安装模式
2)路径设置
接着点击下一步或者,可以更改希望Java安装的路径;
接着点击下一步或者,可以更改希望安装的路径
安装完成后,关闭页面
3)环境变量
安装完成后我们就可以配置java的环境变量了。
最关键的部分
Step1:进入计算机的属性选项,选择高级系统设置,如下图所示:
Step2:点击“高级系统设置”后,会看到如下图所示的对话框,选择“环境变量
Step3:点击“环境变量”之后,会看到如下图所示的对话框:
Step4:接下来就是具体的配置过程了:
Step4.1:
~~~~~~~~
新建变量名
~~
Java_Home
~~~~~~~~
变量值
~~
D:\jdk1.8.1_171
注:“变量值”这一栏主要填写的是你安装 java 的路径,这里根据个人的情况可能会有所不同。
Step4.2:上步结束之后,选中环境变量中的“path”,如下图所示:
选中之后编辑:
在变量值一栏的最前面添加如下的 code:%Java_Home%\bin;%Java_Home%\jre\bin
;注意:上面的代码最好一个字符不要差,因为Java_Home 已经限制了你的JDK 的路径了,Java的每个版本的JDK 应该都是由这些东西构成的。
~~~~~~
Step4.3:上一步确定之后,再新建,我当时就卡在这一步
~~~~~~~~~~
变量名:ClassPath
~~~~~~~~~~
变量值
~~~~~
%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar
~~~~~~~
注:上面的代码最好也是一个字符不变的贴上去,“变量值”最前面的 .; 不要漏掉。
做完上面的三个步骤之后,环境变量的配置已经完成了。
Step5:检查环境变量搭好了:调出“cmd”检查:
Step5.1:输入:“java”,你应该看到下面的东西:
Step5.2:输入:“javac”,你应该看到下面的东西:
Step5.3:输入:java -version,你应该看到下面的东西:
至此,我们的配置就全部完成了。
PART3:词性标注测试
可以开始用安装好的stanfordcorenlp进行词性标注了。
这里,我们拿一段文本来试运行:
from stanfordcorenlp import StanfordCoreNLP
nlp=StanfordCoreNLP(r'D:\stanford_nlp',lang='zh')
fin=open('news.txt','r',encoding='utf8')
fner=open('ner.txt','w',encoding='utf8')
ftag=open('pos_tag.txt','w',encoding='utf8')
for line in fin:
line=line.strip()
if len(line)<1:
continue
fner.write(" ".join([each[0]+"/"+each[1] for each in nlp.ner(line) if len(each)==2 ])+"\n")
ftag.write(" ".join([each[0]+"/"+each[1] for each in nlp.pos_tag(line) if len(each)==2 ]) +"\n")
fner.close()
ftag.close()
参考:https://blog.csdn.net/qq_40426415/article/details/80994622
官网下载:https://stanfordnlp.github.io/CoreNLP/index.html#download