基于RDF知识库的文本地域判断方法及其系统与流程

文档序号:18816179发布日期:2019-10-08 23:55阅读:249来源:国知局
基于RDF知识库的文本地域判断方法及其系统与流程

本发明涉及文本地域分析技术领域,尤其涉及一种基于RDF知识库的文本地域判断方法及其系统。



背景技术:

爆发式增长的网络数据对数据的分析提出了更多和更高的要求。文本分析和挖掘技术是目前被广泛应用的一项技术,通过相应的技术和方法对文本的语义内容进行抽取,进而对文本进行分类聚类等一系列操作,主要用于商品推荐、舆情分析、文本搜索等领域。

在舆情分析中,需要对网络中舆情在不同的主题下进行整理和分析,例如不同地域存在的舆情热点和发展趋势。为此,对于发帖内容中所涉及的地域信息进行抽取和判断是舆情分析中一个相对重要的环节。

在地域判断这一个环节中,已存在的技术在通过分词技术提取地域相关名词后,主要通过在地域区划数据查找匹配来判断文本内容的地域属性。

基于区划数据库的方法虽然直观、易实现,但效果却不理想,而且依赖文本中存在对应的地区名称。现实中,网络发帖文本中往往不直接提及区划地域名称,通常只出现一些街道、地标;而同一街道或地标名称可能对应了多个城市。在这种情况下,该方法无法提取和判断文本的地域属性。

在公开号为CN105608072A的中国专利公开文件中,提出了一种文本涉及地分析方法,该方案虽然能保证准确率,但不能保证召回率。



技术实现要素:

本发明所要解决的技术问题是:提出一种基于RDF知识库的文本地域判断方法及其系统,提高召回率,同时保证较高的准确率。

为了解决上述技术问题,本发明采用的技术方案为:一种基于RDF知识库的文本地域判断方法,包括:

构建关于地域信息的RDF知识库,并建立索引,所述地域信息包括地域区划及其地域相关名词;

预设地域区划的层级;

根据地域相关名词在文本中的位置,预设地域相关名词的位置权重;

获取文本中的地域相关名词;

以一地域相关名词为关键词,在所述RDF知识库中搜索得到对应的地域区划集合,获取文本中所有地域相关名词各自对应的地域区划集合;

根据地域相关名词对应的地域区划的个数、地域区划的层级、地域相关名词的位置权重和词频,以及搜索返回的地域相关名词与各地域区划的关联分值,分别计算地域区划集合中各地域区划对应所述一地域相关名词的第一分值;

获取所有地域区划集合中各地域区划所对应的地域相关名词集合;

将各地域区划对应所述地域相关名词集合内各地域相关名词的第一分值进行累加,得到所述地域区划的第二分值;

根据所述第二分值,计算地域区划集合中各地域区划为文本属地的概率。

本发明还涉及一种基于RDF知识库的文本地域判断系统,包括:

构建模块,用于构建关于地域信息的RDF知识库,并建立索引,所述地域信息包括地域区划及其地域相关名词;

第一预设模块,用于预设地域区划的层级;

第二预设模块,用于根据地域相关名词在文本中的位置,预设地域相关名词的位置权重;

第一获取模块,用于获取文本中的地域相关名词;

搜索模块,用于以一地域相关名词为关键词,在所述RDF知识库中搜索得到对应的地域区划集合,获取文本中所有地域相关名词各自对应的地域区划集合;

第一计算模块,用于根据地域相关名词对应的地域区划的个数、地域区划的层级、地域相关名词的位置权重和词频,以及搜索返回的地域相关名词与各地域区划的关联分值,分别计算地域区划集合中各地域区划对应所述一地域相关名词的第一分值;

第二获取模块,用于获取所有地域区划集合中各地域区划所对应的地域相关名词集合;

累加模块,用于将各地域区划对应所述地域相关名词集合内各地域相关名词的第一分值进行累加,得到所述地域区划的第二分值;

第二计算模块,用于根据所述第二分值,计算地域区划集合中各地域区划为文本属地的概率。

本发明的有益效果在于:通过RDF资源描述框架来构建以地域为核心维度的知识库,可通过某些特定实体,如标志建筑物、学校、公路、机场、公司企业、活动、事件、体育赛事等,来判断文本所谈及的地域信息;且RDF知识库和传统的基于表结构的知识库相比,数据结构简单,不需要大量的数据表来存储关系,采用基于图的模型,关系直观明了,不需要复杂的SQL语句来实现数据的关联,可通过简单SPARQL语句来获取地域的相关描述,具有良好的可拓展性;在知识库的基础上,来实现文本的地域打标,从而提高方法的召回率,同时保证较高的准确率。

附图说明

图1为本发明一种基于RDF知识库的文本地域判断方法的流程图;

图2为本发明实施例一的方法流程图;

图3为本发明实施例二Ontology图的示意图;

图4为本发明实施例二厦门市实体图的示意图;

图5为本发明一种基于RDF知识库的文本地域判断系统的结构示意图;

图6为本发明实施例三的系统结构示意图。

标号说明:

1、构建模块;2、第一预设模块;3、第二预设模块;4、第一获取模块;5、搜索模块;6、第一计算模块;7、第二获取模块;8、累加模块;9、第二计算模块;10、删除模块;11、增加模块;

101、第一获取单元;102、导出导入单元;103、第一得到单元;104、构建单元;

201、第一预设单元;202、第二预设单元;203、第三预设单元。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:通过RDF来构建地域维度的知识库。

请参阅图1,一种基于RDF知识库的文本地域判断方法,包括:

构建关于地域信息的RDF知识库,并建立索引,所述地域信息包括地域区划及其地域相关名词;

预设地域区划的层级;

根据地域相关名词在文本中的位置,预设地域相关名词的位置权重;

获取文本中的地域相关名词;

以一地域相关名词为关键词,在所述RDF知识库中搜索得到对应的地域区划集合,获取文本中所有地域相关名词各自对应的地域区划集合;

根据地域相关名词对应的地域区划的个数、地域区划的层级、地域相关名词的位置权重和词频,以及搜索返回的地域相关名词与各地域区划的关联分值,分别计算地域区划集合中各地域区划对应所述一地域相关名词的第一分值;

获取所有地域区划集合中各地域区划所对应的地域相关名词集合;

将各地域区划对应所述地域相关名词集合内各地域相关名词的第一分值进行累加,得到所述地域区划的第二分值;

根据所述第二分值,计算地域区划集合中各地域区划为文本属地的概率。

从上述描述可知,本发明的有益效果在于:提高方法的召回率,同时保证较高的准确率。

进一步地,所述“构建关于地域信息的RDF知识库,并建立索引,所述地域信息包括地域区划及其地域相关名词”具体为:

通过概念模型建模工具获取地域信息的概念和关系;

通过数据转换工具和预设的映射文件,将传统表结构的地域数据进行映射和导出,然后导入RDF三元组数据库;

通过SPARQL语句获取各地域区划的地域相关名词,得到各地域区划对应的记录有所述地域区划的地域相关名词的文档;

通过全文检索引擎对所述文档构建索引。

由上述描述可知,传统的基于表结构的关系型数据库,要求开发人员熟悉所有表结构和关系的基础上,使用复杂的SQL语句关联大量的数据表才能实现这一功能,且大量表的关联查询往往效率低下;而基于RDF的SPARQL查询可以简单快速的实现所要达到的效果。

进一步地,所述“预设地域区划的层级”具体为:

若一地域区划为省,则预设所述一地域区划的层级为1;

若一地域区划为地市,则预设所述一地域区划的层级为2;

若一地域区划为区县,则预设所述一地域区划的层级为3。

由上述描述可知,根据用户一般想要得到的结果,合理预设不同等级的地域区划所对应的层级,提高准确率。

进一步地,所述“以一地域相关名词为关键词,在所述RDF知识库中搜索得到对应的地域区划集合,获取文本中所有地域相关名词各自对应的地域区划集合”之后,进一步包括:

若一地域相关名词对应的地域区划集合中地域区划的个数大于预设的个数阈值,则删除所述一地域相关名词及其对应的地域区划集合。

由上述描述可知,可减少干扰项,节省计算资源。

进一步地,所述“根据地域相关名词对应的地域区划的个数、地域区划的层级、地域相关名词的位置权重和词频,以及搜索返回的地域相关名词与各地域区划的关联分值,分别计算地域区划集合中各地域区划对应所述一地域相关名词的第一分值”具体为:

根据公式计算一地域区划对应一地域相关名词的第一分值,其中,t为搜索返回的所述一地域相关名词与一地域区划的关联分值,f为所述一地域相关名词在文本中的词频,γ为常数,取值为0-1,l为所述一地域区划的层级,w为所述一地域相关名词的位置权重,c为所述一地域相关名词对应的地域区划的个数。

进一步地,根据公式计算所述一地域相关名词的位置权重w,其中,w1为对应标题的第一位置权重,w2为对应正文的第二位置权重,b1为所述一地域相关名词出现在标题中的个数,b2为所述一地域相关名词出现在正文中的个数。

由上述描述可知,通过该公式计算第一分值,保证准确率;通过区分对应标题和对应的正文的位置权重,进一步保证准确率。

进一步地,所述“将各地域区划对应所述地域相关名词集合内各地域相关名词的第一分值进行累加,得到所述地域区划的第二分值”之后,进一步包括:

若一地域区划与文本所属的网站属地相同或存在从属关系,则在所述一地域区划的第二分值上增加预设的奖励分值。

由上述描述可知,通过设置奖励分值,进一步提高准确率。

请参照图5,本发明还提出一种基于RDF知识库的文本地域判断系统,包括:

构建模块,用于构建关于地域信息的RDF知识库,并建立索引,所述地域信息包括地域区划及其地域相关名词;

第一预设模块,用于预设地域区划的层级;

第二预设模块,用于根据地域相关名词在文本中的位置,预设地域相关名词的位置权重;

第一获取模块,用于获取文本中的地域相关名词;

搜索模块,用于以一地域相关名词为关键词,在所述RDF知识库中搜索得到对应的地域区划集合,获取文本中所有地域相关名词各自对应的地域区划集合;

第一计算模块,用于根据地域相关名词对应的地域区划的个数、地域区划的层级、地域相关名词的位置权重和词频,以及搜索返回的地域相关名词与各地域区划的关联分值,分别计算地域区划集合中各地域区划对应所述一地域相关名词的第一分值;

第二获取模块,用于获取所有地域区划集合中各地域区划所对应的地域相关名词集合;

累加模块,用于将各地域区划对应所述地域相关名词集合内各地域相关名词的第一分值进行累加,得到所述地域区划的第二分值;

第二计算模块,用于根据所述第二分值,计算地域区划集合中各地域区划为文本属地的概率。

进一步地,所述构建模块包括:

第一获取单元,用于通过概念模型建模工具获取地域信息的概念和关系;

导出导入单元,用于通过数据转换工具和预设的映射文件,将传统表结构的地域数据进行映射和导出,然后导入RDF三元组数据库;

第一得到单元,用于通过SPARQL语句获取各地域区划的地域相关名词,得到各地域区划对应的记录有所述地域区划的地域相关名词的文档;

构建单元,用于通过全文检索引擎对所述文档构建索引。

进一步地,所述第一预设模块包括:

第一预设单元,用于若一地域区划为省,则预设所述一地域区划的层级为1;

第二预设单元,用于若一地域区划为地市,则预设所述一地域区划的层级为2;

第三预设单元,用于若一地域区划为区县,则预设所述一地域区划的层级为3。

进一步地,还包括:

删除模块,用于若一地域相关名词对应的地域区划集合中地域区划的个数大于预设的个数阈值,则删除所述一地域相关名词及其对应的地域区划集合。

进一步地,所述第一计算模块具体用于根据公式计算一地域区划对应一地域相关名词的第一分值,其中,t为搜索返回的所述一地域相关名词与一地域区划的关联分值,f为所述一地域相关名词在文本中的词频,γ为常数,取值为0-1,l为所述一地域区划的层级,w为所述一地域相关名词的位置权重,c为所述一地域相关名词对应的地域区划的个数。

