Stanford CoreNLP 纯Python版本的深度学习NLP工具包 stanza 使用笔记_Davide~苏的博客-程序员宝宝

技术标签: python版corenlp  stanfordcorenlp  stanza  corenlp  Python    

StanfordCoreNLP 是基于java版的,python封装也只是请求java接口,不是很方便。

这个效果可以使用官网测试地址:http://corenlp.run/

stanza是纯Python版的coreNLP,更方便

1、安装

pip install stanza

2、下载模型 stanza_resources

文章末尾有中英文的模型资源百度网盘链接地址及目录结构

链接: https://pan.baidu.com/s/1doWw-WaJr6e9wC_Pfvj5Gw  密码:x46s

import stanza
stanza.download('en') # download English model
stanza.download('zh') # download chinese model

注意:在jupyter中下载如果有问题,可在终端中,python交互界面中下载,也可复制链接后使用下载工具下载,然后按照目录结构解压即可

目录结构:

 

3、使用

import stanza
# 可写配置文件,或单独传入
# lang 指定语言,
config = {
    'dir':'./stanza_resources/', # 如未使用 stanza.download() 下载模型;必须指定模型文件路径
#     'processors': 'tokenize,mwt,pos,ner', # Comma-separated list of processors to use
    'lang': 'zh' #'en', # Language code for the language to build the Pipeline in
#     'tokenize_model_path': './fr_gsd_models/fr_gsd_tokenizer.pt', # Processor-specific arguments are set with keys "{processor_name}_{argument_name}"
#     'mwt_model_path': './fr_gsd_models/fr_gsd_mwt_expander.pt',
#     'pos_model_path': './fr_gsd_models/fr_gsd_tagger.pt',
#     'pos_pretrain_path': './fr_gsd_models/fr_gsd.pretrain.pt',
#     'tokenize_pretokenized': True # Use pretokenized text as input and disable tokenization
}
nlp = stanza.Pipeline(**config)
#输出:
2020-04-15 16:58:35 INFO: Loading these models for language: en (English):
=========================
| Processor | Package   |
-------------------------
| tokenize  | ewt       |
| pos       | ewt       |
| lemma     | ewt       |
| depparse  | ewt       |
| ner       | ontonotes |
=========================

2020-04-15 16:58:35 INFO: Use device: gpu
2020-04-15 16:58:35 INFO: Loading: tokenize
2020-04-15 16:58:40 INFO: Loading: pos
2020-04-15 16:58:41 INFO: Loading: lemma
2020-04-15 16:58:41 INFO: Loading: depparse
2020-04-15 16:58:42 INFO: Loading: ner
2020-04-15 16:58:42 INFO: Done loading processors!

doc = nlp('快速的棕色狐狸跳过了懒惰的狗')

doc.sentences
# 输出:
[[
   {
     "id": "1",
     "text": "快速",
     "lemma": "快速",
     "upos": "ADJ",
     "xpos": "JJ",
     "head": 4,
     "deprel": "amod",
     "misc": "start_char=0|end_char=2"
   },
   {
     "id": "2",
     "text": "的",
     "lemma": "的",
     "upos": "PART",
     "xpos": "DEC",
     "head": 1,
     "deprel": "mark:relcl",
     "misc": "start_char=2|end_char=3"
   },
   {
     "id": "3",
     "text": "棕色",
     "lemma": "棕色",
     "upos": "NOUN",
     "xpos": "NN",
     "head": 4,
     "deprel": "nmod",
     "misc": "start_char=3|end_char=5"
   },
   {
     "id": "4",
     "text": "狐狸",
     "lemma": "狐狸",
     "upos": "NOUN",
     "xpos": "NN",
     "head": 5,
     "deprel": "nsubj",
     "misc": "start_char=5|end_char=7"
   },
   {
     "id": "5",
     "text": "跳过",
     "lemma": "跳过",
     "upos": "VERB",
     "xpos": "VV",
     "head": 0,
     "deprel": "root",
     "misc": "start_char=7|end_char=9"
   },
   {
     "id": "6",
     "text": "了",
     "lemma": "了",
     "upos": "PART",
     "xpos": "AS",
     "feats": "Aspect=Perf",
     "head": 5,
     "deprel": "case:aspect",
     "misc": "start_char=9|end_char=10"
   },
   {
     "id": "7",
     "text": "懒惰",
     "lemma": "懒惰",
     "upos": "ADJ",
     "xpos": "JJ",
     "head": 9,
     "deprel": "amod",
     "misc": "start_char=10|end_char=12"
   },
   {
     "id": "8",
     "text": "的",
     "lemma": "的",
     "upos": "PART",
     "xpos": "DEC",
     "head": 7,
     "deprel": "mark:relcl",
     "misc": "start_char=12|end_char=13"
   },
   {
     "id": "9",
     "text": "狗",
     "lemma": "狗",
     "upos": "NOUN",
     "xpos": "NN",
     "head": 5,
     "deprel": "obj",
     "misc": "start_char=13|end_char=14"
   }
 ]]

doc.sentences[0].print_dependencies()
输出:
('快速', '4', 'amod')
('的', '1', 'mark:relcl')
('棕色', '4', 'nmod')
('狐狸', '5', 'nsubj')
('跳过', '0', 'root')
('了', '5', 'case:aspect')
('懒惰', '9', 'amod')
('的', '7', 'mark:relcl')
('狗', '5', 'obj')

doc.sentences[0].print_tokens()
输出:
<Token id=1;words=[<Word id=1;text=快速;lemma=快速;upos=ADJ;xpos=JJ;head=4;deprel=amod>]>
<Token id=2;words=[<Word id=2;text=的;lemma=的;upos=PART;xpos=DEC;head=1;deprel=mark:relcl>]>
<Token id=3;words=[<Word id=3;text=棕色;lemma=棕色;upos=NOUN;xpos=NN;head=4;deprel=nmod>]>
<Token id=4;words=[<Word id=4;text=狐狸;lemma=狐狸;upos=NOUN;xpos=NN;head=5;deprel=nsubj>]>
<Token id=5;words=[<Word id=5;text=跳过;lemma=跳过;upos=VERB;xpos=VV;head=0;deprel=root>]>
<Token id=6;words=[<Word id=6;text=了;lemma=了;upos=PART;xpos=AS;feats=Aspect=Perf;head=5;deprel=case:aspect>]>
<Token id=7;words=[<Word id=7;text=懒惰;lemma=懒惰;upos=ADJ;xpos=JJ;head=9;deprel=amod>]>
<Token id=8;words=[<Word id=8;text=的;lemma=的;upos=PART;xpos=DEC;head=7;deprel=mark:relcl>]>
<Token id=9;words=[<Word id=9;text=狗;lemma=狗;upos=NOUN;xpos=NN;head=5;deprel=obj>]>

doc.sentences[0].print_words()
输出:
<Word id=1;text=快速;lemma=快速;upos=ADJ;xpos=JJ;head=4;deprel=amod>
<Word id=2;text=的;lemma=的;upos=PART;xpos=DEC;head=1;deprel=mark:relcl>
<Word id=3;text=棕色;lemma=棕色;upos=NOUN;xpos=NN;head=4;deprel=nmod>
<Word id=4;text=狐狸;lemma=狐狸;upos=NOUN;xpos=NN;head=5;deprel=nsubj>
<Word id=5;text=跳过;lemma=跳过;upos=VERB;xpos=VV;head=0;deprel=root>
<Word id=6;text=了;lemma=了;upos=PART;xpos=AS;feats=Aspect=Perf;head=5;deprel=case:aspect>
<Word id=7;text=懒惰;lemma=懒惰;upos=ADJ;xpos=JJ;head=9;deprel=amod>
<Word id=8;text=的;lemma=的;upos=PART;xpos=DEC;head=7;deprel=mark:relcl>
<Word id=9;text=狗;lemma=狗;upos=NOUN;xpos=NN;head=5;deprel=obj>

doc = nlp('新冠病毒在美国情况恶劣。')

doc.ents,doc.entities
输出:
[{
   "text": "美国",
   "type": "GPE",
   "start_char": 5,
   "end_char": 7
 }]

以下为标注解释:来源网络,侵权删

词性和实体标注解释

https://www.cnblogs.com/gaofighting/p/9768023.html

句法关系标注解释:

来源:https://blog.csdn.net/l919898756/article/details/81670228

