本发明涉及利用句义结构特征的句子相似度计算方法,属于计算机科学及自然语言处理领域。
背景技术:
句子相似度计算用于衡量两个文本内容的语义相似程度,是自然语言处理中信息检索、自动摘要等任务的基础环节。伴随社交网站的快速发展,以微博为代表的社交短文本大量涌现,其篇幅短小、表示方式多样化,由于缺失长文档的结构化信息造成传统的句子相似度计算方法无法直接适用于此类短文本的句子相似度计算。
目前,根据对句子语义分析的深度不同,针对社交短文本中句子的相似度计算方法主要包括基于词特征、基于词义特征和基于句法分析特征三类。
基于词特征的方法是早期的句子相似度计算方法,该方法主要是将句子视为词的线性组合,采用统计的手段计算句子的词频、词性、句长、词序等词语表层信息,典型方法包括Jaccard Similarity Coefficient字符串匹配,其通过统计两个句子中包含的相同词数目作为句子的相似度、TF-IDF词频统计方法将句子表征为向量,计算余弦距离作为相似度结果。
基于词义特征的方法从语义分析的角度,通过借助语义知识资源捕捉词语的语义信息。根据利用的资源不同,分为基于语义词典的方法和基于语料库的方法。基于语义词典的方法主要是借助WordNet、HowNet等基于词义组织词汇信息的词汇数据库,结合词义消歧的技术挖掘句子中词语在给定的上下文语境下所表达的涵义,从而提高整个句子的语义分辨率。基于语料库的方法主要通过引入语言模型框架,以两个词共同出现的概率大小来推断其相似性,常用的技术是利用潜在语言分析(Latent Semantic Analysis,LSA)方法将词-文档矩阵进行奇异值分解实现高维特征表示到低维潜在语义空间表示的空间映射。
基于句法分析特征的方法通过对句子进行整体的结构分析判断句子的相似性,该方法主张句子中核心动词是支配其它成分的关键,核心动词本身不受任何成分的支配,而其他句子成分受到核心动词的支配,通过分析词语之间的依存关系来挖掘句子的语义信息,实际应用中通常只计算动词、名词和形容词等有效词以及直接依附于有效词所组成的搭配对之间的相似性来估算句子的相似度,以此避免增加噪音数据对结果带来的偏差。
上述各类方法虽然从不同的分析层面计算句子的相似度,但社交短文本的实词较少,不加任何句法结构分析和对句子语义信息的挖掘,仅靠对词频、词形等表层信息的统计无法辨别词语的深层信息。基于词义特征的方法虽然考虑了词语的语义信息,但该方法受限于外部语义资源,社交短文本包含大量的未登录词、内容时效性强,由于字典的不全面和特征稀疏的影响往往造成语义信息不明确的问题。基于句法特征的方法受当前句法分析技术不成熟的限制,没有考虑句子上下文信息和深层语义信息,信息的缺失对相似度计算结果的准确性带来无法预估的影响。
技术实现要素:
本发明为解决社交短文本句子相似度计算的特征稀疏和没有考虑深层语义信息的问题,提出利用句义结构特征的句子相似度计算方法。在综合考虑句子的语义信息和上下文信息的前提下,将多元信息加权融合,使句子信息更加全面,通过深度挖掘句子语义信息,使句子相似度计算结果不受表述方式的影响,更加全面、准确地计算句子语义的关联程度。
本发明的设计原理为:1)基于句义结构模型(Chinese Semantic Structure Model,CSM)分析句子语义,提取句义成分,利用Latent Dirichlet Allocation(LDA)主题模型挖掘潜在的主题知识,根据知识库扩充句义成分对应维度的特征1112,得到基于句子本身语义信息的句子向量;2)引入Paragraph Vector(PV)深度学习模型自适应地学习文本特征,得到基于句子上下文信息的句子向量;3)利用两种句子向量分别计算得到句子间的相似度,并进行线性加权,通过网格法调节优化系数,使句子相似度计算结果更加准确。
具体步骤如下:
步骤1,对社交短文本集进行预处理,先进行分句,然后进行分词和词性标注,去停用词。
步骤2,基于利用CSM对每条句子的句义结构分析结果和利用LDA主题模型对短文本集进行分析得到的主题和词语分布,对句子进行特征扩充,并计算句子相似度。
步骤2.1,在步骤1的基础上,对每条句子进行句义结构分析,提取句子的话题、述题、基本项、一般项。CSM将整个句义的语义表示为结构树的形式,具体表示为句型层、描述层、对象层和细节层四个层次。句型层指明句子的句义类型,包括简单句义、复杂句义、复合句义、多重句义四中类型;描述层中包含话题和述题,话题和述题是对句义的初步划分,是句义结构中的基本句义成分,话题定义为句义中的被描述对象,述题定义为句义中的话题的描述内容;对象层中包含谓词、基本项、一般项、语义格,语义格是对词语的语义标注,包括7种基本格和12种一般格,基本项定义为句义中与谓词具有直接联系的成分,构成一个句子语义的主干,其对应的语义格为基本格,一般项定义为句义中的修饰成分,其对应的语义格为一般格;细节层中包含句子的引申含义。
步骤2.2,利用LDA主题模型对短文本集进行分析,挖掘文本中的潜在主题知识,提取文本中的主题和主题下的词语分布,得到文本-主题矩阵和主题-词语矩阵。LDA主题模型可以获取文本中的主题,可以用来对文本中的词语进行划分,同一主题下的词语具有相同或相似的语义。
步骤2.3,根据话题对句子进行特征扩充,得到基于话题的句子向量。如果两个相同的词语在句子中分别充当话题和述题的一部分,则认为这两个词语具有不同的语义,定义这两个词语为不同的词语,根据此定义,对句子进行特征扩充时,应分别根据话题和述题部分对句子进行特征扩充。句子的话题部分的特征扩充具体方法为:首先提取话题下的基本项和一般项对应的词语,然后根据步骤2.2中得到的主题-词语矩阵,比较词语在不同主题下的概率,选取概率最高的主题,将该主题下的其它词语补充到句子中,作为句子的一部分,最后使用句子的所有词语作为特征,构建特征向量表示句子,其中句中原有词语所对应的维度上的取值为词语的在句中的出现次数,而扩充的词语所对应的维度上的取值按公式(1)进行计算,
V=n*w (1)
V是扩充词语对应维度上的取值,n是扩充词语在句子中出现的次数,w为扩充词语在对应主题下的概率值。
步骤2.4,按步骤2.3的方法,根据述题对句子进行特征扩充,得到基于述题的句子向量。
步骤2.5,分别基于步骤2.3和2.4得到的两种句子向量计算句子相似度,对两个相似度值进行加权,得到句子间的最终相似度值,具体计算公式如下,
其中,SA和SB代表任意两个句子,sim1(SA,SB)表示两个句子的相似度值,和分别表示句子SA和SB的基于话题的句子向量,和分别表示句子SA和SB的表示基于述题的句子向量,ω为可调参数,取值范围为[0,1],用来调整两种相似度的加权系数。
步骤3,将经过步骤1预处理后的所有句子输入到PV深度学习模型,利用PV模型学习文本特征,得到句子向量,并基于该句子向量计算句子间的余弦距离作为句子间的相似度,计算公式如下,
其中,SA和SB代表任意两个句子,sim2(SA,SB)表示两个句子的相似度值,和分别表示用PV模型学习得到的句子向量。PV模型是一种非监督的学习方式,输入是任意长度的文本(这里文本可以是文章、段落、句子等任意形式,统称为文本),输出则是对应文本的连续分布式向量表示,同word2vec词向量的原理类似,在保留语义和词序信息的基础上通过对特征学习得到有效的句子或者篇章的向量表示,PV模型能有效解决词袋模型没有考虑词义和词序的问题,生成的向量维度稠密,也可有效克服短文本的句子表示的特征稀疏问题。
步骤4,将步骤2和步骤3得到的句子间的相似度值进行线性加权,通过网格法调节参数,找到一组最优的参数取值,输出最终的句子对之间的相似度值,计算公式如下,
sim(SA,SB)=θ*sim1(SA,SB)+(1-θ)*sim2(SA,SB) (4)
其中,SA和SB代表任意两个句子,sim(SA,SB)表示两个句子的相似度值,θ为可调参数,取值范围为[0,1],sim1(SA,SB)和sim2(SA,SB)分别按公式(2)和(3)计算得到。根据公式(4),结合公式(2)和(3),完整的句子相似度计算公式为:
ω和θ都是可调参数,取值范围都是[0,1],利用网格法根据句子相似度的计算或应用结果对参数进行调优,取最优参数值。
有益效果
本发明的句子相似度计算方法有效地减少了语义信息的丢失,更加全面、准确地刻画了句子之间的内在联系,通过深度挖掘句子的上下文和内在语义结构特征使句子相似度计算不直接依赖于句子的表述方式,提高了计算结果的准确率。
具体实施方式
为了更好的说明本发明的目的和优点,下面结合具体实例对本发明方法的实施方式做进一步详细说明。
实验采用NLP&&CC会议2013年的面向中文微博观点要素抽取评测任务所公开的语料。从中随机挑选了5个话题,共10896个句子作为短文集,采用将句子相似度计算应用到短文本聚类并评价聚类效果的方式,对句子相似度计算的效果进行评价。对于聚类效果的评价,采用轮廓系数(Silhouette Coefficient)指标来衡量,轮廓系数这一概念最早由Peter J.Pousseeuw在1986年提出,它结合内聚度和分离度两种因素来判断聚类效果。
轮廓系数的计算步骤如下:
(1)对于第i个对象,计算其到所属簇中其他对象的平均距离,记为ai。
(2)对于第i个对象,计算该对象到到不包含该对象的任意簇中所有对象的平均距离,找出每个簇中的最小值记为bi。
(3)对于第i个对象,轮廓系数记为si,计算方法如公式(6)所示。
轮廓系数取值范围为[-1,1],从公式(6)可以看出,如果si<0,表明第i个对象和同一个簇内部的元素之间的平均距离小于其他的簇,聚类效果不准确。如果ai的值趋于0,或者bi足够大,那么si取值越接近于1,说明聚类后簇内数据越紧密、簇间越分离差异明显,聚类效果越好。
具体实施步骤为:
步骤1,对社交短文本集进行分句,然后对每一条句子利用ICTCLAS2015进行分词和词性标注,根据从Internet下载的停用词表,去除文本中的停用词。
步骤2,利用CSM对短文本集中的每条句子进行句义结构分析,并利用LDA主题模型对短文本集进行分析,获取短文本的主题和词语分布,对句子进行特征丰富,并计算句子相似度。
步骤2.1,在步骤1的基础上,对每条句子进行句义结构分析,提取句子的话题、述题、基本项、一般项。
步骤2.2,利用LDA主题模型对短文本集进行分析,提取文本中的主题和主题下的词语分布,得到主题-词语矩阵。
步骤2.3,根据话题对句子进行特征扩充,得到基于话题的句子向量。具体方法为:首先提取话题下的基本项和一般项对应的词语,然后根据步骤2.2中得到的主题-词语矩阵,比较词语在不同主题下的概率,选取概率最高的主题,将该主题下的其它词语补充到句子中,作为句子的一部分,最后使用句子的所有词语作为特征,构建特征向量表示句子,其中句中原有词语所对应的维度上的取值为词语的在句中的出现次数,而扩充的词语所对应的维度上的取值按公式(1)进行计算,
步骤2.4,按步骤2.3的方法,根据述题对句子进行特征扩充,得到基于述题的句子向量。
步骤2.5,分别基于步骤2.3和2.4得到的两种句子向量计算句子相似度,对两个相似度值进行加权,按公式(2)得到句子间的最终相似度值。
步骤3,将经过步骤1预处理后的所有句子输入到PV深度学习模型,利用PV模型学习文本特征,得到句子向量,并基于该句子向量计算句子间的余弦距离作为句子间的相似度,其中PV模型里的参数均采用工具中的默认值。
步骤4,将步骤2和步骤3得到的句子间的相似度值进行线性加权,通过网格法调节参数ω和θ,选择最优的一组参数。
对5个话题的聚类效果,在PV模型中的向量长度size=100,窗口长度window=5,ω取0.33时,θ取0.25,轮廓系数达到最优效果0.45;当θ取0时,即只考虑基于CSM句义结构分析得到的相似度计算结果,轮廓系数达到0.42;当θ取1时,即只考虑依赖PV分析得到的句子相似度结果,轮廓系数达到0.31。实验结果表明利用CSM得到的句子向量能够包含更深层次的句子内部语义信息,PV模型使句子向量能够获取丰富的上下文信息,既考虑自身语义信息同时还包含上下文信息的句子相似度计算方法更能准确衡量句子间的相似程度。