一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于语义分析的文献相似度确定方法及装置与流程

2022-06-05 12:02:56 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,尤其涉及一种基于语义分析的文献相似度确定方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.目前,现有技术在确定文献相似度时,根据人工经验,针对文献不同部分内容预先设置不同权重,最后依据人为设置的固定权重,将各部分内容相似度的加权求和得到的结果确定为文献相似度。现有确定文献相似度的方法凭经验设置权重,存在权重设置不准确,进而导致文献相似度确定也不准确的问题。


技术实现要素:

4.本发明实施例提供一种基于语义分析的文献相似度确定方法,用以基于语义分析准确地确定文献不同部分的权重,进而准确地确定文献相似度,该方法包括:
5.将每一待比较文献划分为多个部分;
6.对每一部分进行语义分析得到每一部分的语义分析结果;
7.根据每一部分的语义分析结果,确定每一待比较文献的每一部分的权重值;
8.根据每一待比较文献的每一部分的权重值,得到每一待比较文献的加权平均结果;
9.根据每一待比较文献的加权平均结果,确定待比较文献之间的相似度。
10.本发明实施例还提供一种基于语义分析的文献相似度确定装置,用以基于语义分析准确地确定文献不同部分的权重,进而准确地确定文献相似度,该装置包括:
11.划分单元,用于将每一待比较文献划分为多个部分;
12.语义分析单元,用于对每一部分进行语义分析得到每一部分的语义分析结果;
13.权重值确定单元,用于根据每一部分的语义分析结果,确定每一待比较文献的每一部分的权重值;
14.处理单元,用于根据每一待比较文献的每一部分的权重值,得到每一待比较文献的加权平均结果;
15.相似度确定单元,用于根据每一待比较文献的加权平均结果确定待比较文献之间的相似度。
16.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于语义分析的文献相似度确定方法。
17.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于语义分析的文献相似度确定方
法。
18.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述基于语义分析的文献相似度确定方法。
19.本发明实施例中,基于语义分析的文献相似度确定方案,与现有技术中根据经验为文献不同部分内容预先设置不同的固定权重,进而确定文献相似度,存在权重设置不准确,进而导致文献相似度确定也不准确的问题的技术方案相比,通过:将每一待比较文献划分为多个部分;对每一部分进行语义分析得到每一部分的语义分析结果;根据每一部分的语义分析结果,确定每一待比较文献的每一部分的权重值;根据每一待比较文献的每一部分的权重值,得到每一待比较文献的加权平均结果;根据每一待比较文献的加权平均结果,确定待比较文献之间的相似度,可以实现基于语义分析准确地确定文献不同部分的权重,进而准确地确定文献相似度。
附图说明
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
21.图1为本发明实施例中基于语义分析的文献相似度确定方法的流程示意图;
22.图2为本发明实施例中对每一部分进行语义分析得到每一部分的语义分析结果的流程示意图;
23.图3为本发明另一实施例中对每一部分进行语义分析得到每一部分的语义分析结果的流程示意图;
24.图4为本发明实施例中文献预处理过程的流程示意图;
25.图5为本发明实施例中基于语义分析的文献相似度确定装置的结构示意图;
26.图6为本发明实施例中语义分析单元的结构示意图;
27.图7为本发明另一实施例中语义分析单元的结构示意图;
28.图8为本发明实施例中专业领域中文分词训练过程示意图。
具体实施方式
29.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
30.图1为本发明实施例中基于语义分析的文献相似度确定方法的流程示意图,如图 1所示,该方法包括如下步骤:
31.步骤101:将每一待比较文献划分为多个部分;
32.步骤102:对每一部分进行语义分析得到每一部分的语义分析结果;
33.步骤103:根据每一部分的语义分析结果,确定每一待比较文献的每一部分的权重值;
34.步骤104:根据每一待比较文献的每一部分的权重值,得到每一待比较文献的加权
平均结果;
35.步骤105:根据每一待比较文献的加权平均结果,确定待比较文献之间的相似度。
36.本发明实施例提供的基于语义分析的文献相似度确定方法,工作时:将每一待比较文献划分为多个部分(可以称为子文献);对每一部分进行语义分析得到每一部分的语义分析结果;根据每一部分的语义分析结果,确定每一待比较文献的每一部分的权重值;根据每一待比较文献的每一部分的权重值,得到每一待比较文献的加权平均结果;根据每一待比较文献的加权平均结果,确定待比较文献之间的相似度。
37.与现有技术中根据经验为文献不同部分内容预先设置不同的固定权重,进而确定文献相似度,存在权重设置不准确,进而导致文献相似度确定也不准确的问题的技术方案相比,本发明实施例提供的基于语义分析的文献相似度确定方法可以实现基于语义分析准确地确定文献不同部分的权重,进而准确地确定文献相似度。下面对该基于语义分析的文献相似度确定方法进行详细介绍。
38.一、首先,介绍上述步骤101。
39.具体实施时,本发明实施例中的文献可以是专利文献、商标文献、非专利文献等等。以专利文献为例,将每一待比较文献划分为多个部分可以是发明名称、摘要、权利要求和说明书等部分。
40.二、接着,介绍上述步骤102。
41.在一个实施例中,如图2所示,对每一部分进行语义分析得到每一部分的语义分析结果,可以包括如下步骤:
42.步骤1021:对每一部分进行分词处理,得到每一部分对应的多个关键词;
43.步骤1022:根据每一部分对应的多个关键词,以及预设的文献特征提取策略,从每一部分中提取出多个类型的关键特征,构成每一部分对应的特征集合;
44.步骤1024:根据每一部分对应的特征集合,对每一部分进行词级、句法级和篇章级的语义分析,得到每一部分的语义分析结果。
45.具体实施时,在上述步骤1021中,文档分词处理:根据主题词库,对文献文档进行分词处理,删除缺乏实际意义的虚词、很少出现的低频词和经常使用的高频词,最终得到每一部分对应的多个关键词。
46.具体实施时,可以利用一个预先训练好的切词模型进行分词处理。为了更好的理解本发明的分词处理如何实施,下面对该切词模型进行介绍。
47.1.评估指标。
48.中文切词采用准确率(precision)和召回率(recall)评估指标,其中:
49.precision=正确切分出的词的数目/切分出的词的总数;
50.recall=正确切分出的词的数目/应切分出的词的总数;
51.综合性能指标f-measure;
52.fβ=(β2 1)
×
precision
×
recall/(β2
×
precision recall);
53.β为权重因子,如果将准确率和召回率同等看待,取β=1,就得到最常用的 f1-measure;
54.f1=2
×
precisiton
×
recall/(precision recall)。
55.下面以切词模型是中文切词模型为例进行介绍。
56.2.中文切词模型训练方法。
57.常用的分词方法可以分为两类:基于词典的分词和基于统计的分词。基于统计的分词方法由于在歧义切分和未登录词识别方面相对于基于词典的分词有了较大提升,因而成为近年来主流的分词方法。常用的分词统计模型有隐马尔科夫模型、条件随机场模型、最大熵模型、神经网络模型等。然而,当测试语料和训练语料领域不一致时,分词的准确率和未登录词识别等性能会大幅度下降。因此,利用基于统计的分词方法切分专业领域文本时,需要为相应的领域制作标注好的训练语料。然而,标注专业领域的训练语料将耗费较大的人力物力,且现阶段已完成标注工作的专业领域数量稀少。
58.领域术语集中体现和负载了一个学科领域的核心知识,而专业领域词典是专业领域术语的集合。专业领域词典构建的方法可以分为:利用词典资源构建领域词典、利用语料库和统计方法构建领域词典以及利用百科挖掘构建领域词典。发明人提出词典资源和百科相结合的专业领域词典构建方法,用百科获取新术语,用已有词典资源提高完备性。
59.专业领域中文分词训练过程可以如图8所示:
60.(1)通过挖掘百科词条,结合已有词典资源,构建领域词典。
61.(2)将基础自然语言处理模型中的分词结果作为一次分词结果,利用领域词典对该结果进行逆向最大匹配切分,结合歧义消解规则,得到二次分词结果。
62.利用基础自然语言处理模型分词器得到分词结果之后,使用领域词典对分词结果进行逆向最大匹配,可以提高分词的领域自适用性。逆向最大匹配算法从右向左提取分词结果的字符串,在领域词典中匹配,匹配成功则将该字符串切分为词。例如:“岩棉复合板更换为苯板复合板。”用基础自然语言处理模型分词器分词,得到:“岩/棉/ 复合/板/更换/为/苯/板/复合/板/。”领域词典中包含“岩棉”、“苯板”、“复合板”。进行逆向最大匹配,调整后的分词结果为:“岩棉/复合板/更换/为/苯板/复合板/。”63.对一次分词结果直接用领域词典进行逆向最大匹配调整,往往会面临歧义问题。例如,“在工期满后”,一次分词结果为:“在/工/期满/后”。“工期”和“期满”假设都在领域词典中,有两种可能结果:“在/工/期满/后”和“在/工期/满/后”。直接用逆向最大匹配方法,得到前一种结果,然而,正确切分结果应该是后一种。因此,需要设计消歧算法,提高分词正确率。
64.设计原理:最大逆向匹配算法调整初次分词结果时,会发生以下几种情形:保持初次分词结果不变;合并初次分词结果中的词,不影响其他词;初次分词结果中的词被重新切分,组成新词。我们提出的消歧算法主要针对情形三,利用消歧算法决定是否将当前匹配到领域词典的字符串合并为新词。我们提出的消歧算法主要考虑了调整前后词的数目、单字词数目和字在词中的位置特征。若调整后词的数目变多,则不做调整。若调整后单字词的数目变多,则不做调整。而字的位置特征参考6个关于首字、中字和尾字的字表,分别是切分为单字词频率很高的首字字表(l1)、切分为单字词频率很低的首字字表(l2)、与首字结合成词频率很高的中字字表(l3)、与尾字结合成词频率很高的中字字表(l4)、切分为单字词频率很高的尾字字表(l5) 和切分为单字词频率很低的尾字字表(l6)。
65.3.中文切词模型训练过程。
66.义初次分词结果s:a1a2a3/a4/

