层次化语义脉络文档查询方法

文档序号:6471523阅读:175来源:国知局
专利名称:层次化语义脉络文档查询方法
技术领域
本发明涉及一种用于非结构化或半结构化文档查询的计算机检索方法,尤其是用
于网页文档的查询。
背景技术
文档查询是科学工作中的重要环节。随着计算机技术、通信技术、信息技术等的飞 速发展,人们可以获得的文献资料越来越多,视野变得越来越开阔。然而问题也随之产生, 人们可能不必为资料比较少而发愁,却为资料太多很难发现有用的资料发愁,人们更关心 如何表达更复杂的文档查询要求,如何获取更深层的知识。因此为用户提供简便、直观、有 效、更强能力的查询方法具有较大意义。 目前常见的商用查询系统通常提供两种查询方式简单查询和高级查询。简单查 询一般只需要用户输入比较少的关键词,逻辑关系比较简单,而高级查询则输入的关键词 比较多,甚至可以定义比较复杂的逻辑关系。在大多数情况下,简单查询和高级查询之间的 差别一般都不是本质上的,常常体现为查询所使用的关键词的多少不同,它们之间不存在 层次关系,不容易反映用户的复杂的查询意图。 随着网络技术的发展,通过网络所能获取的文档将越来越多。目前通用的关键词
查询技术虽然简单有效,但是却存在以下两个问题。 一个问题是关键词查询所获得的文档
范围太大,增加了用户从中筛选的难度,需要消耗用户更多的时间。另一个问题是关键词查
询不能表示比较深层的知识,它往往局限于关键词之间的单层的与或非关系。 为了解决这些问题,提出了许多方法。例如查询扩展方法通过同义词、近义词、上
下义词的扩展将关键词查询中的关键词进行扩展,扩大查询范围。而目前热门的语义网络、
本体论等则希望能在语义层次上理解文档和用户的查询意图,然后通过两者的匹配实现文
档查询。遗憾的是,由于自然语言极其复杂,这些研究还停留在研究阶段,并没有在常用的
商用查询引擎上出现。 与本发明比较接近的有 (1)文献[1]针对SQL语言中SELECT语句的WHERE子句的要求设计了一个多叉 树,用于输入查询的条件,这样可以构成非常复杂的SQL查询语句,但是这种多叉树主要应 用于管理信息系统的开发,是一种对数据库操作的可视化操作,而不是对非结构化的文档 查询进行操作。 (2)文献[2]则不对用户的查询请求进行分词等预处理,而是以语义单元为基本 单元进行语义分析,得到语义表达式之后再借助于语义单元之间的关系进行查询扩展,向 初始查询中加入相关的词或短语。这种查询最终也归结为关键词查询,算法比较复杂,不容 易表达关键词之间的复杂关系,也限于表达关键词之间的单层关系。 (3)本发明人在文献[3]提出的层次化方法,可以用查询树来表达用户的查询意 图,但该方法同文献[1] 一样,是应用在数据库应用系统中,处理的是结构化的数据库表。
(4)本发明人提出语义脉络文档查询方法,并于2008年12月10日申请发明专利,
3但该发明主要侧重于用语义脉络进行单条查询意图的文档查询,没有考虑层次化,不能表 达或实现更深层次的文档查询或知识获取[4]。
主要参考文献 [1]邓亚,山岚,李明。用"多叉树"构造SQL查询中的wHERE子句——"多叉树" 在VB中的实现及应用[J]。微机发展,2003,13(7) :12-14 [2]李莉,高庆狮。 一种基于语义单元的查询扩展方法。计算机科学,2008,35(2): 201-204 [3]Wensheng Yin, Pinghui Tu, Xiuguo Chen, Hengxi Zhang. Problem Oriented Analysis andDecision Expert System with Large Capacity Knowledge—Base. 2008Inte rnational Conferenceon Intelligent System and Knowledge Engineering,Nov. 17—18 : 32-372008,Xiaman China [4]尹文生。语义脉络文档查询方法。专利申请号200810236750. 3, 2008年12
月10日。

