jieba分词可以进行中文分词和标注,但是无法进行命名实体识别。
1. 环境配置
(1) 下载安装JDK 1.8及以上版本
(2)下载Stanford CoreNLP文件,解压。
(3)处理中文还需要下载中文的模型jar文件,然后放到stanford-corenlp-full-2016-10-31根目录下即可(注意一定要下载这个文件哦,否则它默认是按英文来处理的)。
(4)pip安装standford CoreNLP:pip install stanfordcorenlp
2. 使用standford CoreNLP进行中文分词:并和结巴分词进行对比
['合肥', '工业', '大学', '在', '屯溪路', '193', '号', ',', '李勇', '在', '这里', '上', '大学']
['合肥工业大学', '在', '屯溪路', '193', '号', ',', '李勇', '在', '这里', '上', '大学']
print(jieba.lcut(sentence,cut_all=True))
['合肥', '合肥工业大学', '工业', '业大', '大学', '在', '屯溪', '屯溪路', '193', '号', '', '', '李', '勇', '在', '这里', '上', '大学']
3. 使用standford CoreNLP进行词性标注: 和jieba分词进行对比
standford词性标注中词性对应的符号可参考文章: 4. 使用standford CoreNLP进行命名实体识别:jieba模块没有此功能 命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。通常包括两部分:(1)实体边界识别;(2) 确定实体类别(人名、地名、机构名或其他)。 [python] view plain copy print(nlp.ner(sentence)) [('合肥', 'ORGANIZATION'), ('工业', 'ORGANIZATION'), ('大学', 'ORGANIZATION'), ('在', 'O'), ('屯溪路', 'FACILITY'), ('193', 'FACILITY'), ('号', 'FACILITY'), (',', 'O'), ('李勇', 'PERSON'), ('在', 'O'), ('这里', 'O'), ('上', 'O'), ('大学', 'O')] 5. 相关错误及解决 出现"waiting until the server is avaible"错误,一直运行不出来。 以管理员身份打开cmd,切换到Stanford CoreNLP文件解压后的文件夹路径,执行以下命令打开StanfordCoreNLPServer。 java -mx1g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9011 -timeout 1500 红框中的错误"ERROR Could not start liveness server"不知道是什么意思,待补充,欢迎交流学习。但是可以顺利执行以上分词、词性标注和命名实体识别的功能了。
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章