/am-1am,w0表示当前在领域词典中匹配到的词,hd(w0)表示w0的首字,tl(w0)表示w0的尾字,len(w0)表示w0 长度,minsub(s,w0)表示s中
包含w0的最小子序列,该子序列以切分间隔为开始和结束。combine(s,w0)表示将s中的w0合并后的序列,lmatch(ai)表示以ai为起始点,在领域词典中逆向最大匹配得到词,且该词的左侧切分点不落在已有词中。 new(s,w0)表示合并s中的w0后新产生的字数大于等于2的序列集合。假设一次分词结果为a1a2a3/a4 a5/a6a7a8,w0为a5a6,则hd(w0)为a5,tl(w0)为a6, minsub(s,w0)为a4a5/a6a7a8,combine(minsub(s,w0),w0)为a4/a5a6/a7a8, combine(minsub(s,w0),w0)的最左端是单字a4。如果a2a3a4在领域词典中, lmatch(a4)为空,因为左侧切分点落在已有词a1a2a3中。new(s,w0)={a7a8}。
67.len(w0)=3时,匹配词长为3字时,优先考虑左右侧是否产生单字及字位置特征,其次考虑minsub(s,w0)由单字和2字词组成的情况,最后考虑单字词数目的变化和词数目的变化,具体规则如下。
68.规则1:如果combine(minsub(s,w0),w0)最左端是单字,记为al,满足 lmatch(al)为空,并且combine(minsub(s,w0),w0)最右端不是单字,那么,如果al ∈l1,且combine(minsub(s,w0),w0)的词数目小于等于minsub(s,w0),合并 w0。
69.规则2:如果combine(minsub(s,w0),w0)最右端是单字(ar),最左端不是单字,或者combine(minsub(s,w0),w0)最左端是单字(al),但是lmatch(al)不为空,那么,如果ar在l5字表中,且combine(minsub(s,w0),w0)的词数目小于等于 minsub(s,w0),合并w0。
70.规则3:minsub(s,w0)是a/bc,lmatch(a)不为空,不合并w0,且下一次匹配从a开始。
71.规则4:如果combine(minsub(s,w0),w0)中单字词数目为0,且词数目小于等于minsub(s,w0),同时,new(s,w0)中的序列在nlpir词典或领域词典中,则合并w0。combine(minsub(s,w0),w0)最左端如果是单字词al,且lmatch(al)不为空,此时al不计入单字词。
72.规则5:如果w0是ab,minsub(s,w0)是a/b*,*表示长度大于2的字串,那么,如果a在l1中,不合并w0,否则,合并w0。
73.规则6:如果w0是ab,minsub(s,w0)是*a/b,*表示长度大于2的字串,那么,如果b在l5中,不合并w0,否则,合并w0。
74.规则7:规则2~6之外,均不合并w0。
75.以上规则按顺序依次执行。在实际效果验证时,相较于直接使用基础自然语言处理模型中的分词器,我们训练出的领域中文切词模型在准确率、召回率、f值上都有大幅提升。
76.具体实施时,在上述步骤1022中,特征抽取(提取):
77.在一个实施例中,所述预设的文献特征提取策略可以包括:根据关键词在文献中出现的频率,关键词的逆文档频率,关键词的词性,关键词是否为专业词,关键词出现在文献中的位置,关键词的text-rank值,关键词的信息熵值,关键词的词向量与整体偏差值,关键词长度,关键词作为句子的成分,关键词是否再被切分成子关键词,关键词在文献中第一次出现与最后一次出现位置的长度,关键词分布偏差的其中之一或任意组合,进行文献特征提取。
78.具体实施时,上述文献特征提取策略可以提高特征提取的准确率,从而提高语义分析的精度,进而提高每一待比较文献的每一部分的权重值确定的精度,最终提高文献相似度确定的精度。
79.在一个实施例中,在关键词能再被切分到子关键词时,所述预设的文献特征提取策略还可以包括:根据子关键词的词频-逆文档频率,子关键词的词性,子关键词是否为专业词的其中之一或任意组合进行文献特征提取。
80.具体实施时,上述考虑了子关键词情况的文献特征提取策略可以进一步提高特征提取的准确率,从而进一步提高语义分析的精度,进而进一步提高每一待比较文献的每一部分的权重值确定的精度,最终进一步提高文献相似度确定的精度。
81.综上所述,为了便于理解本发明如何实施,下面以下面表格1的形式进一步说明文献特征提取策略。
82.具体实施时,在分析了专利文献的数据特征和业务场景之后,我们提出了利用自然语言处理技术从专利文献中提取特征的具体策略,见下表1:
83.[0084][0085]
表1
[0086]
根据上表1所示,与现有技术中根据经验为文献的不同部分设置固定权重来确定文献相似度的方案相比较,本发明实施例相当于基于语义分析调整了权重,从而得到更加准确的权重值,进而提高文献相似度确定的精度。
[0087]
在一个实施例中,所述多个类型的关键特征可以包括:文献静态特征,文献与查询关联的特征,以及查询的特征。
[0088]
具体实施时,特征可以是算法、模型的养料之源。特征选择的好坏直接关系到算法训练学习出的模型的效果。与传统的文本分类不同,专利领域的mlr输出的是给定query(查询或检索特征)的文档集合的排序,不仅要考虑文档自身的特征,还要考虑query与文档关联关系的特征。综合来说,专利领域的mlr需要考虑三个方面的特征(文献静态特征,文献与查询关联的特征,以及查询的特征):
[0089]
专利信息的特征选取是指通过对专利文献的内在特征,即对专利技术内容进行归纳、演绎、分析、综合,以及抽象与概括等,以达到把握某一技术发展状况的目的。具体地说,根据专利文献提供的技术主题、专利国别、专利发明人、专利受让人、专利分类号、专利申请日、专利授权日和专利引证文献等技术内容,广泛进行信息搜集,对搜集的内容进行阅读和摘记等,在此基础上,进一步对这些信息进行分类、比较和分析等研究活动,形成有机的信息集合。进而有重点地研究那些有代表性、关键性和典型性的专利文献,最终找出专利信息之间的内在的甚至是潜在的相互关系,从而形成一个比较完整的认识。
[0090]
1、文档本身的静态特征(文献静态特征),包括文档的文本特征,如带权重的词向量,文档不同域(标题、著录项目摘要、权利要求、专利说明书、专利正文等)的 tf、idf、bm25和其他语言模型得分,也包括文档的质量分、专利的权利要求等重要性得分。关于文档的质量分,搜索根据不同的专利分类有不同的计算指标,比如机械领域的专利文件的质量分计算除了要考虑专利本身的文本丰富度,更多的还要考虑专利的各种相关内容如词性的变化、词的位置、机械领域句法结构等。
[0091]
2、文档和query关联的特征(文献与查询关联的特征),比如query对应文档的 td-idf score,bm25 score等。
[0092]
3、query本身的特征(查询的特征),比如政策文本特征,带权重的专利领域专业词向量,query长度,query所述的分类,query的bm25的sum/avg/min/max/median 分数,query上个月的热度等。
[0093]
在query与文档的特征工程中,除了从词法上分析,还需要从“被阐述”的词法所“真正想表达”的语义即概念上进行分析提取。比如一词多义,同义词和近义词,不同的场景
下同一个词表达不同的意思,不同场景下不同的词也可能表达相同的意思。 lsa(隐语义分析)是处理这类问题的著名技术,其主要思想是映射高维向量空间到低维的潜在语义空间或概念空间,也即进行降维。具体做法是将词项文档矩阵做奇异值分解(svd)。奇异值分解中,c是以文档为行,词项terms为列的矩阵(假设m xn),元素为term的词频-逆文档频率值。c被分解成3个小矩阵相乘;u的每一列表示一个主题,其中的每个非零元素表示一个主题与一篇文章的相关性,数值越大越相关;v表示keyword与所有term的相关性;∑表示文章主题和keyword之间的相关性。
[0094]
在一个实施例中,如图3所示,上述基于语义分析的文献相似度确定方法还可以包括步骤1023:利用主成分分析法、线性判别分析法和互信息法,对每一部分对应的特征集合进行特征的筛选和组合,得到特征降维处理后的每一部分对应的特征集合;
[0095]
根据每一部分对应的特征集合,对每一部分进行词级、句法级和篇章级的语义分析,得到每一部分的语义分析结果,可以包括:根据特征降维处理后的每一部分对应的特征集合,对每一部分进行词级、句法级和篇章级的语义分析,得到每一部分的语义分析结果。
[0096]
具体实施时,构成文本的词汇数量一般特别多,因此表示文本的向量空间的维数也相当大,可以达到上千维,因此必须进行降维处理。一般通过特征提取的方法进行降维,表示词汇的特征指标可以包括:文档频率、信息获取、互信息、开方拟合检验、术语强度等。通过计算词汇的上述任一指标,然后由大到小排序选取指定数量的或指标值大于指定阈值的词汇构成特征集。下面对降维处理进行进一步的介绍。
[0097]
具体实施时,在将专利文献转换为特征集合后,即在步骤1022后的步骤1023 中,很多算法就可以直接进入检索排序阶段,但是由于专利文献的数据太过庞大,每个专利文献的特征又非常众多,算法的计算速度至关重要,否则算法可能看上去很美,但是无实用效果。为了能够进一步加快计算速度,在特征集合的基础上,利用主成分分析、线性判别分析、互信息等方法进行特征的筛选和组合,得到新的特征,实现特征降维的目的。
[0098]
具体实施时,降维就是一种对高维度特征数据预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法。
[0099]
具体实施时,降维具有如下一些优点:
[0100]
1、使得数据集更易使用。
[0101]
2、降低算法的计算开销。
[0102]
3、去除噪声。
[0103]
4、使得结果容易理解。
[0104]
在上述步骤1024中,利用自然语言处理引擎对专利文献进行字词级、句法级、篇章级的语义分析,字词级分析包括中文分词、命名实体识别、词性标注、同义词分析、字词向量分析、n-gram分析、词粒度分析、停用词分析等;专利文献句法级分析包括依存文法分析、语言模型、短串分析等;专利文献篇章级分析包括专利文献标签提取、主题模型、文本聚类等。
[0105]
具体实施时,在上述步骤1024中,特征评估加权:特征权值的计算方法主要是运用词频-逆文档频率公式。根据挖掘目的不同,目前存在多种词频-逆文档频率公式构造方法。从上述内容可以看出,文本向量空间的构造完全按照概率统计规律进行,并不考虑词与词
之间的关系。在文本挖掘过程中另一关键步骤是计算文本向量之间的相似距离,对任意两个向量x=(x1,x2,

,xn)与x