ROOT:要处理文本的语句
IP:简单从句
NP:名词短语
VP:动词短语
PU:断句符,通常是句号、问号、感叹号等标点符号
LCP:方位词短语
PP:介词短语
CP:由‘的’构成的表示修饰性关系的短语
DNP:由‘的’构成的表示所属关系的短语
ADVP:副词短语
ADJP:形容词短语
DP:限定词短语
QP:量词短语
NN:常用名词
NR:固有名词
NT:时间名词
PN:代词
VV:动词
VC:是
CC:表示连词
VE:有
VA:表语形容词
AS:内容标记(如:了)
VRD:动补复合词
CD: 表示基数词
DT: determiner 表示限定词
EX: existential there 存在句
FW: foreign word 外来词
IN: preposition or conjunction, subordinating 介词或从属连词
JJ: adjective or numeral, ordinal 形容词或序数词
JJR: adjective, comparative 形容词比较级
JJS: adjective, superlative 形容词最高级
LS: list item marker 列表标识
MD: modal auxiliary 情态助动词
PDT: pre-determiner 前位限定词
POS: genitive marker 所有格标记
PRP: pronoun, personal 人称代词
RB: adverb 副词
RBR: adverb, comparative 副词比较级
RBS: adverb, superlative 副词最高级
RP: particle 小品词 
SYM: symbol 符号
TO:”to” as preposition or infinitive marker 作为介词或不定式标记 
WDT: WH-determiner WH限定词
WP: WH-pronoun WH代词
WP$: WH-pronoun, possessive WH所有格代词
WRB:Wh-adverb WH副词
 
关系表示
abbrev: abbreviation modifier,缩写
acomp: adjectival complement,形容词的补充;
advcl : adverbial clause modifier,状语从句修饰词
advmod: adverbial modifier状语
agent: agent,代理,一般有by的时候会出现这个
amod: adjectival modifier形容词
appos: appositional modifier,同位词
attr: attributive,属性
aux: auxiliary,非主要动词和助词,如BE,HAVE SHOULD/COULD等到
auxpass: passive auxiliary 被动词
cc: coordination,并列关系,一般取第一个词
ccomp: clausal complement从句补充
complm: complementizer,引导从句的词好重聚中的主要动词
conj : conjunct,连接两个并列的词。
cop: copula。系动词(如be,seem,appear等),(命题主词与谓词间的)连系
csubj : clausal subject,从主关系
csubjpass: clausal passive subject 主从被动关系
dep: dependent依赖关系
det: determiner决定词,如冠词等
dobj : direct object直接宾语
expl: expletive,主要是抓取there
infmod: infinitival modifier,动词不定式
iobj : indirect object,非直接宾语,也就是所以的间接宾语;
mark: marker,主要出现在有“that” or “whether”“because”, “when”,
mwe: multi-word expression,多个词的表示
neg: negation modifier否定词
nn: noun compound modifier名词组合形式
npadvmod: noun phrase as adverbial modifier名词作状语
nsubj : nominal subject,名词主语
nsubjpass: passive nominal subject,被动的名词主语
num: numeric modifier,数值修饰
number: element of compound number,组合数字
parataxis: parataxis: parataxis,并列关系
partmod: participial modifier动词形式的修饰
pcomp: prepositional complement,介词补充
pobj : object of a preposition,介词的宾语
poss: possession modifier,所有形式,所有格,所属
possessive: possessive modifier,这个表示所有者和那个’S的关系
preconj : preconjunct,常常是出现在 “either”, “both”, “neither”的情况下
predet: predeterminer,前缀决定,常常是表示所有
prep: prepositional modifier
prepc: prepositional clausal modifier
prt: phrasal verb particle,动词短语
punct: punctuation,这个很少见,但是保留下来了,结果当中不会出现这个
purpcl : purpose clause modifier,目的从句
quantmod: quantifier phrase modifier,数量短语
rcmod: relative clause modifier相关关系
ref : referent,指示物,指代
rel : relative
root: root,最重要的词,从它开始,根节点
tmod: temporal modifier
xcomp: open clausal complement
xsubj : controlling subject 掌控者
中心语为谓词
  subj — 主语
 nsubj — 名词性主语(nominal subject) (同步,建设)
   top — 主题(topic) (是,建筑)
