一种基于自然语言句法分析树的机器学习情感分析器的制作方法

文档序号:12363735阅读:252来源:国知局
一种基于自然语言句法分析树的机器学习情感分析器的制作方法与工艺

本发明属于人工智能技术领域,特别涉及一种基于自然语言句法分析树的机器学习情感分析器。



背景技术:

Web已越来越成为现代社会各种信息的载体。随着Web 2.0的兴起于普及,由普通用户主动发布的文本越来越多,如新闻,博客文章,产品评论,论坛帖子等。情感分析,就是对这些信息进行有效的分析和挖掘,识别出其情感趋向——高兴,悲伤,或得出其观点是“赞同”还是“反对”,甚至情感随时间的演化规律。这样就可以更好地理解用户的消费习惯,分析热点事件的舆情,为企业和政府等机构提供重要的决策依据。

然而,目前通常的信息检索技术,尤其是广为应用的搜索引擎技术,是以关键词为基础的,无法对这种需求提供支持,表现在:1)情感或观点很难简单地用关键词来表示和索引,2)信息检索领域的排序策略也不适合观点。

进入本世纪以来,关于情感分析的研究逐渐增多。目前较为有效的情感分析算法是通过机器学习的方法进行words-bag算法的分析,最后产生一个情感分类器进行自然语言的情感分析。但是这种方法忽视了自然语言中词汇之间的相关联系,以及语句中各部分语法上的不同作用。这些特性往往会很大地影响自然语言的分析结果。另外句法分析中各词汇的词性也会影响情感分析的结果,但是这部分特性同样没有很好地加入到已有的算法中。



技术实现要素:

针对现有技术的缺陷或改进需求,本发明提供了一种基于自然语言句法分析树的机器学习情感分类器,其目的在于,通过生成语句的句法结构分析树并对其进行分析,解决现有情感分析技术中所不能反映的词汇以及语法结构之间的关系,和各词汇词性的特性的问题。

本发明的技术方案是,一种基于自然语言句法分析树的机器学习情感分析器,包括句法分析模块和机器学习模块,

句法分析模块包括CRF模型分析器(用于语法树的学习)、LALR语法分析器(用于对语法进行词法分析)、特征分析器和语法树生产器,其中,特征分析器还包括词性分析模块、语法成分分析模块和词法依赖分析模块,分别对词性,语法成分和词法依赖三个部分进行分析。

机器学习模块包括机器学习模型和机器学习情感结果融合模块。

包括以下分析步骤:

A1,接受用户的自然语言文本输入;

A2,对自然语言文本进行基于CRF(Conditional random fields,条件随机场)和LALR(Look-AheadLR)语法分析范式的句法分析,得到句子的句法分析树,句法分析树以树的方式展现句子的语法结构,并且包含了各词汇的词性,同时,还会生成句子中词汇之间的依赖关系,此依赖关系包含了句子词汇之间的逻辑性;

A3,针对目标文字,使用words-bag的方法构架文字的特征向量维度集合,该集合包含了目标文字中的所有词汇和步骤A2中所生成的所有依赖关系对;

A4,获取了步骤A3中的特征向量维度集合之后,对每一个维度计算其值,根据生成的句法分析树,获取每个词汇在句中的语法功能,并根据其功能获得一个值x;

A5,根据分析出的每个词汇的词性特征,根据规则赋予每个词汇一个值y;

A6,根据步骤A4和步骤A5的结果,将x+y设为每个特征向量维度上此词汇或语法结构组合的值;

A7,根据已有或者已构建的训练集(已知情感结果的自然文本集合),通过SVM(支持向量机),Bayes(朴素贝页斯),以及随机森林的机器学习算法构建出分类器模型M;

A8,使用步骤A7中的模型M对步骤A6中生成的特征向量进行分析,得到最后的情感分析分类结果。

在步骤A2中,句法分析树是通过以下的步骤实现的:

B1,通过已有或已构建的训练集(已知句法分析树结果的自然文本集合),使用CRF模型构建出最大似然的模型;

B2,使用LALR的分析范式,从左向右地对自然语言进行语法检查,并结合CRF中的转移概率,对各个词汇进行最大似然的语法功能的计算;

B3,通过朴素贝叶斯算法,在已有的训练集上构建关于词汇依赖关系的模型,并对输入的文本进行分析。

在步骤A3中,words-bag的方法是通过以下步骤实现的:

C1,提取出目标文本中的所有词汇,以及步骤A2中所生成的所有词汇依赖关系对,合并为一个集合C;

C2,对目标文本以及训练集中的所有文本,在集合C中每一项都进行步骤A4到步骤A6中的计算,获得每个文本自身的特征向量。

在步骤A4中,x的值产生规则如下:

D1,若此维度下词汇处于主句成分之中,则x=2;

D2,若此维度下词汇处于任何从句成分之中,则x=1;

在步骤A5中,y的值产生规则如下:

E1,若此维度下词汇的词性特性为动词,则y=3;

E2,若此维度下词汇的词性特性为形容词与副词,则y=2;

E3,若此维度下词汇的词性特性为其他,则y=1。

在步骤A5中,对于依赖词汇对的词汇特性判断为:按照动词>形容词/副词>名词的词汇等级顺序,取依赖词汇对中等级较高的词汇的等级为此以来词汇对的等级。

在步骤A7中,Bayes的训练方法如下:

<mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>c</mi> <mo>|</mo> <mi>d</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo> </mrow> <mo>*</mo> <mi>P</mi> <mrow> <mo>(</mo> <mi>d</mi> <mo>|</mo> <mi>c</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>d</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中c表示需要目标的情感类型,d表示当前分类对象的情感语义特征,公式(1)又可简化为:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>c</mi> <mo>|</mo> <mi>d</mi> <mo>)</mo> </mrow> <mo>~</mo> <msubsup> <mo>&Pi;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>f</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>c</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

即,目标情感类型c的概率等于其语法特征f在所有已知情感c中的比例之乘积,将正负面结果计算之后再进行比较即可得到最后的情感类型。

8.如权利要求2所述的基于自然语言句法分析树的机器学习情感分析器,其特征在于,在步骤A7中,随机森林的训练和使用方法如下:

F1,给定训练集合S,测试集合T,特征维数F,

训练参数的确定:使用到的CART树数量t,每棵CART树的深度d,每个节点所使用到的特征数量f,

训练终止条件确定:节点上得到最少的样本数s,节点上得到最少的信息增益m,

对于每一棵计算中的树i:

F2,从训练集合S中有返回地抽取大小和S一样的训练集合,作为根节点的训练样本,并且从根节点开始训练;

F3,若在当前节点上达到预设好的训练终止条件,则设置当前节点为叶子节点,若再当前节点上并没有达到终止条件,则从F维特征中无放回地随机选取f维特征,并且利用这f维特征,寻找分类效果最好的一维特征k及其阈值th,

之后对余下的样本进行划分,在当前节点上样本第k维特征小于th的样本会被划分到左节点,而其余的则被划分到右节点。之后继续训练其他节点;

F4,重复步骤F2,F3直到所有节点都被训练过或者被标记为叶子节;

F5,重复步骤F2,F3,F4直到所有的CART树都被训练过,

随机森林的预测过程如下所示:

对于树i:

F6,从当前树的根节点开始,根据当前节点的阈值th进行判断。若目标样本在当前节点的值小于th,则进入左节点,

若目标样本在当前节点的值大于th,则进入右节点,

重复此判定直到到达某个叶子节点,并输出预测值;

F7,重复执行步骤F6直到所有CART树都输出了预测值,

若目标问题为分类问题,则目标类别为所有树中预测概率总和最大的类别,

