情感计算算法,人工智能的情感算法

情感分析之TF-IDF算法

mini.eastday/bdmip/180414224336264.html 在这篇文章中,主要介绍的内容有: 1、将单词转换为特征向量 2、TF-IDF计算单词关联度 文本的预处理和分词。 如何将单词等分类数据转成为数值格式,以方便我们后面使用机器学习来训练模型。 一、将单词转换为特征向量 词袋模型(bag-of-words model):将文本以数值特征向量的形式来表示。主要通过两个步骤来实现词袋模型: 1、为整个文档集(包含了许多的文档)上的每个单词创建一个唯一的标记。 2、为每个文档构建一个特征向量,主要包含每个单词在文档上的出现次数。 注意:由于每个文档中出现的单词数量只是整个文档集中很少的一部分,因此会有很多的单词没有出现过,就会被标记为0。所以,特征向量中大多数的元素就会为0,就会产生稀疏矩阵。 下面通过sklearn的CountVectorizer来实现一个词袋模型,将文档转换成为特征向量通过count.vocabulary_我们可以看出每个单词所对应的索引位置,每一个句子都是由一个6维的特征向量所组成。其中,第一列的索引为0,对应单词"and","and"在第一和二条句子中没有出现过,所以为0,在第三条句子中出现过一些,所以为1。特征向量中的值也被称为原始词频(raw term frequency)简写为tf(t,d),表示在文档d中词汇t的出现次数。 注意:在上面词袋模型中,我们是使用单个的单词来构建词向量,这样的序列被称为1元组(1-gram)或单元组(unigram)模型。除了一元组以外,我们还可以构建n元组(n-gram)。n元组模型中的n取值与特定的应用场景有关,如在反垃圾邮件中,n的值为3或4的n元组可以获得比较好的效果。下面举例说明一下n元组,如在"the weather is sweet"这句话中, 1元组:"the"、"weather"、"is"、"sweet"。 2元组:"the weather"、"weather is"、"is sweet"。 在sklearn中,可以设置CountVecorizer中的ngram_range参数来构建不同的n元组模型,默认ngram_range=(1,1)。 sklearn通过CountVecorizer构建2元组二、TF-IDF计算单词关联度 在使用上面的方法来构建词向量的时候可能会遇到一个问题:一个单词在不同类型的文档中都出现,这种类型的单词其实是不具备文档类型的区分能力。我们通过TF-IDF算法来构建词向量,从而来克服这个问题。 词频-逆文档频率(TF-IDF,term frequency-inverse document frequency):tf-idf可以定义为词频×逆文档频率 其中tf(t,d)表示单词t在文档d中的出现次数,idf(t,d)为逆文档频率,计算公式如下 其中,nd表示文档的总数,df(t,d)表示包含单词t的文档d的数量。分母中加入常数1,是为了防止df(t,d)=0的情况,导致分母为0。取log的目的是保证当df(t,d)很小的时候,不会导致idf(t,d)过大。 通过sklearn的TfidfTransformer和CountVectorizer来计算tf-idf可以发现"is"(第二列)和"the"(第六列),它们在三个句子中都出现过,它们对于文档的分类所提供的信息并不会很多,所以它们的tf-idf的值相对来说都是比较小的。 注意:sklearn中的TfidfTransformer的TF-IDF的计算与我们上面所定义TF-IDF的公式有所不同,sklearn的TF-IDF计算公式 通常在计算TF-IDF之前,会对原始词频tf(t,d)做归一化处理,TfidfTransformer是直接对tf-idf做归一化。TfidfTransformer默认使用L2归一化,它通过与一个未归一化特征向量L2范数的比值,使得返回向量的长度为1,计算公式如下:下面通过一个例子来说明sklearn中的TfidfTransformer的tf-idf的计算过程,以上面的第一句话"The sun is shining"为例子 1、计算原始词频 a、单词所对应的下标 b、计算第三句话的原始词频tf(t,d) c、计算逆文档频率idf(t,d)注意:其他的词在计算tf-idf都是0,因为原始词频为0,所以就不需要计算idf了,log是以自然数e为底。 d、计算tf-idf所以,第一个句子的tf-idf特征向量为[0,1,1.29,1.29,0,1,0] e、tf-idf的L2归一化

算算你几岁结婚,小心错过命中真爱

现在的年轻人,总是觉得结婚,要么早早的结,要不然就得晚点再结。在25、26这个年龄结婚,那是事业的发展期,肯定是不可以的,但是却不曾想过,可能你在这个年龄才会遇到真爱。你应该几岁结婚才最适合?一起做个 缘分测试 吧。

   【鬼谷星推算方法】: 按阴历(农历)生日计算,例如:1982年农历5月12日 1、先在表A中找出你出生年月的交叉数字。A表中为为36 2、得到的数字再加上你的生日数字并取得其个位数。36+12(出生日期)=48个位数为“8” 3、对照表B,就能找出你的鬼古星了。就可得知为“贯索星”。 【表A】:横向为年份纵向为月份年份80=1980年81=1981年

【表B】: 0、龙高星1、牵牛星2、车骑星3、司禄星4、禄存星5、调舒星6、凤阁星7、石门星8、贯索星9、玉堂星

【0、龙高星感性知性的浪漫思想】 宿世恋爱性格 龙高星是一颗充满母性力量的星体,属于这个星系的人,通常个性细心体贴,能像个母亲一样呵护着情人,不过,属于龙高星的他们大都拥有一颗易感的心,能比一般人更容易产生很深的感受,因此基本上这类的人大都具有艺术、文学、戏剧等方面的才华。不过由于情绪上容易大鸣大放,在感情上的压练也将特别丰富。可能需要在一番跌跌撞撞之后,才能了解爱与被爱的真谛。 宿命恋人 才气横溢或是具有某种特质的对象 属于龙高星的你,在感情上总是容易被情绪、感性牵着鼻子走,你所钦慕的对象,往往都是跳脱视觉、名利之外的。也就是说,外表之外,你更容易为一个人的才华或特质、性格等痴迷,这种感觉很难拿捏,但是一旦降临,你将会以迅雷不及掩耳的速度坠入爱河。 桃花运盛龄:18~20岁、28岁 情感空窗龄:17岁以前、24岁 你的恋爱桃花将从18岁滋长,感性的你很快就能初尝两情相悦所带来的幸福感,但是由于个性及想法尚未成熟,爱情的牵绊与烦恼在此时也特别多,得经历一番磨练后,才能慢慢找出答案。(偶跟某人都是这个……)

【1、牵牛星浑身充满魅力的发电机】 宿世恋爱性格 一般来说,属于牵牛星的男女都拥有相当较好的面貌或体态,在鬼谷子的记载中,牵牛星又称“恋人星”,对异性的吸引力颇高,在同辈的相处上,也与异性的默契较佳。另外,你拥有相当高的IQ,很懂得拿捏爱情、面包、朋友等方面的平衡美感,除非遇到比你更高竿的对象,否则,在爱情这场竞技赛中,你通常扮演着占上风的胜利者。 宿命恋人 身边的好友或冤家 你对于脑筋不灵活、没创意、叫他往东他不敢往西的乖乖牌向来没啥耐性。通常,你所钟意的对象往往都是身边与你旗鼓相当、经常较劲的对象,这样的人初期可能是与你一同努力的好麻吉,也可能是你某方面假想敌,你容易带着挑战意味看对方,而最后又可能因为欣赏或折服于此人某种优于你的条件,而与你坠入爱河。 桃花运盛龄:22岁以前、27~29岁 情感空窗龄:25岁、38岁以后 你对爱情有一套自己的想法,在22岁以前容易抱着好奇、冒险的精神去尝试不同感觉的爱恋,因此很容易受到异性的欢迎,邀约也特别多;27岁时会有想成家的冲动,也很可能会奉子成婚;一般来说38岁以后未婚的你对于事业、家庭的重视度远远超过男女之情,也因此在爱情上将出现很长的空白期。

情感建模

