使用斯坦福分词器进行词性标注

使用斯坦福分词器进行词性标注


文章目录

  • 使用斯坦福分词器进行词性标注
  • 前言
  • 一、斯坦福分词器是什么?
  • 二、使用步骤
    • 1.去官网下载工具包
    • 2.导入库
    • 3.斯坦福模型功能的介绍
    • 4.分词结果展示
    • 5.分词结果进行分析
  • 三、总结


前言

中文分词是中文文本处理的一个基础步骤,同时也是中文人机自然语言交互的基础模块,与英文不同的是,中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词,分词效果将直接影响词性,句法树等模块的效果场景不同,要求也不同。在人机自然语言交互中,成熟的中文分词算法能够达到更好的自然语言处理效果,帮助计算机理解复杂的中文语言。基于统计的机器学习算法stanford,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具备良好的学习能力,因此对歧义词和未登录词的识别都具有良好的效果。

一、斯坦福分词器是什么?

Stanford CoreNLP是一个自然语言处理工具包。它集成了很多非常实用的功能,包括分词,词性标注,句法分析等等。这不是一个深度学习框架,而是一个已经训练好的模型,实际上可以类比为一个软件。目前市面上有不少类似的工具,结巴分词、清华、哈工大等等,相比之下我个人认为斯坦福这一款有三个值得选择的理由(也可能是优势,但是我没用过其他工具所以没法比):功能足够多,一站式解决所有主流需求;操作足够方便,放到 Python 里基本上就是一两行代码;
语言支持广泛,目前支持阿拉伯语,中文,英文,法语,德语,西班牙语,做平行语料的对比非常方便。Stanford CoreNLP 本身是 Java 写的,提供了 Server 的方式进行交互,可以很方便地在Python 中使用。使用极少的代码就能实现我们想要的功能。

二、使用步骤

1.去官网下载工具包


包括核心包和中文分包两种,下载完成后,将中文包解压缩到核心包中,形成一个完整的包,方便我们去调用。核心部分已经包括了英语的处理能力,因为我们要处理的内容包括中文,所以还要下载与中文相关的程序包下载成功后,导引根目录即我们下载的核心包中即可完成工具包中相应的操作。
在这里插入图片描述
这就是弄完之后的图,形成一个总包,安装成功的工具包中就可以通过python直接调用了,其中要注意的是中文包和我们下载的核心包的版本要对应。要注意的是文件夹不能含有中文,否则会读入不进去。

2.导入库

pip install stanfordcorenlp

3.斯坦福模型功能的介绍

①分词 Tokenization
通过nlp.word_tokenize(sentence)将我们选择的文本内容进行分词,word_tokenize 这个方法的返回值是一个列表,处理起来非常的方便,但要注意一点,如果使用 Pandas,那 list 是无法保存的。一个比较常见的操作是使用一个DataFrame 来装语料,每一句语料对应一行,然后添加一列来装对应句子的tokens,那么在刚刚操作完的时候这一列装的是一列list,但如果接下来把这个DataFrame 保存成文件,比如csv文件,那么下次再重新读取进来的时候这一列DataFrame就变成了字符串格式。
②词性标注 Part-of-speech Tagging
词性标注实际上包含了分词和标注两个部分。标注的含义在第五部分。跟分词结果一样,POS的结果一旦保存再读取也会变成字符串,所以一般还是需要处理一下。
③句法成分分析 Constituency Parsing
句法分析的标注实际上是由两个部分组成的,在最小的一层括号内实际上就是词性标注,而除此之外则是与句子结构相关的标注。句法分析的标注也在第五部分给出。
④标注集 Tagset
CoreNLP 使用的是宾州树库的标注集(Penn Treebank Tagset),无论中英。目前在中文网络上,中文标注集总结的比较全,但英文标注集基本上没有完全正确的,尤其是句法相关的标注。中文的标注集实际上是 Penn Chinese Treebank Tagset。
⑤NER工具
NER往往作为Natural Language applications的基础,比如QA,text summarization,machine translation等的基础,NER是一种序列标注任务,常见的序列标注任务还有分词,词性标注(POS),关键词抽取,词义角色标注等。NER的关键是实体边界的确定和实体类别的判断。NER是多分类问题,对于分类问题的评价标准,常用的评价标准有:Acc,Precision,Recall和F1值 Acc是一种很常见的评价标准,但只是这个又是不够的,因为在数据不均衡的情况下,Acc往往只会给我们带来欺骗性,比如癌症检测 (我们希望关注的是minority class)F1值是综合了precision和recall的一个指标。

代码如下(示例):

