一种基于双层哈希索引的地铁设计规范中主体识别方法与流程

文档序号:15445665发布日期:2018-09-14 23:19阅读:213来源:国知局

本发明属于计算机自然语言处理技术领域,涉及一种基于双层哈希索引的地铁设计规范中主体识别方法。



背景技术:

知识图谱的构建在各行各业都非常具有现实意义和应用前景。自2012年google推出自己第一版知识图谱以来,全球掀起了一股热潮。各大互联网公司在短短一年时间内纷纷推出了自己的知识图谱产品。在国内,百度和搜狗分别推出“知心”和“知立方”来改进其搜索质量。目前知识图谱多为在通用领域里解决搜索引擎优化和问答系统等方面的问题。针对特定垂直领域知识图谱的构建可能寥寥无几。如果能针对某些特定领域构建知识图谱,那么对该领域可能会有推波助澜的效果。

传统建筑行业审图多为专家模式、人工操作,无论时间效率还是准确性都存在很大问题,有必要针对海量建筑规范构建知识图谱方便查询比对操作。知识图谱即为实体与实体间关系的描述,故如何利用计算机自动从《地铁设计规范》中抽取识别主体可作为构建其知识图谱的第一步来对待。

作为中文信息处理的基础,中文分词近年来已经有了一定的研究,并提出了多种多样的中文分词算法。目前的中文分词算法主要分为三类:基于规则的方法,基于统计的方法和基于词典的方法。

基于规则的分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。由于汉语语言知识的笼统性和复杂性,基于规则的中文分词方法很难将各种信息转化成机器可直接读取的形式。基于统计的分词方法主要靠一个或多个具有代表性的规模相对较小的训练语料库获得相关信息统计的数据,再根据语料库中得到的数据来指导分词的进行。基于词典的分词方法是根据分词词典和一个基本的切分规则来进行词语的切分。



技术实现要素:

本发明的目的是提供一种基于双层哈希索引的地铁设计规范中主体识别方法,利用从ifc实体类中抽取的主体词构成的词典,可以自动的从《地铁设计规范》文本中抽取特定的主体词。

本发明所采用的技术方案是,一种基于双层哈希索引的地铁设计规范中主体识别方法,具体包括如下步骤:

步骤1,利用词典文件构建双层哈希词典索引;

步骤2,将待处理《地铁设计规范》文本作为输入文本s1;

步骤3,对步骤2中输入文本s1进行处理s2;

步骤4,根据步骤1构建的双哈希词典索引,利用逆向最大匹配算法对步骤3处理后的结果进行处理,并输出结果。

本发明的特点还在于,

步骤1的具体过程如下:

先以词典中每个主体词的词条首字为索引依据,构建第一层哈希结构,再以词典中每个主体词的词条长度为索引依据,构建第二层哈希结构,并在每个主体词首字哈希的基础上,利用指针使每个主体词首字哈希对应不同的词长哈希,双哈希词典索引构建完成。

步骤3的具体过程如下:

步骤3.1,将输入文本s1存入一个数组中,s1[0]即为第一个字符;先根据ascii码值对输入文本s1中的空格、回车、换行进行识别,初步对s1进行划分,并以空格、回车、换行作为划分结点将输入文本s1划分为多个部分;

步骤3.2,利用ascii码值对步骤3.1得到的每个部分的首字符进行判断,如果是数字或小数点,则接着往后识别直至遇到非数字及非小数点,最后将将数字及小数点输出到s2中作为《地铁设计规范》中的条目编号,并从s1中剔除;

步骤3.3,根据汉字gb2312编码利用高低区位码对步骤3.2所得的结果进行识别,并进行再次划分,并以中文符号作为划分结点。

步骤4的具体过程如下:

步骤4.1,在经步骤3处理的文本s1中,按照从前往后的顺序,从第一个划分点处获取一个句子;

步骤4.2,判断步骤4.1中获取的一个句子长度是否大于预设的最大词长n,若小于最大词长n,则将该句作为匹配字段w,执行步骤4.3;

若大于最大词长n,则从该句的最右侧开始,取最大词长长度的字符串作为匹配字段w,执行步骤4.3;

若等于最大词长n,则直接将其作为匹配字段w,执行步骤4.3;

步骤4.3,取经步骤4.2中匹配字段w,查找步骤1中的词典文件,先根据第一层哈希索引,判断w的首字是否在索引中,若不存在,则执行步骤4.4;

若存在,则根据第二层哈希索引,判断w首字所对应的多个词条长度哈希中,是否存在当前w的词条长度,若不存在,则执行步骤4.4;

若存在,则判断词典中是否存在该词,若词典文件中含有该词,则匹配成功,抽取w输出至s2,并将w从句子中去除,再从去除字段w的句子中重复步骤4.2;若词典中没有该词,则执行步骤4.4;

步骤4.4,将匹配字段w的最左侧字剔除,用剩下的n-1个字组成的字段作为新的匹配字段w,执行步骤4.2,如果剔除至单个字还未匹配成功,则将该字从句子中剔除,判断此时句子是否为空,若不为空,则返回执行步骤4.2;若为空则执行步骤4.5;

步骤4.5对一个句子处理完成后,该句子即从s1中剔除,在剩余的s1文本中,按照从前往后的顺序,从第一个划分点处获取一个句子;

步骤4.6,重复执行步骤4.2~4.5,直至s1为空,最终输出s2。

本发明的有益效果如下:

(1)本发明通过对词典进行预处理,构建双哈希索引词典,大大降低了查找时间。

(2)本发明基于词典进行主体识别操作,输出结果中不会出现冗杂无关的词汇。

附图说明

图1是本发明一种基于双层哈希索引的地铁设计规范中主体识别方法实施例中的主体识别过程示意图;

图2是本发明一种基于双层哈希索引的地铁设计规范中主体识别方法实施例中的主体识别过程用到的双哈希词典索引。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

本发明一种基于双层哈希索引的地铁设计规范中主体识别方法,具体包括如下步骤:

步骤1,利用词典文件构建双哈希词典索引;

词典文件是根据bim标准ifcscheme中的实体类所抽取出构成的词典,其存储格式为每个主体词独占一行的txt文本文档。

步骤1的具体过程如下:

先以词典中每个主体词的词条首字为索引依据,构建第一层哈希结构,再以词典中每个主体词的词条长度为索引依据,构建第二层哈希结构,并在每个主体词首字哈希的基础上,利用指针使每个主体词首字哈希对应不同的词长哈希,双哈希词典索引构建完成。

步骤2,将待处理《地铁设计规范》文本作为输入文本s1;

输入文本s1中的非汉字字符包括英文字符、英文符号、数字及中文符号。其中英文符号包括空格、回车、换行;中文符号包括顿号、逗号、分号、感叹号、问好、冒号、句号;将中文符号和英文符号都视为终结符。

步骤3,对步骤2中输入文本s1进行处理s2;

步骤3的具体过程如下:

步骤3.1,将输入文本s1存入一个数组中,s1[0]即为第一个字符;先根据ascii码值对输入文本s1中的空格、回车、换行进行识别,初步对s1进行划分,并以空格、回车、换行作为划分结点将输入文本s1划分为多个部分;

步骤3.2,利用ascii码值对步骤3.1得到的每个部分的首字符进行判断,如果是数字或小数点,则接着往后识别直至遇到非数字及非小数点,最后将将数字及小数点输出到s2中作为《地铁设计规范》中的条目编号,并从s1中剔除;

步骤3.3,根据汉字gb2312编码利用高低区位码对步骤3.2所得的结果进行识别,并进行再次划分,并以中文符号作为划分结点。

步骤4,根据步骤1构建的双哈希词典索引,利用逆向最大匹配算法对步骤3处理后的结果进行处理,并输出结果。逆向最大匹配算法中的最大词长,是指词典中主体词中最长词的词条长度,因为在对汉字进行识别时是在数组中根据汉字gb2312编码利用高低区位码识别,故此处一个汉字默认占两个数组元素单元,因此设置最大词长时应为词典中最长词长度的2倍。

步骤4的具体过程如下:

步骤4.1,在经步骤3处理的文本s1中,按照从前往后的顺序,从第一个划分点处获取一个句子;

步骤4.2,判断步骤4.1中获取的一个句子长度是否大于预设的最大词长n,若小于最大词长n,则将该句作为匹配字段w,执行步骤4.3;

若大于最大词长n,则从该句的最右侧开始,取最大词长长度的字符串作为匹配字段w,执行步骤4.3;

若等于最大词长n,则直接将其作为匹配字段w,执行步骤4.3;

步骤4.3,取经步骤4.2中匹配字段w,查找步骤1中的词典文件,先根据第一层哈希索引,判断w的首字是否在索引中,若不存在,则执行步骤4.4;

若存在,则根据第二层哈希索引,判断w首字所对应的多个词条长度哈希中,是否存在当前w的词条长度,若不存在,则执行步骤4.4;

若存在,则判断词典中是否存在该词,若词典文件中含有该词,则匹配成功,抽取w输出至s2,并将w从句子中去除,再从去除字段w的句子中重复步骤4.2;若词典中没有该词,则执行步骤4.4;

步骤4.4,将匹配字段w的最左侧字剔除,用剩下的n-1个字组成的字段作为新的匹配字段w,执行步骤4.2,如果剔除至单个字还未匹配成功,则将该字从句子中剔除,判断此时句子是否为空,若不为空,则返回执行步骤4.2;若为空则执行步骤4.5;

步骤4.5对一个句子处理完成后,该句子即从s1中剔除,在剩余的s1文本中,按照从前往后的顺序,从第一个划分点处获取一个句子;

步骤4.6,重复执行步骤4.2~4.5,直至s1为空,最终输出s2。

建筑行业工程项目生命周期大体分为:规划、设计、施工、运维及拆除五个阶段,规划设计作为建筑工程项目的基础阶段,在一个建筑工程项目中起着至关重要的决定性作用。因此,针对一个建筑工程项目的规划设计需要进行严格的审查工作,而传统的针对规划设计的监督审查多为人工处理,而人工处理存在漏检率高、误减率高、检验粒度低、不确定因素多等问题,在处理时间方面,人工处理效率也很低。

为了使建筑行业前期项目审核处理更加高效准确,构建建筑规范的知识图谱是一个重要趋势。

知识图谱是实体与实体间关系的描述,而建筑行业存在ifc标准实体类,故可利用此实体类将《地铁设计规范》中的主体词抽取出来作为一个实体词典,并以此为基础,设计方法用于抽取规范中的主体词,再围绕实体词对建筑规范进行知识图谱的构建。

以《地铁设计规范》为实验对象,先实现对ifc实体类主体词词典文件的双哈希索引结构的构建(先以字典中每个主体词的词条首字为索引依据,构建第一层哈希结构,再以词典中每个主体词的词条长度为索引依据,构建第二层哈希结构,并在首字哈希的基础上利用指针使每个首字哈希对应多个词长哈希,从而构建双哈希词典索引),以提升主体识别时查词典的效率,再对待处理建筑规范进行处理,处理时,首先将输入文本s1存入一个下标很大的数组中,s1[0]即为第一个字符;然后根据ascii码值识别出换行、回车、空格符号(ascii码值分别对应为10、13、32),并以此为界定,将待处理文本s1初步划分为多个句子,再根据ascii码值对这些句子中的数字及英文字符进行输出处理;然后利用汉字gb2312编码利用高低区位码对句子中的中文符号中的顿号、逗号、分号、感叹号、问好、冒号及句号(对应汉字gb2312编码分别为a1a2、a3ac、a3bb、a3a1、a3bf、a3ba、a1a3)进行识别,并以此为第二次界定,对句子进行第二次划分,然后将处理后文本s1’以一个一个独立句子的形式传递给主体识别模块;主体识别模块接收到传递过来的句子s1’后,首先判断s1’长度是否大于最大词长(词典中主体词长度最长词的词条长度),若大于最大词长则从s1’的最右边开始取最大词长长度的字符串w,在词典中查该词是否存在,若存在则直接输出,并使s1’减去w后接着进行循环;若词典中不存在该词,则剔除w最左侧的字符,接着判断,直到找到词典中的词或者当w为单个汉字时,从s1’中减去w然后接着循环直到s1’为空。

