情感分析之TF-IDF算法

情感分析之TF-IDF算法,第1张

http://minieastdaycom/bdmip/180414224336264html

在这篇文章中,主要介绍的内容有:

1、将单词转换为特征向量

2、TF-IDF计算单词关联度

文本的预处理和分词。

如何将单词等分类数据转成为数值格式,以方便我们后面使用机器学习来训练模型。

一、将单词转换为特征向量

词袋模型(bag-of-words model):将文本以数值特征向量的形式来表示。主要通过两个步骤来实现词袋模型:

1、为整个文档集(包含了许多的文档)上的每个单词创建一个唯一的标记。

2、为每个文档构建一个特征向量,主要包含每个单词在文档上的出现次数。

注意:由于每个文档中出现的单词数量只是整个文档集中很少的一部分,因此会有很多的单词没有出现过,就会被标记为0。所以,特征向量中大多数的元素就会为0,就会产生稀疏矩阵。

下面通过sklearn的CountVectorizer来实现一个词袋模型,将文档转换成为特征向量

通过countvocabulary_我们可以看出每个单词所对应的索引位置,每一个句子都是由一个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,129,129,0,1,0]

e、tf-idf的L2归一化

关于情感分析文本相似性和语句推断等都属于常见中文分词应用中的语句关系判断回答如下:

情感分析,文本相似性和语句推断等都属于常见中文分词应用中的语句关系判断如下情感分析、文本相似性和语句推断都是中文自然语言处理中的常见任务,需要进行语句关系判断。

其中,分词是中文自然语言处理中的基础步骤,可以将句子切分成有意义的词语,为后续任务提供基础。

在情感分析任务中,需要对文本的情感进行分类,通常采用机器学习算法,对文本进行特征提取和分类。文本相似性任务是指比较两个文本之间的相似度,通常采用词向量模型进行特征提取和相似度计算。

语句推断任务是指给定前提和假设,判断假设是否可以从前提中推出,通常需要进行逻辑推理和语义理解。这些任务都需要进行语句关系判断,对中文自然语言处理具有重要意义。

资料扩展:

情感分析是指通过文本来挖掘人们对于产品、服务、组织、个人、事件等的观点、情感倾向、态度等。情感分析是随着互联网发展而产生的,早期主要用于对网上销售商品的用户评语的分析,

以便判断用户对其所购商品是“喜欢”还是“不喜欢”。后期随着自媒体的流行,情感分析技术更多地用于识别话题发起者、参与者的情感趋向,

从中判断或挖掘话题中的价值,由此来分析相关舆情。情感分析的应用十分广泛,其研究领域涉及自然语言处理、信息检索、机器学习、人工智能等。

领域依赖是指文本情感分析的模型对某一领域的文本数据非常有效,但是将其应用于其他领域的时候,会使得分类模型的性能严重下降。

怎样通过句法分析分析句子情感算法例子?现阶段主要的情感分析方法主要有两类:

基于词典的方法

基于机器学习的方法

基于词典的方法主要通过制定一系列的情感词典和规则,对文本进行段落拆借、句法分析,计算情感值,最后通过情感值来作为文本的情感倾向依据。

基于机器学习的方法大多将这个问题转化为一个分类问题来看待,对于情感极性的判断,将目标情感分类2类:正、负。对训练文本进行人工标标注,然后进行有监督的机器学习过程。例如想在较为常见的基于大规模语料库的机器学习等。

豆瓣网文本评论的情感分析论文多。因为豆瓣网是一个内容丰富的文化社区,用户在这里可以发表对**、书籍、音乐等内容的评论和评分,这些评论数据对情感分析研究来说是非常有价值的。在学术界和工业界,已经有很多研究者和公司使用豆瓣网的评论数据进行情感分析研究和应用开发。这些研究涵盖了各种情感分析算法和技术,如基于词典的情感分析、基于机器学习的情感分析、基于深度学习的情感分析等。同时,也有很多论文对豆瓣网评论数据进行了情感分析,这些论文主要关注情感分析算法的优化和应用场景的拓展。

《语文课程标准》关于阅读目标要求:欣赏文学作品,要有自己的情感体验,初步领悟作品内涵,从中获得对自然、社会、人生的有益启示。对作品的思想感情倾向,能联系文化背景做出自己的评价;对作品中感人的情境和形象,能说出自己的体验;品味作品中富于表现力的语言。要注重培养学生具有感受、理解、欣赏和评价的能力。那么,如何在七年级语文课堂上培养学生阅读和欣赏散文的能力?如何挖掘文本的教育教学价值呢?下面我就以人教版七年级《蝉》一文的教学为例,从以下几个方面谈谈自己在课堂上是如何利用文本,通过问题的设置,培养学生能力,挖掘文本的教育教学价值的。

一、尊重文本内涵,从文本出发,以问题的形式引导学生疏通文意,在把握文本基本内容的基础上,做最初层次的理解分析。

首先我用《钢铁是怎样炼成的》这部名著中的有关生命的意义的文段:人最宝贵的东西是生命生命对人来说只有一次因此,人的一生应当这样度过:当一个人回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧;这样,在他临死的时候,能够说,我把整个生命和全部精力都献给了人生最宝贵的事业——为人类的解放而奋斗作为课堂导入语,入题后,指导学生朗读并初步感知文意。思考:1、作者都写了蝉的哪些特点,从这些叙述中你能否读出作者对蝉的感情是怎样的?2、文章中有没有你觉得用语法现象无法解释的句子(或你认为的病句),如果有,请找出来共同分析。3、从这篇文章中,你明白了哪些道理?4、你认为作者写这篇文章仅仅只是在写蝉吗?如果不是,那还写了什么内容?在通过这些问题梳理之后,学生对于文章中的内容以及修辞都有了较好的理解,对文章的内涵也有了初步的感知。

二、重视文本情感挖掘,以情感带动学生思维。

有人说:“诗歌赏析时,诗中得有一个‘我’在”。我认为,在散文的阅读赏析中也应有一个“我”在。赏析散文不仅要赏析文章的语言,更重要的是在阅读中要有自我的情感体验,要有对社会、多人生的领悟。这就要求我们,在赏析文本时,要重视情感的分析和理解。《蝉》是一篇小散文,全文通过对蝉的生命过程的描述,重点要让学生从中感悟、认识生命的意义以及如何对待生命等问题。本节课的教学对象是七年级学生,他们的分析理解领悟能力还不够成熟。因此,在本文的教学中,我更侧重于让学生将情感融于全文,用自己的情感去揣度作者的情感。在这一环节中,我设计了最直白、浅显的问题:文章前后内容中,作者对蝉的感情态度一致吗?如果不一致,有什么变化?这一变化产生的原因是什么?这些问题的答案学生从课文中就能找到,一方面通过这些问题的解读,可以帮助学生更好地把握文章的情感和对人生的感悟,同时也帮助学生理解和掌握了“欲扬先抑”的写作手法,轻松完成了本文中有关表现手法的教学目标。

三、重视拓展延伸和课堂评价

课堂拓展、延伸的主要内容可以是相似的文本的相互解读,也可以是学生学完全文后的感悟,还可以让学生模仿文本内容和形式去搞一些小创作用于课堂交流。在本节课中,我设计了这样的拓展延伸任务:从蝉的身上,你得到了什么启示?试运用抑扬结合的手法,写一个动物、植物或人。

