stanfordCorenlp在python3中的安装使用+词性学习
1 安装
前言
Stanford CoreNLP的源代码是使用Java写的,提供了Server方式进行交互。stanfordcorenlp是一个对Stanford CoreNLP进行了封装的Python工具包,GitHub地址,使用非常方便。
安装依赖
1:下载安装JDK 1.8及以上版本。
2:下载Stanford CoreNLP文件,解压。
3:处理中文还需要下载中文的模型jar文件,然后放到stanford-corenlp-full-2018-02-27根目录下即可(注意一定要下载这个文件,否则它默认是按英文来处理的)。
常用接口
StanfordCoreNLP官网给出了python调用StanfordCoreNLP的接口。
2 使用
本教程以stanfordcorenlp接口为例(本文所用版本为Stanford CoreNLP 3.9.1),讲解Python调用StanfordCoreNLP的使用方法。
使用pip安装stanfordcorenlp:
简单使用命令:pip install stanfordcorenlp
选择USTC镜像安装(安装速度很快,毕竟国内镜像):pip install stanfordcorenlp -i http://pypi.mirrors.ustc.edu.cn/simple/ --trusted-host pypi.mirrors.ustc.edu.cn
如果需要下载其他版本可以:比如:pip install stanfordcorenlp==3.7.0.2;如果不指定就直接下载最新版本;卸载的话:pip uninstall stanfordcorenlp
在Python环境下调用stanfordcorenlp:
#英文中的应用
from stanfordcorenlp import StanfordCoreNLP
nlp = StanfordCoreNLP(r'D:\python3\stanford-corenlp-full-2018-02-27\stanford-corenlp-full-2018-02-27') sentence = 'Guangdong University of Foreign Studies is located in Guangzhou.'
print ('Tokenize:', nlp.word_tokenize(sentence))
print ('Part of Speech:', nlp.pos_tag(sentence))
print ('Named Entities:', nlp.ner(sentence))
print ('Constituency Parsing:', nlp.parse(sentence))#语法树
print ('Dependency Parsing:', nlp.dependency_parse(sentence))#依存句法
nlp.close() # Do not forget to close! The backend server will consume a lot memery
英文结果如下:

#中文中的应用,一定记得下载中文jar包,并标志lang=‘zh’
nlp = StanfordCoreNLP(r'D:\python3\stanford-corenlp-full-2018-02-27\stanford-corenlp-full-2018-02-27', 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))
中文结果如下:

3 词性学习
关于词性标记
动词,形容词(4种):VA,VC,VE,VV
1、谓词性形容词:VA
谓词性形容词大致上相当于英语中的形容词和中文语法中、文学作品里的静态动词。我们的谓词性形容词包括两类:
第一类:没有宾语且能被“很”修饰的谓语。
第二类:源自第一类的、通过重叠(如红彤彤)或者通过名词加形容词模式意味着“像N一样A”(如雪白)的谓语。这个类型的谓词性形容词没有宾语,但是有一些不能被“很”修饰,因为这些词的强调意思已经内嵌在词内了。
注意:当集合(VA)中的一个词修饰名词但没有用“的”,那么它被标注为JJ(名作定)或是一个名词,而不是VA。当集合(VA)中的一个词有一个宾语,那么它被标注为VV,而不是VA。譬如,这 项/M 活动 丰富/VV 了/AS 他 的/DEG 生活。
2、系动词:VC
“是”和“为”被标记为VC。如果“非”的意思是“不是”并且句子里没有其他动词时,“非”也被标注为VC。
“是”有几种用法:
·连接两个名词短语或者主语:他 是/VC 学生。
·在分裂句中:他 是/VC 昨天 来 的/SP。
·为了强调:他 是/VC 喜欢 看 书。
现在,在所有这些情况中,“是”被标注为VC。
3 、“有”作为主要动词:VE
只有当“有,没{有}”和“无”作为主要动词时(包括占有的“有”和表存在的“有”等等),被标注为VE。
4、其他动词:VV
VV包括其他动词,诸如情态动词,提升谓词(如“可能”),控制动词(如“要”、“想”),行为动词(如“走”),心理动词(如“喜欢”、“了解”、“怨恨”),等等。
名词(3种):NR,NT,NN
1、专有名词:NR
专有名词是名词的子集。一个专有名词可以是一个特定的人名,政治或地理上定义的地方(城市、国家、河流、山脉等),或者是一种组织(企业、政府或其他组织实体)。一个专有名词通常是独一无二,并且不能被Det+M所修饰的。
·以下名字是专有名词:
地区/国家/村庄/城市,山脉/河流,报纸/杂志, 组织/公司,学校/联盟/基金会,个人/家庭。
·以下名字不是专有名词:
国籍(如中国人),种族(如白人),职称(如教授),疾病,职业,器官(如肺),乐器(如钢琴),游戏(如足球),花(如玫瑰),等等。
2、时间名词:NT
时间名词可以是介词的宾语,譬如在、从、到、等到。它们可以被问及,如“这个时候”,也可以被用以提问“什么时候”。它们也可以直接修饰VP(动词短语)或者S(主语)。像其他名词一样,时间名词可以是某些动词的论元。
时间名词可以是时间的名称(如1990年、一月、汉朝)或是由“PN+LC,N+LC,DT+N”等结构组成。
例子:一月、汉朝、当今、何时、今后
3、其他名词:NN
其他名词包括所有其他名词。其他名词NN,除了地方名词,一般不能修饰动词短语(有“地/DEV”或者没“地/DEV”)。
定位(1):LC
方位词:LC
很多名词单独使用时不能作为介词如“在”、“到”的论元,也不能直接修饰VP(动词短语)或者S(主语)。方位词的一个功能是连接前述的名词短语或者主语,从而使整个短语可以作为这些介词的论元或者来修饰动词短语或主语。
一些方位词可以独立使用作为介词或动词的论元。一些方位词可以被“最”修饰。方位词不能被Det+M所修饰。
方位词分为两类:
·方位词:这类方位词表示方向、位置等。它们来自名词。一些可以单独使用作为介词或动词的论元。一些可以被“最”修饰。它们不能被Det+M所修饰。
—单音节方位词:如:前,后,里,外,内,北,东,边,侧,底,间,末,旁。
—双音节方位词:它们由以下部分组成:
*单音节方位词加上诸如“以、之”等的语素。
例子:之间,以北。
*两个单音节方位词。
例子:前后,左右,上下,东北。
·其他:我们把以下情况标注为LC。
. 为止:到 目前 为止。
. 开始:从 四月 开始。
. 来:5年 来。
. 以来: 1998年 以来。
. 起: 一九九三年 起。
. 在内:包括 他 在内。
代词(1种):PN
代词的功能是作为名词短语的替代物或者表示事先详细说明的或者从上下文可知晓的被叫的人或事。它们一般不受Det+M或者形容词性短语修饰。
代词包括人称代词(如我、你),当作为名词短语单独使用时为指示代词(如这、那),所有格代名词(如其)以及反身代词(如我自己、自己)。
限定词和数词(3种):DT,CD,OD
1、限定词:DT
限定词包括指示词(如这、那、该)和诸如“每、各、前、后”等词。限定词不包括基数词和序列词。
参见限定词部分。
2、基数词:CD
CD包括基数词并随意与一些概数词连用,如“来、多、好几”和诸如“好些、若干、半、许多、很多(如很多 学生)”等词。
例子:1245,一百。
3、序列词:OD
序列词被标注为OD。我们把第+CD看做一个词,并标注它为OD。
例子:第一百。
度量词(1):M
度量词跟在数字后形成Det+M结构修饰名词或动词,包括类词(如“个”),表示一群的度量词,如“群”,以及公里、升等度量词。
一些度量词可以被有限的形容词(如一/CD小/JJ瓶/M水/NN),临时量词可以被名词和形容词修饰(如:一/CD铁/NN箱子/M书/NN)。
副词(1):AD
副词包括情态副词、频率副词、程度副词、连接副词等,大部分副词的功能是修饰动词短语或主语。
如:仍然、很、最、大大、又、约
介词(1):P
介词可以把名词短语或从句作为论元。
注释:把和被不标注为P,详见2.11部分。
如:从、对
连词(2):CC,CS
1、并列连接词:CC
CC的主要模式是:XP{,},CC XP。
如:与、和、或、或者、还是(or)
2、从属连词:CS
从属连词连接两个句子,一个句子从属于另一个,这样的连词标记为CS。CS模式是:CS S1,S2和S2 CS,S1。
如:如果/CS,……就/AD……
助词(8):DEC,DEG,DER,DEV,SP,AS,ETC,SP,MSP
1、“的”作为补语标记/名词化标记:DEC(的,之)
如:吃的DEC
模式是:S/VP DEC{NP}
注:的还有其他标记
·DEC 他的/DEG车
·SP 他是/VC一定要来的/SP。
·AS 他是/VC在这里下的/AS车。
2、“的”作为关联标记或所有格标记:DEG
模式:NP/PP/JJ/DT DEG{NP}。
3、 补语短语 得:DER
在V-得-R和V-得结构中,“得”标记为DER。
注:有些以“得”结尾的搭配不是V-得结构,如记得,获得是动词。
4、方式“地”:DEV
当“地”出现在“XP地VP”,XP修饰VP。在一些古典文学中,“的”也用于这种情景,此时“的”也标注为DEV。
5、动态助词:AS
动态助词仅包括“着,了,过,的”。
6、句末助词:SP
SP经常出现在句末,如:他好吧[SP]?
有时,句末助词用于表停顿,如:他吧[SP],人很好。
如:了,呢,吧,啊,呀,吗
7、 ETC
ETC用于标注等,等等。
8、其他助词:MSP
“所,以,来,而”,当它们出现在VP前时,标注为MSP。
所:他所[MSP]需要的/DEC
以或来:用……以/MSP(或来)维持
而:为……而[MSP]奋斗
其他(8):IJ,ON,PU,JJ,FW,LB,SB,BA
1、感叹词:IJ
出现在句首位置的感叹词,如:啊。
2、拟声词:ON
① 修饰“ON地V”中的VP:雨哗哗[ON]地[DEV]下了[AS]一夜
② 修饰“ON中的N”中的NP:砰[ON]的/DEG一声!
③ 自行成句:砰砰[ON]!
④ 一般不能被副词修饰,如:哗啦啦,咯吱。
3、长“被”结构:LB
仅包括“被,叫,给,为(口语中)”,当它们出现在被字结构NP0+LB+NP1+VP中
如:他被/LB 我训了/AS 一顿/M .
注:当叫作为兼语动词时,“叫”标注为VV。
如:他叫/VV你去。
4、短“被”结构:SB(仅包括口语中的“被,给”)
NP0+SB+VP,他被/SB 训了/AS一顿/M。
注:“给”有其他标记:LB,VV和P。
如:你给/P他写封/M信。
5、把字结构:BA
仅包括“把,将”,当它们出现在把字结构中(NP0+BA+NP1+VP)。
如:他把/BA你骗了/AS。
注:“将”有其他标记:AD和VV,如:他将/VV了[AS]我的[DEG]军。
6、其他名词修饰语:JJ
包括三种类型:
①区别词 只修饰模式JJ+的+{N}或JJ+N中的名词,且一定要有“的”,它们不能被程度副词修饰。
如:共同/JJ的/DEG目标/NN,她是[VC]女/JJ的/DEG。
②带有连字符的复合词
通常为双音节词 JJ+N 如留美/JJ学者/NN
③形容词:新/JJ消息/NN
模式:JJ+N
注:当“的/DEC”在形容词和名词中间时,形容词标记为VA。
7、外来词:FW
FW仅被用于:当词性标注标记在上下文中不是很清楚时。外来词不包括外来词的翻译,不包括混合中文的词(如卡拉OK/NN,A型/NN),不包括词义和词性在文中都是清楚的词。
8、标点:PU
当标点是词的一部分时,不用标注为PU,如123,456/CD。


