关于自然语言的实体抽取和舆情分析技术
【作者:吴斌,原文创作于2016-08-11,如今仍有较高参考价值,但不排除部分信息需要更新。文中有很多引用,不一一列举出处了。】
关于自然语言的实体提取,在自然语言处理的应用里面,是非常实用的技术。在实际项目中,粗略地讲,我认为有3种情况:1,规则明显,精度要求高,适合用规则模板做,比如:会议航班等日程识别提醒,地址识别。2,规则不明显,但是基本可以找到规律,适合用统计模型(CRF,HMM等)做,比如:人名识别,情感词情感对象识别。3,除了标点符号,找不到规则,那就用词典+规则做吧,比如:电影名,歌曲名识别。 所以,什么情况下的自然语言实体提取,使用什么样的技术,这也是需要仔细思考的问题,很难一概而论,哪个技术好。
1,3不用多说了,这里说一下2。目前最好用的实体抽取模型是CRF(条件随机场),具体应用中超过其他模型(如:HMM隐马尔科夫模型,不过HMM的运行效率高),而且超过深度学习的RNN模型,CRF主要优点是,它的核心其实是一种判别式的分类模型,同时考虑上下文关系的转移概率(分析上下文关系目前可用的只有线性马尔可夫链,更复杂的关系目前难以实用,所以条件随机场在实用中是简化版模型。),它可以使用很多特征来训练模型,而人工设计的特征在实体提取任务中,至关重要,特别是字典特征(比如中文名的百家姓词典,情感词词典),在模型中有着非常重要的作用。而使用RNN模型,单纯靠大量的标注数量来做模型训练的话,准确率上并没有优势,只是在召回率上有优势,而实际应用中,更看重准确率。细节可以看这个论文:http://anthology.aclweb.org/D/D14/D14-1080.pdf
舆情分析 或情感分析, 在自然语言处理领域是个主要的应用方向, 常见的情况是为某个公司或某个产品,根据舆情数据,分析出消费者的情感倾向,比如:根据商品评论数据,分析用户情感的倾向,正,负,中性。或者根据更大范围的数据,比如微博,搜索引擎的数据,来分析用户对产品的口碑,比如,百度就提供了"百度舆情"功能:http://yuqing.baidu.com/zhengwu 。这是个典型的分类问题,可以用统计模型做,也可以用规则+词典做。
但是,通常的舆情分析, 分类的粒度非常粗,只有指定的好、中、差几个类别,使用者获得的信息量其实是非常少的。一个产品的舆情评价是好或坏,使用者更想知道的是为什么好,为什么坏。而情感词,情感对象的自动提取,就可以很大程度上回答这个问题,比如自动提取这样的评论西信息:手机拍黑白照片效果: 很不错,手机的续航能力: 有待提高。(冒号前面的是情感对象,后面的是情感词。) 这样具体的正负观点,才是使用者真正想看到的信息,这些信息才有助于分析具体的产品问题和优缺点。
我在做电影评论的情感词和情感对象识别任务中,使用的CRF库是Mallet,这是JAVA的CRF库首选,而且开发者,就是CRF模型的发明者之一Andrew McCallum。这个库包含分类,CRF等很多功能,使用起来有一点门槛,细节可以查看其主页:http://mallet.cs.umass.edu/ ,我使用的是豆瓣点评的电影短评数据。电影评论中的情感词和情感对象抽取的例子: 剧情:不走心; 导演和编剧:实在是太渣; 丹尼尔的演出:中规中矩。更多例子见附件。
数据标注对所有统计学习的有监督学习算法都是非常重要的事情,而且,实体提取比其他任务的标注难度更大一些,因为判断实体数据本身就是比较复杂的事情。我的标注方法是自创的TCO(TargetCommentOther)标注法。标注对信息抽取非常重要,因为标注的方法决定了特征选取的方法,常见已有的标注法师BIO或IOE,其中“B”指标注实体开始字符,“I”指标注实体中间字符,“E”指标注实体结束字符,“O”指其他字符。比如,如果自动识别姓名通常使用BIO标注法,重点是标注名称的首字符,因为,“姓”可以从百家姓中识别。如果自动识别地名,公司名,一般用IOE标注法,重点识别尾字符,因为”路,街,道“,”公司“是重要特征。而我要识别的是个评论短语,最重要的是评论对象和情感词,而这些内容很多都不在首字符或尾字符,所以,我自创的TCO标注法,可以重点标注评论对象(Target),评论情感词(Comment,可以带正负向,比如Comment+,Comment-),标注举例:“这车开得像飞”标注为“OTTTCC”。同时,可以使用情感词词典之类的特征来训练模型,实践证明,词典特征对CRF的识别准确率提高有非常大的帮助。
如果按照每个字的label判断准确率统计是比较低的,如果按照整个情感对象+情感词一起来判断实体提取准确率,初步统计是区分情感倾向是87.3%,不区分情感倾向是93.2%,召回率低一些。 下面详细记录一些数据标注的经验:
大多数时候,正负向的情感是容易辨认的,比如:剧情很好,喜欢这个主角,台词太烂,笑点没意思,等等。但是也有不少的情况,人也难以判断情感,对于NLP来说,下面这几个句子都是各有各的判断难点。
比如:“虽然没有绝美之城那般惊艳。”,是个比较句,是情感判断的难点,而且,“没有”与“惊艳”有正负情感抵消的意思,“虽然”,“那般”又有些许赞扬的意思,我的意见是做中性情感处理。
“形式感太强。”是反义句,“强”通常是正向情感词,这里却有反义的意思,“形式感”有一些的负面情感,但是需要仔细琢磨。我的意见是整句都是负面情感词。
“音乐无疑是影片的灵魂。”是比喻句,“灵魂”是个比喻,比喻是NLP最难处理的问题,我认为算作正面情感表达。这里“是灵魂”是正向情感词,“音乐”是情感对象词。
“比绝美之城直白好懂。”也是个比较句,通常“直白好懂”标注为正向情感,“比绝美之城”是情感对象,但是省略的主语。
关于自然语言的实体抽取和舆情分析技术相关推荐
- 网络舆情分析技术 读书笔记2
网络舆情的信息采集 网络舆情分析,广义上包括从网络舆情的信息采集开始到最后舆情信息服务这一系列流程,首先是从互联网上采集舆情信息,对采集得到的web页面进行信息预处理,在预处理的基础上进行关键信息的抽 ...
- 网络舆情分析技术 读书笔记1
针对网络舆情的研究主要集中在以下几个方面: 网络舆情的基础理论研究,主要包括网络舆情的概念解析.网络舆情的主体特征.网络舆情的表现特征等: 网络舆情的传播规律以及外部性研究,主要针对网络舆情的演化过程 ...
- 天涯论坛——python舆情分析汇总(四)
基于天涯论坛的 "新冠疫情"舆情分析 完整数据和代码链接:https://download.csdn.net/download/weixin_43906500/14935218 1 ...
- 基于文本和图像的网络舆情分析方法研究
基于文本和图像的网络舆情分析方法研究 一.舆情分析技术 (1)舆情数据采集与提取技术: (2)自动文摘技术: (3)事件发现与追踪技术: (4)舆情情感分析技术. 二.舆情情感分析模型 (1)基于知识 ...
- 2019年十大数据与分析技术趋势
来自:GartnerInc 全球领先的信息技术研究和顾问公司Gartner指出,增强型分析(augmented analytics).持续型智能(continuous intelligence)与可解 ...
- Gartner:2019年十大数据与分析技术趋势
来源:网络大数据 近日,全球领先的信息技术研究和顾问公司Gartner指出,增强型分析(augmented analytics).持续型智能(continuous intelligence)与可解释型 ...
- 舆情监测是什么技术,网络舆情监测技术操作规范?
网络舆情监测是对互联网上公众的言论和观点进行监视和预测的行为,随着互联网的发展,舆情监测已经是企业日常重要工作,对于企业来说是非常重要的,接下来TOOM舆情监测带您了解舆情监测是什么技术,网络舆情监测 ...
- AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之总篇
AI&BlockChain:"知名博主独家讲授"人工智能创新应用竞赛[精选实战作品]之<基于计算机视觉.自然语言处理.区块链和爬虫技术的智能会议系统>软件系统案 ...
- 文本分类模型_多标签文本分类、情感倾向分析、文本实体抽取模型如何定制?...
文心(ERNIE)是依托百度深度学习平台飞桨打造的语义理解技术与平台,集先进的预训练模型.全面的NLP算法集.端到端开发套件和平台化服务于一体,为企业和开发者提供一整套NLP定制与应用能力.在2020 ...
最新文章
- linux的veth导致网络不通,linux的veth对网桥通信实验
- 搜索1008(二分)
- php 大数运算类,PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
- Linux0.00 代码解析(二)
- 使用Logstash,JDBC将数据聚合并索引到Elasticsearch中
- IOS – OpenGL ES 调节图像对比度 GPUImageContrastFilter
- 标志寄存器_访问标志寄存器,并与寄存器B |交换标志寄存器F的内容 8085微处理器...
- div靠边隐藏_css如何隐藏div不占位置?
- Linux系统编程39:多线程之基于阻塞队列生产者与消费者模型
- 与gps优缺点_浅谈用于洒水车上的液位传感器和GPS模块
- 数学建模之图论——图与网络模型(一)(基本概念和最短路问题,附MATLAB源码)
- Android Fragment之间的跳转
- 不小心执行了rm -f,除了跑路,如何恢复?
- Python 3.65 安装geopandas
- linux docker 安装sql,CentOS7使用Docker安装SQL Server 2017
- thinkphp判断本地环境是否为SAE
- 安装时间大于30秒_高送转第一股秒板,封单金额近百亿!最新高送转潜力股名单曝光...
- 如何快速设计一款万能遥控器产品原型(SoC免开发)
- 圆柱体积怎么算立方公式_圆柱体积计算公式 怎么计算
- android后台定时执行任务,后台执行的定时任务