一、情感建模 随着人工智能技术的发展,人机交互方式越来越向着人类自然交互方向发展,但传统的人机交互方式是机械化的,难以满足现在的需求。情感计算技术的引入,可以让机器像人一样的观察、理解和表达各种情感特征,就能在互动中与人发生情感上的交流,从而使得人与机器交流得更加自然、亲切和生动,让人产生依赖感,故情感计算及其在人机交互中的应用将是人工智能领域里一个重要的研究方向。 情感建模则是情感计算的重要过程,是情感识别、情感表达和人机情感交互的关键,其意义就在于通过建立情感状态的数学模型,能够更直观地描述和理解情感的内涵。 对于情感模型而言,由于其对情感描述方式的不同,可以分为维度情感模型、离散情感模型和其他的情感模型,但在目前的情感建模研究中,维度情感模型的应用更加广泛。 二、维度情感模型 维度空间论认为人类所有情感分布在由若干个维度组成的某一空间中,不同的情感根据不同维度的属性分布在空间中不同的位置,且不同情感状态彼此间的相似程度和差异可以根据它们在空间中的距离来显示。在维度情感中,不同情感之间不是独立的,而是连续的,可以实现逐渐、平稳的转变。 2.1、一维情感模型 该模型用一根实数轴来量化情感,认为人类情感除了其独特分类不同外,都可以沿情感的快乐维度排列,其正半轴表示快乐,负半轴表示不快乐,并且可以通过该轴的位置可以判断情感的快乐和不快乐程度。 当人受到消极情感的刺激时,情感会向负轴方向移动,当刺激终止时,消极情感减弱并向原点靠近。当受积极情感的刺激时,情感状态向正半轴移动,并随着刺激的减弱逐渐向原点靠近。 情感的快乐维度是个体情感的共有属性,许多不同的情感会借此相互制约,这还可以为个体情感的自我调节提供依据,但多数心理学家认为情感是由多个因素决定的,也因此产生后来的多维情感空间。 2.2、二维情感模型 该模型从极性和强度两个维度区分情感,极性是指情感具有正情感和负情感之分,强度是指情感具有强烈程度和微弱程度的区别。这种情感描述比较符合人们对客观世界的基本看法,目前使用最多的是VA二维情感模型,该模型将情感划分为两个维度,价效维度和唤醒维度,如下图所示: 价效维度的负半轴表示消极情感,正半轴表示积极情感。唤醒维度的负半轴表示平缓的情感,正半轴表示强烈的情感。例如,在这个二维情感模型中,高兴位于第一象限,惊恐位于第二象限,厌烦位于第三象限,轻松位于第四象限。每个人的情感状态就可以根据价效维度和唤醒维度上的取值组合得到表征 2.3、三维情感模型 在三维情感模型中,除了考虑情感的极性和强度外,还有其他因素考虑到情感描述中。PAD三维情感模型是当前认可度比较高的一种三维情感模型,该模型定义情感具有愉悦度、唤醒度、和优势度三个维度,其中P代表愉悦度,表示个体情感状态的正负特性;A代表唤醒度,表示个体的神经生理激活水平;D代表优势度,表示个体对情景和他人的控制状态。 另外,还有APA三维情感空间模型,该模型采用亲和力、愉悦度和活力度三种情感属性,能够描述绝大多是情感。 2.4、其他多维情感模型 除了以上三种情感模型外,还有更复杂的情感模型。心理学家Izard的思维理论认为情绪有愉悦度、紧张度、激动度和确实度4个维度。愉悦度代表情感体验的主观享乐程度,紧张度和激动度代表人体神经活动的生理水平,确信度代表个体感受情感的程度。 心理学家Krech认为情感的强度是指情感具有由弱到强的变化范围,同时还以紧张水平、复杂度、快乐度3个指标来进行量化。紧张水平是指对要发生的事情的事先冲动,复杂度是对复杂情感的量化,快乐度是表示情感所处的愉快和不愉快的程度,故可以从这四个维度来判断人的情感。 另外,心理学家Frijda提出了情感具有愉快、激活、兴趣、社会评价、惊奇和复杂共6个维度的观点,但高维情感空间的应用存在较大难度,因此在实际中很少使用。 维度情感模型是用人类情感体验的欧氏距离空间描述,其主要思想是人类的所有情感都涵盖于情感模型中,且情感模型不同维度上的不同取值组合可以表示一种特定的情感状态。虽然维度情感模型是连续体,基本情感可以通过一定方法映射到情感模型上,但对于基本情感并没有严格的边界,即基本情感之间可以逐渐、平稳转化。维度情感模型的发展为人类的情感识别、情感合成和调节提供了模型基础。 三、离散情感模型 离散情感模型是把情感状态描述为离散的形式,即基本情感类别,如喜、怒、哀、乐等。 较为著名的是由心理学家Ekman提出的六大基本情感类别:愤怒、厌恶、恐惧、高兴、悲伤、惊讶,其在情感计算研究领域得到广泛应用。Plutchik从强度、相似性和两极性三方面进行情绪划分,对出8种基本情绪:狂喜、警惕、悲痛、惊奇、狂怒、恐惧、接受、憎恨。还有其他的一些心理学家提出了对基本情绪的不同分类。 离散情感模型较为简洁明了,方面理解,但只能描述有限种类的情感状态,而维度情感模型弥补了离散情感模型的缺点,能够直观地反映情感状态的变化过程。 四、其他情感模型 除了较常用的维度情感模型和离散情感模型外,一些心理学家还提出了其他基于不同思想的情感模型,如基于认知的情感模型、基于情感能量的概率情感模型、基于事件相关的情感模型等,从不同的角度分析和描述人类的情感,使情感的数学描述更加丰富。 4.1、OCC情感模型 该模型是针对情感研究而提出的最完整的情感模型之一,它将22种基本情感根据其起因分为三类:事件的结果、仿生代理的动作和对于对象的观感,并对这三类定义了情感的层次关系,可以描述特定情感的产生条件和后续发展。OCC模型给出了各类情感产生的认知评价方式。同时,该模型根据假设的正负极性和个人对刺激事件反应是否高兴、满意和喜欢的评价倾向构成情感反应。 在模型中,最常产生的是恐惧、愤怒、高兴和悲伤这4种情绪。尽管OCC模型传递函数并不是很明确,但从广义上看,其具有较强的可推理性,易于计算机实现,因此被广泛应用于人机交互系统中。 4.2、隐马尔可夫模型情感模型 该模型有三种情感状态,分别是感兴趣、高兴、悲伤,并且可根据需要扩展到多种情感状态。在模型中,情感状态是通过观测到如情绪响应上升时间、峰值间隔的频率变化范围等情感特征得到的,并通过转移概率来描述情感状态之间的相互转移,从而输出一种最可能的情感状态。 该模型适合表现由不同情感组成的混合情感,如忧伤可以由爱和悲伤组成。另外,还适合表现由若干单一的情感状态基于时间的不断交替出现而成的混合情感,如爱恨交织的情感状态就可能是爱恨两种之间循环。该模型的不足之处在于,对于相同的刺激,其感知结果是确定的。 4.3、分布式情感模型 该模型是针对外界刺激建立起来的一种分布式情感模型,整个分布式系统是将特定的外界情感事件转换成与之相对应的情感状态,过程分为以下两个阶段: 1、由事件评估器评价事件的情感意义,针对每一类相关事件,分别定义一个事件评估器,当事件发生时,先确定事件的类型和信息,然后选择相关事件评估器进行情感评估,并产生量化结果情感脉冲向量EIV。 2、对EIV归一化得到NEIV,通过情感状态估计器ESC计算出新的情感状态。事件评估器、EIV、NEIV及ESC均采用神经网络实现。 附:学习书目 《情感计算与情感机器人系统》吴敏 刘振焘 陈略峰

