CN110096599A - 知识图谱的生成方法及装置 - Google Patents
知识图谱的生成方法及装置 Download PDFInfo
- Publication number
- CN110096599A CN110096599A CN201910365180.6A CN201910365180A CN110096599A CN 110096599 A CN110096599 A CN 110096599A CN 201910365180 A CN201910365180 A CN 201910365180A CN 110096599 A CN110096599 A CN 110096599A
- Authority
- CN
- China
- Prior art keywords
- entity
- knowledge mapping
- text data
- source code
- points relationship
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
Abstract
本申请公开了一种知识图谱的生成方法及装置。该方法包括:获取文本数据;依照预设处理规则处理所述文本数据,得到实体集;分析所述文本数据中计算机语言源码,并确定实体间的指向关系;根据所述实体集和所述指向关系生成知识图谱。该装置包括:获取单元、处理单元、确定单元和生成单元。本申请解决了由于建立指向关系时,并未充分考虑各方面因素造成的知识图谱不够完整的技术问题。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种知识图谱的生成方法及装置。
背景技术
搜索引擎采用关键词直接搜索、语义搜索、语境搜索等。一些搜索引擎也会根据关键词推荐与该关键词相关的多个搜索项,也会采用热门推荐的形式。显然,无论是以上哪种搜索形式,都需要建立在输入的关键词和搜索项的指向关系,最终获取知识图谱的基础上。
但是,无论哪种搜索引擎在建立知识图谱时,并未考虑自然语言和计算机语言的结合,尤其是对于计算机语言的知识图谱建立,仍然处于空白,导致搜索引擎在面对计算机语言时,无法作出正确的指向性推荐,不利于精确搜索。
针对相关技术中计算机语言的知识图谱建立仍然处于空白,导致搜索引擎在面对计算机语言时,无法作出正确的指向性推荐,不利于指向性搜索的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种知识图谱的生成方法及装置,以解决计算机语言的知识图谱建立仍然处于空白,导致搜索引擎在面对计算机语言时,无法作出正确的指向性推荐,不利于精确搜索的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种知识图谱的生成方法。
根据本申请的知识图谱的生成方法包括:获取文本数据;将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;以及,根据所述实体集和所述指向关系生成知识图谱。进一步的,获取文本数据之后还包括:采用依赖树和词性标注对所述文本数据的语料文本进行从上至下迭代分析,得到语法关系三元组;通过主题建模对语法关系三元组做实体检测;将检测到的实体加入所述实体集。
进一步的,获取文本数据之后还包括:对所述文本数据的语料文本依次进行消除噪音、词汇规范化、对象标准化的处理;采用依赖树和词性标注对处理后的所述文本数据进行从上至下迭代分析,得到语法关系三元组;通过主题建模对语法关系三元组做实体检测;将检测到的实体加入所述实体集。
进一步的,获取文本数据之后还包括:提取所述文本数据的语言文本的语法规范中的语言符号;将所述语言符号加入所述实体集。
进一步的,将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集包括:识别所述文本数据中的计算机语言源码中的标识符是否符合符号表中规定的文法符号;如果是,则将所述标识符识别为实体;将识别为实体的标识符加入实体集。
进一步的,将检测到的实体加入所述实体集之后还包括:按照术语频率- 逆文献频率的权重,给做实体检测得到的实体赋予权重值;比对权重值;根据比对结果确定一对一或一会多的实体间的指向关系。
进一步的,所述语言符号加入所述实体集之后还包括:提取所述语法规范中实体的概念和术语;判断概念和术语是否存在于实体集的实体中;如果存在,则建立语法规范中实体和实体集中实体的指向关系;如果不存在,将语法规范中实体加入实体集。
进一步的,分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系包括:对所述计算机语言源码按照预设顺序规则依次进行词法、语法、语义分析,得到抽象语法树;根据抽象语法树确定实体集中实体间的指向关系。
为了实现上述目的,根据本申请的另一方面,提供了一种知识图谱的生成装置。
根据本申请的知识图谱的生成装置包括:包括:获取单元,用于获取文本数据;识别单元,用于将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;确定单元,用于分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;生成单元,用于根据所述实体集和所述指向关系生成知识图谱。
进一步的,所述确定单元包括:分析模块,用于对所述计算机语言源码按照预设顺序规则依次进行词法、语法、语义分析,得到抽象语法树;确定模块,用于根据抽象语法树确定实体集中实体间的指向关系。
在本申请实施例中,采用计算机语言实体识别并分析的方式,通过获取文本数据;将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;以及,根据所述实体集和所述指向关系生成知识图谱,达到了建立计算机语言的知识图谱的目的,从而实现了搜索引擎在面对计算机语言时,能够作出正确的指向性推荐,有利于对输入的计算机语言作出指向性搜索的技术效果,进而解决了由于建立指向关系时,并未充分考虑各方面因素造成的知识图谱不够完整的技术问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请第一实施例的知识图谱的生成方法示意图;
图2是根据本申请第二实施例的知识图谱的生成方法示意图;
图3是根据本申请第三实施例的知识图谱的生成方法示意图;
图4是根据本申请第四实施例的知识图谱的生成方法示意图;
图5是根据本申请第五实施例的知识图谱的生成方法示意图;
图6是根据本申请第六实施例的知识图谱的生成方法示意图;
图7是根据本申请第七实施例的知识图谱的生成方法示意图;
图8是根据本申请第八实施例的知识图谱的生成方法示意图;
图9是根据本申请第一实施例的知识图谱的生成装置示意图;
图10是根据本申请第二实施例的知识图谱的生成装置示意图;
图11是根据本申请第二实施例的知识图谱的生成装置示意图;
图12是根据本申请第二实施例的知识图谱的生成装置示意图;
图13是根据本申请第二实施例的知识图谱的生成装置示意图;
图14是根据本申请第二实施例的知识图谱的生成装置示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
根据本发明实施例,提供了一种知识图谱的生成方法,如图1所示,该方法包括如下的步骤S100至步骤S106:
步骤S100、获取文本数据;
文本数据可以是存储在语料库的计算机文献、书籍、文档等,也可以是存储在语言库的计算机语言的语法规范、源码等。在本实施例中,优选的,文本数据是指语料数据和语言数据,为能够考虑各方面因素提供数据保障。
优选的,如图2所示,获取文本数据之后还包括:
步骤S200、采用依赖树和词性标注对所述文本数据的语料文本进行从上至下迭代分析,得到语法关系三元组;
步骤S202、通过主题建模对语法关系三元组做实体检测;
步骤S204、将检测到的实体加入所述实体集。
句法分析通过采用常用的依赖树(DependencyTree)和词性标注(PoS tagging)从上至下迭代分析得到语法关系三元组。然后采用主题建模的方式做实体检测,最后将检测到的实体归入实体集内。
主要针对于语料文本中的文献、书籍、文档等的句法、语法因素,为建立实体间指向关系提供保障。
优选的,如图3所示,获取文本数据之后还包括:
步骤S300、对所述文本数据的语料文本依次进行消除噪音、词汇规范化、对象标准化的处理;
步骤S302、采用依赖树和词性标注对处理后的所述文本数据进行从上至下迭代分析,得到语法关系三元组;
步骤S304、通过主题建模对语法关系三元组做实体检测;
步骤S306、将检测到的实体加入所述实体集。
消除噪音:对上下文特征无关的文本进行移除;
比如:英语系的冠词、系动词、介词等,汉语系的助词等、链接、标点符号、特定行业词汇等。
词汇规范化:由一个词汇所产生的多种表示形式。把一个词的不同展现形式转化为了他们规范化的形式(也叫做引理(lemma))。
例如:“play”,“player”,“played”,“plays”和“playing”,这些词汇都是由“play”变化而来的。虽然它们意义不一,但根据上下文都是相似的。。
在本实施例中优选的,词汇规范化可以是词干提取;词干提取是词汇后缀(“ing”,“ly”,“es”,“s”等)去除过程的一个基本规则。
也可以是词形还原:词形还原与词干提取相反,是有组织地逐步获取词汇根形式的步骤,它使用到了词汇(词汇字典序)和形态分析(词的结构和语法关系)。
对象标准化:文本数据经常包含不在任何标准词典里出现的词汇或短语。
比如:首字母缩略词、词汇附加标签和通俗俚语等。
通过消除噪音、词汇规范化、对象标准化能够对语料文本进行处理,达到了文本清洗的目的,使后续的运算量得到降低,也能在保证考虑各方面因素的基础上,使最终得到的知识图谱更为精确、简洁。
处理后的语料数据,通过采用常用的依赖树(DependencyTree)和词性标注(PoStagging)从上至下迭代分析得到语法关系三元组。然后采用主题建模的方式做实体检测,最后将检测到的实体归入实体集内。
主要考虑于语料文本中的文献、书籍、文档等的句法、语法因素,为建立实体间指向关系提供保障。
优选的,如图6所示,将检测到的实体加入所述实体集之后还包括:
步骤S600、按照术语频率-逆文献频率的权重,给做实体检测得到的实体赋予权重值;
步骤S602、比对权重值;
步骤S604、根据比对结果确定一对一或一会多的实体间的指向关系。
对实体检测得到的实体,按照术语频率-逆文献频率(TF-IDF)的权重给出每个实体的权重值;
在本实施例中,比对权重值后,可以是对权重非常接近的一对一的实体组合,一个加入实体集合,另一个加入词汇表中,用以表达同义或近义;
在本实施例中,比对权重值后,还可以对权重非常接近一对多的实体组合,均加入实体集合,并将其中一个实体作为主实体,建立其他实体指向该主实体的指向关系。
在一些实施例中,根据余弦相似性或者单词聚类的方式计算出实体文本相似性非常接近的一对一的实体组合,一个加入实体集合,另一个加入词汇表中,用以表达同义或近义;
在一些实施例中,根据余弦相似性或者单词聚类的方式计算出实体文本相似性非常接近的一对多的实体组合,均加入实体集合,并将其中一个实体作为主实体,建立其他实体指向该主实体的指向关系。
充分考虑了语料文本中的文献、书籍、文档等的句法、语法因素,从而建立实体间一对多、一对一的指向关系,为建立完整知识图谱提供保障。
优选的,如图4所示,获取文本数据之后还包括:
步骤S400、提取所述文本数据的语言文本的语法规范中的语言符号;
步骤S402、将所述语言符号加入所述实体集。
提取语言文本的语法规范中涉及的所有语言特定的符号,比如关键字、操作符、常量、标识符模式等,直接加入实体集。考虑语言文本的关键字、操作符、常量、标识符模式等因素,为建立实体间指向关系提供保障。
优选的,如图7所示,将所述语言符号加入所述实体集之后还包括:
步骤S700、提取所述语法规范中实体的概念和术语;
步骤S702、判断概念和术语是否存在于实体集的实体中;
步骤S704、如果存在,则建立语法规范中实体和实体集中实体的指向关系;
步骤S706、如果不存在,将语法规范中实体加入实体集。
从语法规范中提取概念和术语,看是否存在于上一步已经得出的计算机的基础概念、术语的实体集合,可以包含做实体检测得到实体,提取语言符号得到是实体以及识别文法符号得到的实体。若存在,则建立两个实体间的指向关系。若不存在,则直接补充进实体集合。考虑语法规范中的概念、术语因素,建立概念和术语实体间一对一的指向关系,而且能够对实体集中的实体进行有效补充,为建立完整的知识图谱提供技术支持。
步骤S102、将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;
具体的,如图5所示,将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集包括:
步骤S500、识别所述文本数据中的计算机语言源码中的标识符是否符合符号表中规定的文法符号;
步骤S502、如果是,则将所述标识符识别为实体;
步骤S504、将识别为实体的标识符加入实体集。
将上下文文法符号表中涉及的属于全局变量、函数、类、过程等的标识符(id)识别为实体并加入实体集;需要对计算机语言源码进行判断如果符合全局变量、函数、类、过程等文法符号,则将该标识符确定为实体,加入实体集中。考虑语言文本的全局变量、函数、类、过程等因素,为建立实体间指向关系提供保障。
步骤S104、分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;
优选的,如图8所示,分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系包括:
步骤S800、对所述计算机语言源码按照预设顺序规则依次进行词法、语法、语义分析,得到抽象语法树;
步骤S802、根据抽象语法树确定实体集中实体间的指向关系。
语言文本是指计算机语言,包括计算机编程语言、配置语言、正则表达式等计算机规范语言,机器指令等执行语言,字节码等中间语言;利用语法规范的规则,按照类似编译原理的上下文文法以及确定有限自动机(NFA)和不确定有限自动机(DFA),对计算机语言的标准库或者其他类似的内嵌函数集的源码等进行分析。
步骤如下:词法分析(Lexical Analysis)-语法分析(Syntax Analysis) -语义分析(Semantic Analysis)得到抽象语法树(AST)。
根据AST可以得到实体对其他实体(关键字、操作符、以及有调用、引用、导入关系的实体)的指向关系。
考虑语言文本中的代码或源码因素,建立代码实体和其他实体之间一对多的指向关系,为建立完整的知识图谱提供技术支持。
以一段Python代码作为示例,代码具体参照附图13:
该段代码,导入了urllib.parser标准库模块和requests第三方库模块,定义了A,B,main三个函数。可以看到,A调用了print(),B调用了A和print 函数,main调用了urllib.parser模块里的urlencode函数,第三方requests库模块里的post和json函数,以及print函数。
采用步骤S102可以得出如下:A,B,main,print,urllib.parser.urllencode,requests.post,requests.json七个实体;
并且采用步骤S104能够对实体进行分析,最终建立实体间的指向关系;在本实施例中,分析后得到的指向关系如图11所示。
再以第二段相关代码为例:具体参照附图14。
图中是urllib.parser模块里urlencode函数的实现,调用了hasattr()函数跟dict.items()函数,所以可以以步骤S102、步骤S104继续进行实体识别并分析,最终建立如图12所示指向关系,实现了继续拓展其实体指向关系。
通过以上方法,不断迭代所有的该语言的项目。比如:语法规范、标准库、第三方库、可执行应用程序中的计算机语言源码,以此类推,能够得出一条条实体的指向关系。
步骤S106、根据所述实体集和所述指向关系生成知识图谱。
参照实体集中的考虑各个方面因素而得到的实体,以及各个实体间的指向关系,能够得到知识图谱,参照该知识图谱,可以在人员输入任意关键词时,依照指向关系得到其他相关的实体。该知识图谱由于考虑各个方面因素,得到的知识图谱比较完整,能够极大程度满足人员的搜索、查询意图。
具体的,假设实体A,实体B分别是程序语言的两个函数,且B调用了A,则存在一条B指向A的关系:B->A。
那么可以抽象得出知识图谱是一个有向图G=(V,E),其中V是图的节点集合,即实体的集合(一个节点对应一个实体);E是图的有向边集合(一条有向边对应该边所连接的两个节点对应的两个实体间的指向关系)。
从而为具体将知识图谱运用到搜索引擎提供保障。
从以上的描述中,可以看出,本发明实现了如下技术效果:
在本申请实施例中,采用计算机语言实体识别并分析的方式,通过获取文本数据;将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;以及,根据所述实体集和所述指向关系生成知识图谱,达到了建立计算机语言的知识图谱的目的,从而实现了搜索引擎在面对计算机语言时,能够作出正确的指向性推荐,有利于对输入的计算机语言作出指向性搜索的技术效果,进而解决了由于建立指向关系时,并未充分考虑各方面因素造成的知识图谱不够完整的技术问题。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,还提供了一种用于实施上述知识图谱的生成方法的装置,如图9所示,该装置包括:
获取单元10,用于获取文本数据;
文本数据可以是存储在语料库的计算机文献、书籍、文档等,也可以是存储在语言库的计算机语言的语法规范、源码等。在本实施例中,优选的,文本数据是指语料数据和语言数据,为能够考虑各方面因素提供数据保障。
优选的,如图2所示,获取文本数据之后还包括:
步骤S200、采用依赖树和词性标注对所述文本数据的语料文本进行从上至下迭代分析,得到语法关系三元组;
步骤S202、通过主题建模对语法关系三元组做实体检测;
步骤S204、将检测到的实体加入所述实体集。
句法分析通过采用常用的依赖树(DependencyTree)和词性标注(PoS tagging)从上至下迭代分析得到语法关系三元组。然后采用主题建模的方式做实体检测,最后将检测到的实体归入实体集内。
主要针对于语料文本中的文献、书籍、文档等的句法、语法因素,为建立实体间指向关系提供保障。
优选的,如图3所示,获取文本数据之后还包括:
步骤S300、对所述文本数据的语料文本依次进行消除噪音、词汇规范化、对象标准化的处理;
步骤S302、采用依赖树和词性标注对处理后的所述文本数据进行从上至下迭代分析,得到语法关系三元组;
步骤S304、通过主题建模对语法关系三元组做实体检测;
步骤S306、将检测到的实体加入所述实体集。
消除噪音:对上下文特征无关的文本进行移除;
比如:英语系的冠词、系动词、介词等,汉语系的助词等、链接、标点符号、特定行业词汇等。
词汇规范化:由一个词汇所产生的多种表示形式。把一个词的不同展现形式转化为了他们规范化的形式(也叫做引理(lemma))。
例如:“play”,“player”,“played”,“plays”和“playing”,这些词汇都是由“play”变化而来的。虽然它们意义不一,但根据上下文都是相似的。。
在本实施例中优选的,词汇规范化可以是词干提取;词干提取是词汇后缀(“ing”,“ly”,“es”,“s”等)去除过程的一个基本规则。
也可以是词形还原:词形还原与词干提取相反,是有组织地逐步获取词汇根形式的步骤,它使用到了词汇(词汇字典序)和形态分析(词的结构和语法关系)。
对象标准化:文本数据经常包含不在任何标准词典里出现的词汇或短语。
比如:首字母缩略词、词汇附加标签和通俗俚语等。
通过消除噪音、词汇规范化、对象标准化能够对语料文本进行处理,达到了文本清洗的目的,使后续的运算量得到降低,也能在保证考虑各方面因素的基础上,使最终得到的知识图谱更为精确、简洁。
处理后的语料数据,通过采用常用的依赖树(DependencyTree)和词性标注(PoStagging)从上至下迭代分析得到语法关系三元组。然后采用主题建模的方式做实体检测,最后将检测到的实体归入实体集内。
主要考虑于语料文本中的文献、书籍、文档等的句法、语法因素,为建立实体间指向关系提供保障。
优选的,如图6所示,将检测到的实体加入所述实体集之后还包括:
步骤S600、按照术语频率-逆文献频率的权重,给做实体检测得到的实体赋予权重值;
步骤S602、比对权重值;
步骤S604、根据比对结果确定一对一或一会多的实体间的指向关系。
对实体检测得到的实体,按照术语频率-逆文献频率(TF-IDF)的权重给出每个实体的权重值;
在本实施例中,比对权重值后,可以是对权重非常接近的一对一的实体组合,一个加入实体集合,另一个加入词汇表中,用以表达同义或近义;
在本实施例中,比对权重值后,还可以对权重非常接近一对多的实体组合,均加入实体集合,并将其中一个实体作为主实体,建立其他实体指向该主实体的指向关系。
在一些实施例中,根据余弦相似性或者单词聚类的方式计算出实体文本相似性非常接近的一对一的实体组合,一个加入实体集合,另一个加入词汇表中,用以表达同义或近义;
在一些实施例中,根据余弦相似性或者单词聚类的方式计算出实体文本相似性非常接近的一对多的实体组合,均加入实体集合,并将其中一个实体作为主实体,建立其他实体指向该主实体的指向关系。
充分考虑了语料文本中的文献、书籍、文档等的句法、语法因素,从而建立实体间一对多、一对一的指向关系,为建立完整知识图谱提供保障。
优选的,如图4所示,获取文本数据之后还包括:
步骤S400、提取所述文本数据的语言文本的语法规范中的语言符号;
步骤S402、将所述语言符号加入所述实体集。
提取语言文本的语法规范中涉及的所有语言特定的符号,比如关键字、操作符、常量、标识符模式等,直接加入实体集。考虑语言文本的关键字、操作符、常量、标识符模式等因素,为建立实体间指向关系提供保障。
优选的,如图7所示,将所述语言符号加入所述实体集之后还包括:
步骤S700、提取所述语法规范中实体的概念和术语;
步骤S702、判断概念和术语是否存在于实体集的实体中;
步骤S704、如果存在,则建立语法规范中实体和实体集中实体的指向关系;
步骤S706、如果不存在,将语法规范中实体加入实体集。
从语法规范中提取概念和术语,看是否存在于上一步已经得出的计算机的基础概念、术语的实体集合,可以包含做实体检测得到实体,提取语言符号得到是实体以及识别文法符号得到的实体。若存在,则建立两个实体间的指向关系。若不存在,则直接补充进实体集合。考虑语法规范中的概念、术语因素,建立概念和术语实体间一对一的指向关系,而且能够对实体集中的实体进行有效补充,为建立完整的知识图谱提供技术支持。
识别单元20,用于将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;
具体的,如图5所示,将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集包括:
步骤S500、识别所述文本数据中的计算机语言源码中的标识符是否符合符号表中规定的文法符号;
步骤S502、如果是,则将所述标识符识别为实体;
步骤S504、将识别为实体的标识符加入实体集。
将上下文文法符号表中涉及的属于全局变量、函数、类、过程等的标识符 (id)识别为实体并加入实体集;需要对计算机语言源码进行判断如果符合全局变量、函数、类、过程等文法符号,则将该标识符确定为实体,加入实体集中。考虑语言文本的全局变量、函数、类、过程等因素,为建立实体间指向关系提供保障。
确定单元30,用于分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;
优选的,如图8所示,确定单元30包括:
分析模块50,用于对所述计算机语言源码按照预设顺序规则依次进行词法、语法、语义分析,得到抽象语法树;
确定模块60,用于根据抽象语法树确定实体集中实体间的指向关系。
语言文本是指计算机语言,包括计算机编程语言、配置语言、正则表达式等计算机规范语言,机器指令等执行语言,字节码等中间语言;利用语法规范的规则,按照类似编译原理的上下文文法以及确定有限自动机(NFA)和不确定有限自动机(DFA),对计算机语言的标准库或者其他类似的内嵌函数集的源码等进行分析。
步骤如下:词法分析(Lexical Analysis)-语法分析(Syntax Analysis) -语义分析(Semantic Analysis)得到抽象语法树(AST)。
根据AST可以得到实体对其他实体(关键字、操作符、以及有调用、引用、导入关系的实体)的指向关系。
考虑语言文本中的代码或源码因素,建立代码实体和其他实体之间一对多的指向关系,为建立完整的知识图谱提供技术支持。
以一段Python代码作为示例,代码具体参照附图13:
该段代码,导入了urllib.parser标准库模块和requests第三方库模块,定义了A,B,main三个函数。可以看到,A调用了print(),B调用了A和print 函数,main调用了urllib.parser模块里的urlencode函数,第三方requests库模块里的post和json函数,以及print函数。
采用步骤S102可以得出如下:A,B,main,print,urllib.parser.urllencode,requests.post,requests.json七个实体;
并且采用步骤S104能够对实体进行分析,最终建立实体间的指向关系;在本实施例中,分析后得到的指向关系如图11所示。
再以第二段相关代码为例:具体参照附图14。
图中是urllib.parser模块里urlencode函数的实现,调用了hasattr()函数跟dict.items()函数,所以可以以步骤S102、步骤S104继续进行实体识别并分析,最终建立如图12所示指向关系,实现了继续拓展其实体指向关系。
通过以上方法,不断迭代所有的该语言的项目。比如:语法规范、标准库、第三方库、可执行应用程序中的计算机语言源码,以此类推,能够得出一条条实体的指向关系。
生成单元40,用于根据所述实体集和所述指向关系生成知识图谱。
参照实体集中的考虑各个方面因素而得到的实体,以及各个实体间的指向关系,能够得到知识图谱,参照该知识图谱,可以在人员输入任意关键词时,依照指向关系得到其他相关的实体。该知识图谱由于考虑各个方面因素,得到的知识图谱比较完整,能够极大程度满足人员的搜索、查询意图。
具体的,假设实体A,实体B分别是程序语言的两个函数,且B调用了A,则存在一条B指向A的关系:B->A。
那么可以抽象得出知识图谱是一个有向图G=(V,E),其中V是图的节点集合,即实体的集合(一个节点对应一个实体);E是图的有向边集合(一条有向边对应该边所连接的两个节点对应的两个实体间的指向关系)。
从而为具体将知识图谱运用到搜索引擎提供保障。
从以上的描述中,可以看出,本发明实现了如下技术效果:
在本申请实施例中,采用计算机语言实体识别并分析的方式,通过获取文本数据;将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;以及,根据所述实体集和所述指向关系生成知识图谱,达到了建立计算机语言的知识图谱的目的,从而实现了搜索引擎在面对计算机语言时,能够作出正确的指向性推荐,有利于对输入的计算机语言作出指向性搜索的技术效果,进而解决了由于建立指向关系时,并未充分考虑各方面因素造成的知识图谱不够完整的技术问题。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种知识图谱的生成方法,其特征在于,包括:
获取文本数据;
将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;
分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;以及,
根据所述实体集和所述指向关系生成知识图谱。
2.根据权利要求1所述的知识图谱的生成方法,其特征在于,获取文本数据之后还包括:
采用依赖树和词性标注对所述文本数据的语料文本进行从上至下迭代分析,得到语法关系三元组;
通过主题建模对语法关系三元组做实体检测;
将检测到的实体加入所述实体集。
3.根据权利要求1所述的知识图谱的生成方法,其特征在于,获取文本数据之后还包括:
对所述文本数据的语料文本依次进行消除噪音、词汇规范化、对象标准化的处理;
采用依赖树和词性标注对处理后的所述文本数据进行从上至下迭代分析,得到语法关系三元组;
通过主题建模对语法关系三元组做实体检测;
将检测到的实体加入所述实体集。
4.根据权利要求1所述的知识图谱的生成方法,其特征在于,获取文本数据之后还包括:
提取所述文本数据的语言文本的语法规范中的语言符号;
将所述语言符号加入所述实体集。
5.根据权利要求1所述的知识图谱的生成方法,其特征在于,将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集包括:
识别所述文本数据中的计算机语言源码中的标识符是否符合符号表中规定的文法符号;
如果是,则将所述标识符识别为实体;
将识别为实体的标识符加入实体集。
6.根据权利要求2或3所述的知识图谱的生成方法,其特征在于,将检测到的实体加入所述实体集之后还包括:
按照术语频率-逆文献频率的权重,给做实体检测得到的实体赋予权重值;
比对权重值;
根据比对结果确定一对一或一会多的实体间的指向关系。
7.根据权利要求4所述的知识图谱的生成方法,其特征在于,将所述语言符号加入所述实体集之后还包括:
提取所述语法规范中实体的概念和术语;
判断概念和术语是否存在于实体集的实体中;
如果存在,则建立语法规范中实体和实体集中实体的指向关系;
如果不存在,将语法规范中实体加入实体集。
8.根据权利要求1所述的知识图谱的生成方法,其特征在于,分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系包括:
对所述计算机语言源码按照预设顺序规则依次进行词法、语法、语义分析,得到抽象语法树;
根据抽象语法树确定实体集中实体间的指向关系。
9.一种知识图谱的生成装置,其特征在于,包括:
获取单元,用于获取文本数据;
识别单元,用于将所述文本数据中的计算机语言源码符合文法符号的识别为实体,得到实体集;
确定单元,用于分析所述计算机语言源码,并确定所述实体集中的实体间的指向关系;
生成单元,用于根据所述实体集和所述指向关系生成知识图谱。
10.根据权利要求9所述的知识图谱的生成装置,其特征在于,所述确定单元包括:
分析模块,用于对所述计算机语言源码按照预设顺序规则依次进行词法、语法、语义分析,得到抽象语法树;
确定模块,用于根据抽象语法树确定实体集中实体间的指向关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365180.6A CN110096599B (zh) | 2019-04-30 | 2019-04-30 | 知识图谱的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910365180.6A CN110096599B (zh) | 2019-04-30 | 2019-04-30 | 知识图谱的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110096599A true CN110096599A (zh) | 2019-08-06 |
CN110096599B CN110096599B (zh) | 2023-03-21 |
Family
ID=67446665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910365180.6A Active CN110096599B (zh) | 2019-04-30 | 2019-04-30 | 知识图谱的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096599B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949800A (zh) * | 2020-07-06 | 2020-11-17 | 北京大学 | 一种开源项目知识图谱的建立方法和系统 |
CN112035672A (zh) * | 2020-07-23 | 2020-12-04 | 深圳技术大学 | 一种知识图谱补全方法、装置、设备以及存储介质 |
CN113609309A (zh) * | 2021-08-16 | 2021-11-05 | 脸萌有限公司 | 知识图谱构建方法、装置、存储介质及电子设备 |
CN113626609A (zh) * | 2021-08-10 | 2021-11-09 | 南方电网数字电网研究院有限公司 | 电力计量知识图谱构建方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815293A (zh) * | 2016-12-08 | 2017-06-09 | 中国电子科技集团公司第三十二研究所 | 一种面向情报分析的构建知识图谱的系统及方法 |
CN107368468A (zh) * | 2017-06-06 | 2017-11-21 | 广东广业开元科技有限公司 | 一种运维知识图谱的生成方法及系统 |
CN108196880A (zh) * | 2017-12-11 | 2018-06-22 | 北京大学 | 软件项目知识图谱自动构造方法与系统 |
CN108959433A (zh) * | 2018-06-11 | 2018-12-07 | 北京大学 | 一种从软件项目数据中提取知识图谱并问答的方法与系统 |
CN109656385A (zh) * | 2018-12-28 | 2019-04-19 | 北京金山安全软件有限公司 | 基于知识图谱的输入预测方法、装置和电子设备 |
-
2019
- 2019-04-30 CN CN201910365180.6A patent/CN110096599B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815293A (zh) * | 2016-12-08 | 2017-06-09 | 中国电子科技集团公司第三十二研究所 | 一种面向情报分析的构建知识图谱的系统及方法 |
CN107368468A (zh) * | 2017-06-06 | 2017-11-21 | 广东广业开元科技有限公司 | 一种运维知识图谱的生成方法及系统 |
CN108196880A (zh) * | 2017-12-11 | 2018-06-22 | 北京大学 | 软件项目知识图谱自动构造方法与系统 |
CN108959433A (zh) * | 2018-06-11 | 2018-12-07 | 北京大学 | 一种从软件项目数据中提取知识图谱并问答的方法与系统 |
CN109656385A (zh) * | 2018-12-28 | 2019-04-19 | 北京金山安全软件有限公司 | 基于知识图谱的输入预测方法、装置和电子设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949800A (zh) * | 2020-07-06 | 2020-11-17 | 北京大学 | 一种开源项目知识图谱的建立方法和系统 |
CN112035672A (zh) * | 2020-07-23 | 2020-12-04 | 深圳技术大学 | 一种知识图谱补全方法、装置、设备以及存储介质 |
CN112035672B (zh) * | 2020-07-23 | 2023-05-09 | 深圳技术大学 | 一种知识图谱补全方法、装置、设备以及存储介质 |
CN113626609A (zh) * | 2021-08-10 | 2021-11-09 | 南方电网数字电网研究院有限公司 | 电力计量知识图谱构建方法、装置、设备和存储介质 |
CN113626609B (zh) * | 2021-08-10 | 2024-03-26 | 南方电网数字电网研究院有限公司 | 电力计量知识图谱构建方法、装置、设备和存储介质 |
CN113609309A (zh) * | 2021-08-16 | 2021-11-05 | 脸萌有限公司 | 知识图谱构建方法、装置、存储介质及电子设备 |
CN113609309B (zh) * | 2021-08-16 | 2024-02-06 | 脸萌有限公司 | 知识图谱构建方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110096599B (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096599A (zh) | 知识图谱的生成方法及装置 | |
US10296584B2 (en) | Semantic textual analysis | |
US10545999B2 (en) | Building features and indexing for knowledge-based matching | |
Guerrouj et al. | Tidier: an identifier splitting approach using speech recognition techniques | |
Xu et al. | Open information extraction with tree kernels | |
AU2019200437A1 (en) | A method to build an enterprise-specific knowledge graph | |
EP2915068A2 (en) | Natural language processing system and method | |
US9311058B2 (en) | Jabba language | |
WO2016121048A1 (ja) | 文章生成装置及び方法 | |
US20200034465A1 (en) | Increasing the accuracy of a statement by analyzing the relationships between entities in a knowledge graph | |
CN110309251A (zh) | 文本数据的处理方法、装置和计算机可读存储介质 | |
CN110581864A (zh) | 一种sql注入攻击的检测方法及装置 | |
US11048737B2 (en) | Concept identification in a question answering system | |
CN113158695A (zh) | 一种面向多语言混合文本的语义审核方法与系统 | |
KR20200066119A (ko) | 지식 기반 추론 및 신뢰도 분석을 이용한 가짜뉴스 판별 방법, 이를 수행하기 위한 기록매체 및 장치 | |
JPWO2014002774A1 (ja) | 同義語抽出システム、方法および記録媒体 | |
Pham et al. | A hybrid approach for biomedical event extraction | |
Giannakopoulos et al. | N-gram Graphs: Representing Documents and Document Sets in Summary System Evaluation. | |
CN114896269A (zh) | 结构化查询语句检测方法、装置、电子设备及存储介质 | |
KR102130779B1 (ko) | 기계 독해를 위한 문서를 제공하는 시스템 및 이를 포함하는 질의 응답 시스템 | |
CN112965909A (zh) | 测试数据、测试用例生成方法及系统、存储介质 | |
Mathew et al. | Paraphrase identification of Malayalam sentences-an experience | |
CN112948415A (zh) | Sql语句检测方法、装置、终端设备及存储介质 | |
WO2023085500A1 (ko) | 그래프 독해 기반 지식 추출을 위한 시스템 및 방법 | |
CN112162738B (zh) | 数据转化方法、装置、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |