使用Python调用Stanford CoreNLP进行分词

Stanford CoreNLP的源代码是使用Java写的,提供了Server方式进行交互。stanfordcorenlp是一个对Stanford CoreNLP进行了封装的Python工具包,GitHub地址https://github.com/Lynten/stanford-corenlp,使用非常方便。

安装stanfordcorenlp包之前: 
1:下载安装JDK 1.8及以上版本。 
2:下载Stanford CoreNLP(可去官网下载)文件,解压。 
3:处理中文还需要下载中文的模型jar文件,然后放到stanford-corenlp-full-2016-10-31根目录下即可(注意一定要下载这个文件哦,否则它默认是按英文来处理的)。

本文所用版本为Stanford CoreNLP 3.7.0。

使用
下面就简单了:

安装(Ubuntu)

# sudo pip install stanfordcorenlp


简单使用,处理中文记得参数lang='zh'

# coding=utf-8

from stanfordcorenlp import StanfordCoreNLP

nlp = StanfordCoreNLP(r'/home/gld/stanford-corenlp-full-2016-10-31/', 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)


输出:

[清华, 大学, 位于, 北京, 。]

[(清华, NR), (大学, NN), (位于, VV), (北京, NR), (。, PU)]

[(清华, ORGANIZATION), (大学, ORGANIZATION), (位于, O), (北京, GPE), (。, O)]

...



故障排除
模型初始化通常需要几十秒,如果很久不出结果,加入quiet=False, logging_level=logging.DEBUG参数输出Debug信息:

import logging
from stanfordcorenlp import StanfordCoreNLP

nlp = StanfordCoreNLP(r'path_or_host', quiet=False, logging_level=logging.DEBUG)



如果出现port is in use的出错信息,换一个端口就好了:

nlp = StanfordCoreNLP(r'/home/gld/stanford-corenlp-full-2016-10-31/', port=9001, lang='zh')


 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值