进一步地,根据公式计算所述一地域相关名词的位置权重w,其中,w1为对应标题的第一位置权重,w2为对应正文的第二位置权重,b1为所述一地域相关名词出现在标题中的个数,b2为所述一地域相关名词出现在正文中的个数。

进一步地,还包括:

增加模块,用于若一地域区划与文本所属的网站属地相同或存在从属关系,则在所述一地域区划的第二分值上增加预设的奖励分值。

实施例一

请参照图2,本发明的实施例一为:一种基于RDF知识库的文本地域判断方法,包括如下步骤:

S1:构建关于地域信息的RDF知识库,并建立索引,所述地域信息包括地域区划及其地域相关名词。

S2:预设地域区划的层级;例如,将省的层级设为1,将地市的层级设为2,将区县的层级设为3。

S3:根据地域相关名词在文本中的位置,预设地域相关名词的位置权重;进一步地,可分别预设对应标题的第一位置权重和对应正文的第二位置权重。

S4:获取文本中的地域相关名词;如标志建筑物、学校、公路、机场、公司企业、活动、事件、体育赛事等。

S5:以一地域相关名词为关键词,在所述RDF知识库中搜索得到对应的地域区划集合,获取文本中所有地域相关名词各自对应的地域区划集合。进一步地,将地域的最细粒度调整到整城市一级,即优先选取地级市,若无对应的地级市的情况下,则选取省份作为地域区划;例如,根据一地域相关名词得到广东省、福建省、厦门市、(厦门市)思明区,则只计算广东省和厦门市两个地域区划的概率情况。在可传递的情况下,将省、区县级的分值归入对应的市级城市。

S6:判断是否存在地域相关名词,其对应的地域区划集合中地域区划的个数大于预设的个数阈值,若是,执行步骤S7,若否,执行步骤S8。优选地,所述个数阈值可以设为30。

S7:删除所述地域相关名词及其对应的地域区划集合。例如,以“中山路”为关键词进行搜索,会得到几乎所有的中国城市,则认为该关键词对于地域判断无贡献意义,为了减少干扰项,节省计算资源,因此忽略该地域相关名词及其对应的地域区划集合。

S8:根据地域相关名词对应的地域区划的个数、地域区划的层级、地域相关名词的位置权重和词频,以及搜索返回的地域相关名词与各地域区划的关联分值,分别计算地域区划集合中各地域区划对应所述一地域相关名词的第一分值;其中,关联分值可由搜索引擎返回,也可在构建索引时进行预设。

进一步地,根据公式计算一地域区划对应一地域相关名词的第一分值,其中,t为搜索返回的所述一地域相关名词与一地域区划的关联分值,f为所述一地域相关名词在文本中的词频,γ为常数,取值为0-1,l为所述一地域区划的层级,w为所述一地域相关名词的位置权重,c为所述一地域相关名词对应的地域区划的个数。

由于γ的取值为0-1,因此层级越大,第一分值越低;例如,以“西安”为关键词,可以匹配到西安市、辽源市西安区、牡丹江市西安区等,然而通常用户输入“西安”是要得到市级的西安市,因此地市的第一分值大于区县的第一分值。

优选地,根据公式计算所述一地域相关名词的位置权重w,其中,w1为对应标题的第一位置权重,w2为对应正文的第二位置权重,b1为所述一地域相关名词出现在标题中的个数,b2为所述一地域相关名词出现在正文中的个数;也就是说,当一地域相关名词只出现在标题中,则w=w1;当一地域相关名词只出现在正文中,则w=w2;若一地域相关名词同时出现在标题和权重中,则优选地,所述对应标题的第一位置权重大于对应正文的第二位置权重。

S9:获取所有地域区划集合中各地域区划所对应的地域相关名词集合。

S10:将各地域区划对应所述地域相关名词集合内各地域相关名词的第一分值进行累加,得到所述地域区划的第二分值。

S11:判断是否存在地域区划,其与文本所属的网站属地相同或存在从属关系,若是,执行步骤S12,若否,执行步骤S13。

S12:在所述地域区划的第二分值上增加预设的奖励分值。

S13:根据所述第二分值,计算地域区划集合中各地域区划为文本属地的概率。将一地域区划的第二分值除以所有地域区划的第二分值的总和,即为所述一地域区划为文本属地的概率。

S14:判断是否存在地域区划,其概率大于预设的概率阈值,若是,则执行步骤S15。可根据业务需求设置概率阈值。

S15:判定所述地域区划为所述文本的属地。可选地,也可直接选取概率最大的地域区划作为文本的属地。

一具体应用场景如下:在步骤S4中获取地域相关名词1、2、3;在步骤S5中获取所有地域相关名词各自对应的地域区划集合,如,1对应{a,b,c},2对应{b},3对应{c,d},其中,a、b、c、d均为地域区划;在步骤S8中,分别计算中各地域区划对应地域相关名词的第一分值,如,对于地域相关名词1,则分别计算出其对应地域区划a、地域区划b和地域区划c的第一分值,即S1a、S1b和S1c,以此类推,计算出S2b、S3c、S3d;在步骤S9中,将地域相关名词和地域区划集合进行重新整理,使其变为一个地域区划对应一个地域相关名词集合的形式,整理后,地域区划a对应{1},b对应{1,2},c对应{1,3},d对应{3};那么,地域区划a的第二分值Sa=S1a,地域区划b的第二分值Sb=S1b+S2b,地域区划c的第二分值Sc=S1c+S3c,地域区划d的第二分值Sd=S3d;假设地域区划b与文本所属的网站属地相同或存在从属关系,则地域区划b的第二分值Sb=Sb+A,即Sb=S1b+S2b+A。

然后计算各地域区划第二分值的总和S=Sa+Sb+Sc+Sd,则地域区划a为文本属地的概率地域区划b为文本属地的概率地域区划c为文本属地的概率地域区划d为文本属地的概率最后根据各个地域区划的概率,判定文本属地。

本实施例通过RDF资源描述框架来构建以地域为核心维度的知识库,可通过某些特定实体,如标志建筑物、学校、公路、机场、公司企业、活动、事件、体育赛事等,来判断文本所谈及的地域信息;且RDF知识库和传统的基于表结构的知识库相比,数据结构简单,不需要大量的数据表来存储关系,采用基于图的模型,关系直观明了,不需要复杂的SQL语句来实现数据的关联,可通过简单SPARQL语句来获取地域的相关描述,具有良好的可拓展性;在知识库的基础上,来实现文本的地域打标,从而提高方法的召回率,同时保证较高的准确率。

实施例二

本实施例是实施例一中步骤S1的进一步拓展。RDF知识库可根据原有的传统表结构的地域数据的基础上进行构建;具体的,通过Ontology(Ontology是一种能在语义和知识层次上描述信息系统的概念模型建模工具)来定义概念、描述关系,通过数据转换工具(Apache D2RQ或者R2RML映射语言)和预设的映射文件,将传统表结构的地域数据进行映射和导出,然后导入RDF三元组数据库;通过SPARQL语句获取各地域区划的所有维度信息,即地域相关名词,得到各地域区划对应的记录有所述地域区划的地域相关名词的文档;通过全文检索引擎(Lucene或Solr引擎)对所述文档构建索引。图3为Ontology图的示意图,图4为关于厦门市的实体图。

例如,假设RDF知识库包含以下数据:

通过以下SPARQL语句可以从RDF数据中获取厦门市所有属性,以及所有相关的实体和关系:

其中,?p、?hasValue和?isValueOf为变量,SPARQL通过三元组关系作为选择的条件语句。所举例子中,选择条件中的三元组描述了以“:厦门市”为主语和宾语的关系(即以“:厦门市”为核心的一个星状关系),并将与其关联的关系(谓语?p)以及关联的实体(?hasValue和?isValueOf)作为返回值。

传统的基于表结构的关系型数据库,要求开发人员熟悉所有表结构和关系的基础上,使用复杂的SQL语句关联大量的数据表才能实现这一功能;此外,大量表的关联查询往往效率低下。而基于RDF的SPARQL查询可以简单快速的实现所要达到的效果。本实施例中,知识库的构建是围绕地域这个核心维度,RDF的基于图的模型,使得知识库同样可以以其他维度为核心,例如人、事件等,因此,知识库的构建具有良好的扩展性和领域转换能力。

实施例三

请参照图6,本实施例为对应上述实施例的一种基于RDF知识库的文本地域判断系统,包括:

构建模块1,用于构建关于地域信息的RDF知识库,并建立索引,所述地域信息包括地域区划及其地域相关名词;

第一预设模块2,用于预设地域区划的层级;

第二预设模块3,用于根据地域相关名词在文本中的位置,预设地域相关名词的位置权重;

第一获取模块4,用于获取文本中的地域相关名词;

搜索模块5,用于以一地域相关名词为关键词,在所述RDF知识库中搜索得到对应的地域区划集合,获取文本中所有地域相关名词各自对应的地域区划集合;

第一计算模块6,用于根据地域相关名词对应的地域区划的个数、地域区划的层级、地域相关名词的位置权重和词频,以及搜索返回的地域相关名词与各地域区划的关联分值,分别计算地域区划集合中各地域区划对应所述一地域相关名词的第一分值;

第二获取模块7,用于获取所有地域区划集合中各地域区划所对应的地域相关名词集合;

累加模块8,用于将各地域区划对应所述地域相关名词集合内各地域相关名词的第一分值进行累加,得到所述地域区划的第二分值;

第二计算模块9,用于根据所述第二分值,计算地域区划集合中各地域区划为文本属地的概率。

进一步地,所述构建模块1包括:

第一获取单元101,用于通过概念模型建模工具获取地域信息的概念和关系;

导出导入单元102,用于通过数据转换工具和预设的映射文件,将传统表结构的地域数据进行映射和导出,然后导入RDF三元组数据库;

第一得到单元103,用于通过SPARQL语句获取各地域区划的地域相关名词,得到各地域区划对应的记录有所述地域区划的地域相关名词的文档;

构建单元104,用于通过全文检索引擎对所述文档构建索引。

进一步地,所述第一预设模块2包括:

第一预设单元201,用于若一地域区划为省,则预设所述一地域区划的层级为1;

第二预设单元202,用于若一地域区划为地市,则预设所述一地域区划的层级为2;

第三预设单元203,用于若一地域区划为区县,则预设所述一地域区划的层级为3。

进一步地,还包括:

删除模块10,用于若一地域相关名词对应的地域区划集合中地域区划的个数大于预设的个数阈值,则删除所述一地域相关名词及其对应的地域区划集合。

进一步地,所述第一计算模块6具体用于根据公式计算一地域区划对应一地域相关名词的第一分值,其中,t为搜索返回的所述一地域相关名词与一地域区划的关联分值,f为所述一地域相关名词在文本中的词频,γ为常数,取值为0-1,l为所述一地域区划的层级,w为所述一地域相关名词的位置权重,c为所述一地域相关名词对应的地域区划的个数。

进一步地,根据公式计算所述一地域相关名词的位置权重w,其中,w1为对应标题的第一位置权重,w2为对应正文的第二位置权重,b1为所述一地域相关名词出现在标题中的个数,b2为所述一地域相关名词出现在正文中的个数。

进一步地,还包括:

增加模块11,用于若一地域区划与文本所属的网站属地相同或存在从属关系,则在所述一地域区划的第二分值上增加预设的奖励分值。

综上所述,本发明提供的一种基于RDF知识库的文本地域判断方法及其系统,通过RDF资源描述框架来构建以地域为核心维度的知识库,可通过某些特定实体,如标志建筑物、学校、公路、机场、公司企业、活动、事件、体育赛事等,来判断文本所谈及的地域信息;且RDF知识库和传统的基于表结构的知识库相比,数据结构简单,不需要大量的数据表来存储关系,采用基于图的模型,关系直观明了,不需要复杂的SQL语句来实现数据的关联,可通过简单SPARQL语句来获取地域的相关描述,具有良好的可拓展性;在知识库的基础上,来实现文本的地域打标,从而提高方法的召回率,同时保证较高的准确率。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1