在某种意义上,情感激发理论也可归入动机享乐说。有人认为,它是动机享乐说的一种变式,重点在于有机体努力达到最大愉悦情感和最小不悦情感。然而,从本质上说,情感激发理论与心理学上的需要或内驱力没有必然联系,但却与动力相关。在《牛津英语词典》中用动力形式解释情感,谓情感是一种行动方式;一种欲望、骇怕或别的情绪,一种倾向于影响人的意志的原因。PT·扬是强调动机中情感作用的早期理论家之一。按照扬的看法,内在的或外在的刺激,通过与情感激发相联系而获得诱因值,而且本质上是作为正负感受的。随着经验的逐渐积累,涉及不同刺激与情感激发的联系,于是个体就发展一种价值系统。 动机的强度取决于组织动机的情感过程的强度。正是因为这样的动机,使有机体朝向或背向一个物体;也正是这个基于情感的动机,引起并控制行为。总之,情感过程在组织、激发、控制和保持习得的行为模式方面起着主导作用。把情感作为动机核心的另外一些心理学家有D·麦克莱兰、OH·莫勒和S·汤姆金斯。事实上,在许多心理学家的动力理论中,情感激发说、内驱力说和诱因说是交叠在一起的。比如,麦独孤就强调情感在目的发展中的作用;内驱力理论家也强调情感的重要性;情感理论家在阐释情感作用的同时也强调目的系统的发展和保持。
我认为情侣之间的薪资差距会在一定程度上影响感情和生活。主要体现在以下几个方面:
1 生活习惯差异。薪资差距较大会导致两人的消费习惯和生活习惯有较大差异,这可能会引发一定的摩擦,影响感情。例如一个人习惯高消费,另一个人生活节俭。
2 经济压力加大。如果一方薪资较低,整个家庭的经济压力会加大,这会使得薪资较高的一方感到更多的经济负担和压力。长期下来可能产生怨气,损害感情。
3 自尊心影响。如果一方长期处于经济上明显较弱的地位,容易产生自卑感和依赖感,这会对自尊心产生影响,间接影响感情的稳定性。
4 重要性价值观差异。薪资代表一个人对社会的重要性价值贡献。如果两人在这方面差异太大,在潜意识中可能会觉得自己对对方来说不那么重要,这会动摇感情的基础。
5 未来规划分歧。由于薪资能力不同,两人对未来生活的规划和设想也会有较大差异,这可能会在关键的生命决定和人生规划上产生分歧,对感情造成一定困扰。
但是,感情不应该只建立在物质基础上。真挚的感情需要双方在精神和价值观上达成共识与契合。因此,相对于薪资差距,感情基础和内在的理解才是决定情侣未来的关键因素。薪资差距带来的负面影响也可以通过真诚的沟通和妥协来缓解。
综上所述,情侣之间的薪资差距虽会在一定程度上影响生活和感情,但并非是决定感情发展的唯一因素,更重要的是两人在精神上的契合和理解。通过良好的沟通,薪资差距也是可以逐渐调整和缓解的。
面试前搜集往年面试常考题目属于使用信息检索和分析技术来解决问题。
信息检索和分析技术已经成为许多领域中不可或缺的工具,在面试前搜集往年面试常考题目时,我们需要了解这些技术的基本概念和应用。同时,人工智能技术的发展也为信息检索和分析带来了新的机遇和挑战。
1、什么是信息检索技术?
信息检索技术是指在大规模数据集合中自动地查找、筛选、排序相关信息的过程。它通常包括了关键字查询、文本预处理、索引构建、查询优化和结果排序等环节。
2、信息检索技术在哪些领域有应用?
信息检索技术已经应用到了广泛的领域中,比如搜索引擎、文本挖掘、情感分析、舆情监测、知识图谱构建等。
3、如何构建一个高效的搜索引擎?
构建高效的搜索引擎需要先进行数据抓取、清洗和存储,然后利用信息检索技术对数据进行索引构建和查询优化,最后利用机器学习算法对用户偏好进行分析和个性化推荐。
4、什么是文本挖掘?
文本挖掘是一种从非结构化或半结构化数据中发现有用信息的过程。它通常包括了文本分类、命名实体识别、主题识别、情感分析等任务。
5、如何进行文本分类?
文本分类可以使用传统的基于规则或机器学习的方法,比如朴素贝叶斯、决策树、支持向量机等算法,也可以使用深度学习模型,如卷积神经网络、循环神经网络等。
6、什么是情感分析?
情感分析是指对文本中的情感倾向进行自动化识别和分类的过程。它通常涉及到情感词典构建、特征提取、分类器训练等步骤。
7、如何应用情感分析?
情感分析可以应用到广泛的领域中,比如商品评论分析、社交媒体分析、政治舆情分析等。在这些场景中,情感分析可以帮助人们更好地理解消费者需求、维护品牌形象、精准预测选举结果等。
语言有三种主要的 功能(用法) :
① 信息(逻辑) 性的:旨在表达信息,这是 推理 时主要关注的语言功能;
② 表达 性的:没有表达信息的目的,但有的也有信息内容,如态度或信念;
③ 指令 性的:旨在引导或命令,可能有信息要素;
此外不甚普遍的还有:
④ 礼节性 语言:结合了表达和其他功能,如“你好”;
⑤ 述行 语言:这类语词在被言说或写出时,就已履行了它所宣称的功能(“所言即所为”),如“祝贺你……”“我接受你的建议……”“我答应你……”。
上述语言的不同用法是通过不同的 语法形式 达到的。语言的语法形式本质上有四种: 陈述句 、 感叹句 、 祈使句 或 疑问句 。但是 功能和形式之间没有严格的联系 ,反问句也可以断定前提,疑问句也可以表达态度(“你什么意思?”),陈述句也能起到指令功能(“要迟到了。”)。这是由语言的不精确性与其用法的多变性导致的。因此,要确定一个句子的真正功能, 语境 起到至关重要的作用。
在信息性的语言功能中,应当区分 句子所构成的事实 和 关于说话者的事实 。除了可能为真的陈述本身外,句子同时也是做出断言的人持有该 信念 的证据。
多种语言功能的结合在某些情况下并不合适,其中的冲突甚至会产生令人不安的争议。
对语言的灵活性保持敏感,辨别给定情境中语言的不同功用,都是逻辑分析的必要先行步骤。
用于传达 信念 的语词可能是中立和精确的,但却可能会(纯粹偶然地或精心设计地)影响听者的情绪。通常由某些语词引起的负面态度导致了 委婉语 的出现及其对相应传统语词的替代,即以温和的词汇表达冷峻的现实。
涉及人类生殖和排泄的医学词汇是中立且无侮辱意味的,但它们的粗话同义词却使人不快。因为此类脏话有明显区别于其 字面意义 、让人无法接受的 情感意义 。
带情感色彩的语言在某些情境中是合适的(如诗歌),但在其他场合则非常不适当(如调查问卷)。情感语言将削弱报道的客观性,产生偏见色彩。然而,有时候避免某些情感内容几乎是不可能的。在逻辑上,我们一般追求的是尽可能没有被情感意义 扭曲 的语言,即中立性的语言。
防御语言诡计的最好方式就是理清我们所面对语言的真正 用法 ,防备那些用语言颠倒黑白的人。
论争 可能是关于 信念 的或关于 态度 的,分别是事实上的和情感上的 歧见 。这二者的不确定性及其可能带来的混淆,可能因为论争中所使用语言有大相径庭的情感意义而起。许多情况下,对事件或可能结果之态度上的论争源于对相关事实信念上的歧见。
解决论争非常重要的一点即 明确论争的真正问题所在 ,若在于事实则需客观地确定它们,若在于情感则仅就事实达成一致不足以解决。只有确认论争的真正本质,明确论争双方所用语言的不同功能后才可能解决歧见。
论争可分为三种:
① 明显的实质论争 :论争双方的歧见可能在态度上,也可能在信念上;
② 纯粹的言辞之争 :所用的词项可能有多个意思(即它们可能是 含混的 ),不存在实质的歧见,通过统一对某些词汇或短语的理解就能解决;
(然而如果在形而上的层面考量“声音”,似乎也可认为是信念的实质论争,下述两种对“声音”的理解实际上是不同的信念,类似的还有“自由意志”;而且“理解”本身就可包含关于词项的事实:“红是红”和“红是绿”是哪种论争?)
③ 表面上是言辞的但实际上是实质的 :这种论争更为复杂,其中包括对词项用法的误解,但将言辞的误解澄清之后,仍然存在超出语词含义的歧见。
对有露骨性活动镜头的影片是否应该作为“色情作品”来处理?J认为它的露骨使它成了邪恶的色情作品;K则坚持,考虑到其细腻的情感和美学价值,它是真正的艺术而非色情作品。
如果在交流中面对论争,我们必须首先追问其中是否存在可以通过澄清多种意义而消除的 含混性 。如果有,我们必须追问是否消除这一问题就能解决论争。如果能,该论争就是纯粹言辞上的。如果不能,该论争就是以纯粹言辞论争面貌出现的实质论争。
定义总是对 符号 (如“椅子”一词)而非对象(如椅子本身)的定义,只有符号具有定义能够说明的意义。
被定义的符号称为 被定义项 (definiendum);用来说明被定义项的符号或符号串称为 定义项 (definiens),它不是被定义项的意义而是与被定义项意义相同的符号或一组符号。
基于被使用的方式(主要功能),定义可分为五种:①规定定义,②词典定义,③精确定义,④理论定义,⑤说服定义。有的定义具有不止一种功能,如规定与说服合并、词典与精确合并等,语境在此也很关键。
规定定义 (stipulative definition),又称 名义 (nominal)定义,是将意义 指派 给某符号的定义,或规定老的词项在新的语境中的意义的定义。例如,将10²¹命名为泽它,10²⁴命名为尧它。
规定定义 既非真也非假 。被定义项在此前不具有那种意义,这种意义是定义的结果而非定义所断定的事实,因此其定义过程不能被看做被定义项与定义项具有 相同 意义的陈述或报道。规定定义应被视为 以被定义项意指定义项 的建议、方案、请求或指令,因而可能被拒绝,在这种意义下它是 指令性 的而非信息性的。
引入规定定义的主要目的是方便、保密、使表达更为经济。
科学中,有些规定定义的引入是为了避免熟悉词项之情感牵连对研究者的干扰,例如,在现代心理学中,斯皮尔曼的“g因子”旨在传达与“智力”相同的描述意义,但不具有它的任何情感意义。引入引人注目的新词项也可以给研究增添兴致和情趣,如以“黑洞”替换“引力完全崩溃的星体”,(默里·盖尔曼)以“夸克”命名一种亚原子粒子。皮尔士将自己的哲学称为实用主义(pragmatism),声称这个词丑陋得没有人愿意盗用它。
词典定义 (lexical definition)是报告被定义项已经具有的意义的定义,目的是解释词项的固定用法或消除歧义。由于活语言的变动性,词典定义可能真实或虚假地描述了实际用法,因而 或真或假 。例如,"bird(鸟)"意指有羽毛的温血脊椎动物的定义为真,而指两足哺乳动物的定义为假。语词使用中的错误就是对这些词的用法的错误报道。
词典定义的被定义项的确有一个先在的和独立的意义,这与规定定义有重要不同。定义是规定定义或是词典定义与被定义项是否指称某个“真实的”或存在的事物无关。
词汇的用法是 统计问题 ,不可避免地要服从统计变化。定义报道的意义仅仅是被某些学术贵族接受但可能过时的意义。词典定义不能忽视某种语言的大量使用者对词项的使用方式。词典编纂者眼中的词语的“最好”用法,是由符合这一用法的杰出作家或说者的数量衡量的。好的词典应指明“陈旧(过时)的”和“口头(俚语)的”词项意义。
精确定义 (precising definition)是用于消除歧义或模糊性的定义。如果一个词项具有多个不同意义,且在特定语境中要表述的意义并不清楚,那么这个词项在该语境中是 歧义的 。如果存在临界状况(词项意义的边缘地带),但不能确定词项是否适用该状况,那么该词项是 模糊的 , 所有 词项都有一定程度的模糊性。一个词项或短语可以既是歧义的又是模糊的,如“诽谤”和“言论自由”。
科学中度量单位的模糊性是一个严重的问题,其精确化,如以“光在299792458分之一秒内穿过的距离”代替“地球的一极到赤道距离的一千万分之一”和一根铂铱合金制金属条上的一对印痕作为“米”的定义,以及“马力”的精确定义,是极为重要的。对商业而言,术语的精确定义对厂商确认生产标准是有必要的。法律条文也是如此,立法机关常为新法律做一个称作“定义”的前言部分。
精确定义不同于规定定义之处在于被定义项不是新词语,其用法虽模糊却是固定的。因此,精确定义的制定者必须尽可能 保持 固定用法,使已经为人所知的词项更加精确;同时,为减少被定义项的模糊性,必须 超出 这一固定用法,具体的超出方式可能完全是 规定定义 的问题(如“米”的精确定义,此单位原本不具有这一意义)。法律界在提供规定定义以超出固定用法后,通常还会为引入的限制条件给出理由。
在科学和哲学中,定义通常是某些理论的摘要或概括。
理论定义 (theoretical definition)是旨在追求对相关理论的全面把握,既能容纳老发现又能容纳新发现,同时还能对整个系统保持一个完全明确和一致说明的定义。例如,“行星”最初定义为在环绕太阳的轨道上运行的天体,但随着许多大于木星、形状奇特的天体被发现环绕太阳运行,有必要为适应相关理论而修正“行星”的定义;哲学方面,柏拉图的“正义”、斯宾诺莎的“自由”与“束缚”的定义并非旨在审查词的使用或排除模棱两可,而是描述的需要。
理论定义是我们对某领域全面了解的产物。“权利”、“民主”等词的理论定义的需求是非常迫切的。
说服定义 (persuasive definition)是旨在通过影响态度或激发情感以解决争论的定义,其中具有明显的情感语言的操作意图。
定义表明词项的 意义 (meaning),词项的意义又有不同的含义(sense)。含义的不同表明了定义的分类和理解不仅能基于其用法(见34)达到,还能通过定义的 结构 即建立方式达到。
普遍词项(类词项) 是可以运用于多个对象的类(class)的词项,如“行星”。普遍词项的 外延 由它正确适用的对象构成, 外延意义(指谓意义) 是构成词项外延的对象的汇集。普遍词项的 内涵 是其指谓的所有对象且 仅 那些对象共有的属性集, 内涵意义 设定了决定任一对象是否属于该词项外延的标准。定义对普遍词项的处理方式有以上两种,它们各有利弊。
每个普遍词项都既有一个内涵意义又有一个外延意义,内涵 决定 其外延,但外延 不决定 其内涵,如“等边三角形”和“等角三角形”。词项可能内涵不同而外延相同,但不可能外延不同而内涵相同。为词项的内涵添加性质时,称其内涵 增加 了。同时,其外延的变化是 非递增 的。也就是说,如果外延变化,那么它们将沿着内涵的反向变化。
有些词项的外延是 空的 ,其所指属性的对象不存在,如神话中的怪物。“上帝”一词存在内涵,因而不是无意义的,但不能得出:一个具有内涵的词项,其内涵一定指谓一个存在物。 意义 与 所指 (referent)是不同的,许多有内涵的词项都不存在所指,没有外延,但它们却是很有价值的。
指称性定义 ,即指认或描述被定义的词项所指称的对象,采用的方法是指出被定义的术语的外延,其中最明显的方法是指出词项所指称的对象。该方法非常有效,却有严重的局限。
完全列举出一个类中的所有对象通常是不可能的,即使能,由此得出的外延定义也不能使它与另一个指谓同样对象的词项区分开来,因为内涵不同的词项可以有相同的外延。指称性定义常被限制在对所指对象的部分列举,使得普遍词项的意义仍非常不确定。我们可能将元素分组后列举组名来克服这一问题,即通过 子类 定义以做到完全列举,但这并未充分地刻画词项意义。
任何给定对象都具有许多性质而被包括在许多普遍词项的外延中,因而通过部分列举不能在具有不同外延的词项之间做出区分。
指称性定义还可以通过指着被定义的对象来定义,称为 实指定义 或 示范定义 ,如在提出“X这个词意指这个”时伴随着用手指指向X这一物体的姿势。实指定义除前面提到的局限性外,也有自身的特殊局限性:姿势受到地域的局限,且有不可避免的歧义。这种歧义有时可通过给定义项增加描述性短语而解决,其结果称为 准实指定义 ,但这假设了人们对所附加短语的事先理解,使实指定义的宗旨难以达到。实指定义被某些人视为“基本”或“原初”定义,意即我们最初都是凭借这种方式理解词项意义的。但事实上我们对语言的最初学习是通过观察和模仿而非定义。此外,所有实指定义都 无法 定义没有外延的词项。
显然, 内涵是定义真正的关键 。
“内涵(intention)”一词有时被“含意(connotation)”取代,内涵定义(intentional definition)即connotative definition。但日常英语中connotation指其全部意义,除信息性意义外还包括情感上的意义和描述性意义,这二者并非我们关注的。
内涵有三种不同含义。 主观内涵 是某人认为词项指谓对象所具有的属性集,因人而异,对同一个人也因时而异,无法达到定义的目的,是私人解释而非公共意义。 客观内涵 是词项外延的所有对象共有的属性 全集 ,但没有人能具有对属性的全知,因而客观内涵不是我们所追求的公共意义的解释。
词项之所以具有稳定的意义,是因为我们同意在决定对象是否属于某词项外延时使用同样的标准,这种标准通过规约确定,称为 规约内涵 ,它既不是主观的也不是客观的。就定义之目的而言,这是内涵最重要的含义,它既是公共的,也不为使用它而要求全知。实际上,“内涵”一词通常指规约内涵。
用内涵定义语词的常用方法有如下几种。
同义定义 是提供另一个意义已经被理解的词(称为同义词),且它与被定义的词具有相同的意义。人们学习外语词汇要依赖同义定义。它容易、方便且实用,但有很大局限性。很多词汇没有真正的同义词,因而同义定义常不够完全精确并引人误解,语言之间的 翻译 通常无法忠于原本,意大利谚语“ 翻译者就是篡改者 ”就基于这种认识。更严重的局限是:当寻求定义的词表示的概念完全是外来的和令人费解的,那么其任何简单的同义词都将像它一样令人费解,因此同义词在寻求理论定义或精确定义时不可能满足要求。
操作定义 是通过把被定义项与一组可描述的动作或操作联系在一起来解释语词的内涵,就是指这个词项被正确地运用到某个给定场合,当且仅当在那个场合中特有的操作行为会产生特有结果。操作定义中仅仅涉及公共的可重复的操作。长度、空间、时间、感觉和心灵(通过行为或心理学的观察)等可采用这种定义方式。
属加种差定义 是适用范围最广、最常用的词项定义方法,是对普遍词项的内涵最重要的一种使用,详见36。
属性通常具有复杂性和可分析性,可用于定义 类 。具有多个元素的类可将其元素分为 子类 ;其中的类是 属 ,而子类是 种 ,属和种在逻辑学中是 相对 术语,区别于生物学中的严格术语。给定属的所有元素都有某些共同特征,而其种(子类)的所有元素都有更进一步的、不为任何其他子类的元素所共享的共同属性,使不同的种区分开来,这种属性称为 种差 。
属加种差定义包含两步:①找出包括被定义种的 属 ;②找出将被定义种的元素与该属其他所有种的元素区分开来的 种差 。例:“质数”是仅能为它自己或1整除(种差)的大于1的自然数(属)。
属加种差定义非常有用,但有两种局限性。首先,这种方法仅适用于暗含复杂属性的词汇,而不适用于简单得 不可再分析 的属性,但这种属性是否存在尚无定论。其次,表达“大全(universal)”性质的词汇不能如此定义,如存在、本体、存在物、客体、物质和性质等指称形而上学的最终范畴的词汇,大全类(universal class)是最高的类,或称 最高的属 。但从实际运用角度看这些局限性不很重要。
对属加种差定义的评价,特别是用于词典定义时,运用的五条规则如下。
定义应当揭示种的本质属性 。客观内涵中的部分性质不宜作为定义,定义应表明被定义项的规约内涵。规约内涵不必是事物的形状、质地等内部特征,而可能与事物的起源(斯特拉迪瓦里小提琴)、用法(鞋子)或与其他事物的关系(参议员)有关。不能排他性地定义词汇。
定义不能循环 。定义中不能包含被定义项本身、被定义项的同义词或反义词。若人们可以理解同义词或反义词,则只需使用同义定义而无需使用属加种差定义;若不能理解,则定义不能达到解释的目的。
定义既不能过宽又不能过窄 。这一规则容易理解但难以做到,但若完全遵守第一条规则则本规则也得到遵守,因为词项的规约内涵既不过宽也不过窄。
定义不能用歧义的、晦涩的或比喻的语言来表述 。晦涩是相对的,但把晦涩语言用在非技术性定义问题上,用更加不清的东西解释未知事物,往往徒劳无功;比喻性语言能表达对被定义项的“情感”,但不能给出清楚解释。
定义在可以用肯定定义的地方就不应当用否定定义 。定义需指出被定义项有的属性而不是没有的属性,但有的词项本质上的意义是否定的,此时要求否定定义:首先肯定地提出属,再通过排除属中所有其他的种而给出那个种的否定特征。有时肯定定义与否定定义同样有用,但前者可能更好地揭示种的本质属性。
内涵性定义,尤其是属加种差定义,能帮助消除歧义性、减少模糊性、给出理论的解释,甚至影响态度,通常还被用来增加或丰富其接收者的词汇量。就大多数目的来说,内涵定义在很大程度上优于外延定义,而内涵定义中属加种差定义通常最有效力也最有助益。
情感分析(Sentiment Analysis),又称观点挖掘,是对带有情感色彩的主观性文本进行分析、处理和提取,系统地识别、量化和研究情感状态和主观信息的过程。情感分析作为自然语言处理(Natural Language Processing,NLP)领域中的一个子领域,是文本分类的一个分支,而自然语言处理又是人工智能的一个重要子领域。情感分析也与我们的生活息息相关,在我们身边有着很多情感分析的应用,例如在2020年突如其来的疫情持续期间,舆情管理就与应用大数据和人工智能进行情感分析密不可分。
同时今天3月15日,正值每年的国际消费者权益日(World Consumer Rights Day),目的在于扩大消费者权益保护的宣传,在国际范围内更好地保护消费者权益。广大消费者都会对购买过的商品进行评论来表达对商品品质的看法,那么对这些商品评论进行情感分析就可以很直接地了解到人们对商品的判断。
情感分析主要有两种研究方法:基于情感词典以及基于机器学习的研究方法,本文则利用Scratch逐步实现了基于词典的情感分析。学习本课程除了需要掌握基本的Scratch基础外,还需要对Scratch的语句结构有更加深入的理解,且需要更高的逻辑思维能力。
本次实验将加载两个数据,一个是已经标注好的用户评论数据,另外一个是用户评价主题句,通过标注过的用户评论数据进行基于集成模型的情感极性模型训练,然后利用模型对主题句进行情感极性推理,最后通过数据聚合可视化得出主题情感极性。
使用 Pandas 加载在线数据表格,并查看数据维度和前 5 行数据。
数据属性如下表所示
加载我们之前通过主题词典提取出来的主题句。
数据属性如下表所示
用户评论分词
jieba 分词器预热,第一次使用需要加载字典和缓存,通过结果看出返回的是分词的列表。
批量对用户评价进行分词,需要一些时间,并打印第一行情感极性训练集的分词结果。
批量对用户评价主题句进行分词,并打印第一句用户主题句分词结果。
依据统计学模型假设,假设用户评论中的词语之间相互独立,用户评价中的每一个词语都是一个特征,我们直接使用 TF-IDF 对用户评价提取特征,并对提取特征后的用户评价输入分类模型进行分类,将类别输出为积极的概率作为用户极性映射即可。
用户评论向量化
TF-IDF 是一种用于信息检索与数据挖掘的常用加权技术,当某个词在文章中的TF-IDF越大,那么一般而言这个词在这篇文章的重要性会越高,比较适合对用户评论中的关键词进行量化。
数据集合划分
按照训练集 8 成和测试集 2 成的比例对数据集进行划分,并检查划分之后的数据集数量。
我们在系列实验的开始使用朴素贝叶斯模型来训练情感分析模型,下面我们新增逻辑回归模型作为对比模型。逻辑回归(Logistic Regression)是一种用于解决二分类问题的机器学习方法,在线性回归的基础上,套用了一个 sigmod 函数,这个函数将线性结果映射到一个概率区间,并且通常以 05 分界线,这就使得数据的分类结果都趋向于在 0 和 1 两端,将用户评论进行向量化之后也可以用此方式预测用户情感。本实验直接对标注过的用户情感数据进行训练,并验证单一模型和集成模型在情感分析性能上的差异。
模型加载
通过传入原始的标签和预测的标签可以直接将分类器性能进行度量,利用常用的分类模型评价指标对训练好的模型进行模型评价,accuracy_score 评价被正确预测的样本占总样本的比例,Precision 是衡量模型精确率的指标,它是指模型识别出的文档数与识别的文档总数的比率,衡量的是模型的查准率。Recall 召回率也称为敏感度,它是指模型识别出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率,表示正样本在被正确划分样本中所占的比例,f1_score 值是精确率与召回率的调和平均数,是一个综合性的指数。
我们分别对不同模型使用相同的数据集进行训练和测试,以此来比较单模型之间的差异,并打印模型运行时间供大家参考,批量处理不同的模型需要一些时间进行计算,清耐心等待。
通过求得的指标进行模型评价,我们发现使用相同的数据进行模型训练,朴素贝叶斯模型和逻辑回归模型性能基本持平,相差很微弱,逻辑回归稍稍占一些优势。
Stacking 堆栈模型训练
集成学习是地结合来自两个或多个基本机器学习算法的优势,学习如何最好地结合来自多个性能良好的机器学习模型的预测结果,并作出比集成中的任何一个模型更好的预测。主要分为 Bagging, Boosting 和 Stacking,Stacking 堆栈模型是集成机器学习模型的一种,具体是将训练好的所有基模型对整个训练集进行预测,然后将每个模型输出的预测结果合并为新的特征,并加以训练。主要能降低模型的过拟合风险,提高模型的准确度。
开始对两个模型进行集成训练,训练的时间要比单一模型时间久一些,清耐心等待。
评测结果收集。
结果分析
将结果存入 Dataframe 进行结果分析,lr 表示逻辑回归,nb 表示朴素贝叶斯,model_stacking 将两个单模型集成后的模型。从结果来看集成模型准确度和 f1 值都是最高的,结合两个模型的优势,整体预测性能更好,鲁棒性更好。
样例测试
通过测试样例发现,分类器对正常的积极和消极判断比较好。但是当我们改变语义信息,情感模型则不能进行识别,模型鲁棒性较差。作为早期的文本分类模型,我们使用 TFIDF 的特征提取方式并不能很好的解决语义问题,自然语言是带有语序和语义的关联,其词语之间的关联关系影响整句话的情感极性,后续我们继续试验深度情感分析模型研究解决此类问题。
加载民宿主题数据。
模型预测
将情感分析模型推理的结果写入 DataFrame 中进行聚合。
单主题聚合分析
挑选一个主题进行主题情感分析。
对民宿“设施”进行描述统计,此次我们使用主题词典的出来的用户关于民宿“设施”主体的讨论条数为 4628 条,平均用户情感极性为 040 表示为整体呈现不满意的情况,有超过一半的关于“设施”的民宿评论中表现用户不满意的情况,重庆民宿需要在“设施”进行改善,以此提高用户满意度。
单主题情感极性可视化
我们开始进行“设置”主题下的用户主题情感进行可视化,首先加载画图模块。
对“设施”主题下的用户情感极性进行可视化,我们利用集成模型对主题句进行情感极性预测,如下所示。
文本情感分析根据文本大小可以划分为单词,句子级和篇章级,根据不同的分析目的,可以分为主客观分析(作者对客观事物的分析)和主观分析(作者自己的体验);根据处理方法的可以分为基于词典的情感分析和基于机器学习(SVM方法,神经网络和朴素贝叶斯方法)的情感分析;根据是否有人工参与,可以分为非监督和监督分类方法,区别在于是否需要人工情感标记。算法,主要的改进是通过依赖分析,围绕情感词,进行情感倾向性分析。
情感分析也被称为意见挖掘。情感分类涉及多个领域,如自然语音处理,人工智能,自动文本分类,文本挖掘,心理学等。它主要用来判别自然语言文字表达的观点,喜好以及感受和态度等相关的信息。
文本分类问题: 给定文档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知乎看山杯 从入门到第二
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)