from stanfordcorenlp import StanfordCoreNLP
#指明安装路径和语言类型(中文)
nlp = StanfordCoreNLP(r'D:\learn\nlp\stanford-corenlp-full-2018-10-05', lang='zh')
#这里的文件位置就是我们刚才下载的核心包位置
sentence = "今天核酸队长死了"
#进行分词的语句
print(nlp.word_tokenize(sentence))
print(nlp.pos_tag(sentence))
print(nlp.parse(sentence))
print(nlp.ner(sentence))
print(nlp.dependency_parse(sentence))
nlp.close()

4.分词结果展示

在这里插入图片描述

5.分词结果进行分析

对于一个二分类系统,将实例分为正类(Positive)、负类(Negative)则模式分类器有四种分类果:
TP(True Positive):正确的正例,一个实例是正类并且也被判定成正类
FN(False Negative):错误的反例,漏报,本为正类但判定为假类
FP(False Positive):错误的正例,误报,本为假类但判定为正类
TN(True Negative):正确的反例,一个实例是假类并且也被判定成假类
1)准确率
既然是个分类指标,我们可以很自然的想到准确率,准确率的定义是预测正确的结果占总样本的百分比,其公式如下:
准确率 =(TP+TN)/(TP+TN+FP+FN)
在这里插入图片描述
2)精准率
精准率(Precision)又叫查准率,它是针对预测结果 而言的,它的含义是在所有被预测为正的样本中实际为正的样本的概率,意思就是在预测为正样本的结果中,我们有多少把握可以预测正确,其公式如下:精准率 =TP/(TP+FP)
在这里插入图片描述
3)召回率
召回率(Recall)又叫查全率,它是针对原样本而言的,它的含义是在实际为的样本中被预测为正样本的概率,其公式如下:
在这里插入图片描述
4)F1 分数
通过上面的公式,我们发现:精准率和召回率的分子是相同,都是 TP,但分母是不同的,一个是(TP+FP),一个是(TP+FN)。两者的关系可以用一个 P-R 图来展示:
在这里插入图片描述
5)带入我们的模型中
分词结果:[“今天”,“核酸”,“队长”,“死了”]
[1,2],[3,4],[5,6],[7,8]
标准分词结果:[“今天”,“核酸”,“队”,“长”,“死”,“了”]
[1,2],[3,4],[5,5],[6,6],[7,7],[8,8]
重合部分有[1,2],[3,4]
计算后的到准确率为
①P=2/4100%=50% ②R=2/6100%=33.3%③F1=2PR/(P+R)≈40.0


三、总结

斯坦福模型功能足够多,一站式解决所有主流需求;操作足够方便,放到 Python 里基本上就是一两行代码;语言支持广泛,目前支持阿拉伯语,中文,英文,法语,德语,西班牙语,做平行语料的对比非常方便。Stanford CoreNLP 本身是 Java 写的,提供了 Server 的方式进行交互,可以很方便地在Python 中使用。使用极少的代码就能实现我们想要的功能。对于不同种类的分词模式都有各自的优缺点,要根据具体问题去应用相对应的中文词性标注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29526.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣 139. 单词拆分

一、题目描述 给你一个字符串 s 和一个字符串列表 word_dict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s "leetcode"…

文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

解单词拆分问题

问题描述: 题目:Leetcode第139题 难度:中等 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重…

一次 Netty 不健壮导致的无限重连分析

由于 OOM 导致不健壮的 Netty 一系列诡异的行为,这次的问题分析会比上次那个更有意思一点。(备注:本文 Netty 版本是上古时代的 3.7.0.Final) 现象描述 开发的同学反馈 dubbo 客户端无法调用远程的服务,抓包来看,客户…

G2SAT: Learning to Generate SAT Formulas论文精读

0. Abstract SAT(布尔可满足)问题被证明是一个经典的np完全问题,作为一个计算机科学的基本问题,在决策、验证和理论证明等很多方面都有应用。目前的SAT求解器的开发和评估依赖于现有的有限的现实问题,且现有的手工制作…

【论文精读】A Survey on Knowledge Graphs Representation, Acquisition and Applications

A Survey on Knowledge Graphs Representation, Acquisition and Applications 前言Abstract1. INTRODUCTIONII. OVERVIEWA. A Brief History of Knowledge BasesB. Definitions and NotationsC. Categorization of Research on Knowledge GraphD. Related Surveys III. KNOWLE…

SharpContour论文精读