下面的伪代码给出了对建筑规范进行符号初步处理的过程:

本发明上述伪代码表示拿到输入文本s1后,对其进行的第一次处理,首先将输入文本s1存入一个下标很大的数组中,s1[0]即为第一个字符;然后根据ascii码值识别出换行、回车、空格符号(ascii码值分别对应为10、13、32),并以此为界定,将待处理文本s1初步划分为多个部分,再根据ascii码值对每个部分的首字符进行判断,如果是数字或小数点,则接着往后识别直至遇到非数字及非小数点,最后将将数字及小数点输出到s2中作为《地铁设计规范》中的条目编号,并从s1中剔除;再根据汉字gb2312编码利用高低区位码对句子中的中文符号中的顿号、逗号、分号、感叹号、问好、冒号及句号(对应汉字gb2312分别为a1a2、a3ac、a3bb、a3a1、a3bf、a3ba、a1a3)进行识别,并以此为第二次界定,对句子进行第二次划分,然后将处理后文本s1’以一个一个小句子为单位传递给主体识别模块。

下面的伪代码给出了主体识别的过程:

本发明上述伪代码表示:判断待处理文本s1’是否为空,若不为空则进入循环开始主体识别过程。先判断s1’的长度是否大于提前设置的最大词长,若大于最大词长,则从s1’最右侧逆向取最大词长的字符串w,并判断w是否为词典中的词,若w与词典匹配成功,则将w添加分隔符后添加至输出文本s2,并使s1减去w后继续循环;若w与词典匹配失败,此时判断w是否为单独汉字,若不是单独汉字,则将w最左侧字符减去,再进行匹配判断,直到w与词典中的词相匹配或者w为单独一个字并且匹配失败,跳出该循环,使s1’减去w后继续循环直至s1’为空。

对《地铁设计规范》中的16.2.15条目“干线光缆的光纤应采用单模光纤”这条规范进行主体识别处理,如图1所示,

假设规范中最大词长为6,与该条规范相关的词典中的词为“干线”、“光缆”、“光纤”、“单模光纤”,输出文本为s2,分隔符为“/”。

本实例构建对词典构建的双哈希索引如图2所示。

主体识别步骤如下:

(1)s2=“”;s1不为空,从s1最右侧取出候选字符串w=“采用单模光纤”;

(2)查词典,w不在词典中,将w最左边一个字去掉,得到w=“用单模光纤”;

(3)查词典,w不在词典中,将w最左边一个字去掉,得到w=“单模光纤”;

(4)查词典,“单模光纤”在词典中,将w加入到s2中,s2=“单模光纤/”,将w从s1中减去,此时s1=“干线光缆的光纤应采用”;

(5)s1不为空,于是从s1左边取出候选字符串w=“的光纤应采用”;

(6)查词典,w不在词典中,将w最左边一个字去掉,得到w=“光纤应采用”;

(7)查词典,w不在词典中,将w最左边一个字去掉,得到w=“纤应采用”;

(8)查词典,w不在词典中,将w最左边一个字去掉,得到w=“应采用”;

(9)查词典,w不在词典中,将w最左边一个字去掉,得到w=“采用”;

(10)查词典,w不在词典中,将w最左边一个字去掉,得到w=“用”;

(11)此时w为单个汉字,且w不在词典中,则将w从s1中减去,此时s1=“干线光缆的光纤应采”;

如下表1为主体识别测试用例

表1

在表1中描述了以《地铁设计规范》中的16.2.15条目“干线光缆的光纤应采用单模光纤”为实验对象,进行主体识别操作的处理过程及主体抽取结果。

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