拓展延伸任务的完成是和学生的讨论交流分不开的, 在任务结果的展示过程中,学生对结果的讨论必不可少,此环节应是教学任务得以落实的过程。因此,整个交流讨论的环节中,教师要尽量尊重学生的个人体验,在保护学生积极性的同时,要作出正确的引导,要有明确的评价态度,不能一味肯定或含糊其辞,结果让学生满头雾水。讨论过程中出现的错误结果,教师评价时切忌不可打击学生课堂交流的积极性,可以把它当做讨论的话题,在课堂中继续交流进行进一步讨论,给学生留下充分的说话的机会,答错的同学可以说出自己理解的理由,其他同学参与其中交流答案的可存在性,不必太在意课程进度的问题,要真正做到让学生掌握正确的知识。课堂上运用的这些形式和方法,可以充分调动学生的阅读兴趣,因为问题的设计紧扣文本内容,学生只要认真阅读文本,就能比较轻松的找出答案,所以,学生的积极性会因回答问题产生的成就感而被调动,他们的阅读自信也就会因之建立 。

总之,文本的教育教学价值,不仅要有学生个人的感悟,更要有教师合适的引导。散文文本教育教学价值在课堂中能否得以体现,教师的正确有效的引导是至关重要的。

在情感分析、词云分析、词频分析和聚类分析中,可以通过文本分析技术实现的是:

1 情感分析:通过对文本进行情感分类,判断其中表达的情绪或情感倾向,如正面、负面或中性情感。

2 词云分析:通过对文本中词语的频率进行统计和可视化,生成词云图,以展示文本中重要或常见的关键词。

3 词频分析:通过计算文本中不同词语的出现频率,确定其在文本中的重要性或热度,并展示出现频率较高的词语。

4 聚类分析:通过将文本按照其相似性进行分组或聚类,将具有相似主题、内容或特征的文本归为一类,以揭示文本数据的结构和相关性。

这些技术都是通过对文本进行分析和处理,提取出文本的特征或信息,并进行进一步的处理和可视化,以帮助理解文本的含义、趋势或关联性。

  我是一款自然语言处理助手,可以帮助您自动化文本处理和生成。我的主要功能包括文本分类、关键词提取、文本摘要、自动翻译、情感分析等。通过我的帮助,您可以更加高效地处理文本数据,快速地提取出关键信息,准确地分析文本情感,以及更加方便地进行多语言翻译。

  在文本分类方面,我可以根据文本内容自动判断其所属的类别,比如新闻、评论、广告等,从而更好地进行后续处理和分析。在关键词提取方面,我可以自动识别文本中的核心词汇,帮助您快速了解文本的主要内容和关注点。在文本摘要方面,我可以自动从长篇文本中提取出关键信息,生成简明扼要的摘要内容,方便您快速阅读和理解。在自动翻译方面,我可以帮助您实现多语言之间的自动翻译,支持多种语言的互译操作。在情感分析方面,我可以自动识别文本中的情感倾向,比如正面、负面、中性等,帮助您更好地了解用户的情感需求和倾向。

  除此之外,我还支持自定义功能开发,可以根据您的具体需求和场景,定制专属的文本处理和生成功能,帮助您更好地应对实际问题和挑战。无论是在文本处理、数据分析、信息提取还是多语言翻译等方面,我都能够为您提供高效、准确、可靠的帮助,让您的工作更加轻松、愉快和成功。

  总之,我是一款功能强大、易于使用的自然语言处理助手,可以帮助您更好地处理和分析文本数据,实现多语言之间的自动翻译,提高工作效率和质量,让您的工作更加便捷、高效和成功。如果您需要进行文本处理和生成方面的工作,欢迎随时使用我的服务,我一定会竭尽全力为您提供最好的帮助和支持!

与其他的人工智能技术相比,情感分析(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%。这是因为情绪本身包含了太多的类别,而且不同的类别之间又可能具有相似性,一个情绪词在不同的语境下有可能表达的是不同的情绪类别,算法很难对其进行分类。即使是人工对文本进行情绪类别标注也往往效果不佳,因为情绪是非常主观性的,不同的人对不同的文本可能产生不同的理解,这使得人工标注情绪类比的过程异常困难。如何让机器可以理解真实的情绪目前还是一个未能攻克的难题。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/916845.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-11
下一篇2023-07-11

发表评论

登录后才能评论

评论列表(0条)

    保存