CN112818698B - 一种基于双通道模型的细粒度的用户评论情感分析方法 - Google Patents
一种基于双通道模型的细粒度的用户评论情感分析方法 Download PDFInfo
- Publication number
- CN112818698B CN112818698B CN202110146418.3A CN202110146418A CN112818698B CN 112818698 B CN112818698 B CN 112818698B CN 202110146418 A CN202110146418 A CN 202110146418A CN 112818698 B CN112818698 B CN 112818698B
- Authority
- CN
- China
- Prior art keywords
- subtask
- word
- text
- information
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于双通道模型的细粒度的用户评论情感分析方法,包括如下步骤:步骤(1)、对文本进行预清理和分词;步骤(2)、对文本进行进一步预处理获取文本中每个单词的词性和依存关系;步骤(3)、将方面信息引入到计算模型BERT中,根据不同的方面获得与之对应的不同方面嵌入向量;步骤(4)进行方面检测和词方面极性分类;步骤(5)构建双通道模型,在双通道之间设置通路,对将方面检测子任务中能够得到的信息,用于协助极性判断子任务的完成;步骤(6)根据步骤(2)得到的文本,搭建一个双层GCN模型,引入依存信息;步骤(7)构建用于训练所述双通道模型的目标损失函数;步骤(8)整体训练,根据步骤(7)中的目标损失函数对上述的双通道模型进行训练。
Description
技术领域
本发明属于情感分析,自然语言处理研究的技术领域。方面情感分析是情感分析的一种,是目前最细粒度的情感分析。与更粗粒度的情感分析相比,需要更多的对方面给予注意。方面情感分析分为两个子任务,第一个子任务是方面检测即判断文档中某个方面是否存在,第二个子任务是极性判断即判文档中提及的某一方面的情感极性。本发明通过使用双通道的框架,同时完成两个子任务,通过共享信息和引入外部信息等方式从总体上提高方面情感分析的准确性。
背景技术
早在上世纪60年代,神经网络这一种模型就已经诞生。但主要受限于当时的计算机算力有限和互联网上并没有当前这么多的数据,因此该方法并没有受到人们的重视。随着时间的推移和摩尔定律的加持,计算机的计算能力有着大幅度的提高。60年代的超级计算机每秒只能执行大约3MFOPS即每秒可以进行三百万次的浮点运算。而现在的超级计算机富岳计算能力高达415.5PFLOPS即每秒钟可以进行415.5千万亿次的浮点运算。另一方面随着互联网的发展,越来越多的人使用互联网,互联网上的数据也越来越多。通过机器自动的去挖掘大数据下的信息,也成为机器学习这一领域的一项严峻的挑战。
随着互联网的普及,越来越多的顾客会在消费后对商品进行评论。与此同时,在购买商品时参考用户评论,已经成为顾客进行购买决策的一个主要依据。这些商品不仅仅指生活用品,也包括电影、书籍还有餐厅、宾馆等。情感分析是指通过自然语言处理的方法获取情感极性。情感极性往往分为积极、消极和中立三种。随着网络评论的流行,表达用户情感的文档数量越来越多,情感分析已经成为自然语言处理任务中很重要的一部分。
目前,情感分析根据粒度由大到小可以分为文档级、句子级和方面级,分别判断对给定的一个文档、一个句子或一个方面的情感极性。但无论是文档级还是句子级情感分析,对于人类所表达的情感来说,粒度都是较粗的。在一个句子中可以存在对不同方面的情感表达。比如“Great food but the service was dreadful!”,在这个句子中对于“food”这一方面的情感极性为正,但对于“service”这一方面情感极性为负。本发明的主要目标是对方面情感分析进行研究。
发明内容
本发明要解决的技术问题为:解决细粒度的情感法分析中判断某方面是否在文本中提及和判断提及方面的情感极性两个子任务,通过充分利用第一个子任务中得到的与方面相关的信息以及引入外部信息,来提高整个细粒度的情感分析的质量。
本发明解决上述技术问题的技术方案为:一种基于双通道模型的细粒度的用户评论情感分析方法,包括以下步骤:
步骤(1)对文本进行预清理和分词;
步骤(2)对文本进行进一步预处理获取文本中每个单词的词性和依存关系;
步骤(3)将方面信息引入到计算模型BERT中,根据不同的方面获得与之对应的不同方面嵌入向量;
步骤(4)进行方面检测和词方面极性分类;
步骤(5)构建双通道模型,在双通道之间设置通路,对将方面检测子任务中能够得到的信息,用于协助极性判断子任务的完成;
步骤(6)根据步骤(2)得到的文本,搭建一个双层GCN模型,引入依存信息;
步骤(7)构建用于训练所述双通道模型的目标损失函数;
步骤(8)整体训练,根据步骤(7)中的目标损失函数对上述的双通道模型进行训练。
进一步的,步骤(1)对文本进行预清理和分词,具体步骤如下:
对文本的格式进行统一化处理。将所有文本的编码统一转化为Unicode编码(Unicode编码为每种语言中的每个字符设定了统一并且唯一的二进制编码),并将所有字母变成小写字母。移除文本中所有非空白符号(\n,\t,\r)的控制字符串,将所有表示空白的字符串统一转换成空格。最后删除文档前后的多余空格。
对文本进行分词。将整个文档拆分成一个一个的单词,删除每个单词中的重音符,将标点符号当作单独的一个单词。此外,由于字典中的单词数是有限的,可能无法包含文档中的每个单词,因此对于每一个单词通过贪心的方式查找到能够在字典中匹配的最长字符串,并对于一个被拆分的字符串以”##”开头的形式保存,此外对于在字典中没有能够与之匹配单词以<UNK>这一特殊标志代替。
步骤(2)、对文本进行进一步预处理获取文本中每个单词的词性和依存关系,具体步骤如下:
通过自然语言工具处理包(Natural Language Toolkit,NLTK)NLTK获取文本的词性并保存,对词性进行预处理将其分为名词和非名词,即将词性为"NN"、"NNS"、"NNP"、"NNPS"的单词标注为1,将其他词性的词标注为0。对词性进行第二次标注,这次标注中将可能表示为情感的词性包括形容词、副词、动词等标注为1,对其他词性标注为0。
再次通过Spacy对步骤(1)预清理好的文本进行分词处理,从而获取文档的句法即单词之间的依存关系。由于Spacy的分词和步骤(1)的分词之间存在差异,因此还需要通过align()对分词结果进行对齐,最终得到步骤(1)分词后每个单词所对应的父节点。
考虑到细粒的度情感分析中,方面词的重要性。在本发明中将文档和方面词同时作为BERT的输入。将文本和想要判断的方面转化为类似问答对的模式,整个模型的输入格式如下[CLS]SEQUENCE_A[SEP]SEQUENCE_B[SEP]。将其中的SEQUENCE_A即文本的token_type_ids即文本类型标注为0,SEQUENCE_B即方面词的token_type_ids即文本类型标注为1,将文本中的单词转换为与训练好的词典中相对应的index即序号,将整个文本通过BERT中的注意力掩码即attention_mask进行掩码,保证模型只处理有文本的部分。通过BERT层后得到每个单词所对应的encode编码结果。
步骤(3)、将方面词进行嵌入层处理得到的结果定义为aspect_embed即方面嵌入,根据不同的方面获得与之对应的不同aspect_embed即方面嵌入向量,并将方面向量的维度在横向进行扩展,使得其长度与文档的长度相同。将方面嵌入得到的结果与步骤(3)得到的encode值相结合,主要公式如下:
M=(encode*WT+b)*aspect_embed
其中W和b是参数,aspect_embed是扩展后与encode维数相同的方面嵌入向量。
步骤(4)、这里用AD代表方面检测(aspect detection),即判断某一方面是否在文档中存在这一子任务。用PC代表极性分类(polarity classification),即在文档中判断提及的某方面的情感极性。对于判断一个方面是否存在这个子任务引入名词。首先对名词信息进行如下处理:
noun=noun*NegINF+1
其中NegINF代表一个负无穷的数。这样处理的意义在于,将非名词的单词在noun上的值设置为接近负无穷,将名词单词在noun上设置为1。然后将处理后的信息通过Softmax函数。这样处理使得非名词词性的单词,在注意力权重上的值近似为0。从而帮助模型更注重于预测目标相关的信息。具体公式如下:
rAD=Softmax(encode*aAD*WT)
其中软最大化(Softmax)计算公式如下:
其中下标i表示的是一段文档中第i个位置上对应的词,mAD表示的是步骤(3)中对于方面检测这一子任务的编码结果,是被训练的参数,表示的是只保留名词信息的编码结果,是方面检测这一子任务的注意力权值,encode是通过BERT的编码结果,WT表示参数,rAD是方面检测子任务最终的编码结果。
对于方面检测这一子任务来说,通过类似自注意力机制的方法,并额外设置注意力权重对于非名词的词趋向于0,是本发明的主要创新之一。对于极性分类这一子任务来说,对词性的处理流程与方面检测的流程一致。具体公式如下:
sent=sent*NegINF+1
rPC=Softmax(encode*aPC*WT)
其中sent表示情感词,对于可能表示情感的单词对应的值为1,对于不能表示情感的词对应的值为0。NegINF表示负无穷。下标i表示的是一段文档中第i个位置上对应的词,mPC表示的是步骤(3)中对于极性判断这一子任务的编码结果,是被训练的参数,表示的是只保留名词信息的编码结果,是极性判断这一子任务的注意力权值,encode是通过BERT的编码结果,WT表示参数,rPC子是极性判断任务最终的编码结果。
步骤(5)、本发明在双通道之间设置通路,充分利用方面检测这一子任务中能够得到的信息,用于协助第二个子任务极性判断的完成。使得在整体上的性能得到提高。因为在第一个子任务判断过程中,模型大概率会找到方面的位置,将第一个子任务得到的编码结果传递给第二个子任务,帮助第二个子任务定位方面的位置。
mAD=(encode*WT+b)*aspect_embed
mPC=(encode*WT+b)*aspect_embed+mAD
其中encode是通过BERT的编码结果,aspect_embed是方面词通过嵌入层得到结果,W和b是被训练的参数,mAD表示的是对于方面检测这一子任务的编码结果,mPC表示的是对于极性判断这一子任务的编码结果。
步骤(6)、首先根据步骤(2)得到的文本中所对应的父节点,对于每一个文本实例构建一个邻接矩阵。搭建一个双层GCN模型,GCN模型的输入有每个句子中存在的依存关系图和一个表示图中节点权重的x0。x0是与步骤(1)BERT编码和步骤(5)注意力权重向结合的结果。公式如下:
x0=encode*aad
其中aad是方面检测这一子任务的注意力权重,Ni表示节点i的所有邻居,包括节点i自身;表示节点i在第l层的特征;cij表示归一化因子;σ表示非线性变化;w(l)和b(l)是随训练变化的参数;在本发明通过实验发现l=2时模型效果较好,因此设置l=2。
步骤(7)、在本发明中目标损失函数的计算由三部分组成,分别是子任务一方面检测的交叉熵损失函数,子任务二极性预测的交叉熵损失函数以及注意力机制的正则化。
对于子任务一方面检测来说,可以简单的认为是一个二分类的任务,对应的交叉熵损失函数如下:
对于子任务一方面检测来说,则根据不同的数据库中情感极性分类数量的不同可以认为是三分类四分类多分类问题,对应的交叉熵损失函数如下:
其中表示对第i个文档,第j个方面模型预测的情感极性向量,表示对第i个文档中第j个方面实际上的情感极性。表时指示函数,当为真时取值为1,为假时取值为0。指示函数用来保证如果某一文档的某一方面是不存在的,那么对于第二个子任务极性预测来说该文档该方面的损失函数对应为0,因此不会对梯度产生影响,避免无效数据对模型产生附加影响。
在本发明中注意力机制占据了很重要的位置,在子任务一方面检测中,对于方面词往往只对应于文档中的一两个单词。因此在本发明中增加正则化注意力权重,使得注意力的权重分布更加稀疏。注意力权重的损失函数计算公式如下:
该公式保证注意力权重的值分布越均匀Latt-s的值越大,如果在某一个单词上的注意力权重达到1时,则损失函数的值为0。因此该注意力权重的损失函数可以使得模型更倾向于关注少数几个与方面词相关的单词。
整体损失函数的最终形式如下所示:
L=LAD+LPC+Latt-s
步骤(8)、根据步骤(7)中的目标损失函数对上述的生成模型进行训练。对于BERT层利用BERT预训练好的参数。然后通过Adam梯度下降算法来更新模型中所有待训练的参数。在训练过程中对本发明中定义的方面嵌入参数、上述步骤中提及的待训练权重矩阵、BERT中的参数、GCN层中的权重等进行优化。最终使得本发明能够高质量的判断一段文本中某方面是否被提及的和判断被提及方面的情感极性。
本发明与现有技术相比的优点在于:
1、细粒度的情感分析与文档级和句子级情感分析最大的区别是额外增加了方面。在一个句子中可以存在对不同方面的情感表达。比如“Great food but the service wasdreadful!”,在这个句子中对于“food”这一方面的情感极性为正,但对于“service”这一方面情感极性为负。所以模型不能仅仅通过情感词去判断某方面的情感,而是需要找出与方面对应的情感词。但在细粒度的情感分析数据中,提及两个以上方面,且这些方面的情感极性不同的数据是非常有限的。在Semeval2014 Task4和Sentihood中的数据个数如表1所示。在不同方面情感极性不同的数据如此少的情况下,如何去训练模型只注意与方面相关的情感词,忽略与方面无关的情感词,是该研究中最困难的问题,也是细粒度的情感分析本身的难点之一。
表1 Semeval和Sentihood数据库中与方面相关的数据统计结果
在本发明中通过多次引入方面词来强调其重要性。在本研究中还通过显示信息传递的方式来提高找到与方面词相关情感词的准确性。因为在第一个任务判断过程中,模型大概率会找到提到方面词的位置,将第一个子任务得到的编码结果传递给第二个子任务,能够使得第二个子任务更关注与方面有关的词。
此外在本发明中还尝试利用第一个子任务的注意力权重。当完成判断某个指定方面在一个句子中是否存在时,当前模型的注意力机制很大概率会集中在表示这个方面词的名词上。如果简单的关注子任务中注意力权重大的词的周围词时,如果一个句子很长,表示情感的词和表示某一方面的词可能距离很远,导致这种设计失效。但通过句法分析得到的依存树则可能距离很近。本方面中通过GCN层将依存树的信息引入到模型中,最终使得模型在判断情感极性时更关注与方面词相关的情感信息。
2、由于细粒度的情感分析标注好的数据库是过少的。因此需要通过引入外部信息等手段来提高模型的效果。在本发明中尝试不同的外部信息,设计有效的外部信息引入方法,并通过实验证明设计模型的效果。在本发明中主要引入了词性信息和语法信息这两种外部信息。
在本发明中研究通过只保留名词位置的词来提高模型的性能,并通过一种类似掩码的形式来实现。对于第一个子任务只保留能表示方面的名词等此词性。对于第二个子任务,情感极性的分析,只保留BERT编码结果中词性为形容词、副词、动词等能够表达情感的词性。由于细粒度的情感分析中句子较短,因此在以往的研究中也不会移除停止词。通过对BERT输出结果的词性进行过滤,一方面能够充分利用细粒度的情感信息中句子的所有信息,另一方面能避免受到过多停止词的影响。
附图说明
图1基于双通道模型的细粒度的用户评论情感分析方法的流程图;
图2本发明的双通道模型框架图;
图3本发明的图卷积神经网络图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明是一种双通道模型的细粒度的用户评论情感分析方法,模型如图2所示。本发明充分利用了双通道架构的特征,使得两个子任务能够隐式的共享信息,并通过直接的参数传递显示的共享两个子任务之间的信息,从而提高模型的整体表现。
本发明首先使用预训练好的基于变换器的双向编码器表示模型(BidirectionalEncoder Representation from Transformers,BERT)产生文档对应的编码结果,然后再将编码结果针对两个子任务分别处理,引入外部信息包括词性信息和语法信息。根据目标损失函数对模型进行训练,直到损失值达到某一阈值。本发明同时又与多种细粒度的用户评论情感分析方法进行了效果对比测试。
本发明的一种基于双通道模型的细粒度的用户评论情感分析方法,主要分为以下8个步骤。
步骤(1)、对文本进行预清理和分词,具体步骤如下:
对文本的格式进行统一化处理。将所有文本的编码统一转化为Unicode编码(Unicode编码为每种语言中的每个字符设定了统一并且唯一的二进制编码),并将所有字母变成小写字母。移除文本中所有非空白符号(\n,\t,\r)的控制字符串,将所有表示空白的字符串统一转换成空格。最后删除文档前后的多余空格。
对文本进行分词。将整个文档拆分成一个一个的单词,删除每个单词中的重音符,将标点符号当作单独的一个单词。此外,由于字典中的单词数是有限的,可能无法包含文档中的每个单词,因此对于每一个单词通过贪心的方式查找到能够在字典中匹配的最长字符串,并对于一个被拆分的字符串以”##”开头的形式保存,此外对于在字典中没有能够与之匹配单词以<UNK>这一特殊标志代替。
步骤(2)、对文本进行预处理获取文本中每个单词的词性和依存关系,具体步骤如下:
通过NLTK获取文本的词性并保存,对词性进行预处理将其分为名词和非名词,即将词性为"NN"、"NNS"、"NNP"、"NNPS"的单词标注为1,将其他词性的词标注为0。对词性进行第二次标注,这次标注中将可能表示为情感的词性包括形容词、副词、动词等标注为1,对其他词性标注为0。
再次通过Spacy对步骤(1)预清理好的文本进行分词处理,从而获取文档的句法即单词之间的依存关系。由于Spacy的分词和步骤(1)的分词之间存在差异,因此还需要通过align()对分词结果进行对齐,最终得到步骤(1)分词后每个单词所对应的父节点。
在一个句子中可以存在对不同方面的情感表达。比如“Great food but theservice was dreadful!”,在这个句子中对于“food”这一方面的情感极性为正,但对于“service”这一方面情感极性为负。“food”和“service”就是不同的方面词。
如图1所示,考虑到细粒的度情感分析中,方面词的重要性。在本发明中将文档和方面词同时作为BERT的输入。将文本和想要判断的方面转化为类似问答对的模式,整个模型的输入格式如下[CLS]SEQUENCE_A[SEP]SEQUENCE_B[SEP]。将其中的SEQUENCE_A即文本的token_type_ids即文本的种类标注为0,SEQUENCE_B即方面词的token_type_ids即文本的种类标注为1,将文本中的单词转换为与训练好的词典中相对应的index即序号,将整个文本通过BERT中的注意力掩码即attention_mask进行掩码,保证模型只处理有文本的部分。通过BERT层后得到每个单词所对应的encode编码结果。
步骤(3)、第二次将方面信息引入到模型中。将方面词进行嵌入层处理得到的结果定义为aspect_embed即方面嵌入,根据不同的方面获得与之对应的不同方面嵌入aspect_embed向量,并将方面向量的维度在横向进行扩展,使得其长度与文档的长度相同。将方面嵌入得到的结果与步骤(3)得到的encode值相结合,主要公式如下:
M=(encode*WT+b)*aspect_embed
其中W和b是参数,aspect_embed是扩展后与encode维数相同的方面嵌入值。
步骤(4)、引入词性。这里用AD代表方面检测(aspect detection),即判断某一方面是否在文档中存在这一子任务。用PC代表极性分类(polarity classification),即在文档中判断提及的某方面的情感极性。对于判断一个方面是否存在这个子任务引入名词。首先对名词信息进行如下处理:
noun=noun*NegINF+1
其中NegINF代表一个负无穷的数。这样处理的意义在于,将非名词的单词在noun上的值设置为接近负无穷,将名词单词在noun上设置为1。然后将处理后的信息通过Softmax函数。这样处理使得非名词词性的单词,在注意力权重上的值近似为0。从而帮助模型更注重于预测目标相关的信息。具体公式如下:
rAD=Softmax(encode*aAD*WT)
其中软最大化(Softmax)计算公式如下:
其中下标i表示的是一段文档中第i个位置上对应的词,mAD表示的是步骤(3)中对于方面检测这一子任务的编码结果,是被训练的参数,表示的是只保留名词信息的编码结果,是方面检测这一子任务的注意力权值,encode是通过BERT的编码结果,WT表示参数,rAD是方面检测子任务最终的编码结果。
对于方面检测这一子任务来说,通过类似自注意力机制的方法,并额外设置注意力权重对于非名词的词趋向于0,是本发明的主要创新之一。对于极性分类这一子任务来说,对词性的处理流程与方面检测的流程一致。具体公式如下:
sent=sent*NegINF+1
rPC=Softmax(encode*aPC*WT)
其中sent表示情感词,对于可能表示情感的单词对应的值为1,对于不能表示情感的词对应的值为0。NegINF表示负无穷。下标i表示的是一段文档中第i个位置上对应的词,mPC表示的是步骤(3)中对于极性判断这一子任务的编码结果,是被训练的参数,表示的是只保留名词信息的编码结果,是极性判断这一子任务的注意力权值,encode是通过BERT的编码结果,WT表示参数,rPC子是极性判断任务最终的编码结果。
步骤(5)、信息传递。本发明在双通道之间设置通路,充分利用方面检测这一子任务中能够得到的信息,用于协助第二个子任务极性判断的完成。使得在整体上的性能得到提高。因为在第一个子任务判断过程中,模型大概率会找到方面的位置,将第一个子任务得到的编码结果传递给第二个子任务,帮助第二个子任务定位方面的位置。
mAD=(encode*WT+b)*aspect_embed
mPC=(encode*WT+b)*aspect_embed+mAD
其中encode是通过BERT的编码结果,aspect_embed是方面词通过嵌入层得到结果,W和b是被训练的参数,mAD表示的是对于方面检测这一子任务的编码结果,mPC表示的是对于极性判断这一子任务的编码结果。
步骤(6)、引入依存树信息。首先根据步骤(2)得到的文本中所对应的父节点,对于每一个文本实例构建一个邻接矩阵。搭建一个双层GCN模型,GCN模型的输入有每个句子中存在的依存关系图和一个表示图中节点权重的x0。x0是与步骤(1)BERT编码和步骤(5)注意力权重向结合的结果。图卷积神经网络GCN模型的结构如图3所示。公式如下:
x0=encode*aad
其中Ni表示节点i的所有邻居,包括节点i自身;表示节点i在第l层的特征;cij表示归一化因子;σ表示非线性变化;w(l)和b(l)是随训练变化的参数;在本发明通过实验发现l=2时模型效果较好,因此设置l=2。
步骤(7)、计算损失函数。在本发明中损失函数的计算由三部分组成,分别是子任务一方面检测的交叉熵损失函数,子任务二极性预测的交叉熵损失函数以及注意力机制的正则化。
对于子任务一方面检测来说,可以简单的认为是一个二分类的任务,对应的交叉熵损失函数如下:
对于子任务一方面检测来说,则根据不同的数据库中情感极性分类数量的不同可以认为是三分类四分类多分类问题,对应的交叉熵损失函数如下:
其中表示对第i个文档,第j个方面模型预测的情感极性向量,表示对第i个文档中第j个方面实际上的情感极性。表时指示函数,当为真时取值为1,为假时取值为0。指示函数用来保证如果某一文档的某一方面是不存在的,那么对于第二个子任务极性预测来说该文档该方面的损失函数对应为0,因此不会对梯度产生影响,避免无效数据对模型产生附加影响。
在本发明中注意力机制占据了很重要的位置,在子任务一方面检测中,对于方面词往往只对应于文档中的一两个单词。因此在本发明中增加正则化注意力权重,使得注意力的权重分布更加稀疏。注意力权重的损失函数计算公式如下:
该公式保证注意力权重的值分布越均匀Latt-s的值越大,如果在某一个单词上的注意力权重达到1时,则损失函数的值为0。因此该注意力权重的损失函数可以使得模型更倾向于关注少数几个与方面词相关的单词。
整体损失函数的最终形式如下所示:
L=LAD+LPC+Latt-s
步骤(8)、整体训练。根据步骤(7)中的目标损失函数对上述的生成模型进行训练。对于BERT层利用BERT预训练好的参数。然后通过Adam梯度下降算法来更新模型中所有待训练的参数。在训练过程中对本发明中定义的方面嵌入参数、上述步骤中提及的待训练权重矩阵、BERT中的参数、GCN层中的权重等进行优化。最终使得本发明能够高质量的判断一段文本中某方面是否被提及的和判断被提及方面的情感极性。
本发明中的模型命名为Aspect Attention and POS added network(AAPAN)。如果对于子任务一判断方面是否存在时不考虑名词的标签,即对于子任务一不引入词性信息,将该模型命名为AAPAN-Sent,表示只额外引入是否为情感词的信息。如果对于子任务二判断方面情感极性时不考虑表达情感词的标签,即对于子任务二不引入词性信息,将该模型命名为AAPAN-Noun,表示只额外引入名词信息。AAPAN-GCN,即在原有模型的基础上增加了一个GCN层。
将设计好的模型在两个数据库:Sentihood和Semeval2014 Task4上进行实验。这两个数据库都是标注了细粒度情感分析结果的用户评论数据库。在Sentihood上的实验结果如表2所示。在Sun,Huang等人的论文中,将方面以辅助句的形式加入到BERT的输入中。BERT-pair-QA-M,BERT-pair-NLI-M,BERT-pair-QA-B,BERT-pair-NLI-B都是他们提出的模型。本论文采用的输入方式就是BERT-NLI-M的方法,与他们提出模型之间的比较,说明我们模型的高性能不仅仅是因为使用了BERT。
表2模型在Sentihood上的表现
从实验结果可以看到,本发明提出的AAPAN模型,对于Sentihood数据集来说,子任务一判断方面是否被提及和子任务二判断方面的感情倾向都相对于过去的模型有所提高。尤其在判断方面准确率时相较于只简单利用BERT模型提高较大,相对于BERT的最高表现有2%的提升。对于判断情感极性的准确率时,也将只使用BERT时的最高表现93.6%提高到94.2%。AAPAN-GCN模型在有的指标上比AAPAN好,在有的指标上差一些。
在Semeval2014上的实验结果如表3,表4所示。对于Semeval2014数据库来说,AAPAN模型在子任务一上有些许提高。但在子任务二上表现较好。对于二分类即情感倾向分为积极消极两种时有微小提高,对于三分类即情感倾向分为积极、消极和中立时相对于BERT提高0.5%,对于四分类的情感极性为积极、消极、中立和矛盾这四种分类方式时,模型表现从85.9%提高到87.2%,有一个相对较大的提升。AAPAN-GCN模型在子任务二判断方面情感极性时表现整体都比AAPAN效果更好。这表明引入GCN层,确实有助于子任务二的完成,更能找到某个方面所对应的情感词。但引入GCN层后判断方面是否存在的子任务一表现下降,这可能是由于生成依存树时存在错误,或者句子本身并不完全符合语法造成层的。综上所述本发明中所采用的双通道结构和引入的外部信息能够有效提高模型的准确率。
表3模型在semeval2014判断方面是否存在的表现
表4模型在semeval2014判断方面情感极性的表现
本发明未详细阐述的部分属于本领域公知技术。以上实施例仅用以说明本发明的技术方案而非限制在具体实施方式的范围内,对本技术领域的普通技术人员来讲,只要各种变化在权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (13)
1.一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于,包括以下步骤:
步骤(1)对文本进行预清理和分词;
步骤(2)对文本进行进一步预处理获取文本中每个单词的词性和依存关系;
步骤(3)将方面信息引入到计算模型BERT中,根据不同的方面获得与之对应的不同方面嵌入向量;
步骤(4)进行方面检测和词方面极性分类;
步骤(5)构建双通道模型,在双通道之间设置通路,对将方面检测子任务中能够得到的信息,用于协助极性判断子任务的完成;
步骤(6)根据步骤(2)得到的文本,搭建一个双层GCN模型,引入依存信息;
步骤(7)构建用于训练所述双通道模型的目标损失函数;
步骤(8)整体训练,根据步骤(7)中的目标损失函数对上述的双通道模型进行训练;
所述步骤(4)进行方面检测和词极性分类,具体包括:
用AD代表方面检测,即判断某一方面是否在文档中存在这一子任务,用PC代表极性分类,即在文档中判断提及的某方面的情感极性;对于判断一个方面是否存在这个子任务引入名词;首先对名词信息进行如下处理:
noun=noun*NegINF+1
其中NegINF代表一个负无穷的数,将非名词的单词在noun上的值设置为接近负无穷,将名词单词在noun上设置为1,然后将处理后的信息通过软最大化Softmax函数,这样处理使得非名词词性的单词,在注意力权重上的值近似为0;从而帮助模型更注重于预测目标相关的信息;具体公式如下:
rAD=Softmax(encode*aAD*WT)
其中软最大化Softmax计算公式如下:
其中下标i表示的是一段文档中第i个位置上对应的词,mAD表示的是步骤(3)中对于方面检测这一子任务的编码结果,是被训练的参数,表示的是只保留名词信息的编码结果,是方面检测这一子任务的注意力权值,encode是通过BERT的编码结果,WT表示参数,rAD是方面检测子任务最终的编码结果;
sent=sent*NegINF+1
rPC=Softmax(encode*aPC*WT)
其中sent表示情感词,对于可能表示情感的单词对应的值为1,对于不能表示情感的词对应的值为0;NegINF表示负无穷;下标i表示的是一段文档中第i个位置上对应的词,mPC表示的是步骤(3)中对于极性判断这一子任务的编码结果,是被训练的参数,表示的是只保留名词信息的编码结果,是极性判断这一子任务的注意力权值,encode是通过BERT的编码结果,WT表示参数,rPC是极性判断任务最终的编码结果;
所述步骤(5)在双通道之间设置通路,将方面检测子任务中能够得到的信息,用于协助极性判断子任务的完成具体包括:
在双通道之间设置通路,充分利用方面检测这一子任务中能够得到的信息,用于协助第二个子任务极性判断的完成;使得在整体上的性能得到提高;在第一个子任务判断过程中,模型找到方面的位置,将第一个子任务得到的编码结果传递给第二个子任务,帮助第二个子任务定位方面的位置;
mAD=(encode*WT+b)*aspect_embed
mPC=(encode*WT+b)*aspect_embed+mAD
其中encode是通过BERT的编码结果,aspect_embed是方面词通过嵌入层得到结果,W和b是被训练的参数,mAD表示的是对于方面检测这一子任务的编码结果,mPC表示的是对于极性判断这一子任务的编码结果。
2.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(1)对文本进行预清理和分词具体包括:对文本的格式进行统一化处理;将所有文本的编码统一转化为Unicode编码,并将所有字母变成小写字母;移除文本中所有非空白符号的控制字符串,将所有表示空白的字符串统一转换成空格;最后删除文档前后的多余空格;
对文本进行分词,将整个文档拆分成一个一个的单词,删除每个单词中的重音符,将标点符号当作单独的一个单词;对于每一个单词通过贪心的方式查找到能够在字典中匹配的最长字符串,并对于一个被拆分的字符串以”##”开头的形式保存,此外对于在字典中没有能够与之匹配单词以<UNK>这一特殊标志代替。
3.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:
所述步骤(2)对文本进行进一步预处理获取文本中每个单词的词性和依存关系,具体步骤如下:
通过自然语言处理工具包获取文本的词性并保存,对词性进行预处理将其分为名词和非名词,即将词性为"NN"、"NNS"、"NNP"、"NNPS"的单词标注为1,将其他词性的词标注为0;对词性进行第二次标注,这次标注中将可能表示为情感的词性包括形容词、副词、动词标注为1,对其他词性标注为0;
再次通过用于自然语言处理的开源库Spacy对步骤(1)预清理好的文本进行分词处理,从而获取文档的句法即单词之间的依存关系;对分词结果进行对齐,最终得到步骤(1)分词后每个单词所对应的父节点;
将文档和方面词同时作为基于变换器的双向编码器表示模型的输入;将文本和想要判断的方面转化为问答对的模式,整个模型的输入格式如下:[CLS]SEQUENCE_A[SEP]SEQUENCE_B[SEP];将其中的SEQUENCE_A即文本的token_type_ids标注为0,SEQUENCE_B即方面词的token_type_ids标注为1,将文本中的单词转换为与训练好的词典中相对应的序号index,将整个文本通过注意力掩码attention_mask进行掩码,保证模型只处理有文本的部分,通过BERT层后得到每个单词所对应的编码结果值encode。
4.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(3)将方面信息引入到计算模型中,根据不同的方面获得与之对应的不同方面嵌入向量;
将方面词进行嵌入层处理得到的结果定义为即方面嵌入向量aspect_embed,根据不同的方面获得与之对应的不同方面嵌入向量aspect_embed,并将方面嵌入向量的维度在横向进行扩展,使得其长度与文档的长度相同,将方面嵌入得到的结果与步骤(2)得到的编码结果值encode相结合,计算模型的主要公式如下:
M=(encode*WT+b)*aspect_embed
其中W和b是参数,aspect_embed是扩展后与encode维数相同的方面嵌入向量。
5.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(6)根据步骤(2)得到的文本,搭建一个双层GCN模型,引入依存信息具体包括:
首先根据步骤(2)得到的文本中所对应的父节点,对于每一个文本实例构建一个邻接矩阵;搭建一个双层GCN模型,GCN模型的输入有每个句子中存在的依存关系图和一个表示图中节点权重的x0,x0是与步骤(1)BERT编码和步骤(5)注意力权重向结合的结果;公式如下:
x0=encode*aad
6.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(7)构建目标损失函数具体包括:
所述目标损失函数包括三部分,分别是子任务一方面检测的交叉熵损失函数,子任务二极性预测的交叉熵损失函数以及注意力机制的正则化;
子任务一方面检测是一个二分类的任务,对应的交叉熵损失函数如下:
子任务二极性预测,则根据不同的数据库中情感极性分类数量的不同,认为其是三分类四分类多分类问题,对应的交叉熵损失函数如下:
其中表示对第i个文档,第j个方面模型预测的情感极性向量,表示对第i个文档中第j个方面实际上的情感极性;表示指示函数,当为真时取值为1,为假时取值为0;指示函数用来保证如果某一文档的某一方面是不存在的,那么对于第二个子任务极性预测来说该文档该方面的损失函数对应为0,因此不会对梯度产生影响,避免无效数据对模型产生附加影响;
注意力权重的损失函数计算公式如下:
该公式保证注意力权重的值分布越均匀Latt-s的值越大,如果在某一个单词上的注意力权重达到1时,则损失函数的值为0;因此该注意力权重的损失函数使得模型更倾向于关注少数几个与方面词相关的单词;
整体损失函数的最终形式如下所示:
L=LAD+LPC+Latt-s。
7.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(8)整体训练具体包括:
根据步骤(7)中的目标损失函数对上述的GCN模型进行训练,对于BERT层利用BERT预训练好的参数,然后通过Adam梯度下降算法来更新模型中所有待训练的参数,在训练过程中对定义的方面嵌入参数、上述步骤中提及的待训练权重矩阵、BERT中的参数、GCN层中的权重进行优化。
8.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(2)中,引入了额外的语法信息,通过Spacy获取文档的依存信息,并保存每个单词的头结点信息,在模型中通过该信息构造依存矩阵。
9.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(3)中,将方面以类似词嵌入的形式再次引入到细粒度的用户评论情感分析方法中,对不同的方面映射成不同的向量。
10.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(4)中,对于词性信息的处理,将不符合词性要求的单词通过与负无穷相乘再通过Softmax函数的方式进行一种类似掩码的处理。
11.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(5)中,在两个子任务的通道之间传递信息,将子任务方面检测中生成的中间编码结果传递给子任务二,从而帮助子任务二获取子任务一中识别到的与方面词相关的位置信息。
12.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:所述步骤(6)中,通过GCN层来充分利用引入的语法信息,GCN中图形结点的权重参数是在步骤(1)中的结果与子任务一注意力权重相乘,保证对于方面相关的信息有额外的重视。
13.根据权利要求1所述的一种基于双通道模型的细粒度的用户评论情感分析方法,其特征在于:
所述步骤(7)中,在损失函数中增加注意力权重正则化的结果,使得注意力权重的信息更加稀疏,对于与预测结果相关的词给予更大的注意力权重,对于与预测结果无关的词给予更小的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110146418.3A CN112818698B (zh) | 2021-02-03 | 2021-02-03 | 一种基于双通道模型的细粒度的用户评论情感分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110146418.3A CN112818698B (zh) | 2021-02-03 | 2021-02-03 | 一种基于双通道模型的细粒度的用户评论情感分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818698A CN112818698A (zh) | 2021-05-18 |
CN112818698B true CN112818698B (zh) | 2022-07-15 |
Family
ID=75860728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110146418.3A Active CN112818698B (zh) | 2021-02-03 | 2021-02-03 | 一种基于双通道模型的细粒度的用户评论情感分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818698B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114357156B (zh) * | 2021-12-02 | 2023-02-28 | 北京邮电大学 | 一种多特征多通道图卷积网络模型训练方法及属性情感三元组抽取方法 |
CN114791950B (zh) * | 2022-04-29 | 2024-06-25 | 西安邮电大学 | 基于词性位置与图卷积网络的方面级情感分类方法及装置 |
CN114880994B (zh) * | 2022-05-25 | 2024-06-11 | 重庆邮电大学 | 一种直白文本到反讽文本的文本风格转换方法及装置 |
CN114896987B (zh) * | 2022-06-24 | 2023-04-07 | 浙江君同智能科技有限责任公司 | 基于半监督预训练模型的细粒度情感分析方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9633007B1 (en) * | 2016-03-24 | 2017-04-25 | Xerox Corporation | Loose term-centric representation for term classification in aspect-based sentiment analysis |
CN106776581B (zh) * | 2017-02-21 | 2020-01-24 | 浙江工商大学 | 基于深度学习的主观性文本情感分析方法 |
CN107168945B (zh) * | 2017-04-13 | 2020-07-14 | 广东工业大学 | 一种融合多特征的双向循环神经网络细粒度意见挖掘方法 |
CN108733653B (zh) * | 2018-05-18 | 2020-07-10 | 华中科技大学 | 一种基于融合词性和语义信息的Skip-gram模型的情感分析方法 |
CN111274398B (zh) * | 2020-01-20 | 2022-06-14 | 福州大学 | 一种方面级用户产品评论情感分析方法及系统 |
CN111353042B (zh) * | 2020-02-27 | 2023-06-30 | 浙江大学 | 一种基于深度多任务学习的细粒度文本观点分析方法 |
-
2021
- 2021-02-03 CN CN202110146418.3A patent/CN112818698B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112818698A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933664B (zh) | 一种基于情感词嵌入的细粒度情绪分析改进方法 | |
CN110245229B (zh) | 一种基于数据增强的深度学习主题情感分类方法 | |
CN112818698B (zh) | 一种基于双通道模型的细粒度的用户评论情感分析方法 | |
CN107862087B (zh) | 基于大数据和深度学习的情感分析方法、装置和存储介质 | |
CN109284506A (zh) | 一种基于注意力卷积神经网络的用户评论情感分析系统及方法 | |
Zou et al. | A lexicon-based supervised attention model for neural sentiment analysis | |
CN110489555A (zh) | 一种结合类词信息的语言模型预训练方法 | |
CN108536754A (zh) | 基于blstm和注意力机制的电子病历实体关系抽取方法 | |
CN113254637B (zh) | 一种融合语法的方面级文本情感分类方法及系统 | |
CN117151220B (zh) | 一种基于实体链接与关系抽取的行业知识库系统及方法 | |
CN113591483A (zh) | 一种基于序列标注的文档级事件论元抽取方法 | |
CN113987187B (zh) | 基于多标签嵌入的舆情文本分类方法、系统、终端及介质 | |
Kaur | Incorporating sentimental analysis into development of a hybrid classification model: A comprehensive study | |
CN113343706B (zh) | 基于多模态特征和语义规则的文本抑郁倾向检测系统 | |
CN115357719B (zh) | 基于改进bert模型的电力审计文本分类方法及装置 | |
CN111145914B (zh) | 一种确定肺癌临床病种库文本实体的方法及装置 | |
CN110765769A (zh) | 一种基于子句特征的实体属性依赖情感分析方法 | |
CN112434161B (zh) | 一种采用双向长短期记忆网络的方面级情感分析方法 | |
CN114818717A (zh) | 融合词汇和句法信息的中文命名实体识别方法及系统 | |
CN114153973A (zh) | 基于t-m bert预训练模型的蒙古语多模态情感分析方法 | |
Wang et al. | How can BERT help lexical semantics tasks? | |
CN115510230A (zh) | 一种基于多维特征融合与比较增强学习机制的蒙古语情感分析方法 | |
CN114547303A (zh) | 基于Bert-LSTM的文本多特征分类方法及装置 | |
Zhou et al. | Emotion classification by jointly learning to lexiconize and classify | |
CN116522165B (zh) | 一种基于孪生结构的舆情文本匹配系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |