文本情感分析方法、装置及介质
技术领域
本发明涉及情感分析技术领域,具体涉及一种文本的情感分析方法、装置以及介质。
背景技术
伴随电子商务的发展,大众对于商品、服务的态度都可以通过网络直接表达出来,这就产生了海量带有评价性的文本。如何解析这些文本,挖掘其中包含的情感倾向,对于各行各业来说都有着重要的意义。
文本情感分析(sentiment analysis),又被称为观点挖掘,主要是指对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。其目的是从文本中分析出人们对于实体或者实体的属性的情感倾向,例如评价、态度、情绪等。
文本情感分析方法一般采用基于语义词典的方法,或者采用有监督地分类学习的方法。其中,基于语义词典的方法,需要事先建立语义词典,语义词典中包括许多情感词,以及与情感词对应的分值。一般来说,一个情感词对应的分值是正值,表示该情感词的情感倾向是正向的、积极的,即该情感词的极性为正评价;相反地,一个情感词对应的分值是负值,表示该情感词的情感倾向是负向的、消极的,即该情感词的极性为负评价。在分析时,一般先将待分析文本与语义词典中的情感词进行匹配;如果待分析文本中的一个字符串能够与某一个情感词匹配上,就把该字符串提取出来作为评价词,并将该情感词对应的分值赋予给该评价词。最后,计算该待分析文本的总分,就作为该待分析文本的情感分析结果。其分析结果所针对的评价对象往往是事先确定的,或者通过其他方法单独从文本中提取出来的。
当事先确定的或者单独提取的评价对象存在多个时,利用上述的基于语义词典的情感分析方法,对评价对象的情感分析结果准确率较低,这是本领域技术人员亟待解决的问题。
发明内容
为解决上述技术问题,本申请提供一种文本情感分析方法,以提高情感分析结果的准确率。
第一方面,提供一种文本情感分析方法,包括:
获取待分析的单句文本;
从所述单句文本中查找评价词,所述评价词为所述单句文本中与预设的关键词表达式匹配的字符串;
从所述单句文本中查找出与所述评价词对应的评价对象;
根据所述评价词的极性,记录所述评价词对应的评价对象的分数。
结合第一方面,在第一方面第一种可能的实现方式中,从所述单句文本中查找出与所述评价词对应的评价对象的步骤,包括:
根据所述评价词在所述单句文本中的位置,确定第一查找区域;
从所述第一查找区域中查找出与所述评价词对应的评价对象。
结合第一方面的第一种实现方式,在第一方面第二种可能的实现方式中,根据所述评价词在所述单句文本中的位置,确定第一查找区域的步骤,包括:
根据所述评价词所匹配的关键词表达式,确定与所述关键词表达式对应的区域确定规则;
根据所述区域确定规则,以及所述评价词在所述单句文本中的位置,确定第一查找区域。
结合第一方面及上述可能的实现方式,在第一方面第三种可能的实现方式中,从所述第一查找区域中查找出与所述评价词对应的评价对象的步骤,包括:
如果从所述第一查找区域中查找出多个评价对象,则判断所述多个评价对象之间的关系是否为并列关系;
如果是并列关系,则分别构建所述多个评价对象与所述评价词之间的对应关系。
结合第一方面及上述可能的实现方式,在第一方面第四种可能的实现方式中,确定所述评价词的极性的步骤,包括:
根据所述评价词匹配的关键词表达式对应的极性,确定所述评价词的极性。
结合第一方面及上述可能的实现方式,在第一方面第五种可能的实现方式中,确定所述评价词的极性的步骤,还包括:
如果所述关键词表达式对应预设的第一标识,则根据所述评价词在所述单句文本中的位置,确定第二查找区域;
如果所述第二查找区域中包含预设的否定词,则将所述评价词的极性更新为与当前相反的极性。
结合第一方面及上述可能的实现方式,在第一方面第六种可能的实现方式中,所述关键词表达式对应预设的评价维度;
根据所述评价词的极性,记录所述评价词对应的评价对象的分数的步骤,包括:
根据所述评价词匹配的关键词表达式对应的评价维度,确定所述评价词对应的评价维度;
根据所述评价词的极性,记录所述评价词对应的评价对象在所述评价维度上的分数。
结合第一方面及上述可能的实现方式,在第一方面第七种可能的实现方式中,获取待分析的单句文本的步骤,包括:
获取待分析文本;
利用训练好的分类器对待分析文本分类,其中,分类的类别包括评价类别,所述分类器通过带类别标注的文本训练分类模型而得到;
如果待分析文本属于评价类别,则根据预设的分隔符,将所述待分析文本分割为至少一个单句文本。
第二方面,提供一种文本情感分析装置,包括:
获取模块,用于获取待分析的单句文本;
处理模块,用于从所述单句文本中查找评价词;从所述单句文本中查找出与所述评价词对应的评价对象;以及,根据所述评价词的极性,记录所述评价词对应的评价对象的分数,其中,所述评价词为所述单句文本中与预设的关键词表达式匹配的字符串。
第三方面,提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面的任一种方法。
上述的情感分析方法,首先获取待分析的单句文本,然后利用关键词表达式从单句文本中查找出评价词。再从单句文本中查找出与评价词对应的评价对象,根据评价词的极性,记录评价词对应的评价对象的分数。通过这样的方法,一方面,由于关键词表达式中可以考虑到词语的不同组合或者多种不同的句式,从而能够查找出更有针对性、极性更加准确的评价词;另一方面,根据评价词的极性为评价词对应的评价对象打分,减少评价词与评价对象张冠李戴的情况,进而提升情感分析结果准确率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请文本情感分析方法的一个具体实施方式的流程图;
图2为本申请文本情感分析方法的一个具体实施方式中,S300步骤的其中一种实现方式的流程图;
图3为本申请文本情感分析方法的一个具体实施方式中,S310步骤的其中一种实现方式的流程图;
图4为本申请文本情感分析方法的一个具体实施方式中,S320步骤的其中一种实现方式的流程图;
图5为本申请文本情感分析方法的一个具体实施方式中,确定评价词的极性的步骤的其中一种实现方式的流程图;
图6为本申请文本情感分析方法的一个具体实施方式中,S400步骤的其中一种实现方式的流程图;
图7为本申请文本情感分析装置的一个具体实施方式的结构示意图。
具体实施方式
下面对本申请的实施例作详细说明。
当事先确定的或者单独提取的评价对象存在多个时,利用基于语义词典的情感分析方法,对评价对象的情感分析结果准确率较低,其原因主要有两个。
第一,语义词典中的情感词均是单个的词语,在查找评价词时,仅仅将待分析文本词简单地与情感词进行匹配,而未考虑词语组合以及句式的不同对于文本的情感倾向的影响。
例如,在物流领域的文本中,“送货慢”是一个负评价的词,“及时”是一个正评价的词。而像“还不到”、“X天”这样的词,由于本身并没有表示正向或者负向的情感倾向,因而并没有被收录在语义词典中。对于文本1“快递等了五天还不到”来说,其不能与语义词典中的任何一个情感词匹配上。因而利用基于语义词典的方法,会无法得到文本1的情感分析结果,或者将文本1确定为中性的评价。但是文本1实际上通过“X天”和“还不到”的组合,表达了不满的情绪,属于负评价。这就导致文本的情感分析的结果出现错误,影响了情感分析结果的准确率。此外,又例如,对于文本2“还不到两天就收到快递了”来说,尽管其与文本1和文本2都包括了“还不到”和“X天”这两个词,但由于两个词的顺序改变导致文本的句式发生了改变,导致文本所要表达的情感倾向也发生了改变。与文本1相反,这里的文本2实际上表达了满意的情绪,属于正评价。
第二,存在多个评价对象时,从待分析文本中匹配出的评价词所针对的评价对象容易混淆,这也导致了针对评价对象的情感分析结果准确率低。
例如,针对文本3“顺A配送真的很及时,EMX送货慢太多了”,假设该文本预设的评价对象是顺A公司。利用语义词典,可以同时从文本3中匹配到一个表达正评价的词“及时”,以及一个表达负评价的词“送货慢”。那么,在做文本情感分析时,计算机会错误地将两个词都当做顺A公司的评价词,进而导致针对评价对象的情感分析结果出错。
为此,本申请的第一个实施例提供一种文本情感分析方法,利用关键词表达式更加准确地查找出评价词,同时查找与评价词对应的评价对象,根据评价词的极性来为对应的评价对象打分。
对于一个待分析文本来说,可以将该文本按照分隔符划分成至少一个单句文本,然后以该单句文本为单位,使用本实施例的方法来记录评价词对应的评价对象。当需要根据整个待分析文本来分析文本的整体情感倾向时,再利用针对单句文本的分析结果,计算整个文本中特定的或者所有的评价对象的总分数,从而得到更加准确的针对评价对象的情感分析结果。类似地,当需要根据大量待分析文本来分析文本的整体情感倾向时,也可以利用针对单句文本的分析结果,来计算大量待分析文本中一个或多个评价对象的总分数,从而得到更加准确的针对评价对象的情感分析结果。
以下将对一个单句文本的分析方法做详细说明。
请参考图1,本实施例提供一种文本情感分析方法,包括S100至S400的步骤。
S100:获取待分析的单句文本。
这里的待分析的单句文本,可以从整个待分析文本中分割得到。在分割时,可以根据分隔符,例如“。”、“;”、“?”、“!”、“~”、“……”、“//”等,来将待分析文本切分成一个或多个单句文本。分隔符可以包括预设的多种不同形式的标点符号,例如中文标点符号、英文标点符号、全角模式下的标点符号、半角模式下的标点符号等,本申请对此不作限定。
本申请对于待分析文本的来源和行业领域不作限定,例如,待分析文本可以是用户对于物流行业所提供的服务的评价文本,也可以是消费者对于商品的评价文本等。
在一种实现方式中,在获取到待分析文本之后,可以先利用分类器对待分析文本进行分类。这里的分类器需要提前训练好,即通过带类别标注的文本训练分类模型而得到的。分类器可以将待分类文本划分为“评价类别”、“非评价类别”等类别。如果待分类文本属于“评价类别”,则可以从该待分类文本中分割出至少一个单句文本,用来执行S100至S400的情感分析方法。如果待分类文本属于“非评价类别”,则可以不对该文本做情感分析。通过这样的方法,可以对批量的待分析文本进行初步筛选,从而减少不相关的文本对整体的情感分析结果的干扰。
这里的分类模型可以是常见的用于文本分类的模型,例如卷积神经网络(CNN)模型、递归神经网络(RNN)模型、条件随机场(CRF)模型等深度学习模型。在训练的时候,所使用的训练语料是带类别标注的文本,即“文本-类别标签”这样形式的训练语料。将文本作为输入值,输入到分类模型中,经过分类模型的预测,得到一个预测值,这里的预测值是分类模型所预测的文本的类别。然后根据预测值和类别标签的差值,来调整分类模型中的参数。通过大量训练语料的训练,最终可以得到前述的分类器。
S200:从所述单句文本中查找评价词,所述评价词为所述单句文本中与预设的关键词表达式匹配的字符串。
关键词表达式可以是正则表达式,用于表示期望匹配出的字符串。例如,表1示出了针对物流行业的文本的几个关键词表达式的示例。
表1
需要说明的是,在关键词表达式中,“|”表示逻辑或,“()”表示多元取整。例如,在关键词表达式4中,“(派送|送货|送达|送到|送来)”表示将括号内匹配内容看成一个整体进行匹配,在匹配时,文本中的字符串能够与用“|”分割的任意一个词匹配上,就可以认为该字符串与“(派送|送货|送达|送到|送来)”匹配。
“[]”表示匹配指定范围内的任意字符。例如,在关键词表达式2中,“[的地得]”表示在匹配时,文本中只要有“的”、“地”和“得”中的任一个字符,就可以与“[的地得]”匹配上。
“$”表示从行尾匹配。例如,在关键词表达式2中,“[的地得]快$”表示从行尾开始匹配,先匹配“快”,如果文本中的一个字符也是“快”,则看“快”的前一个字符是否为“的”、“地”和“得”中的任一个字符。如果是,则该文本中的两个字符组成的字符串就可以与关键词表达式2匹配上。
{X1,X2}表示前后的间隔字符数。例如,在关键词表达式6中,“主动{0,5}(赔|解决|回复|处理|联系)”表示在匹配文本时,只要“主动”与“赔|解决|回复|处理|联系”之间包含0-5个字符的文本,都会被“主动{0,5}(赔|解决|回复|处理|联系)”匹配上。
应理解,表1中出现的符号仅仅是举例,在关键词表达式中还可以包括其他正则表达式中常用的符号,本申请对此不作限定。
单句文本中与预设的关键词表达式匹配的字符串,就是从单句文本中查找出的评价词。例如,对于文本4,“圆C很给力,快递小哥送货送的快”,其可以与关键词表达式3匹配,从中可以查找出评价词1“给力”。
应理解,从一个单句文本中,可以查找出一个或多个评价词。例如前述的文本4,其还可以与关键词表达式2匹配,从中可以查找出评价词2“的快”。
当查找出多个评价词时,则需要分别针对每个评价词查找其对应的评价对象,并根据该评价词的极性,记录该评价对象的分数。同一个评价对象,可以被多次记录分数。
在关键词表达式中,可以考虑词语的不同组合或者多种不同的句式对语义产生的影响,从而查找出更有针对性的、极性更加准确的评价词,而不再仅仅依靠匹配单个词来确定匹配出的评价词的极性。
S300:从所述单句文本中查找出与所述评价词对应的评价对象。
评价对象,指的是人们表达情感倾向所针对的对象,该对象可以是实体,例如人、物、组织等,也可以是实体的属性,例如人的体重、物的颜色、组织的规模等。
对于一个情感分析任务来说,其所针对的评价对象可以是预先设定好的,也可以是通过其他方法单独从文本中提取出来的。例如,对于物流行业的用户评价文本做情感分析,其所针对的评价对象可能是一家特定的物流公司,也可能是市面上已有的多家物流公司。
针对每一个评价词,查找出该评价词所针对的评价对象,这样就可以减少出现张冠李戴的情况。即,将不用于评价评价对象A的评价词p1错误地与该评价对象A对应起来,或者将用于评价评价对象A的评价词p2错误地与其他评价对象对应起来。进而,提升针对一个或者多个评价对象的情感分析结果准确率。
在一种实现方式中,请参考图2,S300的步骤包括:
S310:根据所述评价词在所述单句文本中的位置,确定第一查找区域;
S320:从所述第一查找区域中查找出与所述评价词对应的评价对象。
第一查找区域,指的是评价词在单句文本中的位置前后预设数量个字符的区域。
一般来说,在自然语言表达的时候,一个评价词所针对的评价对象通常不会距离该评价词太远,否则会导致看到这个文本的人无法理解其要表达的语义。因此,可以根据评价词在单句文本中的位置,确定第一查找区域,然后在第一查找区域中查找评价对象,从而提高与评价词对应的评价对象的查找准确率。
例如,对于文本4,“圆C很给力,快递小哥送货送的快”,针对评价词1“给力”,可以将其之前的第1个至第5个字符,确定为该评价词1对应的第一查找区域1。由于评价词1之前只有3个字符,故而将其之前的第1个至第3个字符确定为第一查找区域1,即“圆C很”。然后,从该第一查找区域1中查找评价对象。假设预设的评价对象如表2所示,那么,从第一查找区域1中就可以查找出与评价词1对应的评价对象“圆C”。
表2
序号 |
物流公司 |
1 |
顺A |
2 |
申B |
3 |
圆C |
4 |
中D |
5 |
EMX |
6 |
韵E |
7 |
…… |
这里,第一查找区域是在评价词之前的区域,也可以是在评价词之后的区域,还可以包括之前和之后的区域。在一种实现方式中,在确定第一查找区域的时候,可以根据关键词表达式的不同来预设不同的区域确定规则,从而确定出更加合理的第一查找规则,进而提高与评价词对应的评价对象的查找准确率。基于此,请参考图3,S310的步骤可以包括:
S311:根据所述评价词所匹配的关键词表达式,确定与所述关键词表达式对应的区域确定规则;
S312:根据所述区域确定规则,以及所述评价词在所述单句文本中的位置,确定第一查找区域。
区域确定规则可以利用区域确定规则标识来标记,例如,“1”、“2”、“3”等。请参考表1,在表1中,每一个关键词表达式都对应一个区域确定规则标识,用于指示利用该关键词表达式查找出的评价词所对应的第一查找区域,应该通过哪一种预设的区域确定规则来确定。
其中,区域确定规则标识为“1”,表示向前查找,即将单句文本中的第一个字符到评价词之前的一个字符,确定为与该评价词对应的第一查找区域。
区域确定规则标识为“2”,表示向后查找,即将单句文本中评价词之后的第一个字符到句末的最后一个字符,确定为与该评价词对应的第一查找区域。
区域确定规则标识为“3”,表示双向查找,即将单句文本中的第一个字符到评价词之前的一个字符,以及,单句文本中评价词之后的第一个字符到句末的最后一个字符,确定为与该评价词对应的第一查找区域。
应理解,上述的区域确定规则仅仅是举例,除此以外,区域确定规则中还可以进一步预设第一查找区域的范围。例如,区域确定规则标识为“1”,可以表示将单句文本中评价词之前的第一个字符至第五个字符,确定为与该评价词对应的第一查找区域。
尽管一个待分析文本可能会包含对多个评价对象的情感倾向,但一般来说,在自然语言表达的时候,在一个单句文本中通常会专注表述一种情感倾向或者几种近似的情感倾向。故而,本申请中以单句文本为分析单位来针对评价对象做情感分析,一定程度上已经降低了评价词语评价对象对应错误的概率。然而,在某些情况下,仍然会出现从一个评价词对应的第一查找区域中,查找出多个评价对象的情况。
当仅查找出一个评价对象的时候,该评价对象就是与该评价词对应的评价对象。而当查找出多个评价对象的时候,需要对多个评价对象之间的关系进行判断,才能确定该评价词是否能够与多个评价对象分别对应,以便更加准确地分析出用户在文本中表达的情感倾向。
为此,请参考图4,在一种实现方式中,S320的步骤,可以包括:
S321:如果从所述第一查找区域中查找出多个评价对象,则判断所述多个评价对象之间的关系是否为并列关系;
S322:如果是并列关系,则分别构建所述多个评价对象与所述评价词之间的对应关系。
多个评价对象之间的关系,可能是并列关系,也可能是选择关系等其他非并列的关系。例如,对于文本5“顺A和圆C都很给力”,其中“顺A”和“圆C”就是并列关系。又例如,对于文本6“顺A最近怎么了,配送的速度奇慢,就快连EMX都比不上”,其中,“顺A”和“EMX”就不是并列关系。
如果从同一个第一查找区域中查找出的多个评价对象是并列关系,那么,表示该评价词可以同时用来评价多个评价对象,此时,可以分别构建所述多个评价对象与所述评价词之间的对应关系,以便更加全面地记录多个评价对象的分数,进而更加准确地分析出用户在文本中表达的情感倾向。
在一种实现方式中,判断多个评价对象之间是否为并列关系,可以看他们之间或者前后是否包含预设的字符串,例如“和”、“跟”、“还有”、“、”等词语或符号,或者是否存在“不管……还是”等短语。
如果从同一个第一查找区域中查找出的多个评价对象不是并列关系,那么,可以将距离评价词最近的一个评价对象,作为与该评价词对应的评价对象。
S400:根据所述评价词的极性,记录所述评价词对应的评价对象的分数。
评价词的极性,用于指示评价词所表达出的情感倾向是正向的还是负向的,一般包括正评价和负评价。
应理解,针对不同领域的行业或者应用场景,相同的评价词的极性可能相同,也可能不同。例如,一般来说,“及时”在物流行业,或者金融行业,其极性都是正评价。又例如,“时间很长”在物流行业,其极性大概率是负评价,而在描述电子产品的续航时间时,其极性是正评价。
评价词的极性,可以根据关键词表达式对应的预设极性来确定。用于表征期望通过该关键词表达式查找出的评价词的极性。请参考表1所示的实例,开发者期望关键词表达式4可以用来查找出单句文本中的类似于“按时派送”、“及时,送到”、“及时!送来”等极性为正评价的评价词,故而将关键词表达式4对应的极性预设为正评价。
在设定关键词表达式时,就可以同时预设每一个关键词表达式对应的极性,并用极性标识来表示。如表1所示的例子中,关键词表达式4所对应的极性标识为“1”,表示关键词表达式4所对应的极性为正评价;关键词表达式8所对应的极性标识为“-1”,表示关键词表达式8所对应的极性为负评价。其他的关键词表达式对应的极性标识与此含义相同。
基于此,请参考图5,在一种实现方式中,评价词的极性的确定方法,可以包括:
S401:根据所述评价词匹配的关键词表达式对应的极性,确定所述评价词的极性。
对于每一个从单句文本中查找出的评价词,该评价词是通过哪一个关键词表达式查找出来的,就将该关键词表达式对应的极性赋予该评价词,从而确定该评价词的极性。
评价对象的分数,可以根据不同的预设规则来记录。在一种实现方式中,如果评价词的极性是正评价,则可以将评价对象的分数记录为正数。如果评价词的极性是负评价,则可以将评价对象的分数记录为负数。另外,评价对象的分数也可以直接以极性标识来表示,例如,表1中以“1”表示正评价,以“-1”表示负评价,则可以直接将标识作为评价对象的分数。此外,还可以将标识与预设的权值相乘,来作为评价对象的分数。
对于某些评价词来说,如果其前后有特定的否定词,则其所表达的情感倾向会截然不同。例如,对于文本7“最不喜欢顺A了!”来说,利用关键词表达式5,可以从其中查找出评价词“喜欢”,其极性是正评价。但是,这句话实际表达了不满的情绪,属于负评价。因此,单句文本中的评价词的极性如果发生错误,会直接影响到情感分析结果的准确率。
为此,上述评价词的极性的确定方法,还可以包括:
S402:如果所述关键词表达式对应预设的第一标识,则根据所述评价词在所述单句文本中的位置,确定第二查找区域;
S403:如果所述第二查找区域中包含预设的否定词,则将所述评价词的极性更新为与当前相反的极性。
上述的第一标识,用于指示:当与所述关键词表达式匹配的评价词的特定位置存在否定词时,其所表达的情感倾向与评价词本身所表达的情感倾向相反。这里特定位置,可以是评价词之前、之后或者中间。上述的否定词可以是具有否定语义的词,例如不、没、别、木有、未、无法、不是等。举例来说,“很给力”本身所表达的情感倾向是正向的,其极性为正评价,但当其之前存在否定词“不是”时,“不是很给力”所表达的情感倾向就变成了负向。如果一个关键词表达式所查找出的评价词存在这样的情况,就为其标注第一标识。
此外,如果一个关键词表达式所查找出的评价词一般不存在这样的情况,就可以为其标注第二标识,第一标识和第二标识可以统称为否定词标识。例如,表1所示的实例的否定词标识一列中,“1”就是第一标识,“0”就是第二标识。
第二查找区域可以是单句文本中评价词之前和/或之后预设数量个字符的区域。例如,可以将评价词之前的第三个字符至评价词之后的第四个字符,确定为第二查找区域。
对于一个评价词而言,如果一个单句文本中的否定词距离其太远,该否定词可能并不是用于描述该评价词。例如,对于文本8“顺A真是别出心裁,圣诞节还能专门送苹果,给力!”,
“给力”是一个评价词,该文本8中也能够查找出预设的否定词——“别”,但是显然,其并不用于否定“给力”,实际上,“别”在文本8中并不是作为否定词来使用。为此,可以通过确定第二查找区域,在第二查找区域中查找预设的否定词。如果第二查找区域中包含预设的否定词,再将评价词的极性更改为与当前相反的极性,从而确定评价词极性的准确率,进而提高情感分析结果的准确率。
举例来说,预设第二查找区域为评价词之前的两个字符,否定词包括:不、没、未。
对于文本7“最不喜欢顺A了!”,利用关键词表达式5可以从中查找出评价词“喜欢”。由于关键词表达式5对应的极性为正评价,故而评价词“喜欢”的极性也为正评价。然后确定第二查找区域为“最不”,由于第二查找区域中包含了否定词“不”,故而将评价词“喜欢”的极性更改为负评价,并以此来记录对应的评价对象“顺A”的分数。
在针对评价对象做情感分析时,除了可以根据极性从整体上来为评价对象打分以外,还可以细分出不同的维度,从而可以从不同的维度来为评价对象打分,以便更加精细、准确地分析出评论者在文本中所表达地情感倾向。
为此,在一种实现方式中,所述关键词表达式对应预设的评价维度。
请参考图6,前述的S400的步骤,包括:
S410:根据所述评价词匹配的关键词表达式对应的评价维度,确定所述评价词对应的评价维度;
S420:根据所述评价词的极性,记录所述评价词对应的评价对象在所述评价维度上的分数。
评价维度,指的是从观察评价文本的角度。针对不同领域的行业或者应用场景,评价维度可以是多种多样的。例如,对于物流行业来说,其评价维度可以包括:时效性、问题处理、收费等。其中,时效性主要是指从物流过程中的时效的角度去观察评价文本,比如派送速度、流转速度等,都可以归类为时效性。问题处理主要是从服务过程中问题处理的角度去观察文本,例如遇到派送延迟、货物损坏等问题。收费主要是指从物流费用的角度去观察评价文本,比如价格贵、价格浮动等,都可以归类为收费。此外,评价维度还可以包括货物安全性、服务质量、整体性评价等其他维度。安全性主要是从货物安全性的角度去观察文本,服务质量主要是从服务工作与被服务者的需求之契合度的角度去观察文本,整体性评价主要从整体综合的角度去观察文本。
在设定关键词表达式时,就可以同时预设每一个关键词表达式对应的评价维度。如表1所示的实例中,关键词表达式1所对应的评价维度为“时效性”,关键词表达式3所对应的评价维度为“整体性评价”;关键词表达式6所对应的评价维度为“问题处理”。
基于此,对于每一个从单句文本中查找出的评价词,该评价词是通过哪一个关键词表达式查找出来的,就将该关键词表达式对应的评价维度赋予该评价词,从而确定该评价词的评价维度。然后,再记录该评价词对应的评价对象在特定的评价维度上的分数。当计算评价对象的总分数的时候,可以将同一个评价对象的分数,按照不同的评价维度来统计计算,从而得到更加精细、准确的情感分析结果。
对于批量待分析文本而言,每一个其中的单句文本可以作为分析对象,如果其中能够查找出评价词和对应的评价对象,就记录该评价对象的分数。如果查找不到,则不记录分数。
例如前述的文本3,可以得到的记录结果是:
评价对象 |
评价维度 |
分数 |
顺A |
时效性 |
+1 |
EMX |
时效性 |
-1 |
前述的文本4,可以得到的记录结果是:
评价对象 |
评价维度 |
分数 |
圆C |
整体性评价 |
+1 |
圆C |
时效性 |
+1 |
前述的文本5,可以得到的记录结果是:
评价对象 |
评价维度 |
分数 |
顺A |
整体性评价 |
+1 |
圆C |
整体性评价 |
+1 |
前述的文本7,可以得到的记录结果是:
最后计算各个评价对象在不同评价维度的总分数,可以得到如下的结果:
通过上述的情感分析结果,可以看出用户对于顺A和圆C的情感倾向都是正向的,并且对于圆C的正向倾向程度大于顺A;而对于EMX的是负向的。其中,在时效性上,用户的情感倾向程度,依次为顺A=圆C>EMX。在整体性评价上,用户的情感倾向程度,依次为圆C>顺A。
本申请的情感分析方法,由于关键词表达式中可以考虑词语的不同组合或者多种不同的句式,从而能够查找出更有针对性、极性更加准确的评价词。根据评价词的极性为评价词对应的评价对象打分,可以减少评价词与评价对象张冠李戴的情况,进而提升情感分析结果准确率。
此外,对于开发者来说,采用上述的方法,只需要构建和维护如表1所示的关键词表达式表以及表2所示的评价对象表即可,建模和维系成本较低。尤其是与有监督地分类学习的方法相比,有监督地分类学习的方法需要耗费大量的时间和人力来标注语料,成本很大,而采用本申请的方法能够显著降低成本。
应理解,上述的情感分析方法尽管都是以物流行业的文本来举例,但是,该方法不仅可以应用于物流行业文本的情感分析,也可以应用到其他行业,例如银行、保险等金融行业等。
在本申请的第二个实施例中,请参考图7,提供一种文本情感分析装置,包括:
获取模块1,用于获取待分析的单句文本;
处理模块2,用于从所述单句文本中查找评价词;从所述单句文本中查找出与所述评价词对应的评价对象;以及,根据所述评价词的极性,记录所述评价词对应的评价对象的分数,其中,所述评价词为所述单句文本中与预设的关键词表达式匹配的字符串。
可选地,处理模块2还可以用于根据所述评价词在所述单句文本中的位置,确定第一查找区域;以及,从所述第一查找区域中查找出与所述评价词对应的评价对象。
可选地,处理模块2还可以用于根据所述评价词所匹配的关键词表达式,确定与所述关键词表达式对应的区域确定规则;根据所述区域确定规则,以及所述评价词在所述单句文本中的位置,确定第一查找区域。
可选地,处理模块2还可以用于在从所述第一查找区域中查找出多个评价对象的情况下,判断所述多个评价对象之间的关系是否为并列关系;以及,在是并列关系的情况下,分别构建所述多个评价对象与所述评价词之间的对应关系。
可选地,处理模块2还可以用于根据所述评价词匹配的关键词表达式对应的极性,确定所述评价词的极性。
可选地,处理模块2还可以用于在所述关键词表达式对应预设的第一标识的情况下,根据所述评价词在所述单句文本中的位置,确定第二查找区域;以及,在所述第二查找区域中包含预设的否定词的情况下,将所述评价词的极性更新为与当前相反的极性。
可选地,所述关键词表达式对应预设的评价维度;处理模块2还可以用于根据所述评价词匹配的关键词表达式对应的评价维度,确定所述评价词对应的评价维度;以及,根据所述评价词的极性,记录所述评价词对应的评价对象在所述评价维度上的分数。
可选地,获取模块1还可以用于获取待分析文本;
处理模块2还可以用于利用训练好的分类器对待分析文本分类;以及,在待分析文本属于评价类别的情况下,根据预设的分隔符,将所述待分析文本分割为至少一个单句文本。其中,分类的类别包括评价类别,所述分类器通过带类别标注的文本训练分类模型而得到。
可选地,该文本情感分析装置可以应用于处理物流行业的文本,评价对象可以是物流公司。
此外,本实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行第一个实施例中所述的任一种方法的部分或全部步骤。
这里的可读存储介质可为磁碟、光盘、DVD、USB、只读存储记忆体(ROM)或随机存储记忆体(RAM)等,本申请对具体的存储介质形式不作限定。
文本情感分析装置以及计算机可读存储介质用于执行第一个实施例中的任一种方法的部分或全部步骤,相应地具有前述方法所具有的有益效果,此处不再赘述。
应理解,在本申请的各种实施例中,各步骤的执行顺序应以其功能和内在逻辑确定,各步骤序号的大小并不意味着执行顺序的先后,不对实施例的实施过程构成限定。
除非另外说明,本说明书中的“多个”,指的是两个或者两个以上。此外,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解,“第一”、“第二”等字样并不对数量和执行次序构成限定,并且“第一”、“第二”等字样也并不限定一定不同。
应理解,本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于情感分析装置、计算机可读存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。以上所述的本发明实施方式并不构成对本发明保护范围的限定。