若目标问题为回归问题,则输出为所有CART树的输出平均值。

本发明的基于自然语言句法分析树的机器学习情感分析器与现有技术相比,具有如下优点:

本发明构建的自然语言语法分析器能够通过查看全局的自然语言信息量,判断出局部的自然语言特征以及依赖关系,而不是只是依靠当前判断词汇前后的特征来判断。而本发明构建的机器学习情感分析器能够通过语法分析器中分析出的情感特质,进行提取和筛选,选择出对于情感分析机器学习有价值的特征来进行学习,达到良好的效果。

附图说明

图1本发明的基于自然语言句法分析树的机器学习情感分析器的架构图。

图2本发明的基于自然语言句法分析树的机器学习情感分析器的主要流程图。

图3本发明中涉及的句法分析树的实现流程。

图4本发明中涉及的随机森林模型训练过程。

具体实施方式

本发明的情感分析器主要包括两部分,自然语言的句法分析以及基于语法特征的机器学习。

其中,自然语言的句法分析是针对自然语言的的各种知识,构建出一个自然语言的语法分析器,能够提取出自然语言中的文本词性,文本语法特征,以及文本依赖。在本系统中,使用CRF(Conditional random fields:条件随机场)的方法,比起目前通用的HMM(Hidden Markov Model:隐马尔可夫模型),CRF能够实现当前词汇与全局信息的关联,而不是只局限于部分信息的语法分析匹配,这样极大的增加了语法分析器的分析能力。

基于语法特征的机器学习是使用句法分析器中提取出的句法特征,来进行机器学习的方法。首先句法分析器提取出的若干句法特征需要进行过滤,方能良好的在机器学习模型中使用。并非所有的句法特征都适用于情感分析器,也并非所有的句法特征都能达到良好的效果。之后需要对提取出的句法特征进行分类,比如词性上的分类:动词,形容词,名词等。以及句法作用上的分类:主语,谓语,宾语等。最后语法依赖上的分类:之前各分类词汇之间的依赖关系。本发明的主要架构如附图1所示。

为实现上述目的,本发明提供了基于自然语言句法分析树的机器学习情感分类器,包含以下步骤,如附图2所示:

(1)接受用户的自然语言文本输入;

(2)对自然语言文本进行基于CRF(Conditional random fields:条件随机场)和LALR(Look-AheadLR)语法分析范式的句法分析,得到句子的句法分析树。句法分析树以树的方式展现句子的语法结构,并且包含了各词汇的词性。另外,还会生成句子中词汇之间的依赖关系,此依赖关系包含了句子词汇之间的逻辑性。

(3)针对目标文字,使用words-bag的方法构架文字的特征向量维度集合。这个集合包含了1)目标文字中的所有词汇2)步骤(2)中所生成的所有依赖关系对。

(4)获取了上一个步骤中的特征向量维度集合之后,开始对每一个维度计算其值。首先根据生成的句法分析树,获取每个词汇在句中的语法功能,并根据其功能获得一个值x。

(5)根据分析出的每个词汇的词性特征,根据规则赋予每个词汇一个值y。

(6)根据步骤(4)和步骤(5)的结果,将x+y设为每个特征向量维度上此词汇或语法结构组合的值。

(7)根据已有或者已构建的训练集(已知情感结果的自然文本集合),通过SVM,Bayes,以及Random Forest的机器学习算法构建出分类器模型M。

(8)使用步骤(7)中的模型M对步骤(6)中生成的特征向量进行分析,得到最后的情感分析分类结果。

在步骤(2)中,句法分析树是通过以下的步骤实现的,如附图3所示:

(2-1)通过已有或已构建的训练集(已知句法分析树结果的自然文本集合),使用CRF模型构建出最大似然的模型。

(2-2)使用LALR的分析范式,从左向右地对自然语言进行语法检查,并结合CRF中的转移概率,对各个词汇进行最大似然的语法功能的计算。

