ASR(Automatic speech recognition),自动语言识别,自动将语言转化成文字的过程,作用类似于人类的耳朵。
流程:输入-编码-解码-输出
语言识别输入的是声音,属于计算机无法识别的模拟信号,所以需要通过模型将其转化成数字信号,并对其中的特征进行提取,编码时,会将声音切成很小的片段,成为 帧 ,类似于视频中最小时间单位的帧。帧和帧之间会有一定的重叠。
对于得到的每一帧,按照人耳听声的特定的MCFF规则,提取其中的特征,转成 多维向量 。向量中的每一个维度可以看做是这一帧中的特征。
解码过程是将得到的向量变成文字的过程,其中用到两个模型 声学模型 和 语言模型 。声学模型是将特征向量转化成单个字母(中文的拼音声母和韵母),成为音素。语言模型是将音素拼接起来成为单词或者汉字。两种模型都需要大量的语言数据进行训练。
传统识别方式:隐马尔可夫模型(HMM)
端到端识别方式:神经网络(DNN,deep neural network)
两种识别方式主要的差异在声学模型上。
目前中文的识别率在97%以上,距离理想的99%还有很大的差距。
“远场”。下面主要说3个概念:
语音激活检测、语音唤醒、以及麦克风阵列。
1)语音激活检测(voice active detection,VAD)
A)需求背景:在近场识别场景,比如使用语音输入法时,用户可以用手按着语音按键说话,结束之后松开,由于近场情况下信噪比(signal to noise ratio, SNR))比较高,信号清晰,简单算法也能做到有效可靠。
但远场识别场景下,用户不能用手接触设备,这时噪声比较大,SNR下降剧烈,必须使用VAD了。
B)定义:判断什么时候有语音什么时候没有语音(静音)。
后续的语音信号处理或是语音识别都是在VAD截取出来的有效语音片段上进行的。
2)语音唤醒 (voice trigger,VT)
A)需求背景:在近场识别时,用户可以点击按钮后直接说话,但是远场识别时,需要在VAD检测到人声之后,进行语音唤醒,相当于叫这个AI(机器人)的名字,引起ta的注意,比如苹果的“Hey Siri”,Google的“OK Google”,亚马逊Echo的“Alexa”等。
B)定义:可以理解为喊名字,引起听者的注意。
VT判断是唤醒(激活)词,那后续的语音就应该进行识别了;否则,不进行识别。
C) 难点 :语音识别,不论远场还是进场,都是在云端进行,但是语音唤醒基本是在(设备)本地进行的,要求更高——
C1)唤醒响应时间。据傅盛说,世界上所有的音箱,除了Echo和他们做的小雅智能音箱能达到15秒之外,其他的都在3秒以上。
C2)功耗要低。iphone 4s出现Siri,但直到iphone 6s之后才允许不接电源的情况下直接喊“hey Siri”进行语音唤醒。这是因为有6s上有一颗专门进行语音激活的低功耗芯片,当然算法和硬件要进行配合,算法也要进行优化。
C3)唤醒效果。喊它的时候它不答应这叫做漏报,没喊它的时候它跳出来讲话叫做误报。漏报和误报这2个指标,是此消彼长的,比如,如果唤醒词的字数很长,当然误报少,但是漏报会多;如果唤醒词的字数很短,漏报少了,但误报会多,特别如果大半夜的突然唱歌或讲故事,会特别吓人的……
C4)唤醒词。技术上要求,一般最少3个音节。比如“OK google”和“Alexa”有四个音节,“hey Siri”有三个音节;国内的智能音箱,比如小雅,唤醒词是“小雅小雅”,而不能用“小雅”。
注:一般产品经理或行业交流时,直接说汉语“语音唤醒”,而英文缩写“VT”,技术人员可能用得多些。
3)麦克风阵列(Microphone Array)
A)需求背景:在会议室、户外、商场等各种复杂环境下,会有噪音、混响、人声干扰、回声等各种问题。特别是远场环境,要求拾音麦克风的灵敏度高,这样才能在较远的距离下获得有效的音频振幅,同时近场环境下又不能爆音(振幅超过最大量化精度)。另外,家庭环境中的墙壁反射形成的混响对语音质量也有不可忽视的影响。
B)定义:由一定数目的声学传感器(一般是麦克风)组成,用来对声场的空间特性进行采样并处理的系统。
c)云端为主。
比如地图功能,由于POI(Point of Interest,兴趣点,指地理位置数据)数据量太大,直接到云端搜索可能更方便(除非是“家”、“公司”等个性化场景)。比如,用户说“从武汉火车站到东福”,可以被纠正为“从武汉火车站到东湖”。
各家公司在宣传时,会说语音识别率达到了97%,甚至98%,但那一般是需要用户在安静环境下,近距离、慢慢的、认真清晰发音;而在一些实际场景,很可能还不够好的,比如——
1、比如在大家都认为相对容易做的翻译场景,其实也还没完全可用,台上演示是一回事,普通用户使用是另一回事;特别是在一些垂直行业,领域知识很容易出错;另外,还可详见 《怼一怼那些假机器同传》
2、车载
大概3、4年前,我们内部做过针对车载场景的语言助手demo,拿到真实场景内去验证,结果发现,车内语音识别效果非常不理想。而且直到今年,我曾经面试过一位做车内语音交互系统的产品经理,发现他们的验收方其实也没有特别严格的测试,因为大家都知道,那样怎么也通过不了。。。
车内语音识别的难点很多,除了多人说话的干扰,还有胎噪、风噪,以及经常处于离线情况。
据说有的公司专门在做车内降噪,还有些公司想通过智能硬件来解决,至少目前好像还没有哪个产品解决好了这个问题,并且获得了用户的口碑称赞的。
3、家庭场景,由于相对安静和可控,如果远场做好了,还是有希望的。
4、中英文混合。
特别在听歌场景,用户说想听某首英文歌时,很容易识别错误的。这方面,只有傅盛的小雅音箱据说做了很多优化,有待用户检验。
总之,ASR是目前AI领域,相对最接近商用成熟的技术,但还是需要用户可以配合AI在特定场景下使用。这是不是问题呢?是问题,但其实不影响我们做产品demo和初步的产品化工作,所以反而是我们AI产品经理的发挥机会。
1、远场语音识别,是最近2年的重要竞争领域。因为家庭(音箱)等场景有可能做好、在被催熟。
2、更好的机会在垂直细分领域,比如方言(方言识别能够支持40多种,而百度有20多种)、特定人群的声学匹配方案(儿童)
最后,用一张图总结语音识别用于人机交互中的几个难点。
自动语音识别通常有以下几种分类方法:
(1)按系统的用户情况分:特定人和非特定人识别系统;
(2)按系统词汇量分:小词汇量、中词汇量和大词汇量系统;
(3)按语音的输入方式分:孤立词、连接词、连续语音系统等;
(4)按输入语音的发音方式分:朗读式、口语(自然发音)式;
(5)按输入语音的方言背景情况分:普通话、方言背景普通话、方言语音识别系统;
(6)按输入语音的情感状态分;中性语音、情感语音识别系统。
语音情感识别和脸部情感识别相比,各有方便、技术成熟、直观、难以伪造的优势。语音识别技术的应用通常是在人机交互上,让机器通过是被和理解语音信号之后转化为相应的文本和命令然后进行执行。人脸识别网络技术使用通用的摄像机作为识别数据信息资源获取装置,以非接触的方式在识别研究对象未察觉的情况下完成识别发展过程。语音情感识别和脸部情感识别各具有以下优势:
1、语音情感识别优势。和脸部情感识别技术相比,语音识别技术的优势似乎更加明显,语音识别技术不会遗失和忘记数据,不用记忆,在应用的时候也比较方便。语音识别技术比较成熟,用户的接受度也很高,声音输入设备造价也很具有优势,在隐私问题上,语音识别技术也比较有保障,所以推广使用还是很有市场的。
2、脸部情感识别优势。人脸识别系统使用可以方便,人脸识别技术是以人脸图像为基础的,最直观的信息来源,便于人工确认和审核。人脸识别技术是独一无二的,与语音情感识别技术相比,人脸识别技术具有准确率高、难以伪造、误识别率和拒识率低的特点。
人工智能产品的定义较为广泛,智能硬件、机器人、芯片、语音助手等都可以叫做人工智能产品。本文讨论的人工智能产品主要是指在互联网产品中运用人工智能技术。
互联网产品主要着手与解决用户的痛点,对于C端产品来说,痛点就是指的个人想解决而无法解决的问题,如个人想要美化自己的照片,但是他不会复杂的PS软件,于是美图秀秀就可以解决这个痛点。从KANO模型中,就是满足用户的基本需求与期望需求。
人工智能产品(在互联网产品中运用人工智能技术)则是要满足用户的兴奋需求。如将情感分析运用到电商的产品评论中,用户则可以通过可视化的数据展示来大致对产品有个全面、直观的了解,而不再需要自己一页一页的翻看评论内容。
互联网产品主要关注点在于用户需求、流程设计、交互设计、商业模式等。着眼于用户需求,设计满足用户需求的产品,通过合理的流程设计、交互设计达到产品目标,进而实现商业目标。典型的思路是发现用户需求——>设计满足用户需求的产品——>迭代完善、产品运营——>商业变现。
人工智能产品关注点在于模型的构建,它不再是对于布局、交互的推敲,而是通过选择合适的数据,构建合适的模型,最终呈现出来的是好的效果。什么是好的效果呢?这就需要引入评测指标。互联网的评测指标有我们熟知的留存率、转化率、日活跃等,那么人工智能的产品主要是通过一些统计指标来描述,以情感分析为例,把情感分析看成一个分类问题,则可以使用P、R、A、F值来描述。
1)查准率(Precision):P值,衡量某类分类中识别正确的比例,如情感分析中,有10条被分类为“正向”,其中8条是分类正确的(由人工审核),那么P=8/10=80%
2)查全率(Recall):R值,又叫查全率,又叫召回度,指的是某类被被正确分类的比例,同样以情感分析为例,100条数据中有10条是正向的,机器分类后,这10条中有7条被分类为正向,则R=7/10=70%
3)F值,因为P值和R值通常是两个相互矛盾的指标,即一个越高另一个越低,F则是两者综合考虑的指标,不考虑调节P、R权重的情况下,F=2PR/(P+R)
4)精确度(Accuracy):这个最好理解,就是被准确分类的比例,也就是正确率。如100条数据,90条是被正确分类的,则A=90/100=90%。
以上指标越高,说明模型效果越好。
我们从上面内容可以知道,人工智能产品设计关注:数据——>模型——>效果评估。
现在我们以情感分析为例子说明产品设计的过程。
1)数据:
数据的选择对最终模型的结果有直接影响,情感分析,根据不同的目的,选择的数据也不同。如将情感分析运用于**票房预测,则一些更新及时、内容丰富的数据源,如微博,是比较好的选择。如果是应用于商品的评价,如电子产品,很多评测内容是无法在短短几句话内描述清楚的,这时候微博不是个好的选择,选择论坛上更新较慢、但是详细的内容就比较适合。
如果能在产品的早期就有引入人工智能的打算,则可以在产品中事先做好数据采集。
2)模型:
在选择模型中,产品需要了解不同的模型的优缺点,进而选择更加合适的模型。在情感分析中,NB、SVM、N-gram都是常用的模型,其中SVM效果最好(这是已有的结论),如果是其他的智能产品,可能需要算法团队进行实验,给出测试数据,进而选择合适的模型。
3)效果评估:
效果评估在上文中已经描述得比较清楚,具体指标不再赘述。
4)产品呈现:
最后这一步,是将结果展示给用户。在情感分析中,我们可以选择雷达图、词云、情感趋势图来展示结果。取决于产品属性,如电商产品评论挖掘,可以使用词云;
如舆论分析,可以使用情感趋势图。
人工智能产品的设计要关注:数据、模型、评判、呈现。
人们期盼着能拥有并使用更为人性化和智能化的计算机。在人机交互中,从人操作计算机,变为计算机辅助人;从人围着计算机转,变为计算机围着人转;计算机从认知型,变为直觉型。显然,为实现这些转变,人机交互中的计算机应具有情感能力。情感计算研究就是试图创建一种能感知、识别和理解人的情感,并能针对人的情感做出智能、灵敏、友好反应的计算系统。
情感被用来表示各种不同的内心体验(如情绪、心境和偏好),情绪被用来表示非常短暂但强烈的内心体验,而心境或状态则被用来描述强度低但持久的内心体验。情感是人与环境之间某种关系的维持或改变,当客观事物或情境与人的需要和愿望符合时会引起人积极肯定的情感,而不符合时则会引起人消极否定的情感。
情感具有三种成分:⑴主观体验,即个体对不同情感状态的自我感受;⑵外部表现,即表情,在情感状态发生时身体各部分的动作量化形式。表情包括面部表情(面部肌肉变化所组成的模式)、姿态表情(身体其他部分的表情动作)和语调表情(言语的声调、节奏、速度等方面的变化);⑶生理唤醒,即情感产生的生理反应,是一种生理的激活水平,具有不同的反应模式。
概括而言,情感的重要作用主要表现在四个方面:情感是人适应生存的心理工具,能激发心理活动和行为的动机,是心理活动的组织者,也是人际通信交流的重要手段。从生物进化的角度我们可以把人的情绪分为基本情绪和复杂情绪。基本情绪是先天的,具有独立的神经生理机制、内部体验和外部表现,以及不同的适应功能。人有五种基本情绪,它们分别是当前目标取得进展时的快乐,自我保护的目标受到威胁时的焦虑,当前目标不能实现时的悲伤,当前目标受挫或遭遇阻碍时的愤怒,以及与味觉(味道)目标相违背的厌恶。而复杂情绪则是由基本情绪的不同组合派生出来的。
情感测量包括对情感维度、表情和生理指标三种成分的测量。例如,我们要确定一个人的焦虑水平,可以使用问卷测量其主观感受,通过记录和分析面部肌肉活动测量其面部表情,并用血压计测量血压,对血液样本进行化验,检测血液中肾上腺素水平等。
确定情感维度对情感测量有重要意义,因为只有确定了情感维度,才能对情感体验做出较为准确的评估。情感维度具有两极性,例如,情感的激动性可分为激动和平静两极,激动指的是一种强烈的、外显的情感状态,而平静指的是一种平稳安静的情感状态。心理学的情感维度理论认为,几个维度组成的空间包括了人类所有的情感。但是,情感究竟是二维,三维,还是四维,研究者们并未达成共识。情感的二维理论认为,情感有两个重要维度:⑴愉悦度(也有人提出用趋近-逃避来代替愉悦度);⑵激活度,即与情感状态相联系的机体能量的程度。研究发现,惊反射可用做测量愉悦度的生理指标,而皮肤电反应可用做测量唤醒度的生理指标。
在人机交互研究中已使用过很多种生理指标,例如,皮质醇水平、心率、血压、呼吸、皮肤电活动、掌汗、瞳孔直径、事件相关电位、脑电EEG等。生理指标的记录需要特定的设备和技术,在进行测量时,研究者有时很难分离各种混淆因素对所记录的生理指标的影响。情感计算研究的内容包括三维空间中动态情感信息的实时获取与建模,基于多模态和动态时序特征的情感识别与理解,及其信息融合的理论与方法,情感的自动生成理论及面向多模态的情感表达,以及基于生理和行为特征的大规模动态情感数据资源库的建立等。
欧洲和美国的各大信息技术实验室正加紧进行情感计算系统的研究。剑桥大学、麻省理工学院、飞利浦公司等通过实施“环境智能”、“环境识别”、“智能家庭”等科研项目来开辟这一领域。例如,麻省理工学院媒体实验室的情感计算小组研制的情感计算系统,通过记录人面部表情的摄像机和连接在人身体上的生物传感器来收集数据,然后由一个“情感助理”来调节程序以识别人的情感。如果你对电视讲座的一段内容表现出困惑,情感助理会重放该片段或者给予解释。麻省理工学院“氧工程”的研究人员和比利时IMEC的一个工作小组认为,开发出一种整合各种应用技术的“瑞士军刀”可能是提供移动情感计算服务的关键。而目前国内的情感计算研究重点在于,通过各种传感器获取由人的情感所引起的生理及行为特征信号,建立“情感模型”,从而创建个人情感计算系统。研究内容主要包括脸部表情处理、情感计算建模方法、情感语音处理、姿态处理、情感分析、自然人机界面、情感机器人等。
情境化是人机交互研究中的新热点。自然和谐的智能化的人机界面的沟通能力特征包括:⑴自然沟通:能看,能听,能说,能触摸;⑵主动沟通:有预期,会提问,并及时调整;⑶有效沟通:对情境的变化敏感,理解用户的情绪和意图,对不同用户、不同环境、不同任务给予不同反馈和支持。而实现这些特征在很大程度上依赖于心理科学和认知科学对人的智能和情感研究所取得的新进展。我们需要知道人是如何感知环境的,人会产生什么样的情感和意图,人如何做出恰当的反应,从而帮助计算机正确感知环境,理解用户的情感和意图,并做出合适反应。因此,人机界面的“智能”不仅应有高的认知智力,也应有高的情绪智力,从而有效地解决人机交互中的情境感知问题、情感与意图的产生与理解问题,以及反应应对问题。
显然,情感交流是一个复杂的过程,不仅受时间、地点、环境、人物对象和经历的影响,而且有表情、语言、动作或身体的接触。在人机交互中,计算机需要捕捉关键信息,觉察人的情感变化,形成预期,进行调整,并做出反应。例如,通过对不同类型的用户建模(例如,操作方式、表情特点、态度喜好、认知风格、知识背景等),以识别用户的情感状态,利用有效的线索选择合适的用户模型(例如,根据可能的用户模型主动提供相应有效信息的预期),并以适合当前类型用户的方式呈现信息(例如,呈现方式、操作方式、与知识背景有关的决策支持等);在对当前的操作做出即时反馈的同时,还要对情感变化背后的意图形成新的预期,并激活相应的数据库,及时主动地提供用户需要的新信息。
情感计算是一个高度综合化的技术领域。通过计算科学与心理科学、认知科学的结合,研究人与人交互、人与计算机交互过程中的情感特点,设计具有情感反馈的人机交互环境,将有可能实现人与计算机的情感交互。迄今为止,有关研究已在人脸表情、姿态分析、语音的情感识别和表达方面取得了一定的进展。
目前情感计算研究面临的挑战仍是多方面的:⑴情感信息的获取与建模,例如,细致和准确的情感信息获取、描述及参数化建模,海量的情感数据资源库,多特征融合的情感计算理论模型;⑵情感识别与理解,例如,多模态的情感识别和理解;⑶情感表达,例如,多模态的情感表达(图像、语音、生理特征等),自然场景对生理和行为特征的影响;⑷自然和谐的人性化和智能化的人机交互的实现,例如,情感计算系统需要将大量广泛分布的数据整合,然后再以个性化的方式呈现给每个用户。
情感计算有广泛的应用前景。计算机通过对人类的情感进行获取、分类、识别和响应,进而帮助使用者获得高效而又亲切的感觉,并有效减轻人们使用电脑的挫败感,甚至帮助人们理解自己和他人的情感世界。计算机的情感化设计能帮助我们增加使用设备的安全性,使经验人性化,使计算机作为媒介进行学习的功能达到最佳化。在信息检索中,通过情感分析的概念解析功能,可以提高智能信息检索的精度和效率。
展望现代科技的潜力,我们预期在未来的世界中将可能会充满运作良好、操作容易、甚至具有情感特点的计算机。
情感研究方法涵盖了多种定性和定量的方法和技术,以便对情感进行测量和理解。以下是一些常见的情感研究方法:
问卷调查:通过编制和分发问卷来收集关于情感体验的信息。问卷可以包括关于情感状态、情感感受、情感反应和情感体验的问题。
实验室观察:在实验室环境中,通过观察参与者的行为、面部表情、生理指标等来评估情感。这可以通过使用实验范式、观察记录和视频录制来实现。
自我报告:参与者通过书面或口头形式描述自己的情感体验。这可以通过采访、情感日记或情感日志的形式进行。
生理测量:使用生理指标来评估情感,如心率、皮肤电反应、脑电图等。这些生理指标可以提供客观的数据来评估情感的激活和变化。
面部表情分析:通过分析面部表情来研究情感。这可以通过使用面部表情识别软件、面部动作编码系统(Facial Action Coding System)或者眼动仪等技术来实现。
情感的表现可以包括以下方面:
面部表情:面部表情是情感的主要表现之一,如微笑、愤怒、悲伤、惊讶等。
语言和声音:情感可以通过语言的调调、语速、音量以及使用的词语和表达方式来表现。
体态和姿势:情感可以通过身体的姿势、姿态和动作来表现,如挺直身体、低头、颤抖等。
言语和行为:情感可以通过言语和行为来表现,如亲密的接触、抚摸、搂抱等。
生理反应:情感可以导致生理上的反应,如心率加快、呼吸加深、出汗等。
需要注意的是,情感的表现是多样且个体差异很大的。因此,使用多种方法和技术来综合评估情感是理解和研究情感的重要方面。
与其他的人工智能技术相比,情感分析(Sentiment Analysis)显得有些特殊,因为其他的领域都是根据客观的数据来进行分析和预测,但情感分析则带有强烈的个人主观因素。情感分析的目标是从文本中分析出人们对于实体及其属性所表达的情感倾向以及观点,这项技术最早的研究始于2003年Nasukawa和Yi两位学者的关于商品评论的论文。
随着推特等社交媒体以及电商平台的发展而产生大量带有观点的内容,给情感分析提供了所需的数据基础。时至今日,情感识别已经在多个领域被广泛的应用。例如在商品零售领域,用户的评价对于零售商和生产商都是非常重要的反馈信息,通过对海量用户的评价进行情感分析,可以量化用户对产品及其竞品的褒贬程度,从而了解用户对于产品的诉求以及自己产品与竞品的对比优劣。在社会舆情领域,通过分析大众对于社会热点事件的点评可以有效的掌握舆论的走向。在企业舆情方面,利用情感分析可以快速了解社会对企业的评价,为企业的战略规划提供决策依据,提升企业在市场中的竞争力。在金融交易领域,分析交易者对于股票及其他金融衍生品的态度,为行情交易提供辅助依据。
目前,绝大多数的人工智能开放平台都具备情感分析的能力,如图所示是玻森中文语义开放平台的情感分析功能演示,可以看出除了通用领域的情感分析外,还有汽车、厨具、餐饮、新闻和微博几个特定领域的分析。
那么到底什么是情感分析呢?从自然语言处理技术的角度来看,情感分析的任务是从评论的文本中提取出评论的实体,以及评论者对该实体所表达的情感倾向,自然语言所有的核心技术问题,例如:词汇语义,指代消解,此役小气,信息抽取,语义分析等都会在情感分析中用到。因此,情感分析被认为是一个自然语言处理的子任务,我们可以将人们对于某个实体目标的情感统一用一个五元组的格式来表示:(e,a,s,h,t)
以图为例,e是指某餐厅,a为该餐厅的性价比属性,s是对该餐厅的性价比表示了褒义的评价,h为发表评论者本人,t是19年7月27日。所以这条评论的情感分析可以表示为五元组(某餐厅,性价比,正向褒义,评论者,19年7月27日)。
情感分析根据处理文本颗粒度的不同,大致可以分为三个级别的任务,分别是篇章级、句子级和属性级。我们分别来看一下。
1 篇章级情感分析
篇章级情感分析的目标是判断整篇文档表达的是褒义还是贬义的情感,例如一篇书评,或者对某一个热点时事新闻发表的评论,只要待分析的文本超过了一句话的范畴,即可视为是篇章级的情感分析。
对于篇章级的情感分析而言有一个前提假设,那就是全篇章所表达的观点仅针对一个单独的实体e,且只包含一个观点持有者h的观点。这种做法将整个文档视为一个整体,不对篇章中包含的具体实体和实体属性进行研究,使得篇章级的情感分析在实际应用中比较局限,无法对一段文本中的多个实体进行单独分析,对于文本中多个观点持有者的观点也无法辨别。
例如评价的文本是:“我觉得这款手机很棒。”评价者表达的是对手机整体的褒义评价,但如果是:“我觉得这款手机拍照功能很不错,但信号不是很好”这样的句子,在同一个评论中出现了褒义词又出现了贬义词,篇章级的分析是无法分辨出来的,只能将其作为一个整体进行分析。
不过好在有很多的场景是不需要区分观点评价的实体和观点持有者,例如在商品评论的情感分析中,可以默认评论的对象是被评论的商品,评论的观点持有者也是评论者本人。当然,这个也需要看被评论的商品具体是什么东西,如果是亲子旅游这样的旅游服务,那么评论中就很有可能包含一个以上的观点持有者。
在实际工作中,篇章级的情感分析无法满足我们对于评价更细致,如果需要对评论进行更精确,更细致的分析,我们需要拆分篇章中的每一句话,这就是句子级的情感分析研究的问题。
2 句子级情感分析
与篇章级的情感分析类似,句子级的情感分析任务是判断一个句子表达的是褒义还是贬义的情感,虽然颗粒度到了句子层级,但是句子级分析与篇章级存在同样的前提假设是,那就是一个句子只表达了一个观点和一种情感,并且只有一个观点持有人。如果一个句子中包含了两种以上的评价或多个观点持有人的观点,句子级的分析是无法分辨的。好在现实生活中,绝大多数的句子都只表达了一种情感。
既然句子级的情感分析在局限性上与篇章级是一样的,那么进行句子级的情感分析意义何在呢?关于这个问题,需要先解释一下语言学上主观句与客观句的分别。在我们日常用语当中,根据语句中是否带有说话人的主观情感可以将句子分为主观句和客观句,例如:“我喜欢这款新手机。”就是一个主观句,表达了说话人内心的情感或观点,而:“这个APP昨天更新了新功能。”则是一个客观句,陈述的是一个客观事实性信息,并不包含说话人内心的主观情感。通过分辨一个句子是否是主观句,可以帮助我们过滤掉一部分不含情感的句子,让数据处理更有效率。
但是在实操过程中,我们会发现这样的分类方法似乎并不是特别准确,因为一个主观句也可能没有表达任何的情感信息,知识表达了期望或者猜测,例如:“我觉得他现在已经在回家的路上了。”这句话是一个主观句,表达了说话人的猜测,但是并没有表达出任何的情感。而客观句也有可能包含情感信息,表明说话者并不希望这个事实发生,例如:“昨天刚买的新车就被人刮花了。”这句话是一个客观句,但结合常识我们会发现,这句话中其实是包含了说话人的负面情感。
所以,仅仅对句子进行主客观的分类还不足以达到对数据进行过滤的要求,我们需要的是对句子是否含有情感信息进行分类,如果一个句子直接表达或隐含了情感信息,则认为这个句子是含有情感观点的,对于不含情感观点的句子则可以进行过滤。目前对于句子是否含有情感信息的分类技术大多都是采用有监督的学习算法,这种方法需要大量的人工标注数据,基于句子特征来对句子进行分类。
总之,我们可以将句子级的情感分析分成两步,第一步是判断待分析的句子是否含有观点信息,第二步则是针对这些含有观点信息的句子进行情感分析,发现其中情感的倾向性,判断是褒义还是贬义。关于分析情感倾向性的方法与篇章级类似,依然是可以采用监督学习或根据情感词词典的方法来处理,我们会在后续的小节详细讲解。
句子级的情感分析相较于篇章级而言,颗粒度更加细分,但同样只能判断整体的情感,忽略了对于被评价实体的属性。同时它也无法判断比较型的情感观点,例如:“A产品的用户体验比B产品好多了。”对于这样一句话中表达了多个情感的句子,我们不能将其简单的归类为褒义或贬义的情感,而是需要更进一步的细化颗粒度,对评价实体的属性进行抽取,并将属性与相关实体之间进行关联,这就是属性级情感分析。
3 属性级情感分析
上文介绍的篇章级和句子级的情感分析,都无法确切的知道评价者喜欢和不喜欢的具体是什么东西,同时也无法区分对某一个被评价实体的A属性持褒义倾向,对B属性却持贬义倾向的情况。但在实际的语言表达中,一个句子中可能包含了多个不同情感倾向的观点,例如:“我喜欢这家餐厅的装修风格,但菜的味道却很一般。”类似于这样的句子,很难通过篇章级和句子级的情感分析了解到对象的属性层面。
为了在句子级分析的基础上更加细化,我们需要从文本中发现或抽取评价的对象主体信息,并根据文本的上下文判断评价者针对每一个属性所表达的是褒义还是贬义的情感,这种就称之为属性级的情感分析。属性级的情感分析关注的是被评价实体及其属性,包括评价者以及评价时间,目标是挖掘与发现评论在实体及其属性上的观点信息,使之能够生成有关目标实体及其属性完整的五元组观点摘要。具体到技术层面来看,属性级的情感分析可以分为以下6个步骤:
关于文本中的实体抽取和指代消解问题,我们已经在知识图谱的相关章节中做了介绍,这里就不再赘述。针对篇章级、句子级、属性级这三种类型的情感分析任务,人们做了大量的研究并提出了很多分类的方法,这些方法大致可以分为基于词典和基于机器学习两种,下面我们进行详细的讲解。
做情感分析离不开情感词,情感词是承载情感信息最基本的单元,除了基本的词之外,一些包含了情感含义的短语和成语我们也将其统称为情感词。基于情感词典的情感分析方法,主要是基于一个包含了已标注的情感词和短语的词典,在这个词典中包括了情感词的情感倾向以及情感强度,一般将褒义的情感标注为正数,贬义的情感标注为负数。
具体的步骤如图所示,首先将待分析的文本先进行分词,并对分词后的结果做去除停用词和无用词等文本数据的预处理。然后将分词的结果与情感词典中的词进行匹配,并根据词典标注的情感分对文本进行加法计算,最终的计算结果如果为正则是褒义情感,如果为负则是贬义情感,如果为0或情感倾向不明显的得分则为中性情感或无情感。
情感词典是整个分析流程的核心,情感词标注数据的好坏直接决定了情感分类的结果,在这方面可以直接采用已有的开源情感词典,例如BosonNLP基于微博、新闻、论坛等数据来源构建的情感词典,知网(Hownet)情感词典,台湾大学简体中文情感极性词典(NTSUSD),snownlp框架的词典等,同时还可以使用哈工大整理的同义词词林拓展词典作为辅助,通过这个词典可以找到情感词的同义词,拓展情感词典的范围。
当然,我们也可以根据业务的需要来自己训练情感词典,目前主流的情感词词典有三种构建方法:人工方法、基于字典的方法和基于语料库的方法。对于情感词的情感赋值,最简单的方法是将所有的褒义情感词赋值为+1,贬义的情感词赋值为-1,最后进行相加得出情感分析的结果。
但是这种赋值方式显然不符合实际的需求,在实际的语言表达中,存在着非常多的表达方式可以改变情感的强度,最典型的就是程度副词。程度副词分为两种,一种是可以加强情感词原本的情感,这种称之为情感加强词,例如“很好”相较于“好”的情感程度会更强烈,“非常好”又比“很好”更强。另外一种是情感减弱词,例如“没那么好”虽然也是褒义倾向,但情感强度相较于“好”会弱很多。如果出现了增强词,则需要在原来的赋值基础上增加情感得分,如果出现了减弱词则需要减少相应的情感得分。
另一种需要注意的情况是否定词,否定词的出现一般会改变情感词原本的情感倾向,变为相反的情感,例如“不好”就是在“好”前面加上了否定词“不”,使之变成了贬义词。早期的研究会将否定词搭配的情感词直接取相反数,即如果“好”的情感倾向是+1,那么“不好”的情感倾向就是-1。但是这种简单粗暴的规则无法对应上真实的表达情感,例如“太好”是一个比“好”褒义倾向更强的词,如果“好”的值为+1,那么“太好”可以赋值为+3,加上否定词的“不太好”变成-3则显然有点过于贬义了,将其赋值为-1或者-05可能更合适。
基于这种情况,我们可以对否定词也添加上程度的赋值而不是简单的取相反数,对于表达强烈否定的词例如“不那么”赋值为±4,当遇到与褒义词的组合时褒义词则取负数,与贬义词的组合则取正数,例如贬义词“难听”的赋值是-3,加上否定词变成“不那么难听”的情感得分就会是(-3+4=1)。
第三种需要注意的情况是条件词,如果一个条件词出现在句子中,则这个句子很可能不适合用来做情感分析,例如“如果我明天可以去旅行,那么我一定会非常开心。”,在这句话中有明显的褒义情感词,但是因为存在条件词“如果”,使得这个句子的并没有表达观点持有者的真实情感,而是一种假设。
除了条件句之外,还有一种语言表达也是需要在数据预处理阶段进行排除的,那就是疑问句。例如“这个餐厅真的有你说的那么好吗?”,虽然句子中出现了很强烈的褒义情感词“那么好”,但依然不能将它分类为褒义句。疑问句通常会有固定的结尾词,例如“……吗?”或者“……么?”,但是也有的疑问句会省略掉结尾词,直接使用标点符号“?”,例如“你今天是不是不开心?”,这个句子中含有否定词和褒义词组成的“不开心”,但不能将其分类为贬义情感。
最后一种需要注意的情况是转折词,典型词是“但是”,出现在转折词之前的情感倾向通常与转折词之后的情感倾向相反,例如:“我上次在这家酒店的住宿体验非常好,但是这次却让我很失望。”在这个转折句中,转折词之前的“非常好”是一个很强的褒义词,但真实的情感表达却是转折词之后的“很失望”,最终应该将其分类为贬义情感。当然,也存在出现了转折词,但语句本身的情感并没有发生改变的情况,例如“你这次考试比上次有了很大的进步,但是我觉得你可以做得更好”,这里的转折词没有转折含义,而是一种递进含义。在实际操作中,我们所以需要先判断转折句真实的情感表达到底是哪个,才能进行正确的分析计算。
构建情感词典是一件比较耗费人工的事情,除了上述需要注意的问题外,还存在精准度不高,新词和网络用语难以快速收录进词典等问题。同时基于词典的分析方法也存在很多的局限性,例如一个句子可能出现了情感词,但并没有表达情感。或者一个句子不含任何情感词,但却蕴含了说话人的情感。以及部分情感词的含义会随着上下文语境的变化而变化的问题,例如“精明”这个词可以作为褒义词夸奖他人,也可以作为贬义词批评他人。
尽管目前存在诸多问题,但基于字典的情感分析方法也有着不可取代的优势,那就是这种分析方法通用性较强,大多数情况下无需特别的领域数据标注就可以分析文本所表达的情感,对于通用领域的情感分析可以将其作为首选的方案。
我们在机器学习算法的章节介绍过很多分类算法,例如逻辑回归、朴素贝叶斯、KNN等,这些算法都可以用于情感识别。具体的做法与机器学习一样需要分为两个步骤,第一步是根据训练数据构建算法模型,第二步是将测试数据输入到算法模型中输出对应的结果,接下来做具体的讲解。
首先,我们需要准备一些训练用的文本数据,并人工给这些数据做好情感分类的标注,通常的做法下,如果是褒义和贬义的两分类,则褒义标注为1,贬义标注为0,如果是褒义、贬义和中性三分类,则褒义标注为1,中性标注为0,贬义标注为-1
在这一环节中如果用纯人工方法来进行标注,可能会因为个人主观因素对标注的结果造成一定影响,为了避免人的因素带来的影响,也为了提高标注的效率,有一些其他取巧的方法来对数据进行自动标注。比如在电商领域中,商品的评论除了文本数据之外通常还会带有一个5星的等级评分,我们可以根据用户的5星评分作为标注依据,如果是1-2星则标注为贬义,如果是3星标注为中性,4-5星标注为褒义。又比如在社区领域中,很多社区会对帖子有赞和踩的功能,这一数据也可以作为情感标注的参考依据。
第二步是将标注好情感倾向的文本进行分词,并进行数据的预处理,前文已经对分词有了很多的介绍,这里就不再过多的赘述。第三步是从分词的结果中标注出具备情感特征的词,这里特别说一下,如果是对情感进行分类,可以参考情感词典进行标注,也可以采用TF-IDF算法自动抽取出文档的特征词进行标注。如果分析的是某个特定领域的,还需要标注出特定领域的词,例如做商品评价的情感分析,需要标注出商品名称,品类名称,属性名称等。第四步根据分词统计词频构建词袋模型,形成特征词矩阵,如表所示。在这一步可以根据业务需要给每个特征词赋予权重,并通过词频乘以权重得到特征词分数。最后一步就是根据分类算法,将特征词矩阵作为输入数据,得到最终的分类模型。
当训练好分类模型之后,就可以对测试集进行分类了,具体的流程与建模流程类似,先对测试的文本数据进行分词并做数据预处理,然后根据特征词矩阵抽取测试文本的特征词构建词袋矩阵,并将词袋矩阵的词频数据作为输入数据代入之前训练好的模型进行分类,得到分类的结果。
采用基于机器学习的方法进行情感分析有以下几个不足之处,第一是每一个应用领域之间的语言描述差异导致了训练得到的分类模型不能应用与其他的领域,需要单独构建。第二是最终的分类效果取决于训练文本的选择以及正确的情感标注,而人对于情感的理解带有主观性,如果标注出现偏差就会对最终的结果产生影响。
除了基于词典和基于机器学习的方法,也有一些学者将两者结合起来使用,弥补两种方法的缺点,比单独采用一种方法的分类效果要更好,另外,也有学者尝试使用基于LSTM等深度学习的方法对情感进行分析,相信在未来,情感分析会应用在更多的产品中,帮助我们更好的理解用户需求,提升用户使用智能产品的体验。
随着深度神经网络等算法的应用,情感分析的研究方向已经有了非常大的进展,但依然存在着一些难题是目前尚未解决的,在实操过程中需特别注意以下几种类型数据:
情绪轮在用户体验设计上被广泛的应用,很多情感化设计都是基于情绪轮进行的。但是在人工智能领域,将情绪进行多分类比情感分析的三分类任务要难得多,目前大多数分类方法的结果准确性都不到50%。这是因为情绪本身包含了太多的类别,而且不同的类别之间又可能具有相似性,一个情绪词在不同的语境下有可能表达的是不同的情绪类别,算法很难对其进行分类。即使是人工对文本进行情绪类别标注也往往效果不佳,因为情绪是非常主观性的,不同的人对不同的文本可能产生不同的理解,这使得人工标注情绪类比的过程异常困难。如何让机器可以理解真实的情绪目前还是一个未能攻克的难题。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)