npsubj — 被动型主语(nominal passive subject),专指由“被”引导的被动句中的主语,一般是谓词语义上的受事 (称作,镍)
 csubj — 从句主语(clausal subject),中文不存在
 xsubj — x主语,一般是一个主语下面含多个从句 (完善,有些)
中心语为谓词或介词   
   obj — 宾语
  dobj — 直接宾语 (颁布,文件)
  iobj — 间接宾语(indirect object),基本不存在
 range — 间接宾语为数量词,又称为与格 (成交,元)
  pobj — 介词宾语 (根据,要求)
  lobj — 时间介词 (来,近年)
中心语为谓词
  comp — 补语
 ccomp — 从句补语,一般由两个动词构成,中心语引导后一个动词所在的从句(IP) (出现,纳入)
 xcomp — x从句补语(xclausal complement),不存在   
 acomp — 形容词补语(adjectival complement)
 tcomp — 时间补语(temporal complement) (遇到,以前)
lccomp — 位置补语(localizer complement) (占,以上)
       — 结果补语(resultative complement)
中心语为名词
   mod — 修饰语(modifier)
  pass — 被动修饰(passive)
  tmod — 时间修饰(temporal modifier)
 rcmod — 关系从句修饰(relative clause modifier) (问题,遇到)
 numod — 数量修饰(numeric modifier) (规定,若干)
ornmod — 序数修饰(numeric modifier)
   clf — 类别修饰(classifier modifier) (文件,件)
  nmod — 复合名词修饰(noun compound modifier) (浦东,上海)
  amod — 形容词修饰(adjetive modifier) (情况,新)
advmod — 副词修饰(adverbial modifier) (做到,基本)
  vmod — 动词修饰(verb modifier,participle modifier)
prnmod — 插入词修饰(parenthetical modifier)
   neg — 不定修饰(negative modifier) (遇到,不)
   det — 限定词修饰(determiner modifier) (活动,这些)
 possm — 所属标记(possessive marker),NP
  poss — 所属修饰(possessive modifier),NP
  dvpm — DVP标记(dvp marker),DVP (简单,的)
dvpmod — DVP修饰(dvp modifier),DVP (采取,简单)
  assm — 关联标记(associative marker),DNP (开发,的)
assmod — 关联修饰(associative modifier),NP|QP (教训,特区)
  prep — 介词修饰(prepositional modifier) NP|VP|IP(采取,对)
 clmod — 从句修饰(clause modifier) (因为,开始)
 plmod — 介词性地点修饰(prepositional localizer modifier) (在,上)
   asp — 时态标词(aspect marker) (做到,了)
partmod– 分词修饰(participial modifier) 不存在
   etc — 等关系(etc) (办法,等)
中心语为实词
  conj — 联合(conjunct)
   cop — 系动(copula) 双指助动词????
    cc — 连接(coordination),指中心词与连词 (开发,与)
其它
  attr — 属性关系 (是,工程)
cordmod– 并列联合动词(coordinated verb compound) (颁布,实行)
  mmod — 情态动词(modal verb) (得到,能)
    ba — 把字关系
tclaus — 时间从句 (以后,积累)
       — semantic dependent
   cpm — 补语化成分(complementizer),一般指“的”引导的CP (振兴,的)

参考网址:

stanf官网:https://stanfordnlp.github.io/CoreNLP/index.html#human-languages-supported

stanza官网:https://stanfordnlp.github.io/stanza/index.html

网络资源:http://www.52nlp.cn/tag/corenlp

 

资源下载:包含中英文模型:

链接: https://pan.baidu.com/s/1doWw-WaJr6e9wC_Pfvj5Gw  密码:x46s

链接目录:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/GodDavide/article/details/105539730

智能推荐

ACL2020有关可解释性的文章_Kenny_SI的博客-程序员宝宝

DTCA: Decision Tree-based Co-Attention Networks for Explainable Claim Verification摘要:Recently, many methods discover effective evidence from reliable sources by appropriate neural networks for explainable claim verification, which has been widely recogni

django 字段DateTimeField用法 200315_whalecode的博客-程序员宝宝_datetimefield

