可以使用snownlp包,也可以用nltk
和
scikit-learn
结合,或者自己写算法实现。
简单话就是情感词典的匹配,想提高效果的需要考虑特征之间的搭配,语法顺序等,可以查询搜索相关的入门例子和算法详细了解。
与其他的人工智能技术相比,情感分析(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%。这是因为情绪本身包含了太多的类别,而且不同的类别之间又可能具有相似性,一个情绪词在不同的语境下有可能表达的是不同的情绪类别,算法很难对其进行分类。即使是人工对文本进行情绪类别标注也往往效果不佳,因为情绪是非常主观性的,不同的人对不同的文本可能产生不同的理解,这使得人工标注情绪类比的过程异常困难。如何让机器可以理解真实的情绪目前还是一个未能攻克的难题。
文本分类问题: 给定文档p(可能含有标题t),将文档分类为n个类别中的一个或多个
文本分类应用: 常见的有垃圾邮件识别,情感分析
文本分类方向: 主要有二分类,多分类,多标签分类
文本分类方法: 传统机器学习方法(贝叶斯,svm等),深度学习方法(fastText,TextCNN等)
本文的思路: 本文主要介绍文本分类的处理过程,主要哪些方法。致力让读者明白在处理文本分类问题时应该从什么方向入手,重点关注什么问题,对于不同的场景应该采用什么方法。
文本分类的处理大致分为 文本预处理 、文本 特征提取 、 分类模型构建 等。和英文文本处理分类相比,中文文本的预处理是关键技术。
针对中文文本分类时,很关键的一个技术就是中文分词。特征粒度为词粒度远远好于字粒度,其大部分分类算法不考虑词序信息,基于字粒度的损失了过多的n-gram信息。下面简单总结一下中文分词技术:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法 [1]。
1,基于字符串匹配的分词方法:
过程:这是 一种基于词典的中文分词 ,核心是首先建立统一的词典表,当需要对一个句子进行分词时,首先将句子拆分成多个部分,将每一个部分与字典一一对应,如果该词语在词典中,分词成功,否则继续拆分匹配直到成功。
核心: 字典,切分规则和匹配顺序是核心。
分析:优点是速度快,时间复杂度可以保持在O(n),实现简单,效果尚可;但对歧义和未登录词处理效果不佳。
2, 基于理解的分词方法:基于理解的分词方法是通过让计算机模拟人对句子的理解 ,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统 还处在试验阶段 。
3,基于统计的分词方法:
过程:统计学认为分词是一个 概率最大化问题 ,即拆分句子,基于语料库,统计 相邻的字组成的词语出现的概率 ,相邻的词出现的次数多,就出现的概率大, 按照概率值进行分词 ,所以一个完整的语料库很重要。
主要的统计模型有: N元文法模型(N-gram),隐马尔可夫模型(Hidden Markov Model ,HMM),最大熵模型(ME),条件随机场模型(Conditional Random Fields,CRF)等。
1, 分词 : 中文任务分词必不可少,一般使用jieba分词,工业界的翘楚。
2, 去停用词:建立停用词字典 ,目前停用词字典有2000个左右,停用词主要包括一些副词、形容词及其一些连接词。通过维护一个停用词表,实际上是一个特征提取的过程,本质 上是特征选择的一部分。
3, 词性标注 : 在分词后判断词性(动词、名词、形容词、副词…),在使用jieba分词的时候设置参数就能获取。
文本分类的核心都是如何从文本中抽取出能够体现文本特点的关键特征,抓取特征到类别之间的映射。 所以特征工程很重要,可以由四部分组成:
1,基于词袋模型的特征表示:以词为单位(Unigram)构建的词袋可能就达到几万维,如果考虑二元词组(Bigram)、三元词组(Trigram)的话词袋大小可能会有几十万之多,因此基于词袋模型的特征表示通常是极其稀疏的。
(1)词袋特征的方法有三种:
(2)优缺点:
2,基于embedding的特征表示: 通过词向量计算文本的特征。(主要针对短文本)
4,基于任务本身抽取的特征:主要是针对具体任务而设计的,通过我们对数据的观察和感知,也许能够发现一些可能有用的特征。有时候,这些手工特征对最后的分类效果提升很大。举个例子,比如对于正负面评论分类任务,对于负面评论,包含负面词的数量就是一维很强的特征。
5,特征融合:对于特征维数较高、数据模式复杂的情况,建议用非线性模型(如比较流行的GDBT, XGBoost);对于特征维数较低、数据模式简单的情况,建议用简单的线性模型即可(如LR)。
6,主题特征:
LDA(文档的话题): 可以假设文档集有T个话题,一篇文档可能属于一个或多个话题,通过LDA模型可以计算出文档属于某个话题的概率,这样可以计算出一个DxT的矩阵。LDA特征在文档打标签等任务上表现很好。
LSI(文档的潜在语义): 通过分解文档-词频矩阵来计算文档的潜在语义,和LDA有一点相似,都是文档的潜在特征。
这部分不是重点,传统机器学习算法中能用来分类的模型都可以用,常见的有:NB模型,随机森林模型(RF),SVM分类模型,KNN分类模型,神经网络分类模型。
这里重点提一下贝叶斯模型,因为工业用这个模型用来识别垃圾邮件[2]。
1,fastText模型: fastText 是word2vec 作者 Mikolov 转战 Facebook 后16年7月刚发表的一篇论文: Bag of Tricks for Efficient Text Classification [3]。
模型结构:
改进:注意力(Attention)机制是自然语言处理领域一个常用的建模长时间记忆机制,能够很直观的给出每个词对结果的贡献,基本成了Seq2Seq模型的标配了。实际上文本分类从某种意义上也可以理解为一种特殊的Seq2Seq,所以考虑把Attention机制引入近来。
过程:
利用前向和后向RNN得到每个词的前向和后向上下文的表示:
词的表示变成词向量和前向后向上下文向量连接起来的形式:
模型显然并不是最重要的: 好的模型设计对拿到好结果的至关重要,也更是学术关注热点。但实际使用中,模型的工作量占的时间其实相对比较少。虽然再第二部分介绍了5种CNN/RNN及其变体的模型,实际中文本分类任务单纯用CNN已经足以取得很不错的结果了,我们的实验测试RCNN对准确率提升大约1%,并不是十分的显著。最佳实践是先用TextCNN模型把整体任务效果调试到最好,再尝试改进模型。
理解你的数据: 虽然应用深度学习有一个很大的优势是不再需要繁琐低效的人工特征工程,然而如果你只是把他当做一个黑盒,难免会经常怀疑人生。一定要理解你的数据,记住无论传统方法还是深度学习方法,数据 sense 始终非常重要。要重视 badcase 分析,明白你的数据是否适合,为什么对为什么错。
超参调节: 可以参考 深度学习网络调参技巧 - 知乎专栏
一定要用 dropout: 有两种情况可以不用:数据量特别小,或者你用了更好的正则方法,比如bn。实际中我们尝试了不同参数的dropout,最好的还是05,所以如果你的计算资源很有限,默认05是一个很好的选择。
未必一定要 softmax loss: 这取决与你的数据,如果你的任务是多个类别间非互斥,可以试试着训练多个二分类器,也就是把问题定义为multi lable 而非 multi class,我们调整后准确率还是增加了>1%。
类目不均衡问题: 基本是一个在很多场景都验证过的结论:如果你的loss被一部分类别dominate,对总体而言大多是负向的。建议可以尝试类似 booststrap 方法调整 loss 中样本权重方式解决。
避免训练震荡: 默认一定要增加随机采样因素尽可能使得数据分布iid,默认shuffle机制能使得训练结果更稳定。如果训练模型仍然很震荡,可以考虑调整学习率或 mini_batch_size。
知乎的文本多标签分类比赛,给出第一第二名的介绍网址:
NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)
2017知乎看山杯 从入门到第二
百度文心一言是一款基于人工智能技术的短文本情感分析产品,它能够针对输入的短文本,分析出其中蕴含的情感,并给出相应的情感标签和分值。文心一言可以帮助用户更好地理解和处理短文本信息,并为企业提供情感分析类的数据支持,促进决策的准确性和效率。
一、更加准确的情感分析。文心一言不仅能够高度自适应,精准分析自然语言,还能够识别语境,抓住写作的情感、倾向以及沟通目的。采用更先进的算法和技术,让情感识别更为准确可信,提升应用的实用价值。
二、更丰富的应用场景
我期望文心一言能够应用于更广泛的场景,包括但不限于社交媒体、舆情监测、新闻报道、广告营销、客户服务等领域。例如,可以结合社交媒体的实时数据,实现更全面的舆情监测和反馈。还可以为广告商提供更精准的广告投放策略,提高广告投放的效果和ROI。期望文心一言可以通过与其他工具和产品的结合,为更多行业解决情感分析及管理问题。
三、更完善的应用支持
百度文心不停完善产品本身和其应用生态,进一步提高用户体验和应用效果。具体来说,文心一言需要提供更加丰富、灵活的情感分析API,同时为开发者提供更完善的文档和技术支持。
此外,还需要不断完善产品的用户界面和易用性,方便非技术人员使用。根据用户反馈,及时更新算法、修复漏洞,优化集成流程,达到更好的用户体验。
在不断变化的市场环境下,情感分析类技术正在逐渐成为企业决策的重要组成部分。文心一言作为其中的佼佼者之一,必将不懈努力,积极应对市场变化,以先进的技术为基础,为用户和企业提供更加优质的情感分析服务
有几种方法可以将文本转换为数据。最流行的方法之一是文本矢量化,即将文本转换为数字表示的过程。有几种方法可以实现文本矢量化,如二进制、词频、词袋(BoW)、词频(L1)、归一化词频(L2)、归一化TF-IDF和Word2Vec12。
另一种方法是命名实体识别(NER),这是一种信息提取的子任务,旨在定位文本中的命名实体,并将其分类为预定义的类别,如人名、组织、地点、医疗代码、时间表达式、数量、货币值、百分比等
文本分类是另一种专注于将非结构化文本体分类到预定义类中的方法。
情绪分析是另一种方法,涉及确定文本中表达的情绪或观点。
最后,您还可以使用GPT-3将非结构化数据转换为表格数据。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)