一种面向文本的领域术语与术语关系抽取方法 技术领域 本发明涉及文本挖掘、 知识获取方法, 特别涉及一种面向文本的领域术语与术语 关系的抽取方法。
背景技术 随着互联网技术应用的日趋广泛, 网络学习已成为人们获得和学习知识的主要手 段之一, 而术语作为知识的基本组成单元, 是构建知识地图、 知识导航的基石。如何对特定 领域的文本进行分类, 或是为有经验人士提供特定领域中知识结构以及演化规律, 又或是 为学习者提供某个领域的正确学习路径, 因此如何高效准确地获得不同领域的术语集合以 及术语之间的关系非常重要。
申请人经过查新, 检索到下列与本发明有关的专利文献 :
①基于锚文本分析的领域术语自动生成方法 ( 申请人 : 清华大学 ; 北京搜狗科技 发展有限公司, 专利号 : 201110091312.4)
②科技术语的自动化抽取方法 ( 申请人 : 北京中献电子技术开发中心, 专利号 : 200910162380.8)
③中文术语自动提取系统及方法 ( 申请人 : 北京大学, 专利号 : 200810119708.3)
④一种专业术语抽取方法和系统 ( 申请人 : 中国科学院计算技术研究所, 专利号 : 200710121839.0)
⑤用于从具有文本段的文档中提取术语的系统 ( 申请人 : 国际商业机器公司, 专 利号 : 200980134535.5)
⑥一种术语快速标注方法 ( 申请人 : 传神联合 ( 北京 ) 信息技术有限公司, 专利 号: 201010545766.X)
其中专利① - ⑤主要基于单一的术语识别模型, 不能有效地去除候选词中噪声 词, 对派生术语识别效果不是太好。
专利⑥只是构建前缀表来节省字符串匹配次数, 采用穷举的方法, 效率低下。
发明内容 本发明的目的是提供一种可有效去除候选词中噪声词、 提高术语识别率的领域术 语的离线构建、 在线获取以及术语关系抽取的方法。
为达到以上目的本发明是采取如下技术方案予以实现的 :
一种面向文本的领域术语与术语关系抽取方法, 其特征在于, 包括下述步骤 :
(1) 对待识别文本进行预处理 ;
(2) 通过倒排索引结构构建术语词典, 并采用最长序列匹配算法, 对待识别文本中 的术语进行识别 ; 所述的术语是指在特定领域中约定俗成, 或者经过规定, 被广泛使用来描 述该领域中某个概念的词 ; 所述术语词典是指, 通过模式识别的方法, 从原始语料集中提取 出来的术语集, 该术语集采用倒排索引结构进行组织 ;
(3) 利用多维度节点标记规则, 通过训练的条件随机场模型进行多层次标记序列 标注, 抽取术语间的关系 ; 所述术语关系抽取是指给定某一领域内一定语境中的术语集合, 给定定义好的术语关系类型, 判断术语间是否存在某种类型的关系 ;
其中, 步骤 (2) 所述的倒排索引结构是指 : a) 将相同前缀的术语分成一组, 按照词 长, 由长到短排序 ; b) 以它们的公共前缀作为索引关键词 ;
步骤 (2) 所述的术语词典构建方法包括下述具体步骤 :
Step1 : 对原始语料集进行预处理, 获取候选词集 ;
Step2 : 通过互联网词频过滤和混合词频过滤方法, 对候选词进行噪声词过滤 ; 所 述互联网词频过滤是指, 对于一个候选词 K, 若 K 在互联网词频表中的词频值大于阈值 M, 那 么 K 可能是一个常词, 则将其过滤, 互联网词频表是指, 对词串在大量的互联网文本中出现 次数的抽样统计 ; 所述混合词频过滤方法是指, 对于一个候选词 K, 如果存在 n 个候选词包 含 K, 且
那么 K 可能是一个常词, 则将其过滤 ;Step3 : 在传统术语特征基础上, 加入互联网特征, 并采用双模型结构的方法, 构建 术语识别模型, 从原始语料集中抽取领域术语 ;
步骤 (2) 所述的最长序列匹配算法包括下述具体步骤 :
Step1 : 对待识别的文本进行分词 ;
Step2 : 将分词后得到基本词作为关键词, 在术语词典中查找包含该前缀的术语 集;
Step3 : 对这个术语集中出现的术语, 按词长, 由长到短, 与待识别的文本中进行匹 配, 若匹配成功, 则在原文中标识该术语。
上述方案中, 所述多维度节点标记规则是指, 在序列标注的过程中, 根据每个节点 的特征形成观测序列的规则 ; 所述节点是指句子当中的每个术语或普通词语 ; 所述观测序 列是指每个节点的可以观测到的特征组合成的序列 ; 多维度节点标记规则分为以下 4 个维 度:
(1) 词语或者术语本身作为标记 ;
(2) 当前节点词语或者术语的词性标记信息 ;
(3) 节点类型标记, 表示当前节点是一个普通词语还是一个术语, 其中词语用标记 “Word” 来表示, 术语用标记 “Term” 来表示 ;
(4) 特征词语类别标记 :
其中, 特征词语是指, 对于术语关系抽取任务, 句子上下文中有一些词语对判断术 语间的关系有着重要的提示作用 ; 特征词语类别标记是指, 为了区别提供了不同上下文语 义信息的特征词语, 将特征词语分为了几个类别, 加以区别对待, 并在观测序列的表示中, 用不同的标记给予明示。
所述特征词语类别标记分为一层特征词语类别标记和二层特征词语类别标记 ; 一 层特征词语类别标记包括 {W_Sele, W_Ref, W_Para, W_heir, P_Para, P_Expl, O}, 其中 W_ Sele 用于标记表选择的词语, W_Ref 用于标记有自反性的词语, W_Para 用于标记并列关系, W_heir 用于标记表示层次概念的词, P_Para 用于标记表示并列的符号, P_Expl 用于标记 表解释说明的符号, O 标记其他 ; 二层特征词语类别标记包括 {W_Enti, W_Syn, W_Para, W_Imp1, W_Imp2, W_Ass, W_Seg, W_Whole, W_Omis, W_Neg}, 其中 W_Enti 用于标记表同样称谓 的词, W_Syn 用于标记表解释同义的词, W_Para 用于标记并列关系, W_Imp1 用于标记向后概 念蕴含, W_Imp2 用于标记向前概念蕴含, W_Ass 用于标记物理组合, W_Seg 用于标记物理片 段, W_Whole 用于标记全体概念, W_Omis 用于标记省略, W_Neg 用于标记否定。
步骤 (3) 所述多层次标记序列标注包括下述具体步骤 :
Step1 : 初始化术语关系列表 RelationSet = φ ;
Step2 : 将待识别文本划分成句子, 即 TXT = {Sen1, ..., SenK}, 其中 TXT 表示待识 别文本, 它由 K 个句子构成, Seni(i = 1, 2, ..., K) 表示文本中的每一个句子 ;
Step3 : 从 TXT 中获取下一个句子 Senk, Senk 表示当前需要处理的句子 ; 获取句子 Senk 包含的领域术语信息 ; TermSet = {Term1, Term2, ..., TermN}, 其中 N 表示术语个数, Termi(i = 1, 2, ..., N) 表示句子中每个术语 ;
Step4 : 若 N < 2, 跳到 Step2 处理下一个句子 ; 否则, 继续执行 ;
Step5 : 对句子中每个领域术语, 选取 Termi 为待考察术语, 根据多维度节点标记规 则, 特征词语类别标记选择一层特征词语类别标记, 构建观测序列, 使用训练的条件随机场 模型进行一层序列标注 ; 采用的标记集合为 {Hier, Nonh, N}, 其中, 标记为 Hier 的节点与 Termi 具有层级关系 ; 标记为 Nonh 的节点与 Termi 具有非层级关系 ; 标记为 N 的节点表示该 节点是普通词语或该节点是术语, 且此术语与 Termi 没有关系 ;
Step6 : 对待考察术语 Termi, 根据多维度节点标记规则, 特征词语类别标记选择 二层特征词语类别标记, 并结合 Step5 中一层序列标注的结果, 得到新的观测序列, 利用条 件随机场模型进行第二层序列标注, 采用的标记集合为 {Syno, Hypo, Part, N}, 其中标记为 Syno 的节点表示 Termi 与该节点具有同义关系 ; 标记为 Hypo 的节点表示 Termi 与该节点具 有上下位关系 ; 标记为 Part 的节点表示 Termi 与该节点具有整体部分关系 ; 标记为 N 的节 点表示该节点是普通词语或该节点是术语, 且此术语与 Termi 没有关系 ;
Step7 : 对句子中标记为 Syno, Hypo 或 Part 的每个节点 Node, 分别构建三元组 RelationPair = {T1, T2, Relation}, 其中 T1 表示术语 Terimi ; T2 表示节点 Node 表示的术 语; Relation 表示节点 Node 的标记 ; 将所有 RelationPair 加入 RelationSet 中 ;
Step8 : 检查句子术语列表, 若存在其他术语, 选取下一个可用术语, 跳到 Step4 ; 否则, 若句子中所有术语都处理完, 继续执行 ;
Step9 : 检查句子列表, 若存在还未处理的句子, 跳到 Step3 ; 否则, 继续执行 ;
Step10 : 输出文本的术语关系列表 RelationSet。
所述的互联网特征是指, 在互联网对候选词的反馈信息中隐含术语特征信息, 这 里包括搜索引擎反馈、 权威网站反馈、 WEB-TFIDF :
i. 互联网反馈次数, 指的是将一个候选词在一个搜索引擎中进行搜索后, 返回与 该候选词相关的网页个数 ;
ii. 权威网站反馈, 指的是将一个候选词在一个权威网站中进行检索后, 是否能够 检索到 ;
iii.WEB-TFIDF, 指的是候选词在搜索引擎的反馈特征, 其计算公式 :
WEB-TFTDF = log(TermLen)*TitleCount/log(PageCount)
其中 TermLen 是指候选词词长 ; TitleCount 是指, 在搜索引擎返回第一个页面中的相关网页的标题中该候选词出现次数 ; PageCount 是指, 搜索引擎返回与该候选词相关 的网页个数。
所述的采用双模型结构的方法包括下述具体步骤 :
Step1 : 将从原始语料和互联网中抽取到的 n 维特征, 生成第一个识别模型 ;
Step2 : 由第一个识别模型对候选词中的术语进行识别, 得到术语集 I ; 所述的术 语集 I 指的是, 被 “第一个识别模型” 判为术语的候选词的临时集合 ;
Step3 : 若候选词∈术语集 I 或候选词子串∈术语集 I, 则标记为 1, 反之标记为 0, 得到 “第 n+1 维特征” ;
Step4 : 由原先的 n 维特征和这第 n+1 维特征组成 n+1 特征向量, 生成第二个识别 模型 ;
Step5 : 由第二个识别模型再一次对候选词中的术语进行识别, 得到最终的术语 集。
与现有专利相比, 本发明的优点是, 采用了互联网词频和混合词频过滤技术, 有效 地去除了候选词中噪声词。在基于语料集的术语特征基础上, 加入了基于互联网的术语特 征, 能有效地提高术语识别率。提出了双模型结构, 该结构能增强对派生术语识别效果。采 用基于前缀的倒排索引方法来构建词典库, 将包含相同前缀的术语组成一个集合, 并按照 术语词长, 由长至短进行排序, 这样, 当匹配成功时, 则无需再对后面的术语进行匹配。 附图说明
下面结合附图对本发明的内容作进一步详细说明。 图 1 是本发明针对领域术语的离线获取示意图。 图 2 是本发明针对领域术语的在线获取示意图。 图 3 是多层次标记序列标注的示意图。 图 4 是基于序列标注术语关系抽取流程示意图。具体实施方式
1. 领域术语离线构建 : 主要包括两个流程, 即原始语料集的预处理, 这里包括分 词、 词性标注、 干扰词过滤, 对应于 Step1 ~ Step 3 ; 互联网词频过滤技术对应于 Step 4 ; 混合词频过滤技术对应于 Step 5 ; 领域术语的传统特征提取, 对应于 Step 6 ; 领域术语的 互联网特征提取, 对应于 Step7 ~ Step 9 ; 建立双模型结构, 对应于 Step 10 ~ Step 11。 整个流程如图 1 所示 :
Step 1 : 对原始语料集进行中文分词和词性标注
Step 2 : 对于中文分词后得到词串, 保留其中的 “名词” 、 “动词” 、 “副词” 、 “形容 词” “量词” 、 , 并去除其中的停用词。经过上述处理后, 得到的连续的 n 个词 ( 与原文中出现 顺序一致, 且没有被去除的词 ), 重新组合, 得到 (n+1)*n/2 个候选词
Step 3 : 在上一步得到的候选词, 进行干扰词过滤工作, 包括 : 去除词长大于 8 的 词串 ; 去除出现次数小于 3 的词串。
Step 4 : 去除满足 “互联网词频过滤规则” 的词串。所述的 “互联网词频过滤” 指 的是, 对于一个候选词 K, 如果 K 在互联网词频表中的词频值大于阈值 M, 那么 K 可能是一个常词, 则将其过滤 ; 这里, 互联网词频表采用 “搜狗互联网词频表” , 并将阈值 M 设置为 50000000。
Step 5 : 去除满足 “混合词频过滤规则” 的词串。所述的 “混合词频过滤技术” 指 的是, 对于一个候选词 K, 如果存在 n 个候选词包含 K, 且 那么 K 可能是一个常词, 则将其过滤。
Step 6 : 提取基于原始语料集的传统特征, 这包括词频, 词性, 词长, 邻接词、 标题
Step 7 : 提取 “互联网反馈次数” 特征。所述的 “互联网反馈次数” 指的是将一个 候选词在一个搜索引擎中进行搜索后, 返回与该候选词相关的网页个数。这里的搜索引擎 采用 “百度” 和 “百度知道” 。
Step 8 : 提取 “权威网站反馈” 特征。所述的 “权威网站反馈” 指的是将一个候选词 在一个权威网站中进行检索后, 是否能够检索到, 若能检索到, 则特征值为 1, 反之为 0。这 里采用 “百度百科” 、 “互动百科” 、 “中文术语网” 。
Step 9 : 提取 “WEB-TFIDF” 特征。所述的 “WEB-TFIDF” 指的是, 候选词在搜索引擎 的反馈特征, 其计算公式 :
WEB-TFTDF = log(TermLen)*TitleCount/log(PageCount)
这里 TermLen 是指候选词词长 ; TitleCount 是指, 在搜索引擎返回第一个页面中 的相关网页的标题中该候选词出现次数 ; PageCount 是指, 搜索引擎返回与该候选词相关 的网页个数。
Step 10 : 由传统特征和互联网特征组成的 n 个特征向量, 通过机器学习算法算 法, 生成第一个识别模型。
Step 11 : 将第一个识别模型预测到术语集中出现的短术语 ( 词长小于等于 3), 再 反向标记词长大于 3 的候选词 ( 如果该候选词包含预测术语, 则标记为 1, 反正标记为 0), 词长小于等于 3 的候选词标记为 0, 得到第 n+1 维特征, 然后由这 n+1 维特征生成第二个识 别模型
2. 领域术语的在线获取 : 主要包括两个流程, 即 “术语词典构建” , 主要包括倒排 索引构建, 对应于 Step1 ~ Step 2 ; “在线术语识别” , 这里包括最长匹配算法, 对应于 Step 3 ~ Step 4 ; 整个流程如图 2 所示 :
Step 1 : 将数据库中的收集起来的领域术语集, 进行分词。若术语分词后, 只有一 个词, 则将前缀定义为该术语 ; 若术语分词后, 包含多个词, 则将前缀定义为分词后第一个 词
Step 2 : 将包含相同前缀的多个术语作为一个集合, 按其词长由长到短进行排序, 并利用前缀来标识和索引这个集合。此时前缀即为索引关键词
Step 3 : 将待识别的文本串, 进行分词处理, 并将每个词作为关键词, 来索引以该 关键词为前缀的术语集合。
Step 4 : 若以该关键词为前缀的术语集合, 则对该集合中出现的每一个术语, 按照 术语长度由长到短与原文比对, 若匹配成功, 则返回该术语
3. 基于多层次标记序列标注的术语关系抽取 :
领域术语之间的关系分为三种 : 同义关系、 上下位关系和整体部分关系。 同义关系是指在某个特定领域内, 用来表述同一概念的不同术语之间所具有的关系。若两个术语具 有严格相同的内涵和外延, 那么称这两个词语具有同义关系。上下位关系表示特定领域中 术语所表示概念间的包含关系, 可将术语分为上位词和下位词。上位词表示的是一个外延 广阔的大概念, 下位词表示的是一个内涵丰富的小概念。小概念的外延是大概念外延的一 部分, 小概念除了具有大概念的一切特征外, 还具有本身独有的区别特征。 这样两个术语间 的关系称为上下位关系。整体部分关系指术语表示的概念和它的组成部分之间的关系。同 上下位关系一样, 整体部分关系也具有传递和偏序性质, 但是整体部分关系并不是把术语 表示的概念划分为某个类, 而是表示了该概念的组成部分。
上述三种关系由于所具有性质的不同, 可划分为两个大类 : 术语间的同义关系具 有自反性、 对称性和传递性, 称之为非层级关系 ; 上下位关系和整体部分关系具有传递性和 偏序性, 不具有自反性和对称性, 称为层级关系。
根据上述术语关系类型的两种不同层次的分类方法, 提出了多层次标记的序列标 注, 标注过程分为两个阶段 ( 参见图 3), 分别使用不同的标记 : 一层标记序列标注和二层标 记序列标注。在第一层标记中, 通过序列标注的方法获取术语关系的大类类别, 即两个术 语之间没有关系、 具有非层级关系或具有层级关系。在第二层标记中, 利用第一层标记的 结果, 同时结合新的特征, 用序列标注方法获取两个术语之间细粒度关系的情况, 即没有关 系、 具有同义关系、 具有上下位关系或具有整体部分关系。 基于多层次标记序列标注的术语关系抽取详细过程如下 ( 参见图 4) :
Step1 : 初始化术语关系列表 RelationSet = φ ;
Step2 : 将待识别文本划分成句子, 即 TXT = {Sen1, ..., SenK}, 其中 TXT 表示待识 别文本, 它由 K 个句子构成, Seni(i = 1, 2, ..., K) 表示文本中的每一个句子 ;
Step3 : 从 TXT 中获取下一个句子 Senk, Senk 表示当前需要处理的句子 ; 获取句子 Senk 包含的领域术语信息 ; TermSet = {Term1, Term2, ..., TermN}, 其中 N 表示术语个数, Termi(i = 1, 2, ..., N) 表示句子中每个术语 ;
Step4 : 若 N < 2, 跳到 Step2 处理下一个句子 ; 否则, 继续执行 ;
Step5 : 对句子中每个领域术语, 选取 Termi 为待考察术语, 根据多维度节点标记规 则, 特征词语类别标记选择一层特征词语类别标记, 构建观测序列, 使用训练的条件随机场 模型进行一层序列标注 ; 采用的标记集合为 {Hier, Nonh, N}, 其中, 标记为 Hier 的节点与 Termi 具有层级关系 ; 标记为 Nonh 的节点与 Termi 具有非层级关系 ; 标记为 N 的节点表示该 节点是普通词语或该节点是术语, 且此术语与 Termi 没有关系 ;
Step6 : 对待考察术语 Termi, 根据多维度节点标记规则, 特征词语类别标记选择 二层特征词语类别标记, 并结合 Step5 中一层序列标注的结果, 得到新的观测序列, 利用条 件随机场模型进行第二层序列标注, 采用的标记集合为 {Syno, Hypo, Part, N}, 其中标记为 Syno 的节点表示 Termi 与该节点具有同义关系 ; 标记为 Hypo 的节点表示 Termi 与该节点具 有上下位关系 ; 标记为 Part 的节点表示 Termi 与该节点具有整体部分关系 ; 标记为 N 的节 点表示该节点是普通词语或该节点是术语, 且此术语与 Termi 没有关系 ;
Step7 : 对句子中标记为 Syno, Hypo 或 Part 的每个节点 Node, 分别构建三元组 RelationPair = {T1, T2, Relation}, 其中 T1 表示术语 Termi ; T2 表示节点 Node 表示的术语 ; Relation 表示节点 Node 的标记 ; 将所有 RelationPair 加入 RelationSet 中 ;
Step8 : 检查句子术语列表, 若存在其他术语, 选取下一个可用术语, 跳到 Step4 ; 否则, 若句子中所有术语都处理完, 继续执行 ;
Step9 : 检查句子列表, 若存在还未处理的句子, 跳到 Step3 ; 否则, 继续执行 ;
Step10 : 输出文本的术语关系列表 RelationSet。
上述步骤中, Step5 和 Step6 使用的多维度节点标记规则是指, 在多层次标记序列 标注的过程中, 根据每个节点的特征形成观测序列的规则 ; 节点是指句子当中的术语或普 通词语 ; 观测序列是指每个节点的可以观测到的特征组合成的序列 ;
节点标记规则分为 4 个维度 :
(1) 词语或者术语本身作为标记 ;
(2) 当前节点词语或者术语的词性标记信息 ;
(3) 节点类型标记, 表示当前节点是一个普通词语还是一个术语, 其中词语用标记 “Word” 来表示, 术语用标记 “Term” 来表示 ;
(4) 特征词语类别标记 :
对于术语关系抽取的任务, 句子上下文中有一些词语对判断术语间的关系有着重 要的提示作用, 称为特征词语。例如句子 “常用的传输介质包括双绞线、 同轴电缆等。 ” 中, 动词 “包括” 指明了前面所述概念对后面所述概念在外延范围上的包含关系, 对术语上下位 关系的抽取有着重要的提示作用, “包括” 一词就是典型的特征词语。特征词语类别标记是 指, 为了区别提供了不同上下文语义信息的特征词语, 将特征词语分为了几个类别, 加以区 别对待, 并在观测序列的表示中, 用不同的标记给予明示 ; 特征词语类别标记分为以下两种 情况 :
一层特征词语类别标记如下表所示 :
二层特征词语类别标记如下表所示 :上述步骤中, Step5 和 Step6 使用了条件随机场 CRF 模型进行序列标注。CRF 模型 使用特征函数模板规定模型训练时的特征函数和各状态之间的依赖关系。 采用的实验工具 为 CRF++, 其特征函数模板形式如下 :
U03 : % x[1, 0]
U04 : % x[2, 0]
U05 : % x[-1, 0]/% x[0, 0]
U06 : % x[0, 0]/% [1, 0]
上述特征模板中的 Uxx 表示这条特征模板是一个 Unigram 的模板, 而模板% x[Row, Col] 表示该特征模板扩展的具体特征, Row 表示与当前行的相对行位置, Col 表示列 数。
对于每一个特征函数模板, CRF++ 将会生成多个特征函数, 比如特征模板 U01 : % x[0, 1] 将会被解释成如下形式的一个特征函数的集合 :
func1 = if(output = N and feature =″ U01:n″ )return 1else return0
func2 = if(output = Hypo and feature =″ U01:n″ )return 1else return0
func3 = if(output = Part and feature =″ U01:n″ )return 1elsereturn 0
....
funcN = if(output = N and feature =″ U01:a″ )return 1else return0
funcN+1 = if(output = Hypo and feature =″ U01:a″ )return 1elsereturn 0
....
该集合共有 L×N 条特征函数, 其中 L 是标记集合的大小, 在术语关系抽取中为 4, N 是从模板扩展出的不相同的字符串数量, 比如 U01 : % x[0, 1] 的 N 为词性标记集合的大 小。
多层次标记序列标注采用的特征函数模板如下表所示 :
上表中特征函数模板共分为 9 个部分 : 第一部分表示单个词语本身对当前标记的 影响, 窗口大小为 5, 考虑了当前词语前后各两个词语对标记的影响 ; 第二部分表示单个词 语词性对当前输出标记的影响, 窗口大小为 5, 考虑了当前词语前后各两个词语的词性对标 记的影响 ; 第三部分表示节点本身是否为术语对当前输出标记的影响, 窗口大小为 3 ; 第四 部分表示单个特征词语类别标记对当前输出标记的影响, 窗口为 5 ; 第五部分表示两个词 语联合对当前输出标记的影响, 窗口大小为 2 ; 第六部分表示两个词语词性联合对输出标 记的影响, 窗口大小为 4 ; 第七部分表示两个特征词语类别标记对当前输出标记的影响, 窗 口大小为 4 ; 第八部分表示三个词语词性联合对输出标记的影响, 窗口大小为 3 ; 第九部分 表示三个特征词语类别标记对当前输出标记的影响, 窗口大小为 3。
CRF++ 工具将这些函数模板生成一组特征函数列表, 用于条件随机场模型的训练 和术语关系抽取序列预测。