发明内容
为了克服现有的文档查询方法中不能表达复杂关系和不能对文档进行较深层次 知识查询功能的不足,本发明提出一种层次化语义脉络文档查询方法。该方法用查询树来 描述用户的查询意图,其中,查询树的叶结点称为查询子句,在其中采用查询语义脉络来描 述一个具体的查询操作,而分支结点则为与或非操作结点,用于对查询子句的运算结果进 行逻辑运算,并根据最后的逻辑运算结果决定被测试文档是否被选上。因为查询树可以描 述非常复杂的关系,因此这种查询方法可以描述比较深层的知识,对于从文档中获取知识 是非常有利的。 本发明在每条查询子句操作时采用了语义脉络概念,可以描述为如果一个句子 r所有的组成成分(表现为构成句子语法成分的词或词组),在另一个句子s中存在,并且 对应词或词组的词类相同,则称句子r是句子s的语义脉络。其中,如果s中所有组成部分 的顺序都与r中对应部分相同,则称r和s为有序语义脉络匹配,否则称r和s为无序语义 脉络匹配。语义脉络的概念可以参阅本发明人的另一个发明申请200810236750. 3 (文献 [4])。 本发明所采用的技术方案如图1所示 步骤101 :定义查询子句。使用用户界面定义查询子句。让用户以合乎逻辑的词、
短语或句子输入自己的每一个具体的查询要求,并且设定这些词、短语或句子在文档查询
测试时的顺序关系,即构建查询子句。每一个查询子句构成查询树的叶结点。
步骤102:定义查询树。使用用户界面定义查询子句之间的关系。用查询树的分
支结点表示查询子句之间的关系,这些关系包括与、或、非及其组合。 步骤103 :查询子句测试。将每条查询子句作为查询语义脉络对文档进行测试。只 要该查询子句中的所有词均在文档中的一条句子或扩展句子(即包含段落内容的句子)中 存在,该查询子句就停止测试并返回真,否则返回假。 步骤104 :查询树逻辑运算。将每条查询子句测试返回结果根据查询树定义的关 系进行逻辑运算,最后得到查询树根结点的逻辑运算结果。如果根结点运算结果为真,则当前文档被选入被查询文档,否则丢弃。 本发明所带来的有益效果是,在进行文档查询时可以使用非常常用的树窗口表达 自己的查询意图,操作简单方便,但表达的查询意图非常复杂、有深度,可以有效地从非结 构的网页等文档中获取知识,而不需设计非常复杂的知识和数据获取界面。