=(x

1,x

2,

,x

n),主要存在3种最常用的距离度量:欧氏距离、余弦距离和内积,以上3种距离度量同样不涉及向量中词与词之间关系的分析。通过上述分析可以得出无论在文本向量构造过程还是相似距离度量过程都是根据概率统计的原理设计的,并不考虑特征在语义上的关系。而在自然语言使用中,为了表达的需要,文本中常常大量出现同义词和关联词(依据上下文关系经常搭配使用的词),如在it技术里“计算机”和“电脑”同义;在司法领域“警察”与“案件”同时出现的几率非常大。这些同义词和关联词同样会大量出现在文本特征向量中,一方面增加了文本特征向量的维数,另一方面降低了文本特征向量对文档的表达精度。虽然文本特征抽取可以通过预先设定的阈值来降低特征向量的维数,但它不是在基于保证语义精度的前提下,因而常常适得其反。虽然也可以在分词的过程中,使用同义词词典和蕴涵词词典来减少同义词和关联词,但同时也带来词典维护和更新的问题。
[0106]
通过以上分析,可以看出,通过给定词联想出近义词和关联词,不论是对于用户的应用,还是对于文本语义挖掘,都非常重要。检索联想模型的功能主要是解决这个问题,下文会对该检索联想模型进行介绍。
[0107]
三、接着,为了便于理解,一同介绍上述步骤103至步骤105。
[0108]
具体实施时,根据每一部分的语义分析结果,确定每一待比较文献的每一部分的权重值;根据每一待比较文献的每一部分的权重值,得到每一待比较文献的加权平均结果;根据每一待比较文献的加权平均结果,确定待比较文献之间的相似度。
[0109]
四、接着,介绍进一步优选的步骤。
[0110]
本发明实施例可以用于语义检索时使用,对待检索文献数据库中的每一文献均进行文献预处理,以专利文献为例,专利文献文档预处理通过对文档进行处理,抽取,编码转化,归一化等,转化为包含纯文本的半结构化数据,这些半结构化数据将作为智能专利检索的输入,到预先建立的同样的半结构化数据中检索,根据本发明实施例提供的基于语义分析的文献相似度确定方法进行比较排序,获得智能搜索结果,也可以称作是语义搜索结果,检索精度高。文档及其处理结果,都通过kafka分布式消息队列来传递。整个过程如图4所示:
[0111]
专利文献数据主要格式为xml。首先需要从这两个xml数据表中提取拼接出需要的数据。
[0112]
xml文件多用于信息的描述,所以在得到一个xml文档之后按照xml中的元素取出对应的信息就是xml的解析。xml解析有两种方式,一种是dom解析,另一种是sax解析,本发明实施例采用的是dom解析方式对xml进行处理。
[0113]
基于dom解析的xml分析器是将其转换为一个对象模型的集合,用树这种数据结构对信息进行储存。通过dom接口,应用程序可以在任何时候访问xml文档中的任何一部分数据,因此这种利用dom接口访问的方式也被称为随机访问。
[0114]
这种方式也有缺陷,因为dom分析器将整个xml文件转换为了树存放在内存中,当文件结构较大或者数据较复杂的时候,这种方式对内存的要求就比较高,且对于结构复杂的树进行遍历也是一种非常耗时的操作。不过dom所采用的树结构与 xml存储信息的方式相吻合,同时其随机访问还可利用,所以dom接口还是具有广泛的使用价值。
[0115]
dom解析中有以下4个核心操作接口:
[0116]
1.document:此接口代表了整个xml文档,表示为整个dom的根,即为该树的入口,通过该接口可以访问xml中所有元素的内容。其常用方法如下:
[0117]
public nodelist getelementbytagname(string tagname);
[0118]
取得指定节点名称的nodelist;
[0119]
public element createelement(string tagname)throws domexception;
[0120]
创建一个指定名称的节点;
[0121]
public text createtextnode(string data)throws domexception;
[0122]
创建一个文本内容节点;
[0123]
element createelement(string tagname)throws domexception;
[0124]
创建一个节点元素;
[0125]
public attr createattribute(string name)throws domexception;
[0126]
创建一个属性:
[0127]
2.node:此接口在整个dom树中有着举足轻重的地位,dom操作的核心接口都继承于node(document、element、attr)。在dom树中,每一个node接口代表了一个dom树节点。
[0128]
node接口常用方法:
[0129]
node appendchilid(node newchild)throws domexception;
[0130]
在当前节点下增加下一个新节点;
[0131]
public nodelist getchildnodes();
[0132]
取得本节点下的全部子节点;
[0133]
public node getfirstchild();
[0134]
取得该节点下的第一个子节点;
[0135]
public node getlastchild();
[0136]
取得本节点下的最后一个子节点;
[0137]
public boolean haschildnodes();
[0138]
判断是否还有其他节点;
[0139]
string getnodevalue()throws domexception;
[0140]
获取节点内容:
[0141]
3.nodelist:此接口表示一个点的集合,一般用于有序关系的一组节点。nodelist 常用方法:
[0142]
public int getlength();
[0143]
取得nodelist中节点的个数;
[0144]
public node item(int index);
[0145]
根据索引取得节点对象;
[0146]
4.namednodemap:此接口表示一组节点和其唯一名称对应的一一关系,主要用于节点属性的表示。
[0147]
除了以上四个核心接口外,如果一个程序需要进行dom解析操作,则需要按照如下步骤进行:
[0148]
1、建立documentbuilderfactor,用于获得documentbuilder对象:
[0149]
documentbuilderfactory factory=documentbuilderfactory.newinstance();
[0150]
2、建立documentbuidler:
[0151]
documentbuilder builder=factory.newdocumentbuilder();
[0152]
3、建立document对象,获取树的入口:
[0153]
document doc=builder.parse(“xml文件的相对路径或者绝对路径”);
[0154]
4、建立nodelist:
[0155]
nodelist n1=doc.getelementbytagname(“读取节点”)。
[0156]
下面针对利用本发明实施例提供的基于语义分析的文献相似度确定方法,进行专利文献智能检索进行介绍。
[0157]
1.检索召回算法。
[0158]
检索系统最重要的是排序,排序分为初级排序(即检索召回)和基于业务理解、 nlp、机器学习的学习排序,检索召回主要采用词频-逆文档频率、bm25等算法。
[0159]
检索召回的目的是利用相对轻量级的算法快速获取候选项,从而方便后续利用复杂的排序算法进行排序,优化整个流程的查找效率,避免不必要的运算。候选项要大于我们最终要找的目标项。比如我们目标是找到最可能的50个专利文献,那么候选项可以设置为500个。
[0160]
(1)基于词频-逆文档频率检索召回
[0161]
词频-逆文档频率是一种用于信息检索与文本挖掘的常用加权技术。词频-逆文档频率是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。在一份给定的文件里,词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数(term count)的归一化,以防止它偏向长的文件。对于在某一特定文件里的词语ti来说,它的重要性可表示为:
[0162][0163]
以上式子中ni,j是该词在文件dj中的出现次数,而分母则是在文件dj中所有字词的出现次数之和。
[0164]
逆向文件频率(inverse document frequency,idf)是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取以10为底的对数得到:
[0165][0166]
其中:
[0167]
|d|:语料库中的文件总数;
[0168]
|{j:ti∈dj}|:包含词语ti的文件数目(即ni,j!=0的文件数目)如果词语不在数据中,就导致分母为零,因此一般情况下使用1 |{j:ti∈dj}|;
[0169]
然后tfidf i,j=tfi,j
×
idfi;
[0170]
某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的词频-逆文档频率。因此,词频-逆文档频率倾向于过滤掉常见的词语,保留重要的词语。
[0171]
(2)基于bm25检索召回
[0172]
bm25是一种常见的用来做相关度打分的公式,相当于把tfidf进行了扩展,主要就是计算一个query里面所有词和文档的相关度,然后再把分数做累加操作,而每个词的相关度分数主要还是受到tf/idf的影响,bm25的原始公式如下:
[0173][0174]
其中ri是包含词项i的相关文档数量,ni是包含词项i的文档数量,n是整个文档数据集中所有文档的数量,r是和这个查询相关的文档数量,由于在典型的情况下,没有相关信息,即ri和r都是0,而通常的查询中,不会有某个词项出现的次数大于 1,因此打分的公式score变为:
[0175][0176]
bm25算法,在用来作搜索相关性评分时主要的操作为:对query进行语素解析,生成语素qi;然后,对于每个搜索结果d,计算每个语素qi与d的相关性得分,最后,将qi相对于d的相关性得分进行加权求和,从而得到query与d的相关性得分,将上述公式转写成bm25的一般性公式如下:
[0177][0178]
其中,q表示query,qi表示q解析后的一个语素(对中文而主,我们可以把对 query的分词作为语素分析,把每个词看成语素qi);d表示一个搜索结果文档;wi 表示语素的权重;r(qi,d)表示语素qi与文档d的相关性得分。
[0179]
下面定义wi,表示一个词与一个文档的相关性的权重,方法有多种,如果作为 bm25的一般性公式,则可以描述为类似idf的形式,公式如下:
[0180][0181]
其中n为索引中的全部文档数,n(qi)为包含了qi的文档数。根据idf的定义可以看出,对于给定的文档集合,包含了qi的文档数越多,qi的权重则越低,也就是说,当很多文档都包含了qi时,qi的区分度就不高,因此使用qi来判断相关性的重要度就越低。再来看语素qi与文档d的相关性得分r(qi,d),首先看bm25中相关性得分的一般形式:
[0182][0183][0184]
其中,k1.k2.b为调节因子,通常根据经验设置,一般k1=2,b=0.75;fi为qi在d中的出现频率,qfi为qi在query中的出现频率。dl为文档d的长度,avgdl为所有文档的平均长度。由于在绝大部分情况,qi在query中只会出现一次,即qfi=1,因此公式可以简化为:
[0185]
[0186]
从k的定义中可以看到,参数b的作用是调整文档长度对相关性影响的大小。b 越大,文档长度对相关性得分的影响越大,反之越小;而文档的相对长度越大,k值将越大,则相关性得分会越小。这可以理解为,当文档较长时,包含qi的机会越大,因此,同等fi的情况下,长文档与qi的相关性应该比短文档与qi的相关性弱。
[0187]
综上,bm25算法的相关性得分公式可总结为:
[0188][0189]
从bm25的公式可以看到,通过使用不同的语素分析方法、语素权重判定方法,以及语素与文档的相关性判定方法,我们可以衍生出不同的搜索相关性得分计算方法,这就为我们设计算法提供了较大的灵活性。
[0190]
(3)基于函数的排序
[0191]
排序模型有很多是基于函数的,比如衰减函数可以基于时间、数目等维度进行分数衰减降权,常见的衰减函数如gauss衰减、线性衰减等。
[0192]
gauss衰减:基于高斯函数衍生出来的衰减函数,它的公式定义如下:
[0193][0194]
这个公式的分数在超出origin /-offset之后会得到衰减;在给定scale时(衰减界限)、decay(衰减程度)时,衰减函数的形状也会给定,因此σ的计算方法如下:
[0195]
σ2=-scale2/(2
×
ln(decay))
[0196]
指数衰减:
[0197]
s(doc)=exp(λ
×
max(0,|fieldvalue
doc-origin|-offset))
[0198]
同样的,这个公式的分数在超出origin /-offset之后会得到衰减;在给定scale 时(衰减界限)、decay(衰减程度)时,衰减函数的形状也会给定,因此λ的计算方法如下:
[0199]
λ=ln(decay)/scale
[0200]
线性衰减:
[0201][0202]
其中s的计算方法如下:
[0203]
s=scale/(1.0-decay));
[0204]
与前两个公式相比,在fieldvalue超过两倍scale时,这个公式的分数将变为0。
[0205]
2.检索排序算法。
[0206]
检索系统本质是基于对query和专利的理解,实现语义级的匹配,再对匹配的候选结果进行排序。排序有分为召回和精排两个阶段,召回前文已结束,返回topn的候选结果,在精排阶段在对topn的结果基于机器学习排序模型做精确排序选出topm (n》m)的结果,简称ltr(learning to rank)。
[0207]
下面详细介绍利用潜在语义分析和关联规则挖掘构造上文提到的检索联想模型。
[0208]
1、潜在语义分析。
[0209]
潜在语义分析lsa通过引入概念空间来减小同义噪音。lsa利用词的上下文相关性,即出现在相似上下文中的词,被认为在用法和含义上相近。为实现lsa思想,首先构造
词-文档矩阵:
[0210]
a=|a
ij
|m
×
n;
[0211]
m代表词汇总量,n代表文档个数,其中a
ij
为非负值,表示第i个词在第j个文档中出现的权重。不同的词对应矩阵a 不同的行,每一个文档则对应矩阵a 的列。通常aij要考虑来自两方面的贡献,即局部权值l(i,j)和全局权值c(i,j)。在 vsm模型中,局部权值l(i,j)和全局权值c(i,j)有不同的权重计算方法,如idf, tfidf等。由于每个词只会出现在少量文档中,故a通常为高阶稀疏矩阵。设第i 个和第j个词分别对应词-文档矩阵的第i行和第j行,分别记为ti=(ai1,ai2,

, ain)和tj=(aj1,aj2,

,ajn),其相似度定义为
[0212][0213]
在计算相似度之前,通常先将aij转化为log(aij 1),再除以它的熵,这样预处理能将词的上下文考虑进来,突出了词在文章中的用文环境。经过信息熵变换后得到次序化的词-文档矩阵a

