用python进行自然语言处理_用 Python 和 Stanford CoreNLP 进行中文自然语言处理

实验环境:Windows 7 / Python 3.6.1 / CoreNLP 3.7.0

一、下载 CoreNLP

二、安装 stanza

stanza 是 Stanford CoreNLP 官方最新开发的 Python 接口。

根据 StanfordNLPHelp 在 stackoverflow 上的解释,推荐 Python 用户使用 stanza 而非 nltk 的接口。

If you want to use our tools in Python, I would recommend using the Stanford CoreNLP 3.7.0 server and making small server requests (or using the stanza library).

If you use nltk what I believe happens is Python just calls our Java code with subprocess and this can actually be very inefficient since distinct calls reload all of the models.

注意 stanza\setup.py 文件临近结尾部分,有一行是

packages=['stanza', 'stanza.text', 'stanza.monitoring', 'stanza.util'],

这样安装后缺少模块,需要手动修改为

packages=['stanza', 'stanza.text', 'stanza.monitoring', 'stanza.util', 'stanza.corenlp', 'stanza.ml', 'stanza.cluster', 'stanza.research'],

三、测试

在CoreNLP工作目录中,打开cmd窗口,启动服务器:

如果处理英文,输入

java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000

如果处理中文,输入

java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -serverProperties StanfordCoreNLP-chinese.properties -port 9000 -timeout 15000

注意stanford-chinese-corenlp-2016-10-31-models.jar应当位于工作目录下。

可在浏览器中键入 http://localhost:9000/ 或 corenlp.run 进行直观测试。

Python示例代码:

from stanza.nlp.corenlp import CoreNLPClient

client = CoreNLPClient(server='http://localhost:9000', default_annotators=['ssplit', 'lemma', 'tokenize', 'pos', 'ner']) # 注意在以前的版本中,中文分词为 segment,新版已经和其他语言统一为 tokenize

# 分词和词性标注测试

test1 = "深蓝的天空中挂着一轮金黄的圆月,下面是海边的沙地,都种着一望无际的碧绿的西瓜,其间有一个十一二岁的少年,项带银圈,手捏一柄钢叉,向一匹猹尽力的刺去,那猹却将身一扭,反从他的胯下逃走了。"

annotated = client.annotate(test1)

for sentence in annotated.sentences:

for token in sentence:

print(token.word, token.pos)

# 命名实体识别测试

test2 = "大概是物以希为贵罢。北京的白菜运往浙江,便用红头绳系住菜根,倒挂在水果店头,尊为胶菜;福建野生着的芦荟,一到北京就请进温室,且美其名曰龙舌兰。我到仙台也颇受了这样的优待……"

annotated = client.annotate(test2)

for sentence in annotated.sentences:

for token in sentence:

if token.ner != 'O':

print(token.word, token.ner)

开源中文分词工具探析(五):Stanford CoreNLP

CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer ...

开源中文分词工具探析(六):Stanford CoreNLP

CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer ...

stanford corenlp自定义切词类

stanford corenlp的中文切词有时不尽如意,那我们就需要实现一个自定义切词类,来完全满足我们的私人定制(加各种词典干预).上篇文章介绍了IKAnalyz ...

Stanford Corenlp学习笔记——词性标注

使用Stanford Corenlp对中文进行词性标注 语言为Scala,使用的jar的版本是3.6.0,而且是手动添加jar包,使用sbt添加其他版本的时候出现了各种各样的问题 添加的jar包有5个 ...

用python做中文自然语言预处理

这篇博客根据中文自然语言预处理的步骤分成几个板块.以做LDA实验为例,在处理数据之前,会写一个类似于实验报告的东西,用来指导做实验,OK,举例: 一,实验数据预处理(python,结巴分词)1.对于爬 ...

Stanford CoreNLP 3.6.0 中文指代消解模块调用失败的解决方案

当前中文指代消解领域比较活跃的研究者是Chen和Vincent Ng,这两个人近两年在AAAI2014, 2015发了一些相关的文章,研究领域跨越零指代.代词指代.名词指代等,方法也不是很复杂,集中于 ...

stanford corenlp的TokensRegex

最近做一些音乐类.读物类的自然语言理解,就调研使用了下Stanford corenlp,记录下来. 功能 Stanford Corenlp是一套自然语言分析工具集包括: POS(part of spe ...

使用Standford coreNLP进行中文命名实体识别

因为工作需要,调研了一下Stanford coreNLP的命名实体识别功能. Stanford CoreNLP是一个比较厉害的自然语言处理工具,很多模型都是基于深度学习方法训练得到的. 先附上其官网链 ...

中文自然语言处理工具HanLP源码包的下载使用记录

中文自然语言处理工具HanLP源码包的下载使用记录 这篇文章主要分享的是hanlp自然语言处理源码的下载,数据集的下载,以及将让源代码中的demo能够跑通.Hanlp安装包的下载以及安装其实之前就已经 ...

随机推荐

ABP理论学习之验证DTO

返回总目录 本篇目录 验证介绍 使用数据注解 自定义验证 标准化 验证介绍 首先应该验证应用的输入.用户或者其它应用都可以向该应用发送输入.在一个web应用中,验证通常要实现两次:在客户端和服务器端. ...

ubuntu sudo update与upgrade的作用及区别

ubuntu sudo update与upgrade的作用及区别 入门linux的同志,刚开始最迫切想知道的,大概一个是中文输入法,另一个就是怎么安装软件.本文主要讲一下LINUX安装软件方面的特点. ...

水果项目第2集-建立数据库->;编写数据访问基础类->;实现类的方法->;调试通过

看来写博客对懒人也有好处.监督自己的好处. 今天一打开电脑,就想继续写了. 今天就开始动手做了. 数据库建立,编写访问数据库代码,实现各个类的方法,调试这些方法. 这些基础的代码写完后,就可以写逻辑代 ...

Cisco cmd 命令(二)

1.配置路由器静态路由选择表 ip route [destination_network] [mask] [next_hop_address or exitinterface] [administra ...

转: 如何实现jQuery的Ajax文件上传

[PHP文件上传] 在开始之前,我觉得是有必要把通WEB上传文件的原理简单说一下的.实际上,在这里不管是PHP,JSP,还是ASP处理上传的文件,其实都是WEB早已把文件上传到服务器了,我们只是运用上 ...

JSON的服务器开发之路

JSON的服务器开发之路 不知道需要哪儿些包... /dcywpt/WebRoot/WEB-INF/lib/commons-collections-3.2.jar /dcywpt/WebRoot/WE ...

Eclipse 配置Tomcat 服务器

第一部分:eclipse环境下如何配置tomcat 1.下载并成功安装Eclipse和Tomcat 2.打开Eclipse,单击“window”菜单,选择下方的“Preferences” . 选择好自 ...

windows10 1903 64位系统

近日,微软完成并开始推送Windows 10 2019年的第一个重大升级的预览版本,版本号是v1903,命名则是2019年5月更新版. 点击下载windows10

Saiku多用户使用时数据同步刷新(十七)

Saiku多用户使用时数据同步刷新 这里我们需要了解一下关于saiku的刷新主要有两种数据需要刷新: >1 刷新数据库的表中的数据,得到最新的表数据进行展示. >2 刷新cube信息,得到 ...

九、xadmin菜单分组管理

有的时候,我们的菜单很多很杂,想要把菜单进行分组以方便管理,如下 前一篇博文已经详细讲解了如何菜单自定义排序,自定义分组和排序其实写法类似: 要实现上面这个功能,分为以下几步: 1. 我们需要定义一个 ...

你可能感兴趣的:(用python进行自然语言处理)