stanfordCorenlp在python3中的安装使用+词性学习的更多相关文章
- python3 中mlpy模块安装 出现 failed with error code 1的决绝办法(其他模块也可用本方法)
在python3 中安装其它模块时经常出现 failed with error code 1等状况,使的安装无法进行.而解决这个问题又非常麻烦. 接下来以mlpy为例,介绍一种解决此类安装问题的办法. ...
- win7中python3.4下安装scrapy爬虫框架(亲测可用)
貌似最新的scrapy已经支持python3,但是错误挺多的,以下为在win7中的安装步骤: 1.首先需要安装Scrapy的依赖包,包括parsel, w3lib, cryptography, pyO ...
- Windows系统下python3中安装pyMysql
python2和python3是不兼容的,在py2中,链接数据库使用的是mysqldb,但在py3中是不能用的. 解决办法就是在py3中数据库使用的模块是pyMysql. 在dos窗口中安装第三方库会 ...
- Python3中性能测试工具Locust安装使用
Locust安装使用: 安装: python3中 ---> pip3 install locust 验证是否安装成功---> 终端中输入 locust --help ...
- 在python3中安装mysql扩展,No module named 'ConfigParser'
在python2.7中,我们安装的是 MySqldb或这 MySQL-python,能够正却安装,但在python3中,由于 其使用的扩展 ConfigParser 已经改名为 configpars ...
- Win中同时安装python2和python3及SulimeText3的python IDE搭建
一.下载安装Sublime Text3,初衷是不想忍受pycharm的打开速度,想享受下飞的质感.Sublime Text3的安装已经久远,请自行google. 二.安装python2.7与pytho ...
- centos7 python3.5 下安装paramiko
centos7 python3.5 下安装paramiko 安装开发包 yum install openssl openssl-devel python-dev -y 安装pip前需要前置安装setu ...
- linux python3.5.0安装并替代centos自带的python
CentOS自带2.7.3版本的Python,旧版本无法及时支持新功能,所以要安装更高版本的Python3.5.0. 1.下载#wget https://www.python.org/ftp/pyth ...
- python3中使用builtwith的方法(很详细)
1. 首先通过pip install builtwith安装builtwith C:\Users\Administrator>pip install builtwith Collecting b ...
随机推荐
- C# 事件总线 EventBus
1. 引言 事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉.事件总线是对发布-订阅模式的一种实现.它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需 ...
- vue.cli实现tab切换效果
<template> <div class="cp-select"> <div class="lef ...
- 【bzoj3730】震波 动态点分治+线段树
题目描述 在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i].不幸的是,这片土地常常发生地震,并且随着时代的发展,城市 ...
- Jmeter远程启动负载机
1.负载机下载Jmeter,设置环境变量,jmeter中进行启动jmeter-server的应用服务.环境变量设置如下: 变量名:JMETER_HOME 变量值:C:\Program Files\ap ...
- 洛谷P3938 斐波那契
题目戳 题目描述 小 C 养了一些很可爱的兔子. 有一天,小 C 突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行 繁衍:一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子 ...
- [SCOI2016]幸运数字 线性基
题面 题面 题解 题面意思非常明确:求树上一条链的最大异或和. 我们用倍增的思想. 将这条链分成2部分:x ---> lca , lca ---> y 分别求出这2个部分的线性基,然后合并 ...
- Java日期格式转换
Java时间格式转换大全 import java.text.*;import java.util.Calendar;public class VeDate {/** * 获取现在时间 * ...
- BZOJ 2959: 长跑 解题报告
2959: 长跑 Description 某校开展了同学们喜闻乐见的阳光长跑活动.为了能"为祖国健康工作五十年",同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑 ...
- java之面向对象20160818
本文主要是介绍一下java面向对象编程方面的知识,涉及的内容可能有点多,所以可能会感觉比较笼统,详细请参见<Java编程思想>里面比较具体点. 1.面向对象 和遵循设计原则和设计模式, 目 ...
- 在Android 下写一个检测软件版本号 以自动升级APP 的插件
直接上图上代码: 1.插件类的编写 工程目录结构图: 代码如下: package org.apache.cordova.versionupdate; import org.apache.cordova ...