=a

ij m
×
n,其中:
[0214][0215]
潜在语义分析的理论基础是矩阵的奇异值分解(singular value decomposition, svd),奇异值分解是数理统计中常用的方法。词-文档矩阵a

建立后,利用奇异值分解计算a

的k秩近似矩阵a

k(k《《min(m,n))经奇异值分解,矩阵a

可表示为三个矩阵的乘积:
[0216]
a'=u∑v
t

[0217]
式中u和v分别是a

的奇异值对应的左、右奇异向量矩阵;σ是标准型;vt 是v的转秩;a

的奇异值按递减排列构成对角矩阵σk,取u和v最前面的k 个列构建a

的k秩近似矩阵:
[0218][0219]
式中uk和vk的列向量均为正交向量,假定a

的秩为r,则有:
[0220]ut
u=v
t
v=ir(ir是r
×
r阶单位阵);
[0221]
用a'k近似表征原词-文档矩阵a

,uk和vk中的行向量分别作为词向量和文档向量,在此基础上进行文本分类和其他各种文档处理,这就是隐含语义索引技术。尽管lsi也是用文档中包含的词来表示文档的语义,但lsi模型并不把文档中所有的词看作是文档概念的可靠表示。由于文档中词的多样性很大程度上掩盖了文档的语义结构,lsi通过奇异值分解和取k秩近似矩阵,一方面消减了原词-文档矩阵中包含的“噪声”因素,从而更加凸现出词和文档之间的语义关系;另一方面使得词、文档向量空间大大缩减,可以提高文本挖掘的效率。
[0222]
2、关联规则挖掘。
[0223]
关联规则是数据挖掘中的一种主要的挖掘技术,它可以从海量的数据中发现潜在
有用的关联或相关关系。设i={i1,i2,

,im}是项的集合,记d为事务t的集合,这里事务t是项的集合,并且t∈i。对应每一个事务有唯一的标识,记作设tid。设x是一个i中项的集合,如果x∈t,那么称事务t包含x。一个关联规则是形如x