人工智能技术应用:情感分析概述

与其他的人工智能技术相比,情感分析(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或者-0.5可能更合适。 基于这种情况,我们可以对否定词也添加上程度的赋值而不是简单的取相反数,对于表达强烈否定的词例如“不那么”赋值为±4,当遇到与褒义词的组合时褒义词则取负数,与贬义词的组合则取正数,例如贬义词“难听”的赋值是-3,加上否定词变成“不那么难听”的情感得分就会是(-3+4=1)。 第三种需要注意的情况是条件词,如果一个条件词出现在句子中,则这个句子很可能不适合用来做情感分析,例如“如果我明天可以去旅行,那么我一定会非常开心。”,在这句话中有明显的褒义情感词,但是因为存在条件词“如果”,使得这个句子的并没有表达观点持有者的真实情感,而是一种假设。 除了条件句之外,还有一种语言表达也是需要在数据预处理阶段进行排除的,那就是疑问句。例如“这个餐厅真的有你说的那么好吗?”,虽然句子中出现了很强烈的褒义情感词“那么好”,但依然不能将它分类为褒义句。疑问句通常会有固定的结尾词,例如“……吗?”或者“……么?”,但是也有的疑问句会省略掉结尾词,直接使用标点符号“?”,例如“你今天是不是不开心?”,这个句子中含有否定词和褒义词组成的“不开心”,但不能将其分类为贬义情感。 最后一种需要注意的情况是转折词,典型词是“但是”,出现在转折词之前的情感倾向通常与转折词之后的情感倾向相反,例如:“我上次在这家酒店的住宿体验非常好,但是这次却让我很失望。”在这个转折句中,转折词之前的“非常好”是一个很强的褒义词,但真实的情感表达却是转折词之后的“很失望”,最终应该将其分类为贬义情感。当然,也存在出现了转折词,但语句本身的情感并没有发生改变的情况,例如“你这次考试比上次有了很大的进步,但是我觉得你可以做得更好”,这里的转折词没有转折含义,而是一种递进含义。在实际操作中,我们所以需要先判断转折句真实的情感表达到底是哪个,才能进行正确的分析计算。 构建情感词典是一件比较耗费人工的事情,除了上述需要注意的问题外,还存在精准度不高,新词和网络用语难以快速收录进词典等问题。同时基于词典的分析方法也存在很多的局限性,例如一个句子可能出现了情感词,但并没有表达情感。或者一个句子不含任何情感词,但却蕴含了说话人的情感。以及部分情感词的含义会随着上下文语境的变化而变化的问题,例如“精明”这个词可以作为褒义词夸奖他人,也可以作为贬义词批评他人。 尽管目前存在诸多问题,但基于字典的情感分析方法也有着不可取代的优势,那就是这种分析方法通用性较强,大多数情况下无需特别的领域数据标注就可以分析文本所表达的情感,对于通用领域的情感分析可以将其作为首选的方案。 我们在机器学习算法的章节介绍过很多分类算法,例如逻辑回归、朴素贝叶斯、KNN等,这些算法都可以用于情感识别。具体的做法与机器学习一样需要分为两个步骤,第一步是根据训练数据构建算法模型,第二步是将测试数据输入到算法模型中输出对应的结果,接下来做具体的讲解。 首先,我们需要准备一些训练用的文本数据,并人工给这些数据做好情感分类的标注,通常的做法下,如果是褒义和贬义的两分类,则褒义标注为1,贬义标注为0,如果是褒义、贬义和中性三分类,则褒义标注为1,中性标注为0,贬义标注为-1. 在这一环节中如果用纯人工方法来进行标注,可能会因为个人主观因素对标注的结果造成一定影响,为了避免人的因素带来的影响,也为了提高标注的效率,有一些其他取巧的方法来对数据进行自动标注。比如在电商领域中,商品的评论除了文本数据之外通常还会带有一个5星的等级评分,我们可以根据用户的5星评分作为标注依据,如果是1-2星则标注为贬义,如果是3星标注为中性,4-5星标注为褒义。又比如在社区领域中,很多社区会对帖子有赞和踩的功能,这一数据也可以作为情感标注的参考依据。 第二步是将标注好情感倾向的文本进行分词,并进行数据的预处理,前文已经对分词有了很多的介绍,这里就不再过多的赘述。第三步是从分词的结果中标注出具备情感特征的词,这里特别说一下,如果是对情感进行分类,可以参考情感词典进行标注,也可以采用TF-IDF算法自动抽取出文档的特征词进行标注。如果分析的是某个特定领域的,还需要标注出特定领域的词,例如做商品评价的情感分析,需要标注出商品名称,品类名称,属性名称等。第四步根据分词统计词频构建词袋模型,形成特征词矩阵,如表所示。在这一步可以根据业务需要给每个特征词赋予权重,并通过词频乘以权重得到特征词分数。最后一步就是根据分类算法,将特征词矩阵作为输入数据,得到最终的分类模型。 当训练好分类模型之后,就可以对测试集进行分类了,具体的流程与建模流程类似,先对测试的文本数据进行分词并做数据预处理,然后根据特征词矩阵抽取测试文本的特征词构建词袋矩阵,并将词袋矩阵的词频数据作为输入数据代入之前训练好的模型进行分类,得到分类的结果。 采用基于机器学习的方法进行情感分析有以下几个不足之处,第一是每一个应用领域之间的语言描述差异导致了训练得到的分类模型不能应用与其他的领域,需要单独构建。第二是最终的分类效果取决于训练文本的选择以及正确的情感标注,而人对于情感的理解带有主观性,如果标注出现偏差就会对最终的结果产生影响。 除了基于词典和基于机器学习的方法,也有一些学者将两者结合起来使用,弥补两种方法的缺点,比单独采用一种方法的分类效果要更好,另外,也有学者尝试使用基于LSTM等深度学习的方法对情感进行分析,相信在未来,情感分析会应用在更多的产品中,帮助我们更好的理解用户需求,提升用户使用智能产品的体验。 随着深度神经网络等算法的应用,情感分析的研究方向已经有了非常大的进展,但依然存在着一些难题是目前尚未解决的,在实操过程中需特别注意以下几种类型数据: 情绪轮在用户体验设计上被广泛的应用,很多情感化设计都是基于情绪轮进行的。但是在人工智能领域,将情绪进行多分类比情感分析的三分类任务要难得多,目前大多数分类方法的结果准确性都不到50%。这是因为情绪本身包含了太多的类别,而且不同的类别之间又可能具有相似性,一个情绪词在不同的语境下有可能表达的是不同的情绪类别,算法很难对其进行分类。即使是人工对文本进行情绪类别标注也往往效果不佳,因为情绪是非常主观性的,不同的人对不同的文本可能产生不同的理解,这使得人工标注情绪类比的过程异常困难。如何让机器可以理解真实的情绪目前还是一个未能攻克的难题。

情感计算的“情感计算”的相关研究

目前人工智能的研究发展已经达到了较高的水平,同时它的研究内容也在逐步扩展和延伸。对人的情感和认知的研究是人工智能的高级阶段,它的研究将会大大促进拟人控制理论、情感机器人、人性化的商品设计和市场开发等方面的进展,为最终营造一个人与人、人与机器和谐的社会环境做出贡献。心理学家认为,人工智能下一个重大突破性的发展可能来自与其说赋予机器更多的逻辑智能,倒不如说赋予计算机更多的情感智能。对人的情感和认知的研究是在人工智能理论框架下的一个质的进步。因为从广度上讲它扩展并包容了感情智能,从深度上讲感情智能在人类智能思维与反应中体现了一种更高层次的智能。对人的情感和认知的研究必将为计算机的未来应用展现一种全新的方向。在这个领域的研究中主要包括情感计算(Affective Computing)、人工心理(Artificail Psychology)和感性工学(Kansei Engineering)等。人工心理理论是由中国北京科技大学教授、中国人工智能学会人工心理与人工情感专业委员会主任王志良教授提出的。他指出,人工心理就是利用信息科学的手段,对人的心理活动(着重是人的情感、意志、性格、创造)的更全面再一次人工机器(计算机、模型算法等)模拟,其目的在于从心理学广义层次上研究人工情感、情绪与认知、动机与情绪的人工机器实现的问题。日本从上世纪九十年代就开始了感性工学(Kansei Engineering)的研究。所谓感性工学就是将感性与工程结合起来的技术,是在感性科学的基础上,通过分析人类的感性,把人的感性需要加入到商品设计、制造中去,它是一门从工程学的角度实现能给人类带来喜悦和满足的商品制造的技术科学[4]。日本已经形成举国研究感性工学的高潮。欧盟国家也在积极地对情感信息处理技术(表情识别、情感信息测量、可穿戴计算等)进行研究。欧洲许多大学成立了情感与智能关系的研究小组。其中比较著名的有:日内瓦大学 Klaus Soberer领导的情绪研究实验室。布鲁塞尔自由大学的D. Canamero领导的情绪机器人研究小组以及英国伯明翰大学的A. Sloman领导的 Cognition and Affect Project。在市场应用方面,德国Mehrdad Jaladi-Soli等人在2001年提出了基于EMBASSI系统的多模型购物助手。EMBASSI是由德国教育及研究部(BMBF)资助并由20多个大学和公司共同参与的,以考虑消费者心理和环境需求为研究目标的网络型电子商务系统。我国对人工情感和认知的理论和技术的研究始于20世纪90年代,大部分研究工作是针对人工情感单元理论与技术的实现。哈尔滨工业大学研究多功能感知机,主要包括表情识别、人脸识别、人脸检测与跟踪、手语识别、手语会成、表情合成、唇读等内容,并与海尔公司合作研究服务机器人。清华大学进行了基于人工情感的机器人控制体系结构的研究。北京交通大学进行多功能感知机和情感计算的融合研究。中国科学院自动比研究所主要研究基于生物特征的身份验证。当前国际人工智能领域对人工情感合认知领域的研究日趋活跃。美国人工智能协会(AAAI)在1998,1999和2004年连续组织召开专业的学术会议对人工情感和认知进行研讨,国内的研究者也开展了许多的研究工作和学术活动。2003年12月在北京召开了第一届中国情感计算及智能交互学术大会。2005年10月在北京召开的第一届情感计算和智能交互国际学术会议,集合了世界一流的情感计算、人工情绪和人工心理研究的著名专家学者。这说明我国的人工情感和人工心理的研究在逐步展开并向国际水平看齐。对情感计算的研究大致可以分为情感识别、情感建模和情感反应三大部分,这其中情感识别无疑是最基础,也是最重要的部分。综上所述,对人的情感和认知的研究,包括对情感识别的研究,无论在理论上还是实践中都已经受到了研究者广泛的关注,对这一问题的研究具有重要的理论和应用价值。对这一问题的研究将最终推动人工智能的进一步发展,实现人机和谐的目标。

情感分析器的研究方法

监督学习目前,基于监督学习的情感分析仍然是主流,除了(Li et al.,2009)基于非负矩阵三分解(Non-negative Matrix Tri-factorization),(Abbasi et al.,2008)基于遗传算法(Genetic Algorithm)的情感分析之外,使用的最多的监督学习算法是朴素贝叶斯,k最近邻(k-Nearest Neighbor,k-NN),最大熵和支持向量机的。而对于算法的改进主要在对文本的预处理阶段。基于规则/无监督学习和基于监督学习的情感分析相比,基于规则和无监督学习方面的研究不是很多。除了(Turney,2002)之外,(朱嫣岚 et al.,2002)利用HowNet对中文词语语义的进行了情感倾向计算。(娄德成 et al.,2006)利用句法结构和依存关系对中文句子语义进行了情感分析,(Hiroshi et al.,2004)通过改造一个基于规则的机器翻译器实现日文短语级情感分析,(Zagibalov et al.,2008)在(Turney,2002)的SO-PMI算法的基础上通过对于中文文本特征的深入分析以及引入迭代机制从而在很大程度上提高了无监督学习情感分析的准确率。跨领域情感分析跨领域情感分析在情感分析中是一个新兴的领域,目前在这方面的研究不是很多,主要原因是目前的研究还没有很好的解决如何寻找两个领域之间的一种映射关系,或者说如何寻找两个领域之间特征权值之间的平衡关系。对于跨领域情感分析的研究开始于(Blitzer et al.,2007)将结构对应学习(Structural Correspondence Learning,SCL)引入跨领域情感分析,SCL是一种应用范围很广的跨领域文本分析算法,SCL的目的是将训练集上的特征尽量对应到测试集中。(Tan et al.,2009)将SCL引入了中文跨领域情感分析中。(Tan2 et al.,2009)提出将朴素贝叶斯和EM算法的一种半监督学习方法应用到了跨领域的情感分析中。(Wu et al.,2009)将基于EM的思想将图排序(Graph Ranking)算法应用到跨领域的情感分析中,图排序算法可以认为是一种迭代的k-NN

返回顶部