1.面向地铁设计规范中知识图谱节点自动构建方法,其特征在于,先将建筑规范中的谓词存入哈希词典,再根据词典,对待处理句型结构为主谓宾形式的地铁设计规范进行谓词标记并抽取主语宾语的操作,最后生成Neo4j数据库节点及其关系创建语句,包括以下步骤:步骤1,利用词典文件构建谓词哈希词典索引;
步骤2,取《地铁设计规范》文本中主谓宾句式规范作为待处理输入文本S1;
步骤3,根据谓词词典,对S1进行谓词词性标记操作输出标记后文本S2;
步骤4,根据步骤1构建的哈希词典索引,利用逆向最大匹配算法对文本S2进行词性标记处理,并输出结果;
步骤5,对标记后的S2进行主语宾语的划分;
步骤6,生成Neo4j主语节点创建语句,生成Neo4j宾语节点创建语句;
步骤7,生成Neo4j关系构建语句,并输出。
2.根据权利要求1所述的面向地铁设计规范中知识图谱节点自动构建方法,其特征在于,步骤1中构建谓词哈希索引采用hash_map数据结构。
3.根据权利要求1所述的面向地铁设计规范中知识图谱节点自动构建方法,其特征在于,步骤3中将输入文本S1存入一个数组中,S1[0]即为第一个字符;先根据ASCII码值对输入文本S1中的空格、回车、换行进行识别,初步对S1进行划分,并以空格、回车、换行作为划分结点将输入文本S1划分为多个部分;然后根据汉字GB2312编码利用高低区位码进行再次识别,并进行再次划分,并以中文符号作为划分结点。
4.根据权利要求1所述的面向地铁设计规范中知识图谱节点自动构建方法,其特征在于,步骤4中逆向最大匹配算法具体步骤如下:步骤4.1,在经步骤3处理的文本S1中,将步骤3中第一次初步划分得到的文本,按照从前往后的顺序,从第一个划分点处获取一个句子;
步骤4.2,若步骤4.1中获取的一个句子长度小于最大词长n,则将该句作为匹配字段w,执行步骤4.3;若大于或者等于最大词长n,则从该句的最右侧开始,取最大词长长度的字符串作为匹配字段w,执行步骤4.3;
步骤4.3,查找步骤1中的词典文件,根据哈希索引判断步骤4.2中所得w的是否在词典中,若词典文件中含有该词,则匹配成功,对w进行标记处理并输出至S2,并将w从句子中去除,再将剩余句子重复步骤4.2;若不存在,则执行步骤4.4;
步骤4.4,将匹配字段w的最左侧字剔除,用剩下的n-1个字组成的字段作为新的匹配字段w,反复执行步骤4.2,如剔除至单个字还未匹配成功,则将该字从句子中剔除,直至句子为空;
步骤4.5对一个句子处理完成后,该句子即从S1中剔除,在剩余的S1文本中,按照从前往后的顺序,从第一个划分点处获取一个新句子;
步骤4.6,重复执行步骤4.2~4.5,直至S1为空,最终输出S2。
5.根据权利要求1所述的面向地铁设计规范中知识图谱节点自动构建方法,其特征在于,步骤5中主语宾语划分部分具体步骤如下:步骤5.1将步骤4中标记文本S2存入一个数组中,S2[0]即为第一个字符;根据ASCII码值对输入文本S2中的空格、回车、换行进行识别,将输入文本S2分为多个部分;然后根据汉字GB2312编码利用高低区位码进行再次识别,并进行再次划分,并以中文符号作为划分结点;
步骤5.2将处理后的文本按照从前往后的顺序,从第一个划分点处获取一个句子;对该句子从左到右根据ASCII码值进行遍历,直到找到谓词标记符号“{”“}”,“{”符号前面的成分作为主语部分S3,“}”符号后面的成分作为宾语部分S4,处理完成后将该句子从S2中剔除,不断重复这一步骤,直至S2为空,输出S3和S4。
6.根据权利要求1所述的面向地铁设计规范中知识图谱节点自动构建方法,其特征在于,步骤6中生成Neo4j主语节点创建语句,生成Neo4j宾语节点创建语句的具体步骤为:步骤6.1读取经步骤5处理后的文本S3,S4,将S3和S4分别存入一个数组中,S3[0]和S4[0]均为第一个字符;根据ASCII码值对输入文本S3、S4中的回车、换行进行识别,将输入文本S3、S4分为多个部分;
步骤6.2在经步骤6.1处理的文本S3和S4中,按照从前往后的顺序,从第一个划分点处获取一个词xx,并将其改写成“CREATE(xx{name:"xx"})”的形式,并将其输出至S5和S6。然后将该词从S3和S4中剔除,不断执行该步骤,直至S3和S4为空,输出S5和S6。
7.根据权利要求1所述的面向地铁设计规范中知识图谱节点自动构建方法,其特征在于,步骤7中:生成Neo4j关系构建语句的具体步骤如下:步骤7.1:针对步骤5中的每个句子,将步骤5中每个句子的主语部分S3记为Z1,并将其改写成“CREATE(Z1)”的形式,并将Z1从句子中剔除;
步骤7.2:将步骤5中每个句子“:”符号和“}”符号之间的部分,即谓词部分记为V1,提取该部分作为节点间的关系,将其改写成“-[:V1]”的形式,并将V1从句子中剔除;
步骤7.3:将步骤5中的宾语部分S4记为B1,并将其改写成“->(B1)”的形式,并将B1从句子中剔除;
步骤7.4:将上述步骤生成的成分进行拼接,作为关系节点生成语句输出至S7;
步骤7.5:判断S2是否为空,若不为空,则反复执行步骤7.1到7.4的步骤;若S2为空,则输出知识图谱节点Neo4j关系构建语句S7。