本发明涉及信息处理技术领域,特别是涉及文章情感的分析方法和装置。
背景技术:
随着互联网的迅猛发展,互联网上出现的文章数量也是越来越多。人们在工作的过程中有时候需要一篇或多篇文章的情感倾向,面对浩瀚的网络文章,依靠人工评判难以做到及时响应,通过计算机来实现文章情感分析的技术也应运而生。
传统的情感分析的方法,通常都是对每个词语设置了固定的情感数值,情感数值体现出了该词语的情感色彩,比如为负面情感或正面情感。然后根据组成一篇文章的每个词语的情感数值进行简单的叠加,即得到了该文章所表达的情感。然而由于语言的复杂性,同样的词语用在不同的语言环境或与不同的词语的组合,所表达的情感也不尽相同。因此,传统的文章情感分析的方法所分析出的文章所表达的情感的准确性不高。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种能够提高文章的情感分析的准确性的文章情感的分析方法和装置。
一种文章情感的分析方法,所述方法包括以下步骤:
获取待分析的文章;
对所述文章中的内容进行词句切分,生成对应数量的词句;
根据所述词句确定所述文章描述的主体;
获取每个词句的特征向量;
根据每个词句的特征向量计算所述文章对所述主体的描述的情感强度。
在其中一个实施例中,所述获取每个词句的特征向量的步骤,包括:
对切分后的词句进行筛选,获取筛选后的词句的特征向量;
所述根据每个词句的特征向量计算所述文章对所述主体的描述的情感强度的步骤,包括:
根据筛选后的词句的特征向量计算所述文章对所述主体的描述的情感强度。
在其中一个实施例中,所述获取每个词句的特征向量的步骤,包括:
当获取不到所述词句的特征向量时,检测预设的词库中是否存在与所述词句相近的词句,若是,则获取该相近词句的特征向量,将其作为该词句的特征向量,若否,则将预设的默认特征向量作为所述词句的特征向量。
在其中一个实施例中,所述根据每个词句的特征向量计算所述文章对所述主体的描述的情感强度的步骤,包括:
根据每个词句的特征向量计算对应文章的特征向量;
根据所述文章的特征向量计算出所述文章的情感数值;
根据所述文章的感情数值确定所述文章对所述主体的描述的情感强度。
在其中一个实施例中,所述根据所述文章的特征向量计算出所述文章的情感数值的步骤,包括:
重复预设次数,从文章的特征向量中随机选取第一数量的参数,构成对应的第二数量的子向量;
计算每个子向量对应的子情感数值,根据每个子情感数值计算所述文章的情感数值。
在其中一个实施例中,所述方法还包括:
获取主体相同的文章的情感强度,计算相同主体的综合情感强度。
一种文章情感的分析装置,所述装置包括:
文章获取模块,用于获取待分析的文章;
词句切分模块,用于对所述文章中的内容进行词句切分,生成对应数量的词句;
主体确定模块,用于根据所述词句确定所述文章描述的主体;
特征向量获取模块,用于获取每个词句的特征向量;
情感强度计算模块,用于根据每个词句的特征向量计算所述文章对所述主体的描述的情感强度。
在其中一个实施例中,所述情感强度计算模块还用于根据每个词句的特征向量计算对应文章的特征向量;根据所述文章的特征向量计算出所述文章的情感数值,根据所述文章的感情数值确定所述文章对所述主体的描述的情感强度。
在其中一个实施例中,所述情感强度计算模块还包括:
子向量构建单元,用于重复预设次数,从文章的特征向量中随机选取第一数量的参数,构成对应的第二数量的子向量;
情感数值计算单元,用于计算每个子向量对应的子情感数值,根据每个子情感数值计算所述文章的情感数值。
在其中一个实施例中,所述装置还包括:
综合情感强度计算模块,用于获取主体相同的文章的情感强度,计算相同主体的综合情感强度。
上述文章情感的分析方法和装置,通过预先设置每个词句的特征向量,并对文章进行词句切分,以确定文章的描述主体,然后根据所切分的词句的特征向量,计算出该文章对主体的描述的情感强度。相比于传统的通过每个词语对应的固定数值来计算文章的情感强度,本实施例所提供的文章情感的分析方法,所计算出的文章所表达的情感强度的准确性更高。
附图说明
图1为一个实施例中用于执行文章情感的分析方法的服务器或终端的内部结构示意图;
图2为一个实施例中文章情感的分析方法的流程图;
图3为一个实施例中根据每个词句的特征向量计算文章对主体的描述的情感强度的步骤的流程图;
图4为一个实施例中根据文章的特征向量计算出文章的情感数值的步骤的流程图;
图5为另一个实施例中文章情感的分析方法的流程图;
图6为一个实施例中文章情感的分析装置的结构框图;
图7为一个实施例中情感强度计算模块的结构框图;
图8为另一个实施例中文章情感的分析装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在一个实施例中,如图1所示,为一个终端或服务器或终端的内部结构示意图。该服务器或终端包括通过系统总线连接的处理器、非易失性存储介质和内存储器。其中,服务器的非易失性存储介质存储有操作系统和数据库,还包括一种文章情感的分析装置。数据库用于存储于实现一种文章情感的分析方法相关的数据,包括存储预先建立的词句的语义数据等,文章情感的分析装置用于实现一种文章情感的分析方法。该处理器用于提供计算和控制能力,支撑整个服务器的运行。服务器中的内存储器为非易失性存储介质中的文章情感的分析装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种文章情感的分析方法。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图2所示,提供了一种文章情感的分析方法,该方法可应用与如图1所示的服务器或终端中,包括以下步骤:
步骤202,获取待分析的文章。
本实施例中,可从预先设置好的一个或多个网站中获取其所公布的文章,或者直接读取预先准备好的文章,将所获取到的准备分析其所表达的情感的文章。待分析的文章可以是中文文章,也可以是英文文章等。其中,待分析的文章包括文章标题与文章正文,还包括作者、发表时间以及章节以及文章等其中的一种或多种。文章所表达的情感包括正面情感、负面情感以及中立的情感。
步骤204,对文章中的内容进行词句切分,生成对应数量的词句。
本实施例中,预先建立了词句的语义数据库,该语义数据库中包含了大量的词句(即词语和句子)。终端或服务器可根据文章所属语言,按照相应的语法树的规则,并结合语义数据库中所记录的句子,将文章中的每个句子切分成相应数量的词句。并确定每个词语在该句子中的词性以及在文章中所处的位置,比如确定某个词语为名词,并为该句子中的主语。词句在文章中所处的位置包括处于标题、处于文章正文中、处于章节的题目中、文章作者、发表时间等。
在一个实施例中,在进行词句切分的过程中,若一个句子中的连续排列在一块的多个词语,在数据库中对应存在一个完整的词语,则将该多个词语组成一个词语,使切割后的词句保持一个整体。
举例来说,比如存在一个句子如下“平安科技有限公司……”,则在进行词句切分的时候,“平安”、“科技”、“公司”这些都可作为一个独立的词语,若数据库中保存了一个独立的词语为“平安科技有限公司”,则将该句子中的“平安科技有限公司”保留为一个整体,使其不再进行进一步切分。
步骤206,根据词句确定文章描述的主体。
本实施例中,可根据切分后的词句的词性以及在文章中所处的位置来确定该文章描述的主体。可直接对文章标题进行语法分析逻辑判断,将标题的主语作为文章描述的主体。还可进一步根据语法分析逻辑分析每个句子的主语,统计具有相同含义的主语的词语的出现次数,将统计出的出现的次数最多的具有相同含义的词语所表示的含义作为文章描述的主体。
举例来说,若一篇文章中,出现“平安科技”、“平安公司”以及“平安公司总裁”这三个主语,则可将上述的三个主语识别为表示具有相同含义的主语的词语,其描述的主体均为“平安科技有限公司”。
步骤208,获取每个词句的特征向量。
本实施例中,语义数据库中还进一步设置了每个词句的实数特征向量,每个词句的特征向量的维数相同(设为维向量),每一维度的参数表征了该词句在对应一个方面上的语义。其中,维数越大,则该特征向量所能够表示的一个词句的语义也就越丰富。比如,该特征向量的第一个维度表示的是一个词句属于名词的概率。在一个实施例中,每个词句的特征向量为150维的实数向量。
具体的,可通过深度学习的思想,利用预先建立的语言模型,将数据库中的每个词句作为特征,将其射到K维向量空间进行训练,获取一个词句向量空间上的表示,最终训练得出的词句具有唯一对应的一个特征向量。其中,可结合潜在语义分析(Latent Semantic Index,LSI)、潜在狄立克雷分配(Latent Dirichlet Allocation,LDA)或者Word2vec等来建立语言模型。其中,K值可为自定义的一个数值,比如为100、120、150、180、200等。
步骤210,根据每个词句的特征向量计算文章对主体的描述的情感强度。
本实施例中,在获取到每个词句的特征向量后,可根据每个词句的特征向量,进行向量运算,计算出文章对主体的情感强度。该情感强度可通过情感数值来体现。其中,情感数值为一个实数,具体可为处于一个实数范围内的实数,比如为处于-1到1之间的实数。数字越小,所表达的负面情感越强烈;反之,则表达的正面情感越强烈;处于越中间的数值,则表示的情感越中立。
本实施例中,通过预先设置每个词句的特征向量,并对文章进行词句切分,以确定文章的描述主体,然后根据所切分的词句的特征向量,根据该特征向量计算出文章对主体的描述的情感强度。相比于传统的通过每个词语对应的固定数值来计算文章的情感强度,本实施例所提供的文章情感的分析方法,所计算出的文章所表达的情感强度的准确性更高。
在一个实施例中,步骤208包括:对切分后的词句进行筛选,获取筛选后的词句的特征向量。
步骤210包括:根据筛选后的词句的特征向量计算文章对主体的描述的情感强度。
本实施例中,在完成对文章中的内容的词句切分后,可根据所切分的词句的词性,进行筛选,以删除对于文章的情感数值计算具有干扰或意义不大的词句。具体的,可将词性判断为停用词或助词等词性的词句进行删除。比如,停用词为“the”、“is”、“at”、“that”、“是”、“的”等,助词比如为“也”、“者”、“乎”等。并获取删除后的词句的特征向量,根据删除后的词句的特征向量来计算该文章对主体所表达的情感强度。
本实施例中,通过进一步对所切分后的词句的筛选,根据筛选后的词句的特征向量计算文章的情感数值,既可减少情感数值的计算量,又可排除被删除的词句的干扰,提高了情感强度的计算的准确性。
在一个实施例中,步骤208包括:当获取不到词句的特征向量时,检测预设的词库中是否存在与词句相近的词句,若是,则获取该相近词句的特征向量,将其作为该词句的特征向量,若否,则将预设的默认特征向量作为词句的特征向量。
本实施例中,数据库中所存储的词句虽然众多,但一般无法穷尽所有的词句。因而待分析的文章中,可能使用了在数据库中不存在的词句。此时,可查询数据库中是否存在与该词句的含义相同或相近的词句,若存在,则将查询出存在与该词句含义最相近的词句的特征向量作为该在数据库中不存在的词句的特征向量。若不存在,则将以预设的一个默认特征向量作为该词句的特征向量,或者还可直接删除该词句。
本实施例中,含义越相同的词句,其特征向量特越相近,甚至在多数维度上的数值相同,仅在个别维度上的数值有较小的差别。因此,当数据库中不存在某一词句的特征向量时,可将与其相近的词句的特征向量作为该词句的特征向量,若也不存在与其相近的词句,则将一个默认的特征向量作为该词句的特征向量。由于一篇文章中,存在这类的词句的数量较少,采用上述的方法可保证最终所计算出的文章的情感强度的准确性。
在一个实施例中,如图3所示,根据每个词句的特征向量计算文章对主体的描述的情感强度的步骤,包括:
步骤302,根据每个词句的特征向量计算对应文章的特征向量。
本实施例中,可将每个词句的特征向量进行加权求和,将所得到的特征向量作为对应文章的特征向量。具体的,每个特征向量对应的权值可为一个默认的相同权值,还可结合每个词句的词性及其在文章中所处的位置,设置相对应的权值。比如,可将处于标题中的词句设置相对较大的权值,而将文章正文部分的词句设置相对较小的权值;将词性为名词的词句设置相对较小的权值,而将形容词设置相对较大的权值。
步骤304,根据文章的特征向量计算出文章的情感数值。
步骤306,根据文章的感情数值确定文章对主体的描述的情感强度。
本实施例中,在得到文章的特征向量后,可将其代入预先建立的情感数值计算模型中,计算出该文章的情感数值,然后根据该文章的情感数值确定文章对主体的描述的情感强度。
该情感数值计算模型为根据机器学习以及数据挖掘的初步模型,并经过样本数据的训练,最终得到的一个情感数值计算模型。其中,样本数据为具有一定数量(比如10000篇)的样本文章。每篇样本文章均设置了人工打出的情感数值,将该情感数值作为文章的特征向量的一个维度。比如,待分析的文章的特征向量为150维,则样本文章的特征向量即为151维,其中,第1维即为人工设置的情感数值。可将该样本文章代入初步模型中进行训练,根据训练结果对模型中的相关参数进行修正,直到计算得到的每篇文章的情感数值与对应人工设置的情感数值相同或处于一定范围的误差之内为止。此时,所得到的模型即为最终的情感数值计算模型。
具体的,将该文章的特征向量代入所建立的情感数值计算模型中,该模型可按照决策树的方法,将该特征向量进行分裂变量生成树,按照所确定的参数进行计算,最终该树的叶子节点输出模型结果,该结果为一个数值,该数值即可作为该文章的情感数值。
本实施例中,通过根据词句的特征向量计算出文章的特征向量,进而再根据文章的特征向量计算出对应文章的情感数值,根据文章的感情数值确定文章对主体的描述的情感强度,可进一步提高计算出的文章的情感数值的准确性。
在一个实施例中,如图4所示,根据文章的特征向量计算出文章的情感数值的步骤,包括:
步骤402,重复预设次数,从文章的特征向量中随机选取第一数量的参数,构成对应的第二数量的子向量。
本实施例中,预先设置了子向量的维度,该维度小于文章的特征向量(记为N维子向量)。服务器可从文章的特征向量中,随机或按照一定的选取规则选取N个参数,构成一个N为子向量。并重复执行预设次数,得到第二数量的子向量,其中,每个子向量所包含的文章的特征向量的参数不完全相同。预设次数可为根据特征向量与子向量的维度所设置的一个合适的数值。比如,可设置第二数量为K-N+1,重复预设次数为K-N+1次。并依次从文章的K为特征向量中选取第1~N个参数、第2~N+1个参数…第K-N+1~K个参数,分别构成K-N+1个子向量。
在一个实施例中,可按照信息减少最快或信息下降最大的方向选择文章的特征向量中的第一数量的参数,比如按照熵的计算方法,来进行参数的选择。重复预设次数,生成第二数量的子向量。
步骤404,计算每个子向量对应的子情感数值,根据每个子情感数值计算文章的情感数值。
本实施例中,基于决策树的方法,将每个子向量作为对应一颗数,利用随机森林方法,得到每棵树对应的数值,该数值即为子向量对应的子情感数值。将每个子情感数值进行加权平均,得到的数值即为文章的情感数值。
本实施例中,通过文章的特征向量构建相应数量的子向量,并计算出子向量的子情感数值,根据子情感数值得出文章的情感数值,可提高文章的情感数值的计算的效率。
在一个实施例中,上述的文章情感的分析方法还包括:获取主体相同的文章的情感强度;计算相同主体的综合情感强度。
本实施例中,如图5所示,提供了另一种文章情感的分析方法,该方法包括以下步骤:
步骤502,获取待分析的文章。
本实施例中,可预先设置所需获取的文章的来源,该来源可为一个或多个网站。服务器或终端可通过网络爬虫技术从预设的多个网站上获取其所发表的多个文章。进一步的,可设置一个获取时间间隔,根据该时间间隔周期性的从预设的文章的来源处获取在当前周期内所发表的文章。
步骤504,对文章中的内容进行词句切分,生成对应数量的词句。
步骤506,根据词句确定文章描述的主体。
本实施例中,同一主体的表述方式可能存在多种,服务器或终端可对所确定的文章的主体进行识别,将不同表述的主体归类为同一个主体。
步骤508,判断文章描述的主体是否为预设的主体,若是,则执行步骤510,否则,执行步骤514。
可预先设置所需要识别的一个或多个主体,并在通过步骤206识别出文章的主体后,判断该主体是否为预设的所需识别的主体,若是,则计算出该文章的情感数值,否则,舍弃该文章,并执行步骤514。
在一个实施例中,文章为新闻类的文章,文章的主体为上市企业。可将主体为同一企业的不同表述方式、以及该企业的子公司以及与该企业具有相关联的主体均判断为同一主体。比如,存在三篇文章,其主体分别为“平安集团”、“平安公司”、“平安集团的员工张三”,则可是识别出“平安集团”、“平安公司”均为“平安科技有限公司”这一主体,而“平安集团的员工张三”也与“平安科技有限公司”相关联,因而可将这三篇文章的主体判定为相同的主体。
所设置的需获取的文章的来源为预设的多个财经类网站,并周期性地通过网络爬虫技术从该网站获取在当前周期内所发表的文章。其中,可每天固定的时间获取在当天或前一天所发表的文章。
步骤510,获取每个词句的特征向量。
步骤512,根据每个词句的特征向量计算文章对主体的描述的情感强度。
本实施例中,可根据每个词句的特征向量计算出文章的特征向量,进而根据文章的特征向量计算出该文章的情感数值,将该情感数值归类到对应的主体中。具体的,可以以“主体-情感数值”的形式来存储所计算出的文章的情感数值,以便于进行汇总分析。根据文章的情感数值可确定该文章对主体的描述的情感强度。
步骤514,判断是否还存在待分析的文章,若是,则执行步骤502,否则,执行步骤516。
本实施例中,待分析的文章包括多个,在完成对当前文章的情感数值的计算之后,可检测是否还存在未检测的文章,若存在,则执行步骤502,获取下一个待分析的文章。
具体的,可对所提取的文章设置分析状态标记,该分析状态标记用于反映相应的文章的分析状态,分析状态包括未分析、正在分析、以及分析完毕。当文章处于分析中时,则更改其分析状态标记为表示正在分析中的标记,当分析完毕时,则更改其分析状态标记为表示已经分析完毕的标记。通过检测是否还存在表示未分析的状态标记,可获知是否还存在待分析的文章。
步骤516,获取主体相同的文章的情感强度,计算相同主体的综合情感强度。
在计算出所有所需识别的文章的情感强度后,可将具有相同的主体的文章的情感强度进行加权平均,得到当前周期下的相同主体的综合情感强度。其中每个文章的情感强度对应的权值可根据文章的来源进行设置,可设置为相同的权值或不同的权值。其中,可将具有相同的主体的文章的情感数值进行加权平均,得到当前周期下的相同主体的综合情感数值,根据该综合情感数值确定相同主体的综合情感强度。
本实施例所提供的文章情感的分析方法,可应用于上市公司的市场预测中,其中,待分析的文章为相关财经类网站上的新闻报道,并结合多个新闻报道计算出该上市公司的情感强度,将该情感强度作为对该上市公司的市场预测的一个考虑因素,从而可提高对上市公司的时长预测的准确性。
在一个实施例中,如图6所示,提供了一种文章情感的分析装置,该装置包括:
文章获取模块602,用于获取待分析的文章。
词句切分模块604,用于对文章中的内容进行词句切分,生成对应数量的词句。
主体确定模块606,用于根据词句确定文章描述的主体。
特征向量获取模块608,用于获取每个词句的特征向量。
情感强度计算模块610,用于根据每个词句的特征向量计算文章对主体的描述的情感强度。
在一个实施例中,特征向量获取模块608还用于对切分后的词句进行筛选,获取筛选后的词句的特征向量。
情感强度计算模块610还用于根据筛选后的词句的特征向量计算文章的情感数值。
在一个实施例中,特征向量获取模块608还用于当获取不到词句的特征向量时,检测预设的词库中是否存在与词句相近的词句,若是,则获取该相近词句的特征向量,将其作为该词句的特征向量,若否,则将预设的默认特征向量作为词句的特征向量。
在一个实施例中,情感强度计算模块610还用于根据每个词句的特征向量计算对应文章的特征向量;根据文章的特征向量计算出文章对主体的描述的情感强度;根据文章的感情数值确定文章对主体的描述的情感数值。
在一个实施例中,如图7所示,情感强度计算模块610还包括:
子向量构建单元702,用于重复预设次数,从文章的特征向量中随机选取第一数量的参数,构成对应的第二数量的子向量。
情感数值计算单元704,用于计算每个子向量对应的子情感数值,根据每个子情感数值计算文章的情感数值。
在一个实施例中,如图8所示,提供了另一种文章情感的分析装置,该装置该包括:
综合情感强度计算模块612,用于获取主体相同的文章的情感强度,计算相同主体的综合情感强度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。