情感分析是从书面或口头语言中,对特定主题,理解观点的自动过程。
在世界上,我们每天生成2.5QB字节的数据,情感分析已成为理解这些数据的关键工具。 这使得公司能够获得关键的见解,并自动化各种流程。
但是,它是如何实现的呢?
有哪些不同的方法? 它需要注意什么,限制是什么? 你如何在业务中使用情感分析?
接下来,您将找到这些问题的答案,以及您需要了解的,关于情感分析的所有内容。 无论你是经验丰富的数据科学家,开发人员,营销人员,产品分析师,还是刚刚开始进行文本分析,这份指南都适合你。
情感分析也称为意见挖掘( Opinion Mining),是自然语言处理(NLP)的一个领域,它构建的系统,用于在文本中识别和提取观点。 通常,除了识别观点之外,这些系统还提取描述的特征,例如:
在进一步详细说明之前,让我们首先给出"观点"的定义。 文本信息可以大致分为两种主要类型:事实和意见。 事实是关于某事的客观表达。 意见通常是主观表达,描述人们对主题的情绪,评价和感受。
正如许多其他NLP问题一样,情感分析可以建模为分类问题,其中必须解决两个子问题:
观点分为两类:直接性的和比较性的。
直接性观点:直接对实体提出意见,例如:“相机A的画质很差。”这个直接意见陈述了对相机A的负面看法。
比较性的意见:通过比较实体与另一实体来表达意见,例如:“相机A的图像质量优于相机B的图像质量。”
通常,比较性观点使用,形容词或副词的比较级或最高级形式表达两个或更多个实体之间的相似性或差异。 在前面的例子中,对于摄像机A有一个积极的看法,相反,对摄像机B有一个负面看法。
关于主题的明确观点,是在主观句子中明确表达的意见。 以下句子表达了明确的积极观点:“这款手机的音质令人惊叹。”
对某一主题的含蓄的观点,是客观句中隐含的意见。 以下句子表达了一种隐含的否定意见:“耳机在两天内坏了。”
在隐含的意见中,我们可以包括隐喻,这些隐喻可能是最难分析的观点类型,因为它们包含大量的语义信息
情感分析可以用于不同级别的范围:
情感分析有多种类型和风格,情感分析工具的范围从专注于极性(正面,负面,中立)的系统到检测情感和情绪(愤怒,快乐,悲伤等)或识别意图的系统(例如感兴趣和没兴趣)。 在下一节中,我们将重点介绍。
有时您可能想,更加准确地了解意见的极性水平,因此你可以考虑,以下类别而不仅仅是谈论积极,中立或消极的意见:
这通常被称为细粒度情感分析。 例如,这可以在评论中映射到5星评级,例如:非常正= 5星和非常负= 1星。
一些系统还通过识别积极或消极情感是否与特定感觉相关联,来提供不同的极性风格,例如愤怒,悲伤或忧虑(即负面情绪)或快乐,爱情或热情(即积极情绪)。
情绪检测旨在检测诸如快乐,沮丧,愤怒,悲伤等情绪。 许多情绪检测系统采用词典(即单词列表和它们传达的情感)或复杂的机器学习算法。
诉诸词典的一个缺点是,人们表达情感的方式变化很大,他们使用的词汇项目也是如此。 一些词,像shit和kill,通常表达愤怒(eg.在你的产品中是狗屎,或者你的客户支持正在杀死我),也可能表达快乐。
通常,在分析目标(例如产品)的情感时,您可能不仅对人们是否正在谈论产品的极性(积极,中立或负面)感兴趣,而且对人们谈论的产品的哪些特定方面或特征感兴趣。 这就是基于方面的情感分析。 在我们前面的例子中:“这款相机的电池续航时间太短。”这句话表达了对相机的负面看法,但更准确地说,关于电池寿命,这是相机的一个特殊功能。
意图分析基本上是为了检测人们通过文本做什么,而不仅仅是人们通过文本说了什么。 请看以下示例:
“你的客户支持是一场灾难。 我已被搁置20分钟“。
“我想知道如何更换墨盒”。
“你能帮我填一下这张表吗?”
人们很容易在第一个文本中感觉出抱怨,第二个文本中的问题和第三个文本中的请求。 但是,机器可能会遇到一些问题。 有时,可以从文本中推断出意图,但有时,推断它需要一些上下文知识。
多语言情感分析是一项艰巨的任务。 通常,需要进行大量预处理,并且预处理会使用大量资源。 大多数这些资源可在线获得(例如情感词典),但必须创建许多其他资源(例如翻译的语料库或噪声检测算法)。 使用这些资源需要一定的编程能力,并且可能需要很长时间才能实现。
另一种方法是自动检测文本中的语言,然后为您选择的语言训练自定义模型(如果文本不是用英语编写的),最后进行分析。
据估计,世界上80%的数据都是非结构化的,没有以预先定义的方式组织。 其中大部分来自文本数据,如电子邮件,票据,聊天,社交媒体,调查,文章和文档。 这些文本通常难以分析,理解和分类,既费时又费钱。
情感分析系统能够让公司,通过自动化业务流程,获得可操作的洞察力,以及节省数小时的手动数据处理来理解这种非结构化文本,也就是说,通过提高团队效率。
情感分析的优点如下所示:
可扩展性:
您能想象通过成千上万的推文,用户对话或用户评论手动排序吗? 手动处理的话,数据太多了。 情感分析允许以有效且低成本的方式大规模处理数据。
实时分析:
我们可以使用情感分析来识别关键信息,以便在特定情景中实时提供态势感知。 社交媒体即将爆发公关危机吗? 一个愤怒的客户即将流失? 情感分析系统可以帮助您立即识别这些情况并采取行动。
一致的标准:
人类没有观察到评估一段文字情感的清晰标准。 据估计,在判断特定文本的情感时,不同的人仅仅在60-65%的情况下同意。 这是一项主观任务,深受个人经历,思想和信仰的影响。 通过使用集中情感分析系统,公司可以对所有数据应用相同的标准。 这有助于减少错误并提高数据一致性。
查看“应用案例”部分,查看针对各种事物使用情感分析的公司和组织的示例。
实现情感分析系统的方法和算法有很多种,可分为:
通常,基于规则的方法,通过脚本定义了一组规则,用于识别主观性,极性或意见主体。
规则可以使用各种输入,例如:
基于规则的实现的基本示例如下:
这个系统非常简单,因为它没有考虑单词如何在一个序列中组合。 可以进行更高级的处理,但这些系统很快就会变得非常复杂。 它们可能非常难以维护,因为可能需要新的规则来支持对新表达式和词汇表。 此外,由于与先前规则的混合,添加新规则可能会产生不好的结果。 因此,这些系统需要在手动调整和维护规则方面占用很多精力。
与基于规则的系统相反,自动的方法不依赖于手工制作的规则,而是依赖于机器学习。 情感分析任务通常被建模为分类问题,文本喂给分类器,然后返回相应的类别,例如, 正,负或中性(如果正在进行极性分析)。
在训练过程(a)中,我们的模型学习基于训练样本,将特定输入(即文本)与相应的输出(标签)相关联。 特征提取器将文本输入传输到特征向量中。 将成对的特征向量和标签(例如,正,负或中性)喂给到机器学习算法中以生成模型。
在预测过程(b)中,特征提取器用于将未见过的的文本输入,变换为特征向量。 然后将这些特征向量喂给模型,该模型生成预测标签(正,负或中性)。
机器学习文本分类器的第一步是将文本转换为数字表示,通常是向量。 通常,向量的每个分量表示预定义字典中的单词或表达的频率(例如,极性词的词典)。 这个过程被称为特征提取或文本向量化,并且经典方法一直是bag-of-words或带有频率的bag-of-ngrams。
最近,基于词嵌入(也称为词向量)应用了新的特征提取技术。 这种表示使得具有相似含义的词可以具有相似的表示,这可以改善分类器的性能。
分类算法通常涉及统计模型,如NaïveBayes,Logistic回归,支持向量机或神经网络:
你可以通过多种指标评估分类器的性能,并了解情感分析模型的准确程度。 最常用的一种称为交叉验证。
交叉验证的作用是将训练数据分成一定数量的训练数据(75%的训练数据)和测试测试数据(25%的训练数据),训练数据来训练分类器,根据测试数据对其进行测试以获得性能指标(见下文)。 该过程重复多次,并计算每个度量的平均值。
如果测试集总是相同的,那么可能会过度拟合该测试集,这意味着可能会将分析调整到给定的数据集,以至于可能无法分析不同的集。 交叉验证有助于防止这种情况。 您拥有的数据越多,您可以使用的折越多。
精确度,召回率和准确度(Precision, Recall, and Accuracy)
精确度,召回率和准确度是用于评估分类器性能的标准度量。
最常见的是,精确度和召回率用于衡量性能,因为仅仅准确性并不能说明分类器的好坏。
对于像分析情感这样的困难任务,精度和召回水平一开始可能很低。在为分类器提供更多数据时,性能会提高。但是,正如我们将在下面看到的那样,由于带注释的数据可能不准确,因此精度水平可能不会太高。但是,如果您为分类器提供一致标记的数据,那么结果将与任何其他分类问题的结果一样好。
注释之间的协议:
当涉及到注释之间的协议(即人类对给定注释任务的协议)时,最常用的指标之一是Krippendorff的Alpha。根据Saif等人的研究,Twitter情绪分析的最佳注释间协议达到了Krippendorff的Alpha的0.655值。这意味着有很多协议(因为alpha大于零),但我们认为它仍然远远不够(例如:大约0.8,这是社会科学家用来说数据可靠的最低可靠性阈值,见这里)。这就是说,从上面引用的论文中描述的注释任务的结果中只能得出推文情感的初步结论。
总而言之,这个0.655也是人类情感分析检测难度的指标。考虑到机器从它们所喂养的数据中学习,自动预测可能反映了数据中嵌入的人为分歧。
混合方法的概念非常直观:只需结合两个方面的优点,即基于规则的方法和自动方法。 通常,通过组合两种方法,该方法可以提高准确度和精度。
近年来情感分析的大部分工作都是开发更准确的分类算法,不断解决该领域的一些主要挑战和局限来。
主观和客观文本的检测与分析其语气一样重要。 事实上,所谓的客观文本不包含明确的情绪。 比如说,您打算分析以下两个文本的情绪:“包很好。”“包裹是红色的。”
大多数人会说第一个情绪是积极的,第二个情绪是中性的,对吧? 所有谓词(形容词,动词和某些名词)在创造情绪方面不应该被视为相同。 在上面的例子中,nice比red更主观。
所有的话语都会在某个时间点发出,在某些地方,对某些人说。所有的话语都是在上下文中说出来的。分析没有上下文的情感非常困难。但是,如果未明确提及,机器无法了解上下文。上下文产生的问题之一是极性的变化。请查看以下对调查的回复:“它的一切。”“绝对没有!”
想象一下上面的回应,来自某个问题,“你对这次活动有什么看法?”,的答案。第一个反应是积极的,第二个反应是否定的,对吗?现在,想象一下另一个问题,“你对这个事件不喜欢什么?”问题的否定将使情感分析完全改变。
如果我们要考虑产生文本的部分背景,就需要进行大量的预处理或后处理。但是,如何预处理或后处理数据以捕获有助于分析情感的上下文位并不简单。
字面意思和预期意义(即讽刺)之间的差异以及更具侮辱性或讽刺性的讽刺形式(即讽刺)通常会将积极情绪转变为消极情绪,而消极情绪或中性情绪可能会改为正面情绪。然而,检测讽刺或讽刺需要对文本产生的背景进行大量分析,因此很难自动检测。
例如,对于问题,“您是否有过良好的客户体验?”
“是啊,当然。”“不是一个,而是很多!”
上面的回答分别是什么情感?可能你已经多次听过第一个回复,你会说是消极的,对吗?问题是没有任何文字提示会使机器学习负面情绪,因为大多数情况下,“是的”,肯定属于正面或中性文本。
第二个回应在这种情况下,情绪是积极的,但存在提出许多不同的背景,其中相同的反应可以表达负面情绪。
如何处理情绪分析中的“比较”是另一个挑战。 看看下面的文字:
“这款产品首屈一指。”“这比旧工具更好。”“这总比没有好。”
有一些比较,如上面的第一个,不需要任何上下文线索,可以被正确分类。
不过,第二和第三个文本更难被分类。 你会把它们归类为中性还是积极的? 也许你更有可能为第二个选择正面而第三个选择中立,对吗? 上下文可以再次发挥作用。 例如,如果第二个文本所讨论的旧工具在上下文中被认为是无用的,那么第二个文本与第三个文本非常相似。 但是,如果没有提供上下文,这些文本会有所不同。
根据Guibon等人有两种类型的表情符号。西方表情符号(例如 ?)仅编码为一个字符或其中几个字符的组合而东方表情符号(例如¯\ (ツ) /¯) 是垂直性质的更长的组合。 特别是在推文中,表情符号在文本的情感中非常重要。
通过推文进行的情感分析需要特别注意字符级别和单词级别。 但是,这两种都可能需要进行大量的预处理。 例如,您可能希望预处理社交媒体内容并将西方和东方表情符号转换为tokens并将其列入白名单(即始终将其作为分类用途的特征),以帮助改善情绪分析性能。
这是一个非常全面的表情符号及其unicode字符列表,在预处理时可能会派上用场。
定义中性是另一个挑战,以便进行准确的情绪分析。与所有分类问题一样,定义类别 - 在本例中为中性标记 - 是问题中最重要的部分之一。当你训练情绪分析模型时,你的中立,正面或负面意味着什么。由于标记数据要求标记标准一致,因此必须对问题进行良好定义。
关于中性文本可能包含以下内容:
情感分析:即使对于人类来说,这也是一项非常艰巨的任务。也就是说,情感分析分类器可能不如其他类型的分类器那么精确。请记住,注释间协议非常低,机器从它们所提供的数据中学习(见上文)。
你可能会说,这值得努力吗?答案很简单:确实值得!有可能情感预测会不时出错,但通过使用情感,对文本进行分类,可以再70-80%的时间内正确对待。
如果您或您的公司之前没有使用过情绪分析,那么您会很快看到一些改进。对于典型的用例,例如票证路由,品牌监控和VoC分析(见下文),这意味着您将节省大量时间和金钱——现在可能投资于内部的手动处理——并提高你(或你公司的)生产力。
1.情感分析:几乎包括你需要知道的所有(一)
2.情感分析:几乎包括你需要知道的所有(二)
3.AI Challenger 细粒度用户评论情感分析 (baseline 0.62)