一种基于自动机的实体关系快速抽取方法

文档序号:10471095阅读:173来源:国知局
一种基于自动机的实体关系快速抽取方法
【专利摘要】本发明提供一种基于自动机的实体关系快速抽取方法,包括以下步骤:步骤1,定制规则文件;步骤2,对规则文件中的各个规则进行文法检查,检测规则文件中的各个规则是否满足文法要求,如果满足,则执行步骤3;步骤3,对通过文法检查的所述规则文件中的各个规则进行语义解释;步骤4,将语义解释后的所述规则文件中的各个规则进行解析编译,完成规则向层叠有限状态自动机的转换,得到有限状态自动机;步骤5,使用所述有限状态自动机,对输入的文本数据进行实体属性以及实体关系的抽取,得到最终的实体属性以及实体关系。优点为:能够保证对开放域文本进行快速的实体关系与实体属性抽取。同时,对于特定领域的实体关系可以定制化的进行抽取。
【专利说明】
-种基于自动机的实体关系快速抽取方法
技术领域
[0001] 本发明属于开放域文本中实体关系抽取技术领域,具体设及一种基于自动机的实 体关系快速抽取方法。
【背景技术】
[0002] 随着互联网的爆发式发展,互联网上的数据呈指数级增长。在庞大的海量数据中, 包含有丰富的信息。但是原始的无结构或半结构化的网页、文档、微博、多媒体等格式的数 据,不能够直接提供给我们想要的精准信息。因此,开放域文本的信息抽取技术变得越来越 重要。命名实体常常是文本蕴含重要信息的载体,因此命名实体W及实体关系的抽取是一 项重要信息抽取技术。例如,利用抽取出的命名实体W及实体关系,可W构建人物档案系 统,形成一张人物关系图。
[0003] 比如针对"小王,A公司董事长,出生于B地区,夫人是小李。"运段文本,可W通过抽 取出小王的个人属性W及关系,建立他的个人档案。如:人名:小王,出生地:B地区,头衔:A 公司董事长,夫人:小李等。该过程可见附图1。抽取的运些结构化信息无论是对构建专家系 统知识库,还是用于文本分析,甚至在一些商业领域都将产生价值。
[0004] 现有的实体关系抽取方法中,基于规则的方法具有很好的准确性,但规则的好坏 直接关系到实体关系抽取的结果质量,因此编写规则需要专家经验,加之规则一般会依赖 于领域,因此规则的可移植性也是一项重大的挑战。而基于统计的方法通常也是针对某个 领域的内容进行抽取,对于开放域文本的实体关系识别,具有很大的局限性;而且基于统计 的抽取方法的模型解码速度也会比较慢。所W,现有的技术很难完全满足实体关系抽取方 法的快速与高可移植性的要求。

【发明内容】

[0005] 针对现有技术存在的缺陷,本发明提供一种基于自动机的实体关系快速抽取方 法,可有效解决上述问题。
[0006] 本发明采用的技术方案如下:
[0007] 本发明提供一种基于自动机的实体关系快速抽取方法,包括W下步骤:
[000引步骤1,定制规则文件;其中,所述规则文件由多条规则组成;所述规则包括W下元 素:实体特征规则关键字、低级约束关键字、高级约束关键字和高级规则关键字;
[0009] 其中,实体特征规则关键字包括C0NCEPT、REGEX和MC0NCEPT,C0NCEPT的特征语义 为文本元素表示的元实体特征;REGEX的特征语义为正则表达式表示的元实体特征; MC0NCEPT的特征语义为元实体特征组合表达的复杂实体特征;
[0010] 低级约束关键字包括AND、0R和NOT; AND代表的约束语义为:两个或多个实体特征 必须同时出现在上下文环境;OR代表的约束语义为:两个或多个实体特征中至少有一个出 现在上下文环境;NOT代表的约束语义为:某个或者多个实体特征不能出现在上下文环境;
[0011] 高级约束关键字包括SENT、0RD和DIST_K;SENT代表的约束语义为:两个或多个实 体特征必须同时出现在同一句话的上下文环境;ORD代表的约束语义为:两个或多个实体特 征必须按照一定顺序关系同时出现在上下文环境;DISTJ(代表的约束语义为:两个或多个 实体特征必须按照一定距离限制同时出现在上下文环境;
[0012] 高级规则关键字包括MC0NCEPT_RULE,其规则语义为:代表两个或多个实体特征在 满足由低层约束关键字和高层约束关键字约束基础上构成的关系;
[0013] 步骤2,对步骤1定制的所述规则文件中的各个规则进行文法检查,检测所述规则 文件中的各个规则是否满足文法要求,如果满足,则执行步骤3;
[0014] 步骤3,对通过文法检查的所述规则文件中的各个规则进行语义解释;
[0015] 步骤4,将语义解释后的所述规则文件中的各个规则进行解析编译,完成规则向层 叠有限状态自动机的转换,得到有限状态自动机;
[0016] 步骤5,使用所述有限状态自动机,对输入的文本数据进行实体属性W及实体关系 的抽取,得到最终的实体属性W及实体关系。
[0017] 优选的,步骤2具体包括:
[0018] 步骤2-1,根据规则的特征关键字对规则进行分类,然后按照类别分类读取规则;
[0019] 步骤2-2,对规则文件中的各个规则进行重复性检测,判断是否存在重复的规则, 如果存在,则剔除重复的规则;
[0020] 步骤2-3,对规则文件中的各个规则进行冲突性检测,判断同一类型的规则中是否 存在两条或多条相互冲突的规则,如果存在,则发出警告信息,通知用户处理冲突;或者,按 照配置文件的默认形式进行冲突处理;
[0021] 步骤2-4,对规则文件中的各个规则进行合法性检测,即:检测规则的编写是否符 合规则的定义形式,检测选项包括:规则约束键和规则类型关键字是否合法、规则元素是否 齐全、规则元素是否匹配、规则的约束键和所约束实体特征的位置关系是否合理。
[0022] 优选的,步骤3具体为:规则的语义解释是指根据规则定义中的不同规则关键字W 及规则中的约束关键字进行不同的语义解释;其中,对于低级约束关键字0R,对其单独处 理,将包含OR约束的规则在语义解释运一阶段进行拆分并进行标记。
[0023] 优选的,步骤4具体为:
[0024] 将规则分类为低级规则和高级规则;其中,低级规则包括CONCEPT规则、REGEX规则 和MC0NCEPT规贝1J;高级规则包括MC0NCEPT_RULE规则;
[0025] 将低级规则编译为低级有限状态自动机;将高级规则编译为高级有限状态自动 机;
[0026] 在进行规则编译过程中,所有规则共用一个符号表;每种同类型的规则共用一套 自动机,即CONCEPT规则编译为一个CONCEPT有限状态自动机;REGEX规则编译为一个REGEX 有限状态自动机;MC0NCEPT规则编译为一个MC0NCEPT有限状态自动机;MC0NCEPT_RULE规则 编译为一个MC0NCEPT_RULE有限状态自动机。
[0027] 优选的,CONCEPT规则的编译步骤如下所示:
[0028] 第一步,把所有的CONCEPT规则的规则名W及规则值放入符号表中,其中,规则值 是经过分词处理后,W词为单位放入符号表;不同的规则名W及规则值中的词放在符号表 中的不同单元;
[0029] 第二步,创建CONCEPT有限状态自动机的初态节点,W初态节点为出发点,依次把 每个CONCEPT规则的规则值部分W词为单位创建对应的状态节点,并按照词的前后顺序完 成状态节点的迁移转换,每一个规则值的最后一个词形成有限状态自动机中的终态节点; 由此形成最终的CONCEPT有限有限状态自动机;
[0030] REGEX规则的编译步骤如下所示:
[0031] 第一步,把所有的REGEX规则的规则名W及规则值放入符号表中,其中,规则值是 经过分词处理后,W词为单位放入符号表;不同的规则名W及规则值中的词放在符号表中 的不同单元;
[0032] 第二步,创建REGEX有限状态自动机的初态节点,W初态节点为出发点,依次把每 个REGEX规则的规则值部分W词为单位创建对应的状态节点,并按照词的前后顺序完成状 态节点的迁移转换,每一个规则值的最后一个词形成有限状态自动机中的终态节点;由此 形成最终的REGEX有限状态自动机;
[0033] MC0NCEPT规则编译步骤描述如下:
[0034] 第一步,把所有的MC0NCEPT规则名插入到符号表中,如果MC0NCEPT规则的规则值 含有纯文本,则把纯文本进行分词处理后插入符号表;
[0035] 第二步,创建MC0NCEPT有限状态自动机的初态节点,并W初态节点为起始节点,对 MC0NCEPT规则的规则值按照前后顺序关系,依次创建状态节点并进行状态转移,转移弧的 label值为CONCEPT规则名或REGEX规则名或文本词在符号表中的槽位;每一个规则值的最 后一个单元形成的状态节点为终态节点;
[0036] MC0NCETP_RULE规则的编译步骤描述如下:
[0037] 第一步,对所有的MC0NCEPT_WLE规则的规则名和规则值中的参数字符串W及文 本串插入到符号表中;
[003引第二步,对所有的MCONCEPTJiULE规则进行宏指令翻译;
[0039] 第Ξ步,创建初态节点,并W初态节点为出发节点,对所有的宏指令序列,按照前 后顺序关系依次创建状态节点并完成状态迁移,其中转移弧上的label值为宏指令的指令 代码值,宏指令的最后一条指令构成有限状态自动机的一个终态节点。
[0040] 优选的,步骤5,使用所述有限状态自动机,对输入的文本数据进行实体属性W及 实体关系的抽取,得到最终的实体属性W及实体关系,具体为:
[0041] 步骤5-1,使用低级有限状态自动机用于进行简单概念抽取,包括:
[0042] 步骤5-1-1,使用CONCEPT有限状态自动机进行简单概念抽取,包括W下步骤:
[0043] 第一步:将输入文本进行分句分词操作,每个词均携带句子idW及在原文本中的 起始结束位置信息;
[0044] 第二步:把分词结果W词为单位加入到构造自动机时建立的符号表中,并同时存 入一张状态表,每个词对应一个状态;
[0045] 第Ξ步:结合使用状态表、符号表W及自动机完成概念匹配工作;本步骤可拆分成 如下几个环节:
[0046] I:遍历状态表,对状态表中的每个状态S作Π 操作;
[0047] Π :在符号表中查找状态S的哈希值,W自动机的初态节点为起始节点,尝试往下 一个节点移动,如果可W找到对应的转移弧,转入虹;否则转入I;
[0048] m:W转移弧的到达节点为新的起始节点,同时在状态表中步进到下一个状态进 行π操作,如果能够到达某个终态节点,则把对应弧上的规则名id及相关命中信息记录入 命中表;
[0049] 步骤5-1-2,使用REGEX有限状态自动机进行简单概念抽取,主要抽取对象是由正 则表达式表示的简单元实体概念模式;
[0050] 步骤5-1-3,使用MC0NCEPT有限状态自动机进行简单概念抽取,包括W下步骤:
[0051] 第一步:初始化时W自动机的初态为出发节点,对该节点的所有转移弧进行遍历, 依次进行第二步操作;
[0052] 第二步:根据转移弧上的label,在命中表中查找该label是否存在,如果存在则转 入第Ξ步,否则终止对该弧的遍历,转入出发节点的下一条转移弧进行第二步操作;如果 该节点的所有转移弧都不满足条件,则退回到上一个节点;
[0053] 第Ξ步:如果命中为运条状态结点链的第一个命中,那么记录该命中的结束位置; 反之,则把命中的起始位置和上一个命中的结束位置进行比较,判断是否满足连续关系,如 果满足则转入第四步,否则转入下一条弧进入第二步;
[0054] 第四步:如果命中弧的到达节点为终态,则表示命中一个MC0NCEPT规则,把转移弧 上的命中规则名id记录到命中表中,转入下一条弧进入第二步;否则,W命中弧的到达节点 为新的出发点,回到第一步。
[0055] 步骤5-2,使用高级有限状态自动机进行复杂模式抽取,包括W下步骤:
[0056] 第一步:初始时,W自动机的初态为出发节点,把出发节点入找;
[0057] 第二步:如果找为空,则结束;否则,弹出找中的状态节点;
[0058] 第Ξ步:对状态节点的每条转移弧进行遍历,依次进入第四步;
[0059] 第四步:如果转移弧为约束键转移弧,进入第五步;如果转移弧为操作子转移弧, 进入第六步;如果转移弧为元规则转移弧,进入第屯步;如果转移弧为〇P_RULE_END,说明该 条规则完成计算,则进入第八步;
[0060] 第五步:如果约束键起始约束转移弧,则把约束键的类型保存到约束寄存器中和 该转移弧的到达节点一同入找;如果转移弧为约束键结束约束转移弧,则把当前的约束寄 存器中的对应约束起始计算符清除,然后和到达节点一同入找;转入第二步;
[0061 ] 第六步:如果操作子为0P_MATCH_START并且紧邻的转移弧为concept_id,进入第 屯步;如果紧邻的转移弧为〇P_PUSH_START,则跳过紧邻的转移弧,进入第屯步;如果操作子 为0P_MATCH_END,把转移弧的到达节点入找,转入第二步;如果操作子为0P_PUSH_START,说 明下一条转移弧是规则名,进入第九步;如果操作子为〇P_PUSH_END,说明下一条转移弧为 规则参数,进入第九步。
[0062] 第屯步:在命中表中找到所有id为concept_id的命中项,依次和约束寄存器中的 约束进行检查,如果合法则把命中项id和转移弧的到达节点一同入找,转入第二步;
[0063] 第八步:如果结果寄存器中保存有元规则,则把当前规则的计算结果写入命中 表;进入第二步;
[0064] 第九步:把下一条转移弧的label保存到结果寄存器中,和转移弧的到达节点一同 入找,转入第二步。
[0065] 本发明提供的基于自动机的实体关系快速抽取方法具有W下优点:
[0066] 能够保证对开放域文本进行快速的实体关系与实体属性抽取。同时,对于特定领 域的实体关系可w定制化的进行抽取。
【附图说明】
[0067] 图1为现有技术提供的抽取实体关系示例的示意图;
[0068] 图2为本发明提供的关系抽取架构与程序设计语言类比示意图;
[0069] 图3为本发明提供的关系抽取方法流程图。
【具体实施方式】
[0070] 为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,W下结合 附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用W 解释本发明,并不用于限定本发明。
[0071] 本发明的目的是为了现有技术不能满足实体关系抽取方法快速与高可移植性的 问题,创新性地实现了一种基于自动机的可定制化的开放域实体关系快速抽取方法。该方 法具有较高的可定制性,能够通过简单地修改配置文件,实现对新定制的实体关系的抽取, 并且该方法能够快速进行数据处理,满足从大量数据中获取实体关系的实际需要。
[0072] 本发明提供的基于自动机的实体关系快速抽取方法,包括W下步骤:
[0073] 步骤1,定制规则文件;其中,所述规则文件由多条规则组成;所述规则包括W下元 素:实体特征规则关键字、低级约束关键字、高级约束关键字和高级规则关键字;
[0074] 本发明所定制的规则应该为一套基于上下文无关文法的高语义涵盖性、高抽象 性、高简洁、高可定制的规则。规则是否能够保证较高的抽象性和规则采用的语法是否足够 简洁,直接关系到规则的语义覆盖性W及规则的可移植性,因此规则的定义非常重要,是基 于自动机的关系抽取方法的基础和核屯、部分。
[0075] 结合对语法的统计研究,发现对关系主客体的最有力、最直接的约束便是谓词约 束和位置顺序约束,运两种约束最能够反应语言的表达习惯和内在语义。因此设计规则的 约束力主要体现在对低层的谓词约束W及高层的位置和顺序关系约束。不同的约束类型由 不同的约束关键字也称约束键表示,约束键作用于实体特征之上。实体特征可W根据关系 语义W及表达方式进行灵活定义。在本发明中主要有Ξ种实体特征的定义方式,实体特征 的定义使用一些关键字进行描述,如下表所示:
[0076]
[0077] ~表1实体特征规则关键字及特征语义
'
[0078] 下面看看具体的约束键及对应语义定义,约束键的直接作用目标就是实体特征。 其中约束键又分为低层约束键和高层约束键,低层约束键主要是谓词约束,高层约束键是 距离顺序约束。具体描述如下表所示:
[0079]

[0082] 表3高层约束关键字及约束语义
[0083] 表示实体特征的规则称为低级规则,由约束键和基本实体特征共同描述的规则称 为高级规则。低级规则主要用来抽取概念性的实体特征,例如人名、地名、机构名等命名实 体,也包括任何特征文本,可W为任何一段连续的文本表示。高级规则主要用来抽取复杂 的关系模式,高级规则的表示关键字及规则语义如下表所示:
[0084]
[0085] 表4高级规则关键字及规则语义
[0086] 给出约束关键字W及规则表示关键字后,下表给出低级规则、高级规则W及约束 键的形式化定义。在给出具体形式化定义之前,为了表述的更加清楚,运里有一些约定:
[0087] (1)下列定义中的斜体表示可为任意文本表示;
[008引(2)'Τ表示或者;
[0089] (3)"+"表示要求连续;
[0090] (4)CF = CNAME IRNAME IMCNAME,表示使用C0NCEPT、REGEX或MC0NC阳Τ表示的任意实 体特征;
[0091 ] (5) (patternT表示模式pattern重复出现一次W上。
[0094] 表5关键字定义及表现形式
[00M]为了更好的理解上面的规则W及约束键的定义,具体看几个例子:
[0096] (1)使用CONCEPT来定义人名,例如CONCEPT: NAME:张 Ξ
[0097] (2)使用REGEX来定义 Ema i 1,例如REGEX: EMAIL: \w+@\w+ (\. \w+) +
[009引(3)使用MC0NCEPT来定义复杂实体,比如定义具体公司头衔,例下:
[0099] MC0NCEPT : 0RG_TITLE : 0RGANINATI0N+TITLE,其中另外两个实体特征分别为 CONCEPT: 0RGANINATI0N:微软
[0100] CONCEPT: TITLE:总裁
[0101 ] (4)使用AND来定义抽取两个人物的共现关系,例如:
[0102] MCONCEPT_RULE:NAME_NAME(person,person):(AND, "_per{NAME}", "_per (NAMED
[0103] (5)使用OR来定义抽取人的联系方式,例如:
[0104] MC0NCEPT_RULE:NAME_C0NTACK(person,email,phone):
[010引(AND,_per{NAMEr,(0R, "_em{EMAILr,"_ph{P册肥Γ))
[0106] (6)使用NOT来定义抽取不包含"医疗"运个词页面的人的电话,例如:
[0107] MCONCEPT_RULE:NAME_P册肥(person,地one): (AND, "_per{NAMEr,
[010引 "_地化册肥Γ,(NOT,。医疗"))
[0109] (7)使用0畑来定义人的活动信息,例如:
[0110] MCONCEPT_RULE:NAME_ACTION(person,action):(沈NT,
[0111] (0畑,"-per{NAME}'',"_ac{ACTION}''))
[0112] (8)使用0151'_4来定义人的年龄,例如:
[0113] MC0NCEPT-RULE: NAME-AGE (per son,age): (SENT,( 0畑,
[0114] (DIST-2, "_per{NAME}V'_age{AGEr)))
[0115] 为了增强规则的表达力,无论是低级约束键还是高级约束键,都是可W进行任意 组合递归表示,运一点在上面的例子中已经得到体现。
[0116] 步骤2,对步骤1定制的所述规则文件中的各个规则进行文法检查,检测所述规则 文件中的各个规则是否满足文法要求,如果满足,则执行步骤3;
[0117] 本步骤具体为:
[0118] 步骤2-1,根据规则的特征关键字对规则进行分类,然后按照类别分类读取规则;
[0119] 规则可W分类为低级规则和高级规则,其中低级规则又可W进一步分为Ξ种规 贝1J。进行规则的分类读取操作时,主要是根据规则的特征关键字来进行简单分类,然后分别 存储。分类读取操作是服务于后期对不同类型规则的分类编译做准备。
[0120] 步骤2-2,对规则文件中的各个规则进行重复性检测,判断是否存在重复的规则, 如果存在,则剔除重复的规则;
[0121] 具体的,规则集可能多人进行共同维护,因此规则集中可能出现重复的规则。规则 的重复检测操作的目的就是为了识别出重复定义的规则,并进行剔除,W防被重复编译,并 在后期进行多次匹配,从而带来性能的损失。重复检测运一操作可W在规则的读取阶段进 行,也可W单独进行。
[0122] 步骤2-3,对规则文件中的各个规则进行冲突性检测,判断同一类型的规则中是否 存在两条或多条相互冲突的规则,如果存在,则发出警告信息,通知用户处理冲突;或者,按 照配置文件的默认形式进行冲突处理;
[0123] 具体的,规则的冲突检测是指检测出同一类型的规则中的两条或多条相互冲突的 规则。如果规则A所覆盖的实体关系与规则B所覆盖的实体关系正好相反互补,那么规则A就 和规则B相互冲突。
[0124] 步骤2-4,对规则文件中的各个规则进行合法性检测,即:检测规则的编写是否符 合规则的定义形式,检测选项包括:规则约束键和规则类型关键字是否合法、规则元素是否 齐全(例如分割冒号是否存在)、规则元素是否匹配(例如括号是否匹配,引号是否匹配等)、 规则的约束键和所约束实体特征的位置关系是否合理。
[0125] 只有语法正确的规则才能够在规则编译期得到正确的语义解释并进行正确编译。
[0126] 步骤3,对通过文法检查的所述规则文件中的各个规则进行语义解释;
[0127] 步骤3具体为:规则的语义解释是指根据规则定义中的不同规则关键字W及规则 中的约束关键字进行不同的语义解释;其中,对于低级约束关键字0R,对其单独处理,将包 含OR约束的规则在语义解释运一阶段进行拆分并进行标记。
[0128] 具体的,规则的语义解释是指根据规则定义中的不同规则关键字W及规则中的约 束关键字进行不同的语义解释。四种不同的规则会被分别转换成对应的有限状态自动机, 而对复杂规则中所包含的六种不同的语义约束,也会被进行不同的处理解释,W实现正确 的语义约束。在运一阶段需要完成的主要操作时对具有特殊语义的约束键OR进行单独处 理。约束键OR的语义含义是两个或者多个实体特征至少有一个出现在上下文环境中。为了 保证后期有限状态自动机上的匹配计算过程能够保持对所有约束相同的计算模式,我们可 W对该约束键进行预处理。举例说明:
[0129] 假如我们需要抽取与张 Ξ或者李四共现的人物关系,那么如下定义规则:
[0130] MCONCEPT_RULE:COEXIST(person): (AND, "_per{NAMEr,(OR,。张三' 李四"))
[0131] 显然,运条规则可W拆分成如下两条规则:
[0132] MCONCEPT_RULE:COEXIST(person):(AND,"_per{NAMEr,。张)
[0133] MC0NCEPT_RULE: C0EXIST (per son): (AND," _per {NAME Γ /' 李四")
[0134] 由于约束键OR的语义特殊性,所W需要单独处理。对包含OR约束的规则在语义解 释运一阶段进行拆分并进行标记,W方便后期的编译操作W及匹配操作。
[0135] 步骤4,将语义解释后的所述规则文件中的各个规则进行解析编译,完成规则向层 叠有限状态自动机的转换,得到有限状态自动机;
[0136] 规则的解析编译是对规则处理的核屯、步骤,主要功能是完成规则向层叠有限状 态自动机的转换。其中主要包含两层有限状态自动机的转换,分别为低级有限状态自动机 和高级有限状态自动机。低级有限状态自动机由低级规则编译而来,即由CONCEPT规则、 REGEX规则和MC0NCEPT规则编译得到,高级有限状态自动机由高级规则即MC0NCEPT_RULE规 则编译而来。对规则的编译,主要设及到的数据结构是符号表和自动机的表现形式。我们对 所有类型的规则共用一个符号表,运样可W保证不同的规则能够进行信息共享。每种同类 型的规则共用一套自动机,即CONCEPT规贝IJ、REGEX规则、MC0NCEPT规则和MCONCEPTJiULE规 则均对应自有的一套规则,独立的自动机能够W不同的形式进行模式抽取,并且可W带来 自动机的多种优化方式。
[0137] 步骤4具体为:
[0138] 将规则分类为低级规则和高级规则;其中,低级规则包括CONCEPT规则、REGEX规则 和MC0NCEPT规贝1J;高级规则包括MC0NCEPT_RULE规则;
[0139] 将低级规则编译为低级有限状态自动机;将高级规则编译为高级有限状态自动 机;
[0140] 在进行规则编译过程中,所有规则共用一个符号表;每种同类型的规则共用一套 自动机,即CONCEPT规则编译为一个CONCEPT有限状态自动机;REGEX规则编译为一个REGEX 有限状态自动机;MC0NCEPT规则编译为一个MC0NCEPT有限状态自动机;MC0NCEPT_RULE规则 编译为一个MC0NCEPT_RULE有限状态自动机。
[0141] CONCEPT规则的编译:
[0142] CONCEPT规则作为元规则,完成元实体特征的抽取。它是MC0NCEPT规则W及 MC0NCEPT_RULE规则的基础,只有在CONCEPT规则进行编译和抽取后,MC0NCEPT规则和 MC0NCEPT_RULE规则才能够开始抽取工作。所有的CONCEPT规则在经过编译后融合进同一个 有限状态自动机,运样能够进行所有规则的同一处理。
[0143] CONCEPT规则的编译步骤如下所示:
[0144] 第一步,把所有的CONCEPT规则的规则名W及规则值放入符号表中,其中,规则值 是经过分词处理后,W词为单位放入符号表;不同的规则名W及规则值中的词放在符号表 中的不同单元;
[0145] 第二步,创建CONCEPT有限状态自动机的初态节点,W初态节点为出发点,依次把 每个CONCEPT规则的规则值部分W词为单位创建对应的状态节点,并按照词的前后顺序完 成状态节点的迁移转换,每一个规则值的最后一个词形成有限状态自动机中的终态节点; 由此形成最终的CONCEPT有限有限状态自动机;
[0146] REGEX规则的编译:
[0147] 同CONCEPT规则,REGEX规则也是用于抽取元实体特征。不同的是,对REGEX规则,为 了更加高效的进行编译和抽取,可W选择使用开源的正则表达式库PCRE(Pe;rl Compat化le Regular Expressions)。
[0148] REGEX规则的编译步骤如下所示:
[0149] 第一步,把所有的REGEX规则的规则名W及规则值放入符号表中,其中,规则值是 经过分词处理后,W词为单位放入符号表;不同的规则名W及规则值中的词放在符号表中 的不同单元;
[0150] 第二步,创建REGEX有限状态自动机的初态节点,W初态节点为出发点,依次把每 个REGEX规则的规则值部分W词为单位创建对应的状态节点,并按照词的前后顺序完成状 态节点的迁移转换,每一个规则值的最后一个词形成有限状态自动机中的终态节点;由此 形成最终的REGEX有限状态自动机;
[0151 ] MC0NCEPT 规则编译:
[0152] MC0NCEPT规则能够抽取较为复杂的实体特征,它所对应自动机的构造也建立在 CONCEPT、REGEX规则的基础之上。MC0NCEPT规则的编译和CONCEPT规则的编译本质上相同, 只是CONCEPT规则在进行编译构造自动机时W词为基本粒度,而MC0NCEPT规则在进行编译 构造自动机时,^CONCEPT规则和REGEX规则为基本粒度。
[0153] MC0NCEPT规则编译步骤描述如下:
[0154] 第一步,把所有的MC0NCEPT规则名插入到符号表中,如果MC0NCEPT规则的规则值 含有纯文本,则把纯文本进行分词处理后插入符号表;
[0155] 第二步,创建MC0NCEPT有限状态自动机的初态节点,并W初态节点为起始节点, 对MC0NCEPT规则的规则值按照前后顺序关系,依次创建状态节点并进行状态转移,转移弧 的label值为CONCEPT规则名或REGEX规则名或文本词在符号表中的槽位;每一个规则值的 最后一个单元形成的状态节点为终态节点;
[0156] MC0NCETP_RULE 规则的编译:
[0157] MC0NCETP_TOLE规则为系统的核屯、规则,完成实体属性W及实体关系的定义抽取 任务。由于MCONCEPTJiULE规则的定义是基于CONCEPT、REGEX和MC0NCEPT规则,因此它的编 译也建立在实体特征规则编译的基础上。该规则主要包括如下元素:规则名、规则参数、约 束键、约束实体特征。其中约束实体特征包括Ξ种形式:"_arg-name{CONCEPT I REGEX MCONCEPT Γ'、乂ONCEPT I REGEX I MCONCEPr W 及"_arg-name {CONCEPT I REGEX I MCONCEPT} text"。运Ξ种形式分别表示带参数的实体特征、不带参数的实体特征和带参数的实体特征 与文本并存。举例说明:
[0158] (l)"_person{NAMEr表示抽取人名,并且作为规则参数输出;
[0159] (2) "TITLE"表示抽取头衔,但不作为规则参数输出。
[0160] (3 r_age {AGE}岁"表示抽取年龄,"岁"要紧跟AGE特征来复合表示年龄运一特征 模式。也会作为规则参数进行输出。
[0161] 约束实体特征不同,在编译过程中所做的处理就有差异。在进行详细的编译细节 介绍之前,先约定一些规定,用来指导编译过程的操作行为和推进方式,见下表:
[0162]
[0164] 表6宏指令及对应含义
[0165] 对MC0NCEPT_TOLE规则的编译,本质上是对规则进行解析转换翻译成上表中的宏 序列指令的过程。而宏指令本质上为有限状态自动机的计算符,完成在自动机上的相关计 算操作。
[0166] 在本小节开头提到的Ξ种不同形式的约束实体特征对应的宏指令序列模式如下:
[0167] (1) "_a^-name{CONCEPT I REGEX IMCONCEPTr对应:
[016 引 【0P_MATCH_START一0P_PUSH_START一concept_id一0P_PUSH_END一arg_id一0P_ MATCH-END】
[0169] (2) "CONCEPT I REGEX iMCONCEPr 对应:
[0170] 【0P_MATCH_START 一。〇11。邱1_1(1 一 0P_MATCH_END】
[0171] (3) "_a^-name {CONCEPT I REGEX IMCONCEPT} text"对应:
[0172] 【〇P_MATCH_START一0P_PUSH_START一concept_id一0P_PUSH_END一arg_id一 text_id一0P_MATCH_END】
[0173] 上述宏指令序列中的concept_id、arg_id和text_id均为在符号表中的索引位置 id。
[0174] MC0NCEPT_RULE编译步骤描述如下:
[01对第一步,对所有的MC0NCEPT_WLE规则的规则名和规则值中的参数字符串W及文 本串插入到符号表中;
[0176] 第二步,对所有的MC0NCEPT_RULE规则进行宏指令翻译;
[0177] 第Ξ步,创建初态节点,并W初态节点为出发节点,对所有的宏指令序列,按照前 后顺序关系依次创建状态节点并完成状态迁移,其中转移弧上的label值为宏指令的指令 代码值,宏指令的最后一条指令构成有限状态自动机的一个终态节点。
[0178] 步骤5,使用所述有限状态自动机,对输入的文本数据进行实体属性W及实体关系 的抽取,得到最终的实体属性W及实体关系。
[0179] 该部分是关系抽取的核屯、模块,实现了层叠有限状态自动机到模式抽取的算法和 运行过程的构建。正是经过有限状态自动机的模式匹配计算,才得到最终的实体属性W及 实体关系。
[0180] 在层叠有限状态自动机的两个层次中,下层为由低级规则即CONCEPT规则、REGEX 规则和MC0NCEPT规则编译得到的低级有限状态自动机,上层为由高级规则即MC0NCEPT_ RULE规则编译得到的高级有限状态自动机。低级有限状态自动机主要是完成一些简单的概 念抽取,比如人名、地名、机构名、时间、各种人物属性特征、驱动关键词等。
[0181] 本步骤具体为:
[0182] 步骤5-1,使用低级有限状态自动机用于进行简单概念抽取,包括:
[0183] 步骤5-1-1,使用CONCEPT有限状态自动机进行简单概念抽取。
[0184] CONCEPT自动机的主要抽取对象是简单的明文元实体概念模式。抽取工作由 C 0肥P T规则编译得到的有限状态自动机来完成。自动机的输入为待抽取的文本,具体 CONCEPT自动机抽取算法为:
[0185] 第一步:将输入文本进行分句分词操作,每个词均携带句子idW及在原文本中的 起始结束位置信息;
[0186] 第二步:把分词结果W词为单位加入到构造自动机时建立的符号表中,并同时存 入一张状态表,每个词对应一个状态;
[0187] 第Ξ步:结合使用状态表、符号表W及自动机完成概念匹配工作;本步骤可拆分成 如下几个环节:
[0188] I:遍历状态表,对状态表中的每个状态S作Π 操作;
[0189] Π :在符号表中查找状态S的哈希值,W自动机的初态节点为起始节点,尝试往下 一个节点移动,如果可W找到对应的转移弧,转入虹;否则转入I;
[0190] m:W转移弧的到达节点为新的起始节点,同时在状态表中步进到下一个状态进 行Π 操作,如果能够到达某个终态节点,则把对应弧上的规则名id及相关命中信息记录入 命中表;
[0191] 步骤5-1-2,使用REGEX有限状态自动机进行简单概念抽取,主要抽取对象是由正 则表达式表示的简单元实体概念模式;
[0192] REGEX自动机的主要抽取对象是由正则表达式表示的简单元实体概念模式。我们 采用PCRE进行高效抽取。不论是规则的编译,还是编译完成后进行的模式抽取,都直接采用 PCRE中的相应模块进行,运里不再寶述。
[0193] 步骤5-1-3,使用MC0NCEPT有限状态自动机进行简单概念抽取。
[0194] MC0NCEPT自动机的抽取建立在CONCEPT自动机及REGEX自动机抽取的基础之上,相 当于做了二次计算。该自动机的抽取算法与CONCEPT自动机抽取算法的最大区别是: CONCEPT自动机的抽取是W待抽取文本为驱动,而MC0NCPET自动机直接对自动机进行遍历, W自动机为驱动,无需对输入文本进行遍历操作。
[01M] MC0NCEPT有限状态自动机过程包括W下步骤:
[0196] 第一步:初始化时W自动机的初态为出发节点,对该节点的所有转移弧进行遍历, 依次进行第二步操作;
[0197] 第二步:根据转移弧上的label,在命中表中查找该label是否存在,如果存在则转 入第Ξ步,否则终止对该弧的遍历,转入出发节点的下一条转移弧进行第二步操作;如果该 节点的所有转移弧都不满足条件,则退回到上一个节点;
[0198] 第Ξ步:如果命中为运条状态结点链的第一个命中,那么记录该命中的结束位置; 反之,则把命中的起始位置和上一个命中的结束位置进行比较,判断是否满足连续关系,如 果满足则转入第四步,否则转入下一条弧进入第二步;
[0199] 第四步:如果命中弧的到达节点为终态,则表示命中一个MC0NCEPT规则,把转移弧 上的命中规则名id记录到命中表中,转入下一条弧进入第二步;否则,W命中弧的到达节点 为新的出发点,回到第一步。
[0200] 上述算法本质上是一个递归操作,递归终止的条件是完成了对状态机的所有遍 历。
[0201 ]步骤5-2,使用高级有限状态自动机进行复杂模式抽取。
[0202] MC0NCEPT_RULE自动机作为层叠有限状态自动机的上层,它是完成对低级有限状 态自动机抽取结果的约束计算,找到满足约束键约束范围内的实体组合,即复杂模式,包括 实体属性W及实体关系等。MC0NCEPT_RULE自动机的抽取主要是完成自动机在不同状态之 间的迁移,由于迁移过程中会面临不同种类的转移弧,包括约束键转移弧、操作子转移弧、 元规则转移弧、参数转移弧等。
[0203] 1)约束键转移弧计算。
[0204] 约束键转移弧主要包括 0P_AND_START、0P_AND_END、0P_N0T_START、0P_N0T_END、 0P_WNT_START、0P_WNT_END、0P_0RD_START、0P_0RD_END、0P_D I ST_START 和 0P_D I ST_END。
[0205] 在高级有限状态自动机中,约束键有着至关重要的作用,因为正是约束键完成了 对元规则的的约束计算,进而析取合法的实体关系。约束键的生效起始位置由形式为〇P_ XXX_START的约束操作子来表示,生效结束位置由形式为0P_XXX_END的约束操作子来表示。 因此同一形式的约束键生效起始转移弧和生效结束转移弧之间的所有实体特征均受该约 束键的约束。
[0206] 对约束键转移弧的计算,要按照约束键的语义的不同做出不同的计算,对同一约 束键的起始生效转移弧和结束生效转移弧的计算也不同。约束键4細、56^、030、0151'_4对 自动机状态节点链中的实体特征约束都是对位置顺序关系的约束,它们的约束需要保证被 约束的实体特征必须出现运一前提。而约束键NOT对实体特征的约束具有本质区别,它不是 基于位置关系的约束,而是实体特征是否出现。因此对约束键NOT的处理与对其他约束键的 处理完全不同。对于在状态节点链中的不受NOT约束的其它部分完成处理后,它们就构成 "临时合法"的关系,当对NOT约束的实体特征进行存在性检查完毕后,如果满足NOT约束,贝U "临时合法"的关系就成为最终真正合法的关系,运些关系不要求NOT约束的实体特征出现, 而且必须不能出现。相比NOT,其它四种类型的约束键约束的实体特征必须出现在最终合法 关系中。在另外四种约束键中,约束键DIST_k与其它Ξ种也有细微的区别,因为该约束键 本身就携带一个参数元素,而该参数元素又构成了紧接DIST约束转移弧的下一条转移弧, 因此在进行DIST约束键转移弧计算时,接下来要立即对该转移弧到达节点的所有转移弧进 行计算,W防止DIST约束键的约束丢失。
[0207] 使用找来完成整个计算过程,那么当遇到约束键起始生效转移弧时,是做入找操 作,当配对的约束键结束生效转移弧需要进行计算时,是做出找操作。
[0208] 2)操作子转移弧计算。操作子转移弧主要包括OP_MATCH_START、OP_MATCH_END、 0P_PUSH_START和0P_PUSH_END。
[0209] 操作子运算符主要是完成对实体特征的计算,运些实体特征或者是已经由低级有 限状态自动机完成抽取的,或者是元文本实体特征。由于操作子转移弧的起始生效位置和 结束生效位置之间的实体特征具有Ξ种形式,而对运Ξ种形式的处理是完全不同的。根据 运Ξ种形式的实体特征对应的宏指令序列来进行操作子转移弧计算。
[0210] (1)【0P_MATCH_START一0P_PUSH_START一concept_id一0P_PUSH_END一arg_id一 0P_MATCH_END】对应的实体特征形式为:"_arg-name {CONCEPT I REGEX I MCONCEPlT'。运种形 式的实体特征需要保留规则的参数信息。 惦川 (2)【0P_MATCH_START 一concept_id 一 0P_MATCH_END】对应的实体特征形式为: "CONCEPT I REGEX I MCONCEPr,运种形式的实体特征不需要保留规则参数。
[0212] (3)【0P_MATCH_START一0P_PUSH_START一concept_id一0P_PUSH_END一arg_id一 text_id一0P_MATCH_END】对应的实体特征形式为:"_arg-name{CONCEPT I REGEX IMC0NCEPT} text,' D
[0213] 3)元规则转移弧计算。元规则转移弧是除形式为0P_XXX_XXXW外的所有转移弧。
[0214] 当进行元规则转移弧的计算时,也就是完成元规则是否满足约束键的约束检查。 当通过约束检查时,把该元规则进行入找操作,否则就不用入找。由于每一个元规则可能在 原始待抽取文本中有多个命中,因此对每个命中都需要做同样的计算处理。
[0215] 使用高级有限状态自动机进行复杂模式抽取包括W下步骤:
[0216] 第一步:初始时,W自动机的初态为出发节点,把出发节点入找;
[0217] 第二步:如果找为空,则结束;否则,弹出找中的状态节点;
[0218] 第Ξ步:对状态节点的每条转移弧进行遍历,依次进入第四步;
[0219] 第四步:如果转移弧为约束键转移弧,进入第五步;如果转移弧为操作子转移弧, 进入第六步;如果转移弧为元规则转移弧,进入第屯步;如果转移弧为〇P_RULE_END,说明该 条规则完成计算,则进入第八步;
[0220] 第五步:如果约束键起始约束转移弧,则把约束键的类型保存到约束寄存器中和 该转移弧的到达节点一同入找;如果转移弧为约束键结束约束转移弧,则把当前的约束寄 存器中的对应约束起始计算符清除,然后和到达节点一同入找;转入第二步;
[0221] 第六步:如果操作子为0P_MATCH_START并且紧邻的转移弧为concept_id,进入第 屯步;如果紧邻的转移弧为〇P_PUSH_START,则跳过紧邻的转移弧,进入第屯步;如果操作子 为0P_MATCH_END,把转移弧的到达节点入找,转入第二步;如果操作子为0P_PUSH_START,说 明下一条转移弧是规则名,进入第九步;如果操作子为〇P_PUSH_END,说明下一条转移弧为 规则参数,进入第九步。
[0222] 第屯步:在命中表中找到所有id为concept_id的命中项,依次和约束寄存器中的 约束进行检查,如果合法则把命中项id和转移弧的到达节点一同入找,转入第二步;
[0223] 第八步:如果结果寄存器中保存有元规则,则把当前规则的计算结果写入命中表; 进入第二步;
[0224] 第九步:把下一条转移弧的label保存到结果寄存器中,和转移弧的到达节点一同 入找,转入第二步。
[0225] 本发明的优点在于:在开放域的前提下能够尽量保证可定制地快速抽取出命名实 体和实体关系。
[0226] 本发明提供的基于自动机的开放域可定制的实体关系快速抽取方法,相当于实 现了一口程序设计语言。完成了语言的定义、预处理器、编译器及优化直至二进制执行逻辑 的整个实现过程。图2是本发明方法与程序设计语言的实现对比。
[0227] 本发明应用起来很简单,只需用户编写简单的规则文件即可定制化的从开放域文 本中快速的抽取出感兴趣的实体关系。下面W-条简单的规则解释本发明的处理流程。
[022引生日属性抽取规则:
[0229] 抓 irthday
[0230] 1^^乂量了6:([\(1]{4}年){1}([\(1]{1,2}月){0,1}([\(1]{1,2}日){0山
[0231] REGEX:DATE:[\d]{4}[\.-][\d]{l,2}([\.-][\d]{l,2}){0,l}
[0232] CONCEPT :BIRTH_0R:生于
[0233] CONCEPT:BIRTH_0R:出生
[0234] CONCEPT: NAME:鲁迅
[0235] MCONCEPT_RULE:NAME_BIRTHDAY(person,bidhday): (SENT, (ORD, (DIST_2,"_ person{NAME}",(DIST-l,"-birthday{DATE}","BIRTH_0R"))))
[0236] 规则格式:规则元字符:规则名称(返回参数):规则内容
[0237] 规则解读:
[0238] DATE为利用REGEX规则定义的日期类型,可W抽取出符合正则的日期。BIRTH_0R为 定义的具有提示生日属性的关键字。运两个都是元规则定义的标签。MCONCEPTJiULE是一个 高级规则。里面结合了 SENT、0RD和DI ST_k约束。NAME_B IRTHDAY是该高级规则的名字。该规 则包含两个返回参数(person, bidhday);参数后的为该高级规则的规则内容。其含义为 DATE和BIRTH_0R距离不超过1,NAME和(DATE,BI RTH_0R)的距离不超过2,并且要求NAME、 DATE和BIRTH_0R的出现顺序必须是NAME-DATE-BIRTH_0R,且Ξ者出现在同一个句子中。比 如句子"鲁迅,1881年9月25日生于浙江绍兴",可W抽出(鲁迅,1881年月25日)。处理过程如 下
[0239] 步骤1检查规则的文法并解释编译。此步骤工作又可细化为规则文法检查、规则的 语义解释和规则的解析编译Ξ个步骤。
[0240] 步骤1-1文法检查包括按类别读取规则、规则重复检查、规则冲突检查、规则合法 检查。根据上述例子规则,该方法会在读入规则时跳过定义的注释内容,然后根据关键字 CONCEPT、REGEX和MCONCEPTJiULE分类读取规则。进而进行规则的重复和冲突检查。规则的 合法性检测也是在读取过程中进行的。
[0241] 步骤1-2规则的语义解释。将对具有OR关键字的规则进行拆分。
[0242] 步骤1-3规则的解析编译。此条规则具有C0NCEPT、REGEX和MCONCEPT_RULES种规 贝1J,根据相应算法生成3中规则对应的自动机。
[0243] 步骤2层叠有限状态自动机的模式抽取。该部分内容处理如何利用生成的自动机 抽取符合的模式文本。根据相应规则产生的自动机去模式匹配。对于鲁迅的例子,"鲁迅"就 匹配了NAME,1881年9月25日匹配了DATE/'生于"匹配了BIRTH_0R。高级规则的抽取需要判 断约束条件,可W抽取出生日属性(鲁迅,1881年9月25日)。
[0244] 本发明提供了一种基于自动机的实体关系快速抽取方法,基于上下文无关文法定 义了一套高语义涵盖性、高抽象性、高简洁、高可定制的规则,用户所需要做的就是根据需 求领域,定制化的编写规则文件。规则的编写极其简单,并不需要专家知识,对普通的开发 人员,甚至系统的维护人员也能够快速编写出一套高可用的规则系,很好的满足实际需求。 该方法在实际应用时会先对用户编写的规则进行预处理,包括去除注释,文法检查等。然后 对规则进行编译生成对应的自动机。自动机将是进行实体关系模式抽取的核屯、。最后将输 入串与自动机进行模式匹配,就可W抽取出与用户编写的规则相应的内容。本发明能够保 证对开放域文本进行快速的实体关系与实体属性抽取。同时,对于特定领域的实体关系可 W定制化的进行抽取。
[0245] W上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可W做出若干改进和润饰,运些改进和润饰也应 视本发明的保护范围。
【主权项】
1. 一种基于自动机的实体关系快速抽取方法,其特征在于,包括以下步骤: 步骤1,定制规则文件;其中,所述规则文件由多条规则组成;所述规则包括以下元素: 实体特征规则关键字、低级约束关键字、高级约束关键字和高级规则关键字; 其中,实体特征规则关键字包括⑶NCEPT、REGEX和MCONCEPT,CONCEPT的特征语义为文 本元素表示的元实体特征;REGEX的特征语义为正则表达式表示的元实体特征;MCONCEPT的 特征语义为元实体特征组合表达的复杂实体特征; 低级约束关键字包括AND、OR和NOT;AND代表的约束语义为:两个或多个实体特征必须 同时出现在上下文环境;OR代表的约束语义为:两个或多个实体特征中至少有一个出现在 上下文环境;NOT代表的约束语义为:某个或者多个实体特征不能出现在上下文环境; 高级约束关键字包括SENT、0RD和DIST_K;SENT代表的约束语义为:两个或多个实体特 征必须同时出现在同一句话的上下文环境;0RD代表的约束语义为:两个或多个实体特征必 须按照一定顺序关系同时出现在上下文环境;DISTJ(代表的约束语义为:两个或多个实体 特征必须按照一定距离限制同时出现在上下文环境; 高级规则关键字包括MCONCEPT_RULE,其规则语义为:代表两个或多个实体特征在满足 由低层约束关键字和高层约束关键字约束基础上构成的关系; 步骤2,对步骤1定制的所述规则文件中的各个规则进行文法检查,检测所述规则文件 中的各个规则是否满足文法要求,如果满足,则执行步骤3; 步骤3,对通过文法检查的所述规则文件中的各个规则进行语义解释; 步骤4,将语义解释后的所述规则文件中的各个规则进行解析编译,完成规则向层叠有 限状态自动机的转换,得到有限状态自动机; 步骤5,使用所述有限状态自动机,对输入的文本数据进行实体属性以及实体关系的抽 取,得到最终的实体属性以及实体关系。2. 根据权利要求1所述的基于自动机的实体关系快速抽取方法,其特征在于,步骤2具 体包括: 步骤2-1,根据规则的特征关键字对规则进行分类,然后按照类别分类读取规则; 步骤2-2,对规则文件中的各个规则进行重复性检测,判断是否存在重复的规则,如果 存在,则剔除重复的规则; 步骤2-3,对规则文件中的各个规则进行冲突性检测,判断同一类型的规则中是否存在 两条或多条相互冲突的规则,如果存在,则发出警告信息,通知用户处理冲突;或者,按照配 置文件的默认形式进行冲突处理; 步骤2-4,对规则文件中的各个规则进行合法性检测,即:检测规则的编写是否符合规 则的定义形式,检测选项包括:规则约束键和规则类型关键字是否合法、规则元素是否齐 全、规则元素是否匹配、规则的约束键和所约束实体特征的位置关系是否合理。3. 根据权利要求1所述的基于自动机的实体关系快速抽取方法,其特征在于,步骤3具 体为:规则的语义解释是指根据规则定义中的不同规则关键字以及规则中的约束关键字进 行不同的语义解释;其中,对于低级约束关键字0R,对其单独处理,将包含OR约束的规则在 语义解释这一阶段进行拆分并进行标记。4. 根据权利要求1所述的基于自动机的实体关系快速抽取方法,其特征在于,步骤4具 体为: 将规则分类为低级规则和高级规则;其中,低级规则包括CONCEPT规则、REGEX规则和 MC0NCEPT规则;高级规则包括MCONCEPT_RULE规则; 将低级规则编译为低级有限状态自动机;将高级规则编译为高级有限状态自动机; 在进行规则编译过程中,所有规则共用一个符号表;每种同类型的规则共用一套自动 机,即CONCEPT规则编译为一个CONCEPT有限状态自动机;REGEX规则编译为一个REGEX有限 状态自动机;MC0NCEPT规则编译为一个MC0NCEPT有限状态自动机;MCONCEPT_RULE规则编译 为一个MCONCEPT_RULE有限状态自动机。5. 根据权利要求4所述的基于自动机的实体关系快速抽取方法,其特征在于,CONCEPT 规则的编译步骤如下所示: 第一步,把所有的CONCEPT规则的规则名以及规则值放入符号表中,其中,规则值是经 过分词处理后,以词为单位放入符号表;不同的规则名以及规则值中的词放在符号表中的 不同单元; 第二步,创建CONCEPT有限状态自动机的初态节点,以初态节点为出发点,依次把每个 CONCEPT规则的规则值部分以词为单位创建对应的状态节点,并按照词的前后顺序完成状 态节点的迀移转换,每一个规则值的最后一个词形成有限状态自动机中的终态节点;由此 形成最终的CONCEPT有限有限状态自动机; REGEX规则的编译步骤如下所示: 第一步,把所有的REGEX规则的规则名以及规则值放入符号表中,其中,规则值是经过 分词处理后,以词为单位放入符号表;不同的规则名以及规则值中的词放在符号表中的不 同单元; 第二步,创建REGEX有限状态自动机的初态节点,以初态节点为出发点,依次把每个 REGEX规则的规则值部分以词为单位创建对应的状态节点,并按照词的前后顺序完成状态 节点的迀移转换,每一个规则值的最后一个词形成有限状态自动机中的终态节点;由此形 成最终的REGEX有限状态自动机; MC0NCEPT规则编译步骤描述如下: 第一步,把所有的MC0NCEPT规则名插入到符号表中,如果MC0NCEPT规则的规则值含有 纯文本,则把纯文本进行分词处理后插入符号表; 第二步,创建MC0NCEPT有限状态自动机的初态节点,并以初态节点为起始节点,对 MC0NCEPT规则的规则值按照前后顺序关系,依次创建状态节点并进行状态转移,转移弧的 label值为CONCEPT规则名或REGEX规则名或文本词在符号表中的槽位;每一个规则值的最 后一个单元形成的状态节点为终态节点; MCONCETP_RULE规则的编译步骤描述如下: 第一步,对所有的MCONCEPT_RULE规则的规则名和规则值中的参数字符串以及文本串 插入到符号表中; 第二步,对所有的MCONCEPT_RULE规则进行宏指令翻译; 第三步,创建初态节点,并以初态节点为出发节点,对所有的宏指令序列,按照前后顺 序关系依次创建状态节点并完成状态迀移,其中转移弧上的label值为宏指令的指令代码 值,宏指令的最后一条指令构成有限状态自动机的一个终态节点。6. 根据权利要求5所述的基于自动机的实体关系快速抽取方法,其特征在于,步骤5,使 用所述有限状态自动机,对输入的文本数据进行实体属性以及实体关系的抽取,得到最终 的实体属性以及实体关系,具体为: 步骤5-1,使用低级有限状态自动机用于进行简单概念抽取,包括: 步骤5-1-1,使用CONCEPT有限状态自动机进行简单概念抽取,包括以下步骤: 第一步:将输入文本进行分句分词操作,每个词均携带句子id以及在原文本中的起始 结束位置信息; 第二步:把分词结果以词为单位加入到构造自动机时建立的符号表中,并同时存入一 张状态表,每个词对应一个状态; 第三步:结合使用状态表、符号表以及自动机完成概念匹配工作;本步骤可拆分成如下 几个环节: I:遍历状态表,对状态表中的每个状态S作Π 操作; Π :在符号表中查找状态S的哈希值,以自动机的初态节点为起始节点,尝试往下一个 节点移动,如果可以找到对应的转移弧,转入m;否则转入I; m:以转移弧的到达节点为新的起始节点,同时在状态表中步进到下一个状态进行π 操作,如果能够到达某个终态节点,则把对应弧上的规则名id及相关命中信息记录入命中 表; 步骤5-1-2,使用REGEX有限状态自动机进行简单概念抽取,主要抽取对象是由正则表 达式表示的简单元实体概念模式; 步骤5-1-3,使用MC0NCEPT有限状态自动机进行简单概念抽取,包括以下步骤: 第一步:初始化时以自动机的初态为出发节点,对该节点的所有转移弧进行遍历,依次 进行第二步操作; 第二步:根据转移弧上的label,在命中表中查找该label是否存在,如果存在则转入第 三步,否则终止对该弧的遍历,转入出发节点的下一条转移弧进行第二步操作;如果该节点 的所有转移弧都不满足条件,则退回到上一个节点; 第三步:如果命中为这条状态结点链的第一个命中,那么记录该命中的结束位置;反 之,则把命中的起始位置和上一个命中的结束位置进行比较,判断是否满足连续关系,如果 满足则转入第四步,否则转入下一条弧进入第二步; 第四步:如果命中弧的到达节点为终态,则表示命中一个MC0NCEPT规则,把转移弧上的 命中规则名id记录到命中表中,转入下一条弧进入第二步;否则,以命中弧的到达节点为新 的出发点,回到第一步。 步骤5-2,使用高级有限状态自动机进行复杂模式抽取,包括以下步骤: 第一步:初始时,以自动机的初态为出发节点,把出发节点入栈; 第二步:如果栈为空,则结束;否则,弹出栈中的状态节点; 第三步:对状态节点的每条转移弧进行遍历,依次进入第四步; 第四步:如果转移弧为约束键转移弧,进入第五步;如果转移弧为操作子转移弧,进入 第六步;如果转移弧为元规则转移弧,进入第七步;如果转移弧为〇P_RULE_END,说明该条规 则完成计算,则进入第八步; 第五步:如果约束键起始约束转移弧,则把约束键的类型保存到约束寄存器中和该转 移弧的到达节点一同入栈;如果转移弧为约束键结束约束转移弧,则把当前的约束寄存器 中的对应约束起始计算符清除,然后和到达节点一同入栈;转入第二步; 第六步:如果操作子为OP_MATCH_START并且紧邻的转移弧为concept_id,进入第七步; 如果紧邻的转移弧为〇P_PUSH_START,则跳过紧邻的转移弧,进入第七步;如果操作子为0P_ MATCH_END,把转移弧的到达节点入栈,转入第二步;如果操作子为OP_PUSH_START,说明下 一条转移弧是规则名,进入第九步;如果操作子为〇P_PUSH_END,说明下一条转移弧为规则 参数,进入第九步。 第七步:在命中表中找到所有id为conCept_id的命中项,依次和约束寄存器中的约束 进行检查,如果合法则把命中项id和转移弧的到达节点一同入栈,转入第二步; 第八步:如果结果寄存器中保存有元规则,则把当前规则的计算结果写入命中表;进入 第二步; 第九步:把下一条转移弧的label保存到结果寄存器中,和转移弧的到达节点一同入 栈,转入第二步。
【文档编号】G06F17/27GK105824801SQ201610150794
【公开日】2016年8月3日
【申请日】2016年3月16日
【发明人】程工, 刘春阳, 庞琳, 王卿, 李雄, 张旭, 马宏远, 石瑾, 毕涛, 刘玮, 贺敏, 陈磊
【申请人】国家计算机网络与信息安全管理中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1