y的蕴涵式,这里并且x∩y=φ规则x

y在事务集d 中的支持度是事务集中包含x和y的事务数与所有事务数之比,记为support(x
ꢀ→
y),即:
[0224][0225]
规则x

y在事务集中的可信度是指包含x和y的事务数与包含x的事务数之比,记为confidence(x

y),即:
[0226][0227]
给定一个事务集d,关联规则挖掘问题就是产生支持度和可信度分别大于用户给定的最小支持度和最小可信度的关联规则,常用的算法有apriori算法、fp-growth 算法。
[0228]
对于关联词挖掘,设挖掘出的关联规则形如{ti

tj,s,c},表示了词ti出现在文档中,则词tj出现在同一文档的支持度为s(0≤s≤1),置信度为c(0≤c≤1)。如果支持度和置信度大于指定的阈值,则可以认为它们的关联性很大,大到即使忽略词也不会引起信息损失,这就保证了词的独立性。
[0229]
3、算法过程。
[0230]
根据以上原理分析对同义词和关联词集的构造算法描述如下:
[0231]
算法1:同义词集构造算法。
[0232]
输入:
[0233]
1)训练文档集;
[0234]
2)概念空间维数k;
[0235]
3)同义归并保留特征词个数n。
[0236]
输出:
[0237]
1)共n个元素的特征词集;
[0238]
2)归并方案集(决定被归并的同义语该归并到那个保留特征词)。
[0239]
步骤:
[0240]
1)根据训练文档包含词的情况构造出词-文档矩阵;
[0241]
2)对词-文档矩阵进行次序化处理;
[0242]
3)使用svd对词-文档矩阵进行奇异值分解,得到词-文档矩阵的左右奇异向量和奇异值标准型;
[0243]
4)保留左奇异向量的前k列数据,其它列数据全部清零;
[0244]
5)保留奇异值标准型对角线上的前k个数据,其它对角线数据全部清零;
[0245]
6)保留右奇异向量的前k列数据,其它列数据全部清零;
[0246]
7)将清零后的左右奇异向量和奇异值标准型相乘,得到新的词-文档矩阵;
[0247]
8)对新的词-文档矩阵进行次序化处理;
[0248]
9)当词个数超过n时做步骤10~14,进行同义归并;
[0249]
10)在特征词集合中查找相似度最大的两个特征词;
[0250]
11)在特征词集中删除相似度最大的特征词对中的任一个;
[0251]
12)在归并方案集中查找含有相似度最大的特征词对中任一特征词的归并方案;
[0252]
13)如找到,则将另一个特征词加入到归并方案的归并特征词集合中去;
[0253]
14)如匹配不到归并方案,则以这两个特征词构造一个归并方案,并放入归并方案集中去。
[0254]
算法2:关联词集构造算法。
[0255]
输入:
[0256]
1)训练文档集;
[0257]
2)关联归并阈值:支持度s,置信度c。
[0258]
输出:
[0259]
1)关联归并后的特征词集;
[0260]
2)关联归并后的归并方案集。
[0261]
步骤:
[0262]
1)利用aprior算法求得所有支持度和置信度分别大于s和c的单维关联;
[0263]
2)对每一条支持度和置信度分别大于s和c的单维关联规则做步骤3~6,进行关联归并;
[0264]
3)在特征词集中删除关联规则右部的特征词;
[0265]
4)在归并方案集中查找含有关联规则任一边特征词的归并方案;
[0266]
5)如找到,则将另一特征词加入到归并方案的归并特征词集中去;
[0267]
6)如匹配不到归并方案,则以关联规则左右部的两个特征词构造一个归并方案,并放入归并方案集中去。
[0268]
实践证明,通过潜在语义分析和关联规则挖掘,可有效实现检索联想模型的构建。
[0269]
综上所述,本发明实施例提供的基于语义分析的文献相似度确定方法可以实现基于语义分析准确地确定文献不同部分的权重,进而准确地确定文献相似度。
[0270]
本发明实施例中还提供了一种基于语义分析的文献相似度确定装置,如下面的实施例所述。由于该装置解决问题的原理与基于语义分析的文献相似度确定方法相似,因此该装置的实施可以参见基于语义分析的文献相似度确定方法的实施,重复之处不再赘述。
[0271]
图5为本发明实施例中基于语义分析的文献相似度确定装置的结构示意图,如图 5所示,该装置包括:
[0272]
划分单元01,用于将每一待比较文献划分为多个部分;
[0273]
语义分析单元02,用于对每一部分进行语义分析得到每一部分的语义分析结果;
[0274]
权重值确定单元03,用于根据每一部分的语义分析结果,确定每一待比较文献的每一部分的权重值;
[0275]
处理单元04,用于根据每一待比较文献的每一部分的权重值,得到每一待比较文献的加权平均结果;
[0276]
相似度确定单元05,用于根据每一待比较文献的加权平均结果确定待比较文献之间的相似度。
[0277]
在一个实施例中,如图6所示,所述语义分析单元02可以包括:
[0278]
分词处理模块021,用于对每一部分进行分词处理,得到每一部分对应的多个关键词;
[0279]
特征提取模块022,用于根据每一部分对应的多个关键词,以及预设的文献特征提取策略,从每一部分中提取出多个类型的关键特征,构成每一部分对应的特征集合;
[0280]
特征评估模块024,用于根据每一部分对应的特征集合,对每一部分进行词级、句法级和篇章级的语义分析,得到每一部分的语义分析结果。
[0281]
在一个实施例中,如图7所示,上述所述语义分析单元02还可以包括特征降维模块023,用于利用主成分分析法、线性判别分析法和互信息法,对每一部分对应的特征集合进行特征的筛选和组合,得到特征降维处理后的每一部分对应的特征集合;
[0282]
所述特征评估模块024具体用于:根据特征降维处理后的每一部分对应的特征集合,对每一部分进行词级、句法级和篇章级的语义分析,得到每一部分的语义分析结果。
[0283]
在一个实施例中,所述多个类型的关键特征可以包括:文献静态特征,文献与查询关联的特征,以及查询的特征。
[0284]
在一个实施例中,所述预设的文献特征提取策略可以包括:根据关键词在文献中出现的频率,关键词的逆文档频率,关键词的词性,关键词是否为专业词,关键词出现在文献中的位置,关键词的text-rank值,关键词的信息熵值,关键词的词向量与整体偏差值,关键词长度,关键词作为句子的成分,关键词是否再被切分成子关键词,关键词在文献中第一次出现与最后一次出现位置的长度,关键词分布偏差的其中之一或任意组合,进行文献特征提取。
[0285]
在一个实施例中,在关键词能再被切分到子关键词时,所述预设的文献特征提取策略还可以包括:根据子关键词的词频-逆文档频率,子关键词的词性,子关键词是否为专业词的其中之一或任意组合进行文献特征提取。
[0286]
本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
[0287]
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于语义分析的文献相似度确定方法。
[0288]
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于语义分析的文献相似度确定方法。
[0289]
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述基于语义分析的文献相似度确定方法。
[0290]
本发明实施例中,基于语义分析的文献相似度确定方案,与现有技术中根据经验为文献不同部分内容预先设置不同的固定权重,进而确定文献相似度,存在权重设置不准确,进而导致文献相似度确定也不准确的问题的技术方案相比,通过:将每一待比较文献划分为多个部分;对每一部分进行语义分析得到每一部分的语义分析结果;根据每一部分的语义分析结果,确定每一待比较文献的每一部分的权重值;根据每一待比较文献的每一部分的权重值,得到每一待比较文献的加权平均结果;根据每一待比较文献的加权平均结果,确定待比较文献之间的相似度,可以实现基于语义分析准确地确定文献不同部分的权重,进而准确地确定文献相似度。
[0291]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序
产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等) 上实施的计算机程序产品的形式。
[0292]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0293]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0294]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0295]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献