精华内容
下载资源
问答
  • 案例1:利用贝叶斯方法的多项式模型分析新闻数据 数据#1 !wget http://qwone.com/~jason/20Newsgroups/20news-bydate.tar.gz !ls !tar -xzf 20news-bydate.tar.gz !ls !ls 20news-bydate-test !ls 20news-bydate-...
  • !!!!!!不要急着代码,搞清楚原理知识结构才下手,以后还指着它吃饭呢,又不是水一篇论文当混子!... 情感分析是从书面或口头语言中,对特定主题,理解观点的自动过程。 在世界上,我们每天生成2.5QB字...

    !!!!!!不要急着代码,搞清楚原理知识结构才下手,以后还指着它吃饭呢,又不是水一篇论文当混子!!!!!!!

    !!!!!!书越读越薄,本文源自:https://blog.csdn.net/linxid/article/details/83478720!!!!!!!

            情感分析是从书面或口头语言中,对特定主题,理解观点的自动过程。
            在世界上,我们每天生成2.5QB字节的数据,情感分析已成为理解这些数据的关键工具。 这使得公司能够获得关键的见解,并自动化各种流程。

            但是,它是如何实现的呢?
            有哪些不同的方法? 它需要注意什么,限制是什么? 你如何在业务中使用情感分析?
            接下来,您将找到这些问题的答案,以及您需要了解的,关于情感分析的所有内容。 无论你是经验丰富的数据科学家,开发人员,营销人员,产品分析师,还是刚刚开始进行文本分析,这份指南都适合你。

    1.情感分析基础:

    1.1 什么是情感分析:

            情感分析也称为意见挖掘( Opinion Mining),是自然语言处理(NLP)的一个领域,它构建的系统,用于在文本中识别和提取观点。 通常,除了识别观点之外,这些系统还提取描述的特征,例如:

    • 极性:发言者表达积极或消极的意见;
    • 主题:正在谈论的事情;
    • 意见持有人:表达意见的个人或实体。

            目前,情感分析是一个很有兴趣的话题,因为它有许多实际应用。 由于互联网上公开可用的信息不断增长,在评论网站,论坛,博客和社交媒体中,可以获得大量表达意见的文本。
    在情感分析系统的帮助下,这种非结构化信息可以自动转换为,结构化数据,关于产品,服务,品牌,政治或人们可以表达意见的其他主题。 这些数据对于商业应用非常有用,例如营销分析,公共关系,产品评论,网络发起人评分,产品反馈和客户服务。

    1.2 什么是观点:

            在进一步详细说明之前,让我们首先给出"观点"的定义。 文本信息可以大致分为两种主要类型:事实和意见。 事实是关于某事的客观表达。 意见通常是主观表达,描述人们对主题的情绪,评价和感受。
            正如许多其他NLP问题一样,情感分析可以建模为分类问题,其中必须解决两个子问题:

    • 将句子分类为主观或客观,称为主观性分类。
    • 将句子分类为正面,负面或中立的观点,称为极性分类。

            在一种观点中,文本所讨论的,可以这个对象,它的一部分,一方面,属性或其特征。 它也可以是产品,服务,个人,组织,事件或主题。 举个例子,看下面的观点:

            “这款相机的电池续航时间太短。”:
            关于实体(相机)特征(电池寿命)的负面评价。

            直接性与比较性的观点:

            观点分为两类:直接性的和比较性的。

    •                 直接性观点:直接对实体提出意见,例如:“相机A的画质很差。”这个直接意见陈述了对相机A的负面看法。
    •                 比较性的意见:通过比较实体与另一实体来表达意见,例如:“相机A的图像质量优于相机B的图像质量。”

            通常,比较性观点使用,形容词或副词的比较级或最高级形式表达两个或更多个实体之间的相似性或差异。 在前面的例子中,对于摄像机A有一个积极的看法,相反,对摄像机B有一个负面看法。

            明确的和含蓄的观点:

                    关于主题的明确观点,是在主观句子中明确表达的意见。 以下句子表达了明确的积极观点:“这款手机的音质令人惊叹。”对某一主题的含蓄的观点,是客观句中隐含的意见。 以下句子表达了一种隐含的否定意见:“耳机在两天内坏了。”在隐含的意见中,我们可以包括隐喻,这些隐喻可能是最难分析的观点类型,因为它们包含大量的语义信息

    1.3 情感分析的范围:

            情感分析可以用于不同级别的范围:

    • 文本级别:通过完整文档或段落来获取情绪;
    • 句子级别:获得单句的情绪。
    • 子句级别:获得句子中,子表达的情感。

    1.4 情感分析的类型:

            情感分析有多种类型和风格,情感分析工具的范围从专注于极性(正面,负面,中立)的系统到检测情感和情绪(愤怒,快乐,悲伤等)或识别意图的系统(例如感兴趣和没兴趣)。 在下一节中,我们将重点介绍。

            细粒度情感分析:

                    有时您可能想,更加准确地了解意见的极性水平,因此你可以考虑,以下类别而不仅仅是谈论积极,中立或消极的意见:

    • 非常积极
    • 积极
    • 中性
    • 消极
    • 非常消极

            这通常被称为细粒度情感分析。 例如,这可以在评论中映射到5星评级,例如:非常正= 5星和非常负= 1星。

                    一些系统还通过识别积极或消极情感是否与特定感觉相关联,来提供不同的极性风格,例如愤怒,悲伤或忧虑(即负面情绪)或快乐,爱情或热情(即积极情绪)。

            情绪检测

                    情绪检测旨在检测诸如快乐,沮丧,愤怒,悲伤等情绪。 许多情绪检测系统采用词典(即单词列表和它们传达的情感)或复杂的机器学习算法。诉诸词典的一个缺点是,人们表达情感的方式变化很大,他们使用的词汇项目也是如此。 一些词,像shit和kill,通常表达愤怒(eg.在你的产品中是狗屎,或者你的客户支持正在杀死我),也可能表达快乐。

            基于方面的情感分析:

                    通常,在分析目标(例如产品)的情感时,您可能不仅对人们是否正在谈论产品的极性(积极,中立或负面)感兴趣,而且对人们谈论的产品的哪些特定方面或特征感兴趣。 这就是基于方面的情感分析。 在我们前面的例子中:“这款相机的电池续航时间太短。”这句话表达了对相机的负面看法,但更准确地说,关于电池寿命,这是相机的一个特殊功能。

            意图分析:

                    意图分析基本上是为了检测人们通过文本做什么,而不仅仅是人们通过文本说了什么。 请看以下示例:
                            “你的客户支持是一场灾难。 我已被搁置20分钟“。
                            “我想知道如何更换墨盒”。
                            “你能帮我填一下这张表吗?”
                    人们很容易在第一个文本中感觉出抱怨,第二个文本中的问题和第三个文本中的请求。 但是,机器可能会遇到一些问题。 有时,可以从文本中推断出意图,但有时,推断它需要一些上下文知识。

            多语言情感分析:

                    多语言情感分析是一项艰巨的任务。 通常,需要进行大量预处理,并且预处理会使用大量资源。 大多数这些资源可在线获得(例如情感词典),但必须创建许多其他资源(例如翻译的语料库或噪声检测算法)。 使用这些资源需要一定的编程能力,并且可能需要很长时间才能实现。

                    另一种方法是自动检测文本中的语言,然后为您选择的语言训练自定义模型(如果文本不是用英语编写的),最后进行分析。

    1.5 为什么情感分析如此重要?

            据估计,世界上80%的数据都是非结构化的,没有以预先定义的方式组织。 其中大部分来自文本数据,如电子邮件,票据,聊天,社交媒体,调查,文章和文档。 这些文本通常难以分析,理解和分类,既费时又费钱。

            情感分析系统能够让公司,通过自动化业务流程,获得可操作的洞察力,以及节省数小时的手动数据处理来理解这种非结构化文本,也就是说,通过提高团队效率。

            情感分析的优点如下所示:

    • 可扩展性:您能想象通过成千上万的推文,用户对话或用户评论手动排序吗? 手动处理的话,数据太多了。 情感分析允许以有效且低成本的方式大规模处理数据。
    • 实时分析:我们可以使用情感分析来识别关键信息,以便在特定情景中实时提供态势感知。 社交媒体即将爆发公关危机吗? 一个愤怒的客户即将流失? 情感分析系统可以帮助您立即识别这些情况并采取行动。
    • 一致的标准:人类没有观察到评估一段文字情感的清晰标准。 据估计,在判断特定文本的情感时,不同的人仅仅在60-65%的情况下同意。 这是一项主观任务,深受个人经历,思想和信仰的影响。 通过使用集中情感分析系统,公司可以对所有数据应用相同的标准。 这有助于减少错误并提高数据一致性。

            查看“应用案例”部分,查看针对各种事物使用情感分析的公司和组织的示例。

    2.如何实现情感分析

    2.1 算法:

            实现情感分析系统的方法和算法有很多种,可分为:

    • 基于规则:基于一组手动制定的规则执行情绪分析;
    • 自动系统:依靠机器学习技术从数据中学习的;
    • 混合系统:结合了基于规则和自动方法。

            基于规则:

                    通常,基于规则的方法,通过脚本定义了一组规则,用于识别主观性,极性或意见主体。

                    规则可以使用各种输入,例如:

    • 经典的NLP技术,如词干,符号,词性标注和解析。
    • 其他资源,例如词典(即单词和表达方式列表)。

            基于规则的实现的基本示例如下:

    1. 定义两个极化词列表(例如,差、最差、丑陋等负面词和好、最佳、美丽等正面词);
    2. 给出一个文本:
      计算文本中出现的积极词数。
      计算文本中出现的否定词数。
      如果正面出现的数量大于否定单词出现的数量则返回正面情绪,相反,返回负面情绪。 否则,返回中立。

            这个系统非常简单,因为它没有考虑单词如何在一个序列中组合。 可以进行更高级的处理,但这些系统很快就会变得非常复杂。 它们可能非常难以维护,因为可能需要新的规则来支持对新表达式和词汇表。 此外,由于与先前规则的混合,添加新规则可能会产生不好的结果。 因此,这些系统需要在手动调整和维护规则方面占用很多精力。

            自动系统:

            与基于规则的系统相反,自动的方法不依赖于手工制作的规则,而是依赖于机器学习。 情感分析任务通常被建模为分类问题,文本喂给分类器,然后返回相应的类别,例如, 正,负或中性(如果正在进行极性分析)。

    机器学习分类器通常可以通过以下步骤来实现:
    image.png

    训练和预测过程:

    在训练过程(a)中,我们的模型学习基于训练样本,将特定输入(即文本)与相应的输出(标签)相关联。 特征提取器将文本输入传输到特征向量中。 将成对的特征向量和标签(例如,正,负或中性)喂给到机器学习算法中以生成模型。

    在预测过程(b)中,特征提取器用于将未见过的的文本输入,变换为特征向量。 然后将这些特征向量喂给模型,该模型生成预测标签(正,负或中性)。

    从文本中提取特征:

    机器学习文本分类器的第一步是将文本转换为数字表示,通常是向量。 通常,向量的每个分量表示预定义字典中的单词或表达的频率(例如,极性词的词典)。 这个过程被称为特征提取或文本向量化,并且经典方法一直是bag-of-words或带有频率的bag-of-ngrams

    最近,基于词嵌入(也称为词向量)应用了新的特征提取技术。 这种表示使得具有相似含义的词可以具有相似的表示,这可以改善分类器的性能。

    分类算法:

    分类算法通常涉及统计模型,如NaïveBayes,Logistic回归,支持向量机或神经网络:

    • NaïveBayes:一种概率统计模型,使用贝叶斯定理来预测文本的类别;
    • 线性回归:一种非常着名的统计算法,用于在给定一组特征(X)的情况下预测某些值(Y);
    • 支持向量机:一种非概率模型,它使用文本示例的表示作为多维空间中的点。 映射这些示例以便不同类别(情绪)的示例属于该空间的不同区域。然后,新文本被映射到该相同空间并且预测属于基于它们落入哪个区域的类别。
    • 深度学习:一组多样化的算法,试图通过模仿人类大脑的工作方式,使用人工神经网络来处理数据。

    情感分析评估标准:

    你可以通过多种指标评估分类器的性能,并了解情感分析模型的准确程度。 最常用的一种称为交叉验证。

    交叉验证的作用是将训练数据分成一定数量的训练数据(75%的训练数据)和测试测试数据(25%的训练数据),训练数据来训练分类器,根据测试数据对其进行测试以获得性能指标(见下文)。 该过程重复多次,并计算每个度量的平均值。

    如果测试集总是相同的,那么可能会过度拟合该测试集,这意味着可能会将分析调整到给定的数据集,以至于可能无法分析不同的集。 交叉验证有助于防止这种情况。 您拥有的数据越多,您可以使用的折越多。

    精确度,召回率和准确度(Precision, Recall, and Accuracy)
    精确度,召回率和准确度是用于评估分类器性能的标准度量。

    • 精确度(Precision):测量预测为1的样本中,多少被正确分类;
    • 召回率(Recall):实际为1的样本中,多少被成功预测;
    • 准确度(Accuracy):测量语料库中所有文本中正确预测了多少文本

    最常见的是,精确度和召回率用于衡量性能,因为仅仅准确性并不能说明分类器的好坏。

    对于像分析情感这样的困难任务,精度和召回水平一开始可能很低。在为分类器提供更多数据时,性能会提高。但是,正如我们将在下面看到的那样,由于带注释的数据可能不准确,因此精度水平可能不会太高。但是,如果您为分类器提供一致标记的数据,那么结果将与任何其他分类问题的结果一样好。

    注释之间的协议:
    当涉及到注释之间的协议(即人类对给定注释任务的协议)时,最常用的指标之一是Krippendorff的Alpha。根据Saif等人的研究,Twitter情绪分析的最佳注释间协议达到了Krippendorff的Alpha的0.655值。这意味着有很多协议(因为alpha大于零),但我们认为它仍然远远不够(例如:大约0.8,这是社会科学家用来说数据可靠的最低可靠性阈值,见这里)。这就是说,从上面引用的论文中描述的注释任务的结果中只能得出推文情感的初步结论。

    总而言之,这个0.655也是人类情感分析检测难度的指标。考虑到机器从它们所喂养的数据中学习,自动预测可能反映了数据中嵌入的人为分歧。

    混合方法:

    混合方法的概念非常直观:只需结合两个方面的优点,即基于规则的方法和自动方法。 通常,通过组合两种方法,该方法可以提高准确度和精度。

    2.2 挑战:

    近年来情感分析的大部分工作都是开发更准确的分类算法,不断解决该领域的一些主要挑战和局限来。

    主观性和语气:

    主观和客观文本的检测与分析其语气一样重要。 事实上,所谓的客观文本不包含明确的情绪。 比如说,您打算分析以下两个文本的情绪:“包很好。”“包裹是红色的。”
    大多数人会说第一个情绪是积极的,第二个情绪是中性的,对吧? 所有谓词(形容词,动词和某些名词)在创造情绪方面不应该被视为相同。 在上面的例子中,nice比red更主观。

    语境和极性:

    所有的话语都会在某个时间点发出,在某些地方,对某些人说。所有的话语都是在上下文中说出来的。分析没有上下文的情感非常困难。但是,如果未明确提及,机器无法了解上下文。上下文产生的问题之一是极性的变化。请查看以下对调查的回复:“它的一切。”“绝对没有!”
    想象一下上面的回应,来自某个问题,“你对这次活动有什么看法?”,的答案。第一个反应是积极的,第二个反应是否定的,对吗?现在,想象一下另一个问题,“你对这个事件不喜欢什么?”问题的否定将使情感分析完全改变。
    如果我们要考虑产生文本的部分背景,就需要进行大量的预处理或后处理。但是,如何预处理或后处理数据以捕获有助于分析情感的上下文位并不简单。

    反讽和讽刺:

    字面意思和预期意义(即讽刺)之间的差异以及更具侮辱性或讽刺性的讽刺形式(即讽刺)通常会将积极情绪转变为消极情绪,而消极情绪或中性情绪可能会改为正面情绪。然而,检测讽刺或讽刺需要对文本产生的背景进行大量分析,因此很难自动检测。

    例如,对于问题,“您是否有过良好的客户体验?”
    “是啊,当然。”“不是一个,而是很多!”

    上面的回答分别是什么情感?可能你已经多次听过第一个回复,你会说是消极的,对吗?问题是没有任何文字提示会使机器学习负面情绪,因为大多数情况下,“是的”,肯定属于正面或中性文本。

    第二个回应在这种情况下,情绪是积极的,但存在提出许多不同的背景,其中相同的反应可以表达负面情绪。

    比较

    如何处理情绪分析中的“比较”是另一个挑战。 看看下面的文字:
    “这款产品首屈一指。”“这比旧工具更好。”“这总比没有好。”

    有一些比较,如上面的第一个,不需要任何上下文线索,可以被正确分类。
    不过,第二和第三个文本更难被分类。 你会把它们归类为中性还是积极的? 也许你更有可能为第二个选择正面而第三个选择中立,对吗? 上下文可以再次发挥作用。 例如,如果第二个文本所讨论的旧工具在上下文中被认为是无用的,那么第二个文本与第三个文本非常相似。 但是,如果没有提供上下文,这些文本会有所不同。

    表情符号:

    根据Guibon等人有两种类型的表情符号。西方表情符号(例如 ?)仅编码为一个字符或其中几个字符的组合而东方表情符号(例如¯\ (ツ) /¯) 是垂直性质的更长的组合。 特别是在推文中,表情符号在文本的情感中非常重要。

    通过推文进行的情感分析需要特别注意字符级别和单词级别。 但是,这两种都可能需要进行大量的预处理。 例如,您可能希望预处理社交媒体内容并将西方和东方表情符号转换为tokens并将其列入白名单(即始终将其作为分类用途的特征),以帮助改善情绪分析性能。

    这是一个非常全面的表情符号及其unicode字符列表,在预处理时可能会派上用场。

    定义中性:

    定义中性是另一个挑战,以便进行准确的情绪分析。与所有分类问题一样,定义类别 - 在本例中为中性标记 - 是问题中最重要的部分之一。当你训练情绪分析模型时,你的中立,正面或负面意味着什么。由于标记数据要求标记标准一致,因此必须对问题进行良好定义。

    关于中性文本可能包含以下内容:

    • 1.客观文本。正如我们在这里所说的,所谓的客观文本不包含明确的情绪,因此您应该将这些文本包含在中性类别中。
    • 2.无关的信息。如果您尚未预处理数据,以过滤掉不相关的信息,则可以将其标记为中性。但是要小心!只有在你知道这会如何影响整体性能时才这样做。有时,你会在分类器中添加噪音,性能可能会变差。
    • 3.包含愿望的文本。有些希望,例如希望产品有更多功能,通常是中性的。然而,包括“比较”在内的那些,比如我希望产品更好,很难分类。

    2.3 情感分析到底有多准确:

    情感分析:即使对于人类来说,这也是一项非常艰巨的任务。也就是说,情感分析分类器可能不如其他类型的分类器那么精确。请记住,注释间协议非常低,机器从它们所提供的数据中学习(见上文)。

    你可能会说,这值得努力吗?答案很简单:确实值得!有可能情感预测会不时出错,但通过使用情感,对文本进行分类,可以再70-80%的时间内正确对待。

    如果您或您的公司之前没有使用过情绪分析,那么您会很快看到一些改进。对于典型的用例,例如票证路由,品牌监控和VoC分析(见下文),这意味着您将节省大量时间和金钱——现在可能投资于内部的手动处理——并提高你(或你公司的)生产力。

    展开全文
  • 情感分析自然语言处理NLP)领域的一部分,其目的是通过分析一些主观文本来挖掘情感倾向的过程。 随着单词向量的发展,深度学习在自然语言处理中Swift发展。 因此,基于深度学习的文本情感分析也得到了广泛的研究...
  • 情感分析领域相关内容,非正式综述,仅供参考。有些链接在可能在微信文章失效,请点击阅读原文获取。(https://blog.csdn.net/DoJintian/article/detai...

    情感分析领域相关内容,非正式综述,仅供参考。有些链接在可能在微信文章失效,请点击阅读原文获取。

    (https://blog.csdn.net/DoJintian/article/details/88356413)

    简介

    情感分析或观点挖掘是对人们对产品、服务、组织、个人、问题、事件、话题及其属性的观点、情感、情绪、评价和态度的计算研究。

    现有研究已经产生了可用于情感分析多项任务的大量技术,包括监督和无监督方法。在监督方法中,早期论文使用所有监督机器学习方法(如支持向量机、最大熵、朴素贝叶斯等)和特征组合。无监督方法包括使用情感词典、语法分析和句法模式的不同方法。现有多本综述书籍和论文,广泛地涵盖了早期的方法和应用。

    大约十年前,深度学习成为强大的机器学习技术,在很多应用领域产生了当前最优的结果,包括计算机视觉、语音识别、NLP 等。近期将深度学习应用到情感分析也逐渐变得流行。

    情感分析的三种粒度

    • 文档粒度(document level):文档级情感分类是指为观点型文档标记整体的情感倾向/极性,即确定文档整体上传达的是积极的还是消极的观点。因此,这是一个二元分类任务,也可以形式化为回归任务,例如为文档按 1 到 5 星评级。一些研究者也将其看成一个五类分类任务。

    • 句子粒度(sentence level):语句级情感分类用来标定单句中的表达情感。正如之前所讨论的,句子的情感可以用主观性分类和极性分类来推断,前者将句子分为主观或客观的,而后者则判定主观句子表示消极或积极的情感。在现有的深度学习模型中,句子情感分类通常会形成一个联合的三类别分类问题,即预测句子为积极、中立或消极。

    • 短语粒度(aspect level):也称为主题粒度,每一个短语代表了一个主题。与文档级和语句级的情感分类不同,aspect level 情感分类同时考虑了情感信息和主题信息(情感一般都会有一个主题)。给定一个句子和主题特征,aspect level 情感分类可以推断出句子在主题特征的情感极性/倾向。例如,句子「the screen is very clear but the battery life is too short.」中,如果主题特征是「screen」,则情感是积极的,如果主题特征是「battery life」,则情感是消极的。

    深度学习模型

    1. 文档/句子粒度:Kim等人(2013) 提出的CNN文本分类工作,成为句子级情感分类任务的重要baseline之一;

    2. 文档/句子粒度:基本的lstm模型加上pooling策略构成分类模型,是通常用来做情感分析的方法;

    3. 短语粒度:Tang等人(2015) 使用两种不同的rnn网络,结合文本和主题进行情感分析;

    4. 短语粒度:Tang等人(2016) 结合memory-network,解决target-dedependent问题,这里的target理解为前面提过的aspect;

    5. 短语粒度:Chen等人(2017) 分别使用位置权重记忆和层叠attention的复合机制,建模target词和文本间的相互交互关系,以解决短语级情感分类问题;

    6. 短语粒度:Schmitt1等人(2018) 将aspect和polarity结合在一起进行分类任务训练,得到情感分析的模型;

    7. 现在流行模型:大规模语料预训练(词向量/Elmo/GPT/Bert)+ 深度学习分类器(lstm/cnn/transformer),一个很好的示例见AI Challenger 2018:细粒度用户评论情感分类冠军思路总结

    相关数据

    情感词典

    • 词性字典1   词性字典2

    • 大连理工大学中文情感词汇本体库

    • 清华大学李军中文褒贬义词典

    • 知网情感词典

    情感数据集

    • 15 Free Sentiment Analysis Datasets for Machine Learning

    • 大众点评细粒度用户评论情感数据集

    • 汽车行业用户观点主题及情感识别

    • 电商评论情感数据

    • 酒店评论语料

    • SemEval-2014 Task 4数据集

    • Citysearch corpus 餐馆评论数据

    • NLPCC2014评估任务2_基于深度学习的情感分类

    • NLPCC2013评估任务_中文微博观点要素抽取

    • NLPCC2013评估任务_中文微博情绪识别

    • NLPCC2013评估任务_跨领域情感分类

    • NLPCC2012评估任务_面向中文微博的情感分析

    • 康奈尔大学影评数据集

    其他资源

    文献资料

    • 文本情感分析综述(腾讯语义团队)

    • Deep learning for sentiment analysis: A survey

    • 情感分析资源大全

    • Tang D, Qin B, Liu T. Aspect level sentiment classification with deep memory network[J]. arXiv preprint arXiv:1605.08900, 2016.

    • Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.

    • https://blog.csdn.net/DoJintian/article/details/88356413

    请关注和分享↓↓↓ 

    机器学习初学者

    QQ群:727137612

    (注意:本站有7个qq群,加入过任何一个的不需要再加)

    本站的知识星球ID:92416895

    往期精彩回顾

    展开全文
  • task0:自然语言处理之PyTorch情感分析简介(1天) 环境: PyTorch1.8或以上、torchtext0.9或以上、python3.7(其他的安装很简单,就不赘述了) transformer: pip install -i ...

    task0:自然语言处理之PyTorch情感分析简介(1天)

    • 环境:

      • PyTorch1.8或以上、torchtext0.9或以上、python3.7(其他的安装很简单,就不赘述了)

      • transformer:

        pip install -i https://pypi.tuna.tsinghua.edu.cn/simple transformers
        
      • 安装spaCy遇到的问题:

        pip install spacy-nightly --pre
        python -m spacy download en_core_web_trf  # 这一步会报SSLerror的错误
        
      • 解决方案:

        #  pip install 语言模型的绝对路径 -i 清华源
         pip install D:\gitRepos\DataWhale-emotion_analysis\en_core_web_sm-3.1.0.tar.gz -i https://pypi.tuna.tsinghua.edu.cn/simple 
        
    • 将要学习的内容:

      • RNN情感二分类
      • LSTM,Bi-LSTM情感二分类
      • FastText情感二分类
      • CNN情感二分类
      • 情感多分类
      • BERT情感二分类
    • 参考文献:

    展开全文
  • 自然语言处理-使用机器学习对IMDB电影评论进行情感分析情感分析:这是对通过各种算法定义和分类一段文本所指定的观点或表达的过程的总体定义,以便正面或负面地评估作家或帖子对特定主题的态度。 通常,全球范围...
  • 文本分类应用: 常见的有垃圾邮件识别,情感分析 文本分类方向: 主要有二分类,多分类,多标签分类 文本分类方法: 传统机器学习方法(贝叶斯,svm等),深度学习方法(fastText,TextCNN等) 文本分类的处理大致...

    第一部分:文本分类

    训练文本分类器过程见下图:
    在这里插入图片描述
    文本分类问题: 给定文档p(可能含有标题t),将文档分类为n个类别中的一个或多个
    文本分类应用: 常见的有垃圾邮件识别,情感分析
    文本分类方向: 主要有二分类,多分类,多标签分类
    文本分类方法: 传统机器学习方法(贝叶斯,svm等),深度学习方法(fastText,TextCNN等)
    文本分类的处理大致分为文本预处理文本特征提取分类模型构建等。和英文文本处理分类相比,中文文本的预处理是关键技术。

    一、文本预处理(解决特征空间高维性、语义相关性和特征分布稀疏)

    1、中文分词技术

    为什么分词处理?因为研究表明特征粒度为词粒度远远好于字粒度,其大部分分类算法不考虑词序信息,基于字粒度的损失了过多的n-gram信息。

    中文分词主要分为两类方法:基于词典的中文分词和基于统计的中文分词。

    • 基于词典的中文分词

      ​ 核心是首先建立统一的词典表,当需要对一个句子进行分词时,首先将句子拆分成多个部分,将每一个部分与字典一一对应,如果该词语在词典中,分词成功,否则继续拆分匹配直到成功。

      所以:字典,切分规则和匹配顺序是核心。

    • 基于统计的中文分词方法

      ​ 统计学认为分词是一个概率最大化问题,即拆分句子,基于语料库,统计相邻的字组成的词语出现的概率,相邻的词出现的次数多,就出现的概率大,按照概率值进行分词,所以一个完整的语料库很重要。

    • 基于理解的分词方法

      基于理解的分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。

    2、去除停用词

    建立停用词字典,停用词主要包括一些副词、形容词及其一些连接词。通过维护一个停用词表,实际上是一个特征提取的过程,本质 上是特征选择的一部分。

    二、文本特征提取

    1、词袋模型
    • 思想:

      建立一个词典库,该词典库包含训练语料库的所有词语,每个词语对应一个唯一识别的编号,利用one-hot文本表示。

    • 文档的词向量维度与单词向量的维度相同,每个位置的值是对应位置词语在文档中出现的次数,即词袋模型(BOW))

    • 问题:

      (1)容易引起维度灾难问题,语料库太大,字典的大小为每个词的维度,高维度导致计算困难,每个文档包含的词语数少于词典的总词语数,导致文档稀疏。(2)仅仅考虑词语出现的次数,没有考虑句子词语之间的顺序信息,即语义信息未考虑

    2、TF-IDF文本特征提取
    • 利用TF和IDF两个参数来表示词语在文本中的重要程度。

    • TF是词频:

      指的是一个词语在一个文档中出现的频率,一般情况下,每一个文档中出现的词语的次数越多词语的重要性更大,例如BOW模型一样用出现次数来表示特征值,即出现文档中的词语次数越多,其权重就越大,问题就是在长文档中 的词语次数普遍比短文档中的次数多,导致特征值偏向差异情况。

    • TF体现的是词语在文档内部的重要性。

    • IDF是体现词语在文档间的重要性

      即如果某个词语出现在极少数的文档中,说明该词语对于文档的区别性强,对应的特征值高,IDF值高,IDFi=log(|D|/Ni),D指的是文档总数,Ni指的是出现词语i的文档个数,很明显Ni越小,IDF的值越大。

    • 最终TF-IDF的特征值的表达式为:TF-IDF(i,j)=TFij*IDFi

    3、基于词向量的特征提取模型
    • 想基于大量的文本语料库,通过类似神经网络模型训练,将每个词语映射成一个定维度的向量,维度在几十到化百维之间,每个向量就代表着这个词语,词语的语义和语法相似性和通过向量之间的相似度来判断。

    • 常用的word2vec主要是CBOW和skip-gram两种模型,由于这两个模型实际上就是一个三层的深度神经网络,其实NNLM的升级,去掉了隐藏层,由输入层、投影层、输出层三层构成,简化了模型和提升了模型的训练速度,其在时间效率上、语法语义表达上效果明显都变好。word2vec通过训练大量的语料最终用定维度的向量来表示每个词语,词语之间语义和语法相似度都可以通过向量的相似度来表示。

    三、分类模型

    1、传统机器学习方法:

    ​ 传统机器学习算法中能用来分类的模型都可以用,常见的有:NB模型,随机森林模型(RF),SVM分类模型,KNN分类模型模型。

    2、深度学习文本分类模型
    • fastText模型

      模型结构:在这里插入图片描述
      原理: 句子中所有的词向量进行平均(某种意义上可以理解为只有一个avg pooling特殊CNN),然后直接连接一个 softmax 层进行分类。

    • TextCNN:利用CNN来提取句子中类似 n-gram 的关键信息

      模型结构[4]:在这里插入图片描述

    在这里插入图片描述
    改进: fastText 中的网络结果是完全没有考虑词序信息的,而TextCNN提取句子中类似 n-gram 的关键信息。

    • TextRNN

      模型: Bi-directional RNN(实际使用的是双向LSTM)从某种意义上可以理解为可以捕获变长且双向的的 “n-gram” 信息。
      在这里插入图片描述
      改进: CNN有个最大问题是固定 filter_size 的视野,一方面无法建模更长的序列信息,另一方面 filter_size 的超参调节也很繁琐。

    • TextRNN + Attention

      模型结构:
      在这里插入图片描述
      改进:注意力(Attention)机制是自然语言处理领域一个常用的建模长时间记忆机制,能够很直观的给出每个词对结果的贡献,基本成了Seq2Seq模型的标配了。实际上文本分类从某种意义上也可以理解为一种特殊的Seq2Seq,所以考虑把Attention机制引入近来。

    • TextRCNN(TextRNN + CNN)

      模型结构:
      在这里插入图片描述
      过程:
      利用前向和后向RNN得到每个词的前向和后向上下文的表示:
      在这里插入图片描述
      词的表示变成词向量和前向后向上下文向量连接起来的形式:
      在这里插入图片描述
      再接跟TextCNN相同卷积层,pooling层即可,唯一不同的是卷积层 filter_size = 1就可以了,不再需要更大 filter_size 获得更大视野。

    第二部分:情感分析

    一、概述

    ​ 情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用。通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品。比如对外卖评价,可以分析菜品口味、送达时间、送餐态度、菜品丰富度等多个维度的用户情感指数,从而从各个维度上改进外卖服务。

    ​ 情感分析可以采用基于情感词典的传统方法,也可以采用基于机器学习的方法。

    二、基于情感词典的情感分类方法

    1、基于词典的情感分类步骤

    ​ 基于情感词典的方法,先对文本进行分词和停用词处理等预处理,再利用先构建好的情感词典,对文本进行字符串匹配,从而挖掘正面和负面信息。如图:在这里插入图片描述

    2、情感词典

    ​ 情感词典包含正面词语词典、负面词语词典、否定词语词典、程度副词词典等四部分。一般词典包含两部分,词语和权重。在这里插入图片描述
    ​ 情感词典在整个情感分析中至关重要,所幸现在有很多开源的情感词典,如BosonNLP情感词典,它是基于微博、新闻、论坛等数据来源构建的情感词典,以及知网情感词典等。当然也可以通过语料来自己训练情感词典。

    3、情感词典文本匹配算法

    ​ 基于词典的文本匹配算法相对简单。逐个遍历分词后的语句中的词语,如果词语命中词典,则进行相应权重的处理。正面词权重为加法,负面词权重为减法,否定词权重取相反数,程度副词权重则和它修饰的词语权重相乘。如图:
    在这里插入图片描述
    利用最终输出的权重值,就可以区分是正面、负面还是中性情感了。

    4、缺点

    ​ 基于词典的情感分类,简单易行,而且通用性也能够得到保障。但仍然有很多不足:

    • 精度不高。

      ​ 语言是一个高度复杂的东西,采用简单的线性叠加显然会造成很大的精度损失。词语权重同样不是一成不变的,而且也难以做到准确。

    • 新词发现。

      ​ 对于新的情感词,比如给力,牛逼等等,词典不一定能够覆盖。

    • 词典构建难。

      ​ 基于词典的情感分类,核心在于情感词典。而情感词典的构建需要有较强的背景知识,需要对语言有较深刻的理解,在分析外语方面会有很大限制。

    三、基于机器学习的情感分类方法

    • 即为分类问题,文本分类中的各方法均可采用。

    第三部分:意图识别

    一、概述

    • 意图识别是通过分类的办法将句子或者我们常说的query分到相应的意图种类。

      ​ 举一个简单的例子,我想听周杰伦的歌,这个query的意图便是属于音乐意图,我想听郭德纲的相声便是属于电台意图。做好了意图识别以后对于很多nlp的应用都有很重要的提升,比如在搜索引擎领域使用意图识别来获取与用户输入的query最相关的信息。举个例子,用户在查询"生化危机"时,我们知道"生化危机"既有游戏还有电影,歌曲等等,如果我们通过意图识别发现该用户是想玩"生化危机"的游戏时,那我们直接将游戏的查询结果返回给用户,就会节省用户的搜索点击次数,缩短搜索时间,大幅提高用户的体验。

      ​ 再举一个目前最火热的聊天机器人来说明一下意图识别的重要性。目前各式各样的聊天机器人,智能客服,智能音箱所能处理的问题种类都是有限制的。比如某聊天机器人目前只有30个技能,那么用户向聊天机器人发出一个指令,聊天机器人首先得根据意图识别将用户的query分到某一个或者某几个技能上去,然后再进行后续的处理。 做好了意图识别以后,那种类似于电影场景里面人机交互就有了实现的可能,用户向机器发来的每一个query,机器都能准确的理解用户的意图,然后准确的给予回复。人与机器连续,多轮自然的对话就可以借此实现了。

    二、意图识别的基本方法

    1、基于词典以及模版的规则方法

    ​ 不同的意图会有的不同的领域词典,比如书名,歌曲名,商品名等等。当一个用户的意图来了以后我们根据意图和词典的匹配程度或者重合程度来进行判断,最简单一个规则是哪个domain的词典重合程度高,就将该query判别给这个领域。

    2、基于查询点击日志

    ​ 如果是搜索引擎等类型业务场景,那么我们可以通过点击日志得到用户的意图。

    3、基于分类模型来对用户的意图进行判别

    ​ 因为意图识别本身也是一个分类问题,其实方法和分类模型的方法大同小异。

    三、意图识别的难点

    ​ 意图识别工作最大的难点其实是在于标注数据的获取。目前标注数据的获取主要来自两方面,一方面是专门的数据标注团队对数据进行标注,一方面是通过半监督的方式自动生成标注数据。

    展开全文
  • 自然语言处理之文本情感分析

    千次阅读 多人点赞 2019-12-23 21:58:03
    深度学习近些年取得突破性的发展,目前深度学习技术在人工智能领域应用最广泛的两方面就是CV(计算机视觉)和NLP自然语言处理),在本次夏虹老师的《人工智能》课程上,我和我的小组成员选择将NLP作为我们的讨论...
  • 自然语言处理前沿研究情感分析 情感分析综述   文本情感分析:又称意见挖掘、倾向性分析等。简单而言,是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。对于意见、情感或观点,我们进行如下建模...
  • 作者:申利彬校对:孙涛本文长度为1500字,建议阅读10分钟本文谈论自然语言处理中的情感分析及其在不同行业中的应用。多数人不能准确把握人类的情感变化,我也不例外,但是计算机却可以做到这一点。基于上面的事实,...
  • NLP】文本情感分析

    千次阅读 2021-11-20 09:16:57
    昨晚太晚代码还没有跑完,恰巧又遇到PSO-LSTM的准确率没办法复原,惨兮兮/(ㄒoㄒ)/,具体内容今天来补上 文本情感分析一、情感分析简介二、文本介绍及语料...文本情感分析(Sentiment Analysis)是自然语言处理NLP
  • 文本情感分析当前研究热点

    千次阅读 2019-01-18 19:55:53
    先介绍文本情感分析主要的数据集: Stanford Sentiment Treebank 11855个句子划分为239231个短语,每个短语有个概率值,越小越负面,越大越正面链接 IMDB 100,000句子,正面负面两类链接 (附LSTM和CNN实现IMDB...
  • 使用LDA模型进行主题分析 一、2020数学建模美赛C题简介 从提供的亚马逊电商平台的商品评价数据中识别关键模式、关系、度量和参数。 需求 以此告知阳光公司在线销售策略 识别潜在的重要设计功能,以增强产品的满意...
  • NLP:文本情感分析快速入门

    万次阅读 多人点赞 2018-08-03 17:51:49
    最近由中国计算机学会(CCF)主办,雷锋网,香港中文大学(深圳)承办的2018全球人工智能与机器人峰会...哈工大秦兵老师,秦老师多年从事自然语言处理研究,获得国内第一个关于文本情感分析方面的自然科学基金重点...
  • 学习目标 微博评论数据探查,重点掌握...掌握PyTorch 中关于自然语言处理torchtext 库使用 torchtext 中重点工具BucketIterator使用,torch.nn模型使用 情感分析RNN/LSTM模型构建和训练 评论情感分析模型预测 微...
  • 本文为笔者学习阿里云大学的基于LSTM的文本情感分析教学视频总结。 一、何为文本情感分析 其实也就是,用户输入了一句话,我们需要靠机器来知道这句话的情感,本文会以开心和不开心为例,来进行情感分析,有点像二...
  • 为了将情感信息融入到词向量中,本文第一部分工作提出了两个情感词向量 学习框架,即,基于谷歌提出的Skip-gram模型的框架和基于卷积神经网络模型 的框架。在每个框架中,根据情感和语义信息融合...
  • 基于自然语言处理的顾客对于产品的情感分析(分类问题) 在这个项目中,我们来研究分类问题,并将它们应用于分析顾客对于物品的情绪。进一步,我们要理解分类产生的错误类型。 我们使用ipython notebook,借助...
  • 本文对R中的文本内容进行情感分析。此实现利用了各种现有的字典,此外,还可以创建自定义词典。自定义词典使用LASSO正则化作为一种​​统计方法来选择相关词语。最后,评估比较所有方法。
  • NLP情感分析之情感分类

    万次阅读 2018-09-26 15:38:35
    情感分析(sentiment analysis)是近年来国内外研究的热点,其任务是帮助用户快速获取、整理和分析相关评价信息,对带有情感色彩的主观性文本进行分析、处理、归纳和推理。 情感分析包含较多的任务,如情感分类...
  • 数据:疫情期间网民的微博相关状态评论,共计10万标记数据,90万未标记数据,1万测试数据(这里数据不全的) 数据文件名train.txt,dev.txt 数据:疫情期间网民的微博相关状态评论,共计10万标记数据,90万未标记...
  • 基于NLP和深度学习方法的英文情感分析方法研究.pdf
  • 观点、情感以及与之相关的许多概念,如评价、评估、态度、感情、情绪和心情,与我们主观的感觉和感受密切相关。这些是人类心理活动的核心要素,也是影响人们日常行为的关键因素。... 情感分析研究的目标是...
  • 因为论文需要做隐含情感相关的研究,首先从汽车之家上爬取了大量数据,然后提取产品特征并构建领域情感词典,然后,基于产品特征和情感词典对评论进行筛选,从而构建隐含情感分析数据集,最后,通过众包公司对数据...
  • 也看到了有多种情感分析的方法,有用机器学习算法来学习,不过这种方法需要自己标注一些训练数据,这个工作量是很大的,我也研究过nltk包的使用,但研究了半天始终是有关英文的自然语言处理,对于中文来说有些方法不...
  • 微博情感分析论文7篇

    2018-09-13 10:13:11
    本论文合集主要包含7篇毕业论文,做微博情感分析的可以看,仅供学习,勿做其他用途,论文来源万方,版权归原文作者,侵删!
  • 自然语言处理NLP)中一个很重要的研究方向就是语义的情感分析(Sentiment Analysis)。例如IMDB上有很多关于电影的评论,那么我们就可以通过Sentiment Analysis来评估某部电影的口碑。本文演示利用Scikit Learn...
  • NLP情感分析——KNN算法

    万次阅读 2018-05-07 17:13:02
    一、 基本概念文本情感分析是对文本中的某段已知文字的两极性进行分类,判断出此文字中表述的观点是积极的、消极的、还是中性的情绪。目前的研究方法主要有两类:一种是基于情感词典的方法,另一种是基于机器学习的...
  • NLP_基于酒店评论的情感分析

    千次阅读 2019-07-10 11:14:15
    文章目录1、自然语言处理概述NLP意义与难点2、NLP核心问题与主要应用2.1 核心问题2.2 主要应用3、NLP中机器学习与深度学习方法3.1 NLP的机器学习与深度学习方法3.2 典型应用的解决效果4、NLP应用:基于评论情感分析...
  • 中文文本情感分析案例 课程配套程序 该文件夹是本次课程配套的程序,打来即可使用 课后作业数据集 为大家课后作业的数据集,可以在该数据集上进行相关训练 test.tsv为测试数据集,测试模型准确度 train.tsv为训练...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,535
精华内容 6,614
关键字:

nlp情感分析研究