本发明涉及情报检索技术领域,尤其涉及一种基于情报数据的文本检索分类方法、系统及存储介质。
背景技术:
目前文本分类的方法有很多,基于统计的分类方法是通过模型对文本数据进行分类,分类性能比较好的方法有knn、svm等,但是这类方法有局限性,比如语料不全、训练样本的数量不够或者质量不佳等都会影响文本的分类效果。此外,在资料搜索引擎中,目前lucene搜索引擎的核心文档打分算法没有考虑关键词在文档中的位置,当用户搜索多个关键词组合时,这个算法不会考虑关键词的顺序,比如“中国北京”两个关键词,它只要出现次数多打分就越高,但实际的文档出现了大量的“中国”关键词,而且“北京”只出现少量,而且都跟“中国”这个关键词离得很远,这样的文档打分高,反而连续出现“北京中国”,但频次不高的文档打分低,结果就不符合用户的期望,因此,现有的检索分类方法不准确。
技术实现要素:
本发明的目的是提出了一种基于情报数据的文本检索分类方法、系统及存储介质,以解决原有打分算法位置不相关的问题,提高检索分类的准确性。
为实现上述目的,本发明提供的一种基于情报数据的文本检索分类方法,包括以下步骤:
对ocr识别出来的文档进行采集,得到非结构化文档,并将所述文档存入数据库;
通过人工或机器自动生成关键词字典,并对所述关键词字典进行归类;
使用已分类的关键词字典对所述文档进行处理,基于关键词生成倒排索引,其中,在生成倒排索引时,增加每个所述关键词所在的位置信息;
根据所述关键词所在的分类对所述文档进行分类标注,并将得到的分类结果存入数据库;
对所述分类结果通过机器学习和/或人工标注方式生成新的词汇,并对新的词汇重新进行分类,将所述新的词汇存入所述关键词字典。
其中,所述方法还包括:
在接收到用户基于待查询关键词的查询请求时,基于所述关键词字典计算所述待查询关键词的相关度,将所述待查询关键词的相关度乘以位置相关的权重,所述位置相关的权重基于所述待查询关键词所在的位置信息获得;
根据乘以位置相关的权重后的待查询关键词的相关度,并基于预设的打分公式对数据库中的文档进行全文检索排序,并将检索结果归类到所述待查询关键词所在的类别;
将检索结果呈现给用户。
其中,所述打分公式为:
score(q,d)=distance(q,d)×querynorm(q)×
∑tinq(t∫(tind)×idf(t)2×t.getbost()×norm(t,d);
其中,distance(q,d)为打分参数;
querynorm(q)为计算每个查询条目的方差和;
t∫(tind)为termt在文档d中出现的词频;
idf(t)为termt在几篇文档中出现过;
t.getbost()为查询语句中每个词的权重;
norm(t,d)的含义为标准化因子。
其中,所述
∑(qfirst-qlast):待查询关键词在文档中任意一组的位置间距求和。
其中,位置相关的关键词特征提取公式为:
d(q):为某个关键字组合的特征向量;
p(q,d):待查询关键字q组合在文档d中出现的次数;
∑(qfirst-qlast):待查询关键字在文档中任意一组的位置间距求和;
qfirst:每组关键字中第一个词的位置;
qlast:每组关键字中最后一个词的位置;
p(q):带查询关键字在字典中的位置。
此外,本发明还提出一种基于情报数据的文本检索分类系统,包括:
采集模块,用于对ocr识别出来的文档进行采集,得到非结构化文档,并将所述文档存入数据库;
归类模块,用于通过人工或机器自动生成关键词字典,并对所述关键词字典进行归类;
处理模块,用于使用已分类的关键词字典对所述文档进行处理,基于关键词生成倒排索引,其中,在生成倒排索引时,增加每个所述关键词所在的位置信息;
分类模块,用于根据所述关键词所在的分类对所述文档进行分类标注,并将得到的分类结果存入数据库,以及对所述分类结果通过机器学习和/或人工标注方式生成新的词汇,并对新的词汇重新进行分类,将所述新的词汇存入所述关键词字典。
此外,本发明还提出一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被所述处理器运行时实现如上所述的方法的步骤。
本发明的有益效果为:通过对ocr识别出来的文档进行采集,得到非结构化文档,并将所述文档存入数据库;通过人工或机器自动生成关键词字典,并对所述关键词字典进行归类;使用已分类的关键词字典对所述文档进行处理,基于关键词生成倒排索引,其中,在生成倒排索引时,增加每个所述关键词所在的位置信息;根据所述关键词所在的分类对所述文档进行分类标注,并将得到的分类结果存入数据库;对所述分类结果通过机器学习和/或人工标注方式生成新的词汇,并对新的词汇重新进行分类,将所述新的词汇存入所述关键词字典。本发明针对原有打分算法位置不相关的问题,在生产索引的时候,增加每个关键字所在的位置信息,然后查询的时候计算相关度时,乘以位置相关的权重,位置越接近的两组关键词得分越高,这样查询出来的结果符合预期。因加入了位置相关度信息,使得分类更准确。
附图说明
图1是本发明基于情报数据的文本检索分类方法的流程示意图;
图2是本发明基于情报数据的文本检索分类方法的原理示意图;
图3是新的排序算法打分公式示意图;
图4是分类算法得到的值是关键字组合在字典中的位置矢量与关键字组合在文档中的位置矢量之和示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
具体地,如图1及图2所示,本发明提出一种基于情报数据的文本检索分类方法,其特征在于,包括以下步骤:
s1,对ocr识别出来的文档进行采集,得到非结构化文档,并将所述文档存入数据库;
s2,通过人工或机器自动生成关键词字典,并对所述关键词字典进行归类;
s3,使用已分类的关键词字典对所述文档进行处理,基于关键词生成倒排索引,其中,在生成倒排索引时,增加每个所述关键词所在的位置信息;
s4,根据所述关键词所在的分类对所述文档进行分类标注,并将得到的分类结果存入数据库;
s5,对所述分类结果通过机器学习和/或人工标注方式生成新的词汇,并对新的词汇重新进行分类,将所述新的词汇存入所述关键词字典。
进一步地,所述方法还包括:
在接收到用户基于待查询关键词的查询请求时,基于所述关键词字典计算所述待查询关键词的相关度,将所述待查询关键词的相关度乘以位置相关的权重,所述位置相关的权重基于所述待查询关键词所在的位置信息获得;
根据乘以位置相关的权重后的待查询关键词的相关度,并基于预设的打分公式对数据库中的文档进行全文检索排序,并将检索结果归类到所述待查询关键词所在的类别;
将检索结果呈现给用户。
其中,所述打分公式为:
score(q,d)=distance(q,d)×querynorm(q)×
∑tinq(t∫(tind)×idf(t)2×t.getbost()×norm(t,d);
其中,distance(q,d)为打分参数;
querynorm(q)为计算每个查询条目的方差和;
t∫(tind)为termt在文档d中出现的词频;
idf(t)为termt在几篇文档中出现过;
t.getbost()为查询语句中每个词的权重;
norm(t,d)的含义为标准化因子。
所述
σ(qfirst-qlast):待查询关键词在文档中任意一组的位置间距求和。
其中,位置相关的关键词特征提取公式为:
d(q):为某个关键字组合的特征向量;
p(q,d):待查询关键字q组合在文档d中出现的次数;
σ(qfirst-qlast):待查询关键字在文档中任意一组的位置间距求和;
qfirst:每组关键字中第一个词的位置;
qlast:每组关键字中最后一个词的位置;
p(q):带查询关键字在字典中的位置。
此外,本发明还提出一种基于情报数据的文本检索分类系统,包括:
采集模块,用于对ocr识别出来的文档进行采集,得到非结构化文档,并将所述文档存入数据库;
归类模块,用于通过人工或机器自动生成关键词字典,并对所述关键词字典进行归类;
处理模块,用于使用已分类的关键词字典对所述文档进行处理,基于关键词生成倒排索引,其中,在生成倒排索引时,增加每个所述关键词所在的位置信息;
分类模块,用于根据所述关键词所在的分类对所述文档进行分类标注,并将得到的分类结果存入数据库,以及对所述分类结果通过机器学习和/或人工标注方式生成新的词汇,并对新的词汇重新进行分类,将所述新的词汇存入所述关键词字典。
此外,本发明还提出一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被所述处理器运行时实现如上所述的方法的步骤。
相比现有技术,本发明提出的基于情报数据的文本检索分类方法,根据关键字快速检索文档,并按相关度对文档排序;将已存在的文档进行归类,根据预设的关键词进行全文检索,并将检测结果归类到预设关键词所在的类别。
在日常工作中,可以通过电脑、手机登录网站进行科技情报的模糊检索。具体应用如下:
1、针对科研项目预研方面,用户可以通过应用平台填写科研项目基本信息,应用系统根据项目基本信息自动推荐类似项目申报书、商业计划书、行业研究分析、政府政策相关文件等情报材料供项目科研工作开展。
2.可应用于校园的知识管理系统,系统收集、处理、组织的知识,高效检索需求的文本。
3.可应用于企业信息管理,整合、获取、组织企业知识的系统与管理,以便为企业的决策提供支持。
4、还能够应用于科技情报搜索,搜索的条件是关键字搜索、情报文章时间搜索、发布站点搜索及图片搜索等。
5、还能够应用于科技情报大数据分析中心图的呈现。科技情报大数据分析系统中里面的内容包括总情报数量、情报类型统计分析、20大关键字倒序、情报发生地区统计等。
相比现有技术,为了解决原有打分算法位置不相关的问题,本发明在生产索引的时候,增加每个关键字所在的位置信息。然后查询的时候计算相关度时,乘以位置相关的权重。位置越接近的两组关键词得分越高,这样查询出来的结果符合人们的预期。
以下对本发明的打分算法进行详细阐述:
如图3所示,图3是新的排序算法打分公式示意图,其中:
横坐标dn:关键字第一个词的位置减去最后一个词的位置;
纵坐标n:关键字组合在文档中的数量,比如“北京xxx中国xxxxx北京中国xx北京x中国”,“北京中国”这个关键字组合出现的次数为3三次。
原有的打分公式为:
改为:
score(q,d)=distance(q,d)×querynorm(q)×
σtinq(t∫(tind)×idf(x)2×t.getbost()×norm(t,d)
其中:新的打分公式将coord(q,d)加入关键词间距参数后改为
n(q,d):待查询关键字组合在文档中出现的次数(不考虑间距,只考虑出现的次序和待查询关键词次序相同就算为出现一次)。
∑(qfirst-qlast):待查询关键词在文档中任意一组的位置间距求和;
在传统svm分类算法中,提取文本特征时,特征词的跟位置也是不相关的,识别出来的特征有时并不准确,比如文本中有“笔记本”,“电脑”这两个关键词,不考虑位置时,有可能会把这篇文文本化为“文具”类,而如果考虑位置时,那这篇文档应该是属于电气类。
所以本发明加入位置信息后,在查询的时候计算相关度时,乘以位置相关的权重。位置越接近的两组关键词得分越高,这样查询出来的结果符合人们的预期。
改进的关键词特征提取算法如图4所示,其中,图4所示分类算法得到的值是关键字组合在字典中的位置矢量与关键字组合在文档中的位置矢量之和。
改进的关键词特征提取算法如下:
d(q):为摸个关键字组合的特征向量。
p(q,d):待查询关键字q组合在文档d中出现的次数(不考虑间距,只考虑出现的次序和待查询关键词次序相同就算为出现一次)。
∑(qfirst-qlast):待查询关键字在文档中任意一组的位置间距求和;
qfirdt:每组关键字中第一个词的位置;
qlast:每组关键字中最后一个词的位置;
p(q):带查询关键字在字典中的位置。
由于加入了位置相关的函数,查询多个关键词时,比如查询“中国,北京”,文本中有“中国北京”连在一起的关键词的文档打分更高,排序更靠前。算法比较结果如下表所示:
目前常用全文搜索引擎是lucene,其用于文档排序的打分算法如下:
其中:
t:term,这里的term是指包含域信息的term,也即title:hello和content:hello是不同的term。
coord(q,d):一次搜索可能包含多个搜索词,而一篇文档中也可能包含多个搜索词,此项表示,当一篇文档中包含的搜索词越多,则此文档则打分越高。
querynorm(q):计算每个查询条目的方差和,此值并不影响排序,而仅仅使得不同的query之间的分数可以比较。其公式如下:
tf(tind):termt在文档d中出现的词频。
idf(t):termt在几篇文档中出现过。
norm(t,d):标准化因子,它包括三个参数:
documentboost:此值越大,说明此文档越重要。
fieldboost:此域越大,说明此域越重要。
lengthnorm(field)=(1.0/math.sqrt(numterms)):一个域中包含的term总数越多,也即文档越长,此值越小,文档越短,此值越大。
各类boost值
t.getboost():查询语句中每个词的权重,可以在查询中设定某个词更加重要,common^4hello
d.getboost():文档权重,在索引阶段写入nrm文件,表明某些文档比其他文档更重要。
f.getboost():域的权重,在索引阶段写入nrm文件,表明某些域比其他的域更重要。
位置相关的打分公式
n(q,d):待查询关键字组合在文档中出现的次数(不考虑间距,只考虑出现的次序和待查询关键词次序相同就算为出现一次)。
∑(qfirst-qlast):待查询关键词在文档中任意一组的位置间距求和;
qfirst:每组关键字中第一个词的位置;
qlast:每组关键字中最后一个词的位置;
位置相关的关键词特征提取算法:
d(q):为某个关键字组合的特征向量。
p(q,d):待查询关键字q组合在文档d中出现的次数(不考虑间距,只考虑出现的次序和待查询关键词次序相同就算为出现一次)。
∑(qfirst-qlast):待查询关键字在文档中任意一组的位置间距求和;这里规定最小间距是1,防止除0。
qfirst:每组关键字中第一个词的位置;
qlast:每组关键字中最后一个词的位置;
p(q):带查询关键字在字典d中的位置;公式如下:
∑q(d):待查询关键字组合q在字典d中的位置求和;
qa:待查询关键字第一个词在字典中的位置;
qb:待查询关键字第一个词在字典中的位置。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
1.一种基于情报数据的文本检索分类方法,其特征在于,包括以下步骤:
对ocr识别出来的文档进行采集,得到非结构化文档,并将所述文档存入数据库;
通过人工或机器自动生成关键词字典,并对所述关键词字典进行归类;
使用已分类的关键词字典对所述文档进行处理,基于关键词生成倒排索引,其中,在生成倒排索引时,增加每个所述关键词所在的位置信息;
根据所述关键词所在的分类对所述文档进行分类标注,并将得到的分类结果存入数据库;
对所述分类结果通过机器学习和/或人工标注方式生成新的词汇,并对新的词汇重新进行分类,将所述新的词汇存入所述关键词字典。
2.根据权利要求1所述的基于情报数据的文本检索分类方法,其特征在于,所述方法还包括:
在接收到用户基于待查询关键词的查询请求时,基于所述关键词字典计算所述待查询关键词的相关度,将所述待查询关键词的相关度乘以位置相关的权重,所述位置相关的权重基于所述待查询关键词所在的位置信息获得;
根据乘以位置相关的权重后的待查询关键词的相关度,并基于预设的打分公式对数据库中的文档进行全文检索排序,并将检索结果归类到所述待查询关键词所在的类别;
将检索结果呈现给用户。
3.根据权利要求2所述的基于情报数据的文本检索分类方法,其特征在于,所述打分公式为:
score(q,d)=distance(q,d)×querynorm(q)×∑tinq(t∫(tind)×idf(t)2×t.getbost()×norm(t,d);
其中,distance(q,d)为打分参数;
querynorm(q)为计算每个查询条目的方差和;
t∫(tind)为termt在文档d中出现的词频;
idf(t)为termt在几篇文档中出现过;
t.getbost()为查询语句中每个词的权重;
norm(t,d)的含义为标准化因子。
4.根据权利要求3所述的基于情报数据的文本检索分类方法,其特征在于,所述
其中,n(q,d):待查询关键字组合在文档中出现的次数;
∑(qfirst-qlast):待查询关键词在文档中任意一组的位置间距求和。
5.根据权利要求3所述的基于情报数据的文本检索分类方法,其特征在于,位置相关的关键词特征提取公式为:
d(q):为某个关键字组合的特征向量;
p(q,d):待查询关键字q组合在文档d中出现的次数;
∑(qfirst-qlast):待查询关键字在文档中任意一组的位置间距求和;
qfirst:每组关键字中第一个词的位置;
qlast:每组关键字中最后一个词的位置;
p(q):带查询关键字在字典中的位置。
6.一种基于情报数据的文本检索分类系统,其特征在于,包括:
采集模块,用于对ocr识别出来的文档进行采集,得到非结构化文档,并将所述文档存入数据库;
归类模块,用于通过人工或机器自动生成关键词字典,并对所述关键词字典进行归类;
处理模块,用于使用已分类的关键词字典对所述文档进行处理,基于关键词生成倒排索引,其中,在生成倒排索引时,增加每个所述关键词所在的位置信息;
分类模块,用于根据所述关键词所在的分类对所述文档进行分类标注,并将得到的分类结果存入数据库,以及对所述分类结果通过机器学习和/或人工标注方式生成新的词汇,并对新的词汇重新进行分类,将所述新的词汇存入所述关键词字典。
7.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被所述处理器运行时实现如权利要求1-5中任一项所述的方法的步骤。
技术总结