下面结合附图和实施例对本发明进一步说明。
图1是本发明的技术方案流程图。
图2是查询子句界面的示意图。
图3是实施例1的查询树结构图。
具体实施例方式
如图1所示,以汉语电子文档作为说明对象,根据本发明所揭示的层次化语义脉 络文档查询方法的流程图和实现方案为 步骤101 :定义查询子句。定义查询子句和查询树采用图2所示的交互界面,其中 图2中上半部分用于定义查询子句,称为查询子句界面,而下半部分用于定义查询树,称为 查询树界面。定义查询子句的目的是获得用户的查询意图。用户的查询意图是通过输入一 串词或词组来实现的。它们在形式上具有一定的逻辑关系,是组成一个句子的关键词。查 询子句界面主要由"查询词"输入编辑框(201)、"设置测试要求"按钮(202)、"词义扩展" 按钮(203)、"选进查询树"按钮(204)组成。 用户在编辑框(201)中输入查询词(各个词以空格分隔)表达他的查询意图。系 统将记录这些词的词类、顺序关系等,并形成查询语义脉络,成为进行语义匹配测试的依 据。用户在输入查询语句时,还可在并列的主语或宾语成分中间加入特殊符号"I "、"'"以 表明这些主语或宾语是否需要同时存在。 语义匹配测试的关键是测试必须针对文档中的每一个句子或者扩展句子(包括 段落的标题)进行。"设置测试要求"按钮(202)则用于打开一个设置对话框设定匹配的要 求。例如,可设置无序匹配,即只要在被测试文档中同一句子出现用户输入的关键词即认为 匹配成功;设置严格有序匹配,则只有文档中存在一条包含查询语义脉络中所有词的句子, 而且这些词的词类相同,其顺序也完全相同才算匹配;设置被动语句,则主谓宾和宾主谓都 是一样的;还可以根据需要设置选项,以适应语义脉络中谓词的变化;也可以设置选项,将 当前句子所属的段落标题也并入当前句子中。 由于在语义查询扩展时存在同义词、近义词、上下义词情况,所以可以点击"词义 扩展"按钮(203)查看、增加、删除、修改用户输入的各查询词的同义词、近义词、上下义词, 用各查询词的同义词、近义词、上下义词去构成新的查询子句。用户输入的查询子句和扩展 的查询子句之间的关系是"或"关系,即只要任一个查询子句满足,则被测试文档就是用户 所需的查询文档。 当查询子句构成后,用户点击按钮"选进查询树"按钮(204)则在查询树当前结 点中生成一个子结点,并将当前查询子句的数据记入该结点中。查询子句的数据可用一个 类来记录,该类包含数据项有查询子句编号,查询词链表,语义脉络匹配类型,词义扩展标
5志,增加的查询词同义词、近义词和上下义词链表等等。 步骤102 :定义查询树。查询树是用来定义查询子句之间的关系的,其叶结点表示 查询子句,而分支结点表示结点之间的关系。因为查询子句总是定义为当前节点的子结点, 所以定义查询树的任务主要就是增加"或"、"与"、"非"结点和删除当前结点和全部结点。查 询树界面如图2下部分所示,左边部分是查询树的图形表示(205),右边部分是对查询树的 操作,下面是执行查询的按钮"查询"(211)。同所有其他树的操作一样,点击右边部分的按 钮"或"(206)、"与"(207)、"非"(208)可以在当前结点下增加"或"、"与"、"非"结点,而点 击右边部分的按钮"当前"(209)、"全部"(210)可以删除当前结点、全部结点。
步骤103 :查询子句测试。查询子句的测试可以依照本发明人提出的语义脉络文 档查询方法进行,即对数据库中所有的文档按照关键词、句子分隔符和代词进行标记,并根 据代词指代关系将其替换为对应的关键词;最后按照用户对这些关键词及其结构关系的设 定对查询语义脉络与被测试文档中的每条句子进行匹配测试,只要被测试文档中存在一条 与查询语义脉络匹配的句子,即与关键词名称、词类、顺序等关系相同,则认为测试通过,并 返回真。查询子句测试的详细方法可查阅本发明人的专利申请200810236750. 3。
步骤104 :查询树逻辑运算。在层次化的语义脉络文档查询中,查询子句测试通过 并不意味被测试文档就是用户所需文档,它还必须满足整个查询树的要求。 一个被测试文 档是否是用户所需文档,应该满足所有的查询子句的测试(可以存在测试短路)以及按照 查询树的逻辑运算的最终结果。查询树的逻辑运算可以从根结点开始使用深度优先方式进 行搜索,基本算法设计如下
〃分支结点的调用 FOR Each pChild in当前结点的分支子结点DO将pChild作为当前结点递归调用本算法,得到返回值retIF当前结点为"或"节点THEN IF ret = TRUE THEN返回TRUEELSE IF当前结点为"与"节点THEN IF ret = FALSE THEN返回FALSEELSE IF当前结点为"非"节点THEN IF ret = TRUE THEN返回FALSE ELSE返回TRUEEND IF END DO 〃查询子句结点的调用 FOR Each plnquery in当前结点的查询子句结点DO对plnquery进行语义脉络测试,得到返回值retIF当前结点为"或"节点THEN IF ret = TRUE THEN返回TRUEELSE IF当前结点为"与"节点THEN IF ret = FALSE THEN返回FALSEELSE IF当前结点为"非"节点THEN
6
IF ret = TRUE THEN返回FALSE ELSE返回TRUE END IF END DO 〃查询子句的最后处理 IF当前结点为"或"节点THEN返回FALSE ELSE IF当前结点为"与"节点THEN返回TRUE END IF 返回FALSE 这里约定"非"结点只有一个子结点。 当该算法又回到根结点时,查询树的逻辑运算结束。如果根结点的逻辑运算值为 真则当前被测试文档选为用户需要的文档,否则该文档不是用户需要的文档,应该将其丢 弃。 实施例1 : 假如武汉挑选北京奥运候选火炬手的条件是 (1)本地区常住居民包括有户口的人员①或有暂居证的长期务工人员②,年龄大 于14岁③,有能力顺利完成400米火炬接力(通过测试) ,没有犯罪前科 (2)社会公开报名的话,必须在本行业有突出贡献⑥,如果是下岗工人或者残疾人 则应有感人的故事⑦,不包括专业体育人员⑧ (3)组织系统选送的话,限于专业体育人员⑨并获得国家级比赛项目名次⑩ 作如下假定通过自由报名和组织选送两种方式申请火炬手;每一个候选者必须
递交一份申请书,在每份申请书中必须写明符合的候选条件,不具备的条件不写;每个条件 用一个句子描述;以电子文档的方式提交申请,格式不限。 将候选条件用数字加以描述,例如"本地区常住居民包括有户口的人员"用数字①
加以描述,而分支结点用英文字母表示,可以得到图3所示的查询树。图3中叶结点中表达
的查询语义脉络可以采用如下方式描述 ①武汉户口 ②有暂居证 ③大于14岁 通过测试 ⑤没有无犯罪 ⑥有贡献 ⑦有感人故事 ⑧专业体育 ⑨专业体育 ⑩国家比赛 查询语义脉络描述的选择方案是可选的,例如可以增加一些词义扩展定义,或者 并列关系,如约定③填写年龄,即语义脉络用"年龄14 I 15 I 16 I 17. . . I 100"表示,还可以设定 无序,如⑧中专业和体育可以无序,即专业体育和体育专业都一样。
本发明适合非结构文档(包括网页)的检索,对本领域的普通技术人员而言,本发 明所涉及的数据结构和算法可以在一般的计算机系统中实现,举例而言,可以使用高级程 序设计语言¥0++和数据库系统Access加以实现。如果需要在网络搜索引擎实现本发明, 则需要在记录关键词的数据结构中增加该关键词的位置数据、句子的分割数据、代词替换 等数据,并且增加一个树来记录每一篇文档的标题信息。 以上所述,仅为本发明其中的较佳实施例而已,主要用来阐述实现原理,并非用来 限制本发明的实施范围;即凡依本发明申请专利范围所作的均等变化与修饰,皆为本发明 专利范围所涵盖。
权利要求
一种层次化语义脉络文档查询方法,应用于基于计算机的文档查询特别是网络文档查询,其特征是用查询树来层次化表示用户的查询意图,即定义该树的叶结点为查询子句,其表达的含义为查询语义脉络,而分枝结点为与或非逻辑运算结点,表达对子结点的与或非逻辑运算,当根结点的逻辑运算结果为真时就将当前测试文档选为用户需要的文档。
2. 根据权利要求1所述的层次化语义脉络文档查询方法,其特征是查询树的叶结点 为查询子句,以查询语义脉络方式记录用户输入的查询要求,包含用户输入的各个词的词 类、顺序关系、语义匹配测试方式、词义扩展等数据。
3. 根据权利要求1所述的层次化语义脉络文档查询方法,其特征是查询子句采用语 义脉络匹配方式进行测试与求解,当被测试文档中只要存在一条句子或包含段落的扩展句 子与查询子句实现语义脉络匹配时返回真,否则返回假。
4. 根据权利要求1所述的层次化语义脉络文档查询方法,其特征是查询树的分支结 点表示与或非逻辑运算操作,对各查询子句和分支子结点的返回值进行逻 辑运算,并且向 各自的父结点返回逻辑运算结果值。
5. 根据权利要求1所述的层次化语义脉络文档查询方法,其特征是对查询树按照深 度优先方式进行分支结点和查询子句的递归求解,当回到根结点时查询树的逻辑运算结 束,如果根结点的逻辑运算值为真则当前被测试文档选为用户需要的文档。
全文摘要
一种层次化语义脉络文档查询方法,应用于非结构化的文档的查询,可以进行复杂的查询和比较深层的知识获取,例如网络文档查询,问卷调查文档查询等等。该方法采用查询树来表示用户查询意图,用查询树的叶结点即查询子句表达查询语义脉络,用分支结点表达其子结点的之间的逻辑运算关系。当测试一个文档是否是用户所需的文档时,根据查询树进行深度搜索与测试。如果一个结点是查询子句结点,则进行语义脉络匹配测试,如果是分枝结点则进行逻辑运算。当前结点根据子结点的返回值决定自己的返回值。最后如果根结点的返回值为真,则当前被测试文档被选为用户所需文档。
文档编号G06F17/30GK101770473SQ200810237460
公开日2010年7月7日 申请日期2008年12月30日 优先权日2008年12月30日
发明者尹文生, 陈修国 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1