(2-3)通过朴素贝叶斯算法,在已有的训练集上构建关于词汇依赖关系的模型,并对输入的文本进行分析。

在步骤(3)中,words-bag的方法是通过以下步骤实现的:

(3-1)提取出目标文本中的所有词汇,以及步骤(2)中所生成的所有词汇依赖关系对,合并为一个集合C。

(3-2)对目标文本以及训练集中的所有文本,在集合C中每一项都进行步骤(4)到步骤(6)中的计算,获得每个文本自身的特征向量。

在步骤(4)中,x的值得产生规则如下:

(4-1)若此维度下词汇处于主句成分之中,则x=2。

(4-2)若此维度下词汇处于任何从句成分之中,则x=1。

在步骤(5)中,y的值得产生规则如下:

(5-1)若此维度下词汇的词性特性为动词,则y=3。

(5-2)若此维度下词汇的词性特性为形容词与副词,则y=2。

(5-3)若此维度下词汇的词性特性为其他,则y=1。

另外,在步骤(5)中,对于依赖词汇对的词汇特性判断为:按照动词>形容词/副词>名词的词汇等级顺序,取依赖词汇对中等级较高的词汇的等级为此以来词汇对的等级。

在步骤(7)中,Bayes的训练方法如下所示:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>c</mi> <mo>|</mo> <mi>d</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>c</mi> <mo>)</mo> </mrow> <mo>*</mo> <mi>P</mi> <mrow> <mo>(</mo> <mi>d</mi> <mo>|</mo> <mi>c</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>d</mi> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中c表示需要目标的情感类型,d表示当前分类对象的情感语义特征。根据本发明中的情况此公式又可简化为:

<mrow> <mi>P</mi> <mrow> <mo>(</mo> <mi>c</mi> <mo>|</mo> <mi>d</mi> <mo>)</mo> </mrow> <mo>~</mo> <msubsup> <mo>&Pi;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>f</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>c</mi> <mo>)</mo> </mrow> </mrow>

即,本发明中的目标情感类型c的概率等于其语法特征f在所有已知情感c中的比例之乘积。将正负面结果计算之后再进行比较即可得到最后的情感类型。

在步骤(7)中,RandomForest的训练和使用方法如下所示:

随机森林的训练过程如下以及附图4所示:

(7-1)给定训练集合S,测试集合T,特征维数F。训练参数确定:使用到的CART树数量t,每棵CART树的深度d,每个节点所使用到的特征数量f。训练终止条件确定:节点上得到最少的样本数s,节点上得到最少的信息增益m。

对于每一棵计算中的树i:

(7-2)从训练集合S中有返回地抽取大小和S一样的训练集合,作为根节点的训练样本,并且从根节点开始训练。

(7-3)若在当前节点上达到预设好的训练终止条件,则设置当前节点为叶子节点。若再当前节点上并没有达到终止条件,则从F维特征中无放回地随机选取f维特征,并且利用这f维特征,寻找分类效果最好的一维特征k及其阈值th。之后对余下的样本进行划分,在当前节点上样本第k维特征小于th的样本会被划分到左节点,而其余的则被划分到右节点。之后继续训练其他节点。

(7-4)重复步骤7-2,7-3直到所有节点都被训练过或者被标记为叶子节。

(7-5)重复步骤7-2,7-3,7-4直到所有的CART树都被训练过。

随机森林的预测过程如下所示:

对于树i:

(7-6)从当前树的根节点开始,根据当前节点的阈值th进行判断。若目标样本在当前节点的值小于th,则进入左节点。若目标样本在当前节点的值大于th,则进入右节点。重复此判定直到到达某个叶子节点,并输出预测值。

(7-7)重复执行步骤7-6直到所有CART树都输出了预测值。若目标问题为分类问题,则目标类别为所有树中预测概率总和最大的类别。若目标问题为回归问题,则输出为所有CART树的输出平均值。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1