SharpContour: A Contour-based Boundary Refinement Approach for Efficient and Accurate Instance Segmentation 论文链接:[2203.13312] SharpContour: A Contour-based Boundary Refinement Approach for Efficient and Accurate Instance Segmentation (arxiv…

【论文精读】HumanNeRF

目录 Abstract1.Introduction2.Related workHuman specific renderingNeural radiance fieldsHuman-specific neural renderingConcurrent work 3.Representing a Human as a Neural FieldCanonical volumeSkeletal motionNon-rigid motionPose correction 4.Optimizing a Huma…

GAN论文精读以及基础讲解

GAN精读论文:Neurips-2014-Generative Adversarial Nets 根据李沐老师的讲解加上笔者个人的理解做的一个笔记,希望能够对想了解GAN的求学者有所帮助! 一、标题、作者、期刊 论文的标题名为Generative Adversarial Nets,中文解释…

我在工作群和ChatGPT聊了会天,找到了升职加薪的新思路

ChatGPT 大火! 我们知道,基于 AIGC 的 ChatGPT 可以整合信息并“回复”给我们所需的很多类答案,比如写论文、作诗、画画,不过现在,ChatGPT 已经从火出圈的现象级 AI 应用,迅速被更多开发者融入到更多产品工…

容联七陌:ChatGPT大模型能力为智能客服带来新方向

科技云报道原创。 近几个月来,大众对ChatGPT预期的持续走高,也影响到了智能客服领域公司的命运。 一方面,ChatGPT的出现为智能客服场景带来了更加“智能”的可能性;但另一方面,有人认为ChatGPT完全可以替代现有的智能…

ChatGPT爆火之后,视觉研究者坐不住了?谷歌将ViT参数扩大到220亿

本文来源 机器之心 编辑:泽南 视觉模型有很大的提升空间,研究者们在以往的 LLM 中学到经验教训,认为扩展是一个很有前途的方法。来自谷歌的研究者将 ViT 扩展到 22B 参数量,这是迄今为止报道的最大的视觉主干。 与自然语言处理类…

Android之Android studio实现智能聊天机器人

Android实现智能聊天机器人 最近在做项目中,突然来了灵感,要做一个聊天机器人.聊天机器人在很多大型App上都有使用,比如QQ群里的QQ小冰,淘宝京东等App上在没有人工客服之前会有机器人跟你聊天,根据你发的问题关键词,向你推荐一些答案,可以省下很多人工的时间以及减小服务器的压…

图像复原之维纳滤波

基本原理 图像复原是图像处理的重要组成部分,由于图像在获取和传输过程中通常不可避免的要受到一些噪声的干扰,因此在进行其他图像处理以及图像分析之前,应该尽量将图像复原到其原始真实状态。图像复原的关键问题是在于建立退化模型。图像退…

图像复原

1图像复原的而理论模型 定义:在成像过程中,由于成像系统各种因素的影响,可能使获得的图像不是真实景物的完善影像。图像在形成、传播和保存过程中使图像质量下降的过程,称为图像退化。图像复原就是重建退化的图像,使其…

UBI.city白皮书发布与空投领取方法

在经历了至少5次的全面推翻与重构后,UBI.city的方案终于可以发布了。 UBI.city简介 UBI.city是去中心化组织的动态治理协议,白皮书可在官网 www.ubi.city 中查阅。 随着The DAO在2016年募集了1170万枚ETH(价值约2.45亿美元)&am…

WhatsApp被禁用操作教程|实操WhatsApp解封的过程|2023三月

我是上周被WhatsApp被禁用了,按照网上的方法,点击Support提交,会自动跳转一个邮件,发送到WhatsApp官方,我满心欢喜地等待解封,以为会像大家说的那样,第二天可以解封。 就是点击那个 支持 提交了…

微信网页版解封方法

最近,微信又推出了网页版的【文件传输助手】,也就是说,无需登录客户端的微信,即可进行文件或图片的传输。 网址是 https://filehelper.weixin.qq.com网址巨长,咋一看,又长又难记,玩个锤子 经…

微信小程序-获取用户头像信息以及修改用户头像

这里主要用到button的open-type功能&#xff0c;官网已有说明&#xff1a; 给button设置open-type"chooseAvatar"&#xff0c;来使bindchooseavatar方法生效&#xff0c;在bindchooseavatar指定的函数中获取用户的头像信息 <button open-type"chooseAvata…

小程序中新版本的获取用户头像与昵称:bind:chooseavatar

前言&#xff1a; 自从微信官方把获取用户昵称与头像的功能改动以后&#xff0c;给我们开发和用户的操作又增加了很多负担&#xff0c;但是没办法&#xff0c;只能使用最新的使用方法了。 小程序用户头像昵称获取规则调整公告 新版实现效果&#xff1a; 注意&#xff0c;真机…