前提条件:电脑上安装有jdk,最好新一点吧,jdk1.8以上。
1.pip install stanfordcorenlp
2.去官网https://stanfordnlp.github.io/CoreNLP/
下载两个东西,如图:
注意:一定要同时下载两个包,不要只下载第二个包,第二个包需要放入到第一个包中,不然会出现启动服务卡住的现象bug,即不报错也不允许什么也不输出:https://blog.csdn.net/muzieryueniao/article/details/93757258?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.control)
解压下载的第一CoreNLP4.0.0文件。
将第二个下载的jar文件放入到第一个解压的文件中并重命名为:
stanford-chinese-corenlp-2022-02-02-models.jar (带颜色的部分可以随意命名只要符合日期格式就行,但是其他部分不能改变)。
在pycharm
创建nlp.py输入如下内容测试:
from stanfordcorenlp import StanfordCoreNLP
##指明安装路径和语言类型(中文)
nlp = StanfordCoreNLP(r'path/stanford-corenlp-4.2.2',lang="zh")
sentence = '我爱中国也爱自然语言处理。'
print(nlp.word_tokenize(sentence))
print(nlp.pos_tag(sentence))
print(nlp.ner(sentence))
print(nlp.parse(sentence))
print(nlp.dependency_parse(sentence))
nlp.close()
运行后报错:
File "/Users/yinchen/Desktop/companyRelativeProject/nlpScore/algorithm_nlp_ielts_oral_practiceappraise/lianxilianxi.py", line 33, in <module>
nlp = StanfordCoreNLP(r'path/stanford-corenlp-4.2.2',lang="zh")
File "/Users/yinchen/opt/anaconda3/envs/ieltsOralPracticeAppraise/lib/python3.6/site-packages/stanfordcorenlp/corenlp.py", line 79, in __init__
if port_candidate not in [conn.laddr[1] for conn in psutil.net_connections()]:
File "/Users/yinchen/opt/anaconda3/envs/ieltsOralPracticeAppraise/lib/python3.6/site-packages/psutil/__init__.py", line 2153, in net_connections
return _psplatform.net_connections(kind)
File "/Users/yinchen/opt/anaconda3/envs/ieltsOralPracticeAppraise/lib/python3.6/site-packages/psutil/_psosx.py", line 249, in net_connections
cons = Process(pid).connections(kind)
File "/Users/yinchen/opt/anaconda3/envs/ieltsOralPracticeAppraise/lib/python3.6/site-packages/psutil/_psosx.py", line 351, in wrapper
raise AccessDenied(self.pid, self._name)
psutil.AccessDenied: psutil.AccessDenied (pid=6982)
出现错误应该是权限问题:进入pycharm终端使用sudo -s 进入终端运行:
输出如下内容表示安装成功。
['我', '爱', '中国', '也', '爱', '自然', '语言', '处理', '。']
[('我', 'PN'), ('爱', 'VV'), ('中国', 'NR'), ('也', 'AD'), ('爱', 'VV'), ('自然', 'NN'), ('语言', 'NN'), ('处理', 'NN'), ('。', 'PU')]
[('我', 'O'), ('爱', 'O'), ('中国', 'COUNTRY'), ('也', 'O'), ('爱', 'O'), ('自然', 'O'), ('语言', 'O'), ('处理', 'O'), ('。', 'O')]
(ROOT
(IP
(NP (PN 我))
(VP
(VP (VV 爱)
(NP (NR 中国)))
(VP
(ADVP (AD 也))
(VP (VV 爱)
(NP (NN 自然) (NN 语言) (NN 处理)))))
(PU 。)))
[('ROOT', 0, 2), ('nsubj', 2, 1), ('dobj', 2, 3), ('advmod', 5, 4), ('conj', 2, 5), ('compound:nn', 8, 6), ('compound:nn', 8, 7), ('dobj', 5, 8), ('punct', 2, 9)]
如何启动服务:
通过python代码启动:
输入如下代码:
from stanfordcorenlp import StanfordCoreNLP
import logging
nlp = StanfordCoreNLP('path/stanford-corenlp-4.2.2',lang='zh',quiet=False,logging_level=logging.DEBUG, port=12345)
这里在代码最后没有使用nlp.close(),所以程序启动后会一直在后台运行。输入localhost:12345就会出现如下页面,表示启动成功,输入数据并且会打印相关信息: