stanfordcorenlp安装教程&简单使用教程
编译环境:python 3.6 、win10 64位、jdk1.8及以上
1、stanfordcorenlp安装依赖环境
- 下载安装JDK 1.8及以上版本。安装教程:https://blog.csdn.net/qq_40426415/article/details/80994622
jdk下载地址:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
- 下载Stanford CoreNLP文件。下载地址:https://stanfordnlp.github.io/CoreNLP/
- 处理中文文本,需要下载中文模型数据。下载地址:http://nlp.stanford.edu/software/stanford-chinese-corenlp-2018-10-05-models.jar
刚刚上传了百度云文件,需要的也可以通过百度云下载:链接:https://pan.baidu.com/s/12nYVdnuZlzcxRBOuRs7NMQ 提取码:o8it
2、安装过程
- 首先安装好JDK1.8及以上版本,安装好,并配置好环境;
- 其次,通过pip命令下载stanforecorenlp。本文安装的stanfordcorenlp版本为3.9.1,如果如果需要安装其它版本,可以用pip install stanforecorenlp==3.7.1,指定安装的版本。
pip install stanforecorenlp -i http://pypi.mirrors.ustc.edu.cn/simple/ --trusted-host pypi.mirrors.ustc.edu.cn
- 再次,下载StanfordCoreNlp文件,下载好后解压,解压位置可以根据你自己的喜好选择,如D:stanford_nlp;
- 接着,下载中文模型,并将下载好的文件放到StanfordCoreNlp解压后的根目录文件夹中,如下图:
- 最后,在python中导入stanford corenlp,导入成功,即可成功使用。
3、问题汇总
(1)安装jdk 1.8版本以上是个比较大的难题,文中提供的安装教程写的很好,可以照着他的安装教程一步步安装,大概率不会出错。
(2)成功安装Stanford coreNlp,但是import stanfore corenlp失败,出现:importerror-no-module-named-psutil,
解决方法:重新安装psutil,选择不同的版本,如pip install psutil==4.0.0 ,然后再导入stanford corenlp。
(3)中文包已经放到StanfordCoreNlp解压的目录下,但是运行程序还是无法识别出中文模型,出现:OSError: stanford-chinese-corenlp-yyyy-MM-dd-models.jar not exists.
解决方法:有点无赖,将中文模型的名字修改,如上图我做的修改,很随别的改了一个时间。你也可以根据我上面的格式更改中文模型名称。注意只能更改时间,其它不改变。
4、stanfordcorenlp的简单使用
# -*- coding:utf-8 -*- #导入StandfordCoreNLP模块 from stanfordcorenlp import StanfordCoreNLP #导入中文语言包,lang='zh' nlp = StanfordCoreNLP(r'E: oolpythonLibsite-packagesstanfordcorenlpstanford_nlp', lang='zh') sentence = '江西财经大学在南昌,是一所有着很强的综合能力的大学,大明王在这里读书,学习大数据会计,正在做自然语言处理作业' word = nlp.word_tokenize(sentence) print(' '.join(word)) print(nlp.pos_tag(sentence)) print(nlp.ner(sentence)) print(nlp.parse(sentence)) print(nlp.dependency_parse(sentence))
运行结果:
"E:学习笔记Python学习python 代码 7venvScriptspython.exe" "E:/学习笔记/NLP学习/NLP code/stanfordcorenlp_test/test.py" 江西 财经 大学 在 南昌 , 是 一 所 有 着 很 强 的 综合 能力 的 大学 , 大明 王 在 这里 读书 , 学习 大 数据 会计 , 正在 做 自然 语言 处理 作业 [('江西', 'NR'), ('财经', 'NN'), ('大学', 'NN'), ('在', 'P'), ('南昌', 'NR'), (',', 'PU'), ('是', 'VC'), ('一', 'CD'), ('所', 'M'), ('有', 'VE'), ('着', 'AS'), ('很', 'AD'), ('强', 'VA'), ('的', 'DEC'), ('综合', 'NN'), ('能力', 'NN'), ('的', 'DEG'), ('大学', 'NN'), (',', 'PU'), ('大明', 'JJ'), ('王', 'NN'), ('在', 'P'), ('这里', 'PN'), ('读书', 'VV'), (',', 'PU'), ('学习', 'VV'), ('大', 'JJ'), ('数据', 'NN'), ('会计', 'NN'), (',', 'PU'), ('正在', 'AD'), ('做', 'VV'), ('自然', 'NN'), ('语言', 'NN'), ('处理', 'NN'), ('作业', 'NN')] [('江西', 'STATE_OR_PROVINCE'), ('财经', 'O'), ('大学', 'O'), ('在', 'O'), ('南昌', 'CITY'), (',', 'O'), ('是', 'O'), ('一', 'NUMBER'), ('所', 'O'), ('有', 'O'), ('着', 'O'), ('很', 'O'), ('强', 'O'), ('的', 'O'), ('综合', 'O'), ('能力', 'O'), ('的', 'O'), ('大学', 'O'), (',', 'O'), ('大明', 'PERSON'), ('王', 'PERSON'), ('在', 'O'), ('这里', 'O'), ('读书', 'O'), (',', 'O'), ('学习', 'O'), ('大', 'O'), ('数据', 'O'), ('会计', 'TITLE'), (',', 'O'), ('正在', 'O'), ('做', 'O'), ('自然', 'O'), ('语言', 'O'), ('处理', 'O'), ('作业', 'O')] (ROOT (IP (NP (NR 江西) (NN 财经) (NN 大学)) (VP (VP (VP (PP (P 在) (NP (NR 南昌))) (PU ,) (VP (VC 是) (NP (QP (CD 一) (CLP (M 所))) (CP (IP (VP (VE 有) (AS 着) (NP (CP (IP (VP (ADVP (AD 很)) (VP (VA 强)))) (DEC 的)) (NP (NN 综合) (NN 能力))))) (DEG 的)) (NP (NN 大学))))) (PU ,) (IP (NP (ADJP (JJ 大明)) (NP (NN 王))) (VP (VP (PP (P 在) (NP (PN 这里))) (VP (VV 读书))) (PU ,) (VP (VV 学习) (NP (NP (ADJP (JJ 大)) (NP (NN 数据))) (NP (NN 会计))))))) (PU ,) (VP (ADVP (AD 正在)) (VP (VV 做) (NP (NN 自然) (NN 语言) (NN 处理) (NN 作业))))))) [('ROOT', 0, 18), ('compound:nn', 3, 1), ('compound:nn', 3, 2), ('nsubj', 18, 3), ('case', 5, 4), ('nmod:prep', 18, 5), ('punct', 18, 6), ('cop', 18, 7), ('nummod', 18, 8), ('mark:clf', 8, 9), ('dep', 18, 10), ('aux:asp', 10, 11), ('advmod', 13, 12), ('amod', 16, 13), ('mark', 13, 14), ('compound:nn', 16, 15), ('dobj', 10, 16), ('mark', 10, 17), ('punct', 18, 19), ('amod', 21, 20), ('nsubj', 24, 21), ('case', 23, 22), ('nmod:prep', 24, 23), ('conj', 18, 24), ('punct', 24, 25), ('conj', 24, 26), ('amod', 28, 27), ('compound:nn', 29, 28), ('dobj', 26, 29), ('punct', 24, 30), ('advmod', 32, 31), ('conj', 24, 32), ('compound:nn', 35, 33), ('compound:nn', 35, 34), ('compound:nn', 36, 35), ('dobj', 32, 36)] Process finished with exit code 0