发明内容
本发明的目的在于针对现有技术的缺陷,提供一种文档相关度计算***和方法,其基于义元集语义分析技术,同时可消除多义词和词汇稀疏现象对相关度的消极影响。
本发明的技术方案是:一种文档相关度计算***,包括顺序相连的文档预处理模块和分词模块,所述文档预处理模块的输入为至少一篇待分析文档,所述分词模块的输出为对应所述至少一篇文档的第一词汇表;所述分词模块还具有对切分后的词汇进行词性标注的功能;还包括:在所述分词模块与义元处理模块之间还串联的分词后处理模块,所述分词后处理模块用于根据第一词汇表中词汇的词性,剔除其中的停用词、虚词,得到第二词汇表;义元处理模块,用于对所述第二词汇表中的词汇进行义元标注,形成第三词汇表,确定所述第三词汇表中多义词所对应的多个义元的权重或为多义词确定唯一义元以得到第一义元表,对所述第一义元表中的所有义元计算权重,得到按权重排序的主题语义向量;文档相关度计算模块,其与所述义元处理模块相连,用于对至少两个主题语义向量进行相关度计算。
其中,所述文档预处理模块用于将输入的、不同格式的文档转换为标准格式,并提取文档正文;分词模块用于对所述文档预处理模块的输出进行分词,得到所述第一词汇表。所述义元处理模块包括:义元标注模块,其用于使用义元词典对所述第二词汇表中的词汇进行义元标注,形成第三词汇表;词义消歧模块,其用于确定所述第三词汇表中多义词所对应的多个义元的权重,或为多义词确定唯一义元,得到第一义元表;主题语义向量计算模块,其用于对所述第一义元表中的所有义元计算权重,得到按权重排序的主题语义向量。
作为本发明的一个改进,还包括主题语义向量库,其输入端与所述义元处理模块相连,输出端与所述文档相关度计算模块相连,用于存储所述义元处理模块输出的主题语义向量。所述文档相关度计算模块用于对至少两个主题语义向量进行相关度计算;所述主题语义向量从所述义元处理模块获得,或从所述主题语义向量库中获得,或分别从所述义元处理模块和主题语义向量库中获得。
本发明还提供了一种文档相关度计算方法,包括以下步骤:(a),由文档预处理模块将输入的、不同格式的文档转换为标准格式,并提取文档正文内容;(b),由分词模块对所述文档预处理模块的输出进行分词并对切分后的词汇进行词性标注,得到第一词汇表;由分词后处理模块对所述第一词汇表的词汇进行剔除其中的停用词、虚词处理得到第二词汇表;(c),由义元处理模块对所述第二词汇表中的词汇进行义元标注,形成第三词汇表,并对所述第三词汇表中的词汇进行处理,确定其中多义词所对应的多个义元的权重或为多义词确定唯一义元以得到第一义元表,对所述第一义元表中的所有义元计算权重,得到按权重排序的主题语义向量;(d),由文档相关度计算模块对待分析的至少两篇文档的主题语义向量进行计算,得到所述至少两篇文档的相关度。
其中,步骤(d)中,所述至少两篇文档的主题语义向量从所述义元处理模块获得,或从与所述文档相关度计算模块连接的主题语义向量库中获得,或分别从所述义元处理模块和主题语义向量库中获得。
进一步的,步骤(a)进一步包括:所述文档预处理模块获取对应文档类别信息和标题信息。
步骤(c)中,获得主题语义向量的方法是:(c1),由义元标注模块使用义元词典对所述第二词汇表中的词汇进行义元标注,形成第三词汇表;(c2),由词义消歧模块对所述第三词汇表中标注过义元的词汇进行处理,确定其中多义词所对应的多个义元的权重,或为多义词确定唯一义元,得到第一义元表;(c3),由主题语义向量计算模块对所述第一义元表中的所有义元计算权重,得到按权重排序的主题语义向量。
本发明的有益效果在于:①采用基于义元集的语义分析技术,避免了词汇稀疏的难题,使得涉及短文章的文档间相关度的分析效果良好,提升了文档相关度计算的精度。②应用词义消歧技术,消除了多义词对计算相关度的消极影响,提高了相关度计算精度。③充分考虑了文档的预分类、标题信息和显示属性,能够准确地提取出文档的主题,从而提升文档相关度计算精度。
具体实施方式
下面根据附图和较佳实施例对本发明作进一步阐述。
如图1所示,本发明一种文档相关度计算***包括顺次相连的文档预处理模块1、分词模块2、分词后处理模块3、义元处理模块和文档相关度计算模块8。义元处理模块包括顺次相连的义元标注模块4、词义消歧模块5和主题语义向量计算模块6。根据需要,还可以包括主题语义向量库7,其输入端与主题语义向量计算模块6相连,其输出端与文档相关度计算模块8相连。
其中,文档预处理模块1用于将输入的、不同格式的文档转换为标准格式,并提取文档正文。其中,不同格式的文档可以包括网页、word文档、文本文档、pdf等文档。标准格式可以是文本文档。在具体实现中,如果可以从转换后的标准格式中提取文档标题和分类信息,则文档预处理模块还可以具有提取转换后标准文档标题和分类信息的能力,以提高提取文档主题的准确度,从而提升文档相关度计算精度。如***处理的所有文档都是网页格式的,则标准格式定义为网页格式,文档预处理模块就需要具备提取网页标题和分类信息的能力。它与分词模块2相连。
分词模块2用于对所述文档预处理模块1的输出进行分词。本实施例中,分词模块2负责按照词典将转换后网页的正文和标题、类别切分成词汇。如将“我是一个学生”进行分词,分为“我”、“是”、“一个”、“学生”四个词。现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。本实施例中采用基于字符串匹配的分词方法。该方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。
本发明中,分词模块2还具有对切分后的词汇进行词性标注的功能,以方便分词后处理模块3按照词性将词汇中的停用词和虚词等去掉。
分词后处理模块3的功能包括但不限于对分词模块2的输出去停用词、去虚词等功能,剔除对主题无关的信息。
义元标注模块4用于使用义元词典对分词后的词汇到义元标注。它与分词后处理模块3、词义消歧模块5、以及义元词典相连。
由于义元词典对多义词给出了多个义元,这时就需要词义消歧模块5根据上、下文信息确定该多义词对应的每个义元的可能权重。当然也可以采用较简单的方法:根据上下文确定一个特定的义元作为该多义词的语义。本实施例采用第二种方法。可以采用贝叶斯算法、决策树、计算信息熵等方法进行计算。
本发明在文档主题的提取过程中并不是用词汇作为计算单元的,而是使用义元词典将词汇转换成义元表示,是一种基于义元集的语义分析技术。所谓义元(semantic primitives)就是组义语言中最基本的元素。它可以解释成:一组意思的符号,此外,所有的其它词汇都能用它们来定义。自然语言处理所面临的一个重大难题是词汇稀疏,所以将关键词转换成义元词表示能很大程度上避免词汇稀疏现象,义元集是一个小规模词汇或者义元序号集合,表征了自然界的所有概念,一个义元集元素唯一的、不重复的表示一个概念。
主题语义向量计算模块6用于利用统计语言学原理对词义消歧模块5输出的所有义元进行计算,计算的结果是对不同的义元赋予了不同的权重,得到按权重排序的主题语义向量。如果文档预处理模块1得到了文档的标题和分类信息,则主题语义向量计算模块6在计算的过程中对于文档的分类信息、标题信息和正文信息分别给予不同的统计权值。
本实施例中,采用Tf-Idf算法对所有义元计算权重。当然也可以采用交叉熵等算法对义元计算权重。Tf-Idf算法采用倒排索引技术,其主要应用在全文检索。该算法可以保证为中等频率的义元赋以高的权重,并排除噪声词汇。
主题语义向量库7用于存储主题语义向量计算模块6输出的主题语义向量。
文档相关度计算模块8用于对待分析的至少两篇文档的主题语义向量进行计算,得到所述至少两篇文档的相关度。上述主题语义向量可以都从义元处理模块获得,即前述各模块分别同时处理至少两篇文档。上述主题语义向量也可以都从所述主题语义向量库7中获得,其根据设定,从主题语义向量库7中寻找到与待分析文档对应的主题语义向量,然后进行计算。上述主题语义向量也可以一篇从义元处理模块中获得,而另一篇从主题语义向量库7中获得。例如管理模块发现待分析的两篇文档中的一篇已经经过分析,且其主题语义向量存储在主题语义向量库7中,则本次只分析一篇文档,另一篇文档的主题语义向量直接从主题语义向量库7中获得。
可以通过计算两个主题语义向量之间的夹角余弦来得到相关文档的相关度。
如图2所示,本发明一种文档相关度计算方法包括步骤:
S1,文档预处理模块1将输入的、不同格式的文档转换为标准格式文档,提取其正文内容,如果可以再获得其标题和类别信息。
S2,分词模块2对文档的正文内容(可能还包括类别和标题)进行分词,并对上述切分后的词汇进行词性标注,形成第一词汇表。
S3,分词后处理模块3将第一词汇表中的停用词、虚词等剔除,形成第二词汇表。
S4,义元标注模块4按照词典和义元词典的对应关系将第二词汇表中的词汇用义元进行标注,形成第三词汇表。
S5,词义消歧模块5对第三词汇表中的多义词进行处理,根据上下文信息为多义词确定对应的唯一义元,得到第一义元表。
S6,主题语义向量计算模块6按照量空间模型的Tf-Idf(特征项赋权因子)等算法给第一义元表中的所有义元计算权重,得到按权重排序的主题语义向量。
S7,文档相关度计算模块8对与待分析文档相对应的主题语义向量进行计算,得到待分析文档之间的相关度,并将其归一化到0-1之间的数值。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。