时间的三个字段DateTimeField迁移后的类型使用例子now函数返回的是utc的时间utc时间与我们相差八个小时使用本地的时间设置中的时间配置结果小结,把别的时间转换成本地时间localtime(日期时间)auto_now_add参数创建时间适用auto_now参数更新时间适用总结DateTimeField的用法记录信息发布...

皮尔逊相关系数 Pearson correlation coefficient_学渣渣渣渣渣的博客-程序员宝宝_皮尔逊相关系数

在统计学中,皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数(Pearson product-moment correlation coefficient,简称 PPMCC或PCCs),是用于度量两个变量X和Y之间的相关程度(线性相关),其值介于-1与1之间。目录1 定义2 性质3 物理意义3.1 皮尔森距离4 应用调包4.1 衡量两个样本的相似度1 定义两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商:上式定义了总体相关

2006年度中国上市公司价值百强排名表前100强_唐古拉山的博客-程序员宝宝

来源: 网易财经 2006年度证券时报.中联集团中国上市公司价值百强排名表 股票代码 股票简称 公司所在地 最终排名 60

前端本地存储sessionStorage和localStorage_Tj,나 갔어的博客-程序员宝宝

window.sessionStorage1.生命周期为关闭浏览器窗口2.在同一个窗口下数据可以共享3.以键值对的形式存储用法:存储数据 sessionStorage.setItem(key, val)获取数据 sessionStorage.getItem(key)删除数据 sessionStorage.removeItem(key)清楚所有数据 sessionStorage.clear()//会清除页面中所有数据,慎用window.localStorage..

随便推点

Oracle - 2.0 - 【学习笔记】for ocp 12c、体系结构、网络_LawssssCat的博客-程序员宝宝

测试package cn.edut.tarena.demo1;import java.math.BigDecimal;public class Test7_BigDEcimal { public static void main(String[] args) { // 接受用户数输入的两个浮点数 double f1 = 10.5 ; double f2 = 3.1; ...

关于《ERP原理》的读书笔记和思考(二)_ERP原理初探_猫撵耗子的博客-程序员宝宝

ERP定义支持混合方式的制作环境(1)生产方式的混合    离散型和流程型制造的混合。单件生产、面向库存生产、面向订单装备。(2)经营方式的混合    跨国的混合经营(3)生产、分销和服务等业务的混合提供据测能力支持ERP的能动性。ERP系统的一般构成1、主生产计划主生产计划员利用ERP系统提供一个模拟环境,ERP系统利用模拟数据库计算处相应

浏览器本地存储 sessionStorage和localStorage_ALKEN ABBY的博客-程序员宝宝_浏览器的sessionstorage

一. sessionStorage和localStorage的Api是一样的,都是四种// 保存一个数据setItem(key,value)// 读取一个数据getItem(key)// 删除一个数据removeItem(key)// 清空所有数据clear()// 注意:4个方法里面的key和value都是字符串类型的二. 下面是具体例子:localStorage使用:&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&g

web本地存储sessionStorage和localStorage_SC前端的博客-程序员宝宝

本地存储特性:1、数据存储在用户浏览器中2、设置、读取方便、甚至页面刷新不丢失数据3、容量较大,sessionStorage约5M、localStorage约20M4、只能存储字符串,可以将对象JSON.stringify() 编码后存储一、window.sessionStorage1、生命周期为关闭浏览器窗口2、在同一个窗口(页面)下数据可以共享3、以键值对的形式存储使用存储数...

ueditor内容带格式回显(html字符串回显)_weixin_33739523的博客-程序员宝宝

简单描述:项目里有个地方用到啦ueditor,用来输入XX描述就用电影film代替,保存后,获取到ueditor里的内容(html字符串),保存到数据库。吐槽:回显的时候,无论怎么处置,就是死活不好用,百度的什么初始化,然后调用setContent()方法,也都是白搭,emmmm,终于在我找了好久之后,找到了一个,下面是Code代码://js代码&lt;script type="t...

MFC多线程各种线程用法_Smart_zy的博客-程序员宝宝_mfc如何实现多线程

一、目的1、二、参考1、MFC多线程各种线程用法https://blog.csdn.net/weixin_41931548/article/details/80802340①总结:带查看三、操作1、

推荐文章

热门文章

相关标签