一种命名实体模糊检索方法与系统与流程

文档序号:12364538阅读:232来源:国知局
一种命名实体模糊检索方法与系统与流程

本发明涉及信息检索技术领域,特别涉及一种命名实体模糊检索方法与系统。



背景技术:

目前,当用户使用信息检索系统查找信息时,一般要将自己的检索请求描述成一个或者多个检索词,对于复杂的检索请求可能还要使用AND、OR、NOT等逻辑运算符对检索词进行组合,才能取得较好的检索结果。有的时候,用户并不能使用明确的检索词描述检索请求,可能是由于对自己检索的领域不太了解,或者要检索符合某一词形模式的所有信息。例如用户在检索标题中出现“生物交叉技术”的文档时,由于生物交叉技术对应的词太多,可能会先去检索标题中出现以bio开头单词的文档。为了应对这种情况,有的信息检索系统提供了模糊检索功能,例如在检索英文信息时允许用户使用?表示单个字母、*表示任意个数的字母,这样上述检索请求可表达成bio*。

然而,有相当一部分模糊检索请求不能通过词形的变化来表达。例如,用户想检索NASA相关的经费信息,由于经费在文本中往往表现为数值加货币单位组成的字符串,此时输入任何关键词或词形变化都不能完整的匹配到经费信息。更为一般的情况是,用户有的时候要检索出现某一类型命名实体的信息。所谓命名实体,是指文本中具有特定意义的实体,主要包括人名、地名、机构名、日期、金额、专有名词等。这种需求在面向领域的信息检索中经常出现,如果不能有效解决,将导致用户在检索特定信息时漏检或者根本无法检索,势必会降低用户获取信息的效率。



技术实现要素:

本发明的目的在于克服现有的信息检索技术无法对命名实体类信息进行有效、完整检索的缺陷,从而提供一种方便用户全面、准确查找与特定类型实体相关的所有信息的检索方法与系统。

为了实现上述目的,本发明提供了一种命名实体模糊检索方法,包括:

数据索引步骤,该步骤用于将文本切分成索引单元,进而形成索引文件;其中,所述索引单元包括正常索引词与实体类型词,所述实体类型词是用于表征命名实体类型的词;

数据检索步骤,该步骤基于数据索引步骤所建立的数据索引,结合用户提供的检索式向用户提供检索服务。

上述技术方案中,所述数据索引步骤包括:

命名实体标注步骤,该步骤用于对文本中出现的命名实体进行标注,标注所得到的结果至少包括:命名实体的类型、命名实体在文本中的起始偏移量和终止偏移量;

索引单元切分步骤,该步骤用于将文本切分成包含普通词和实体类型词的索引单元;包括:在切分索引单元时查找命名实体,若找到命名实体,则输出命名实体的实体类型词、偏移量,若该命名实体所对应的类型存在上位类,还需输出上位命名实体类型到根节点对应的所有实体类型词的实体类型词与偏移量;其中,所述实体类型词根据命名实体的类型编码得到;

倒排索引步骤,该步骤以索引词为中心,将同一索引词在不同文档中出现的信息归并存储。

上述技术方案中,在命名实体标注步骤中,对文本中出现的命名实体进行标注采用多种方法实现,包括:基于词表匹配的方法、基于规则的方法、基于机器学习的方法或者混合采用上述多种方法。

上述技术方案中,文本经命名实体标注步骤后形成新的文本数据,该新的文本数据包括头部和正文两个部分;头部存储命名实体识别的结果信息,包括命名实体的类型、在文本中的起始偏移量和终止偏移量信息;正文存储原始文本信息。

上述技术方案中,所述索引单元切分步骤进一步包括:

首先对待处理文本的头部进行解析,将命名实体信息按起始偏移量排序后形成命名实体数组并加以存储;

在对正文中的原始文本进行切分的过程中,每切出一个词都会查找命名实体数组,判断该词是否是某个命名实体的第一个词,如果是的话则同时输出包括实体类型词、实体类型词偏移量在内的实体类型词的信息,如果对应的命名实体类型还存在上位类,则同时输出上位命名实体类型到根节点对应的所有实体类型词的信息;如果在命名实体数组内找不到,作为正常词进行切分。

上述技术方案中,所述实体类型词采用不在词典中收录的非正常词来表示,包括使用小写英文实体类型加后缀z来标识实体类型词。

上述技术方案中,所述实体类型词偏移量等于命名实体所对应的文本的偏移量,即实体类型词的起始偏移量是对应命名实体的文本第一个词的起始偏移量,实体类型词的终止偏移量是对应命名实体的文本最后一个词的终止偏移量。

上述技术方案中,所述数据检索步骤包括:

接收检索式步骤,该步骤用于接收用户输入的检索式,所述检索式包括正常的检索词,或实体类型词,或两者的组合;

检索并呈现结果步骤,该步骤用于对检索式进行解析,基于索引文件查找命中结果,并通过界面向用户展示。

本发明还提供了一种命名实体模糊检索系统,包括:数据索引模块10和数据检索模块20;其中,

所述数据索引模块10用于将文本切分成索引单元,进而形成索引文件;其中,所述索引单元包括正常索引词与实体类型词,所述实体类型词是用于表征命名实体类型的词;

所述数据检索模块20基于所述数据索引模块10所建立的数据索引,结合用户提供的检索式向用户提供检索服务。

上述技术方案中,所述数据索引模块10包括命名实体标注单元11、索引单元切分单元12、倒排索引单元13;其中,

所述命名实体标注单元11用于对文本中出现的命名实体进行标注,标注所得到的结果至少包括:命名实体的类型、命名实体在文本中的起始偏移量和终止偏移量;

所述索引单元切分单元12用于将文本切分成包含普通词和实体类型词的索引单元;包括:在切分索引单元时查找命名实体,若找到命名实体,则输出命名实体的实体类型词、偏移量,若该命名实体所对应的类型存在上位类,还需输出上位命名实体类型到根节点对应的所有实体类型词的实体类型词与偏移量;其中,所述实体类型词根据命名实体的类型编码得到;

所述倒排索引单元13以索引词为中心,将同一索引词在不同文档中出现的信息归并存储。

上述技术方案中,所述数据检索模块20包括检索式接收单元21、检索与结果呈现单元22;其中,

所述检索式接收单元21用于接收用户输入的检索式,所述检索式包括正常的检索词,或实体类型词,或两者的组合;

所述检索与结果呈现单元22用于对检索式进行解析,基于索引文件查找命中结果,并通过界面向用户展示。

本发明的优点在于:

本发明的检索方法与系统使得用户在检索信息时,可按实体类型检索信息,或者同时使用普通检索词和实体类型词进行检索,可有效提升信息检索系统的查全率和查准率。

附图说明

图1是本发明的命名实体模糊检索方法的示意图;

图2是本发明的命名实体模糊检索系统的示意图。

具体实施方式

现结合附图对本发明作进一步的描述。

参考图1,本发明的检索方法包括两大步骤,一是将文本切分成索引单元(一般为词),并以此为单位进行倒排,存储成索引文件,使得数据以一种可方便、高效检索的方式存在;二是基于数据索引为用户提供检索服务。下面对这两大步骤分别加以说明。

1)、数据索引

该步骤可进一步分为命名实体标注、索引单元切分、倒排索引三个子步骤。

1-1)、命名实体标注步骤,该步骤主要对文本中出现的命名实体进行标注。

本申请中所涉及的文本是指数据检索时的待匹配文本,如数据库文本型字段、网页、文件等。对文本中出现的命名实体进行标注可以采用多种方法进行,如基于词表匹配的方法、基于规则的方法、基于机器学习的方法或者混合采用上述多种方法。对文本中出现的命名实体进行标注的结果至少包括:命名实体的类型、在文本中的起始偏移量和终止偏移量。假设在一文本中,一命名实体为“100元”,则该命名实体的类型为“金额”;另一命名实体为“北京”,则该命名实体的类型为“地名”;命名实体在文本中的起始偏移量和终止偏移量反映了该命名实体在文本中的起止位置。

文本中所要标注的命名实体的类型是事先确定好的,在事先确定命名实体的类型后,通过建立相应的词表或规则或机器学习模型,采用前述的基于词表匹配的方法、基于规则的方法、基于机器学习的方法或者混合采用上述多种方法,即可实现对特定类型的命名实体的标注。本领域技术人员很容易理解,若要对文本中所要标注的命名实体的类型进行变动,需要修改相应的词表或规则或机器学习模型。

对文本中出现的命名实体进行标注的结果可以用表格的方式存储或输出,所得到的表格可称为命名实体列表,该列表的每一项存储命名实体的类型、在文本中的起始偏移量和终止偏移量等信息。

由于目前主流的信息检索系统(如Solr,ElasticSearch等)在进行索引单元切分时,只允许输入待切分文本,不能输入其他参数。为了兼容这些系统,作为一种优选实现方式,可将命名实体列表写入待切分文本中,具体方法是:对文本中出现的命名实体进行标注后,将会形成新的文本数据,包括头部和正文两个部分。头部存储命名实体识别的结果信息,包括命名实体的类型、在文本中的起始偏移量和终止偏移量信息;正文存储原始文本信息。头部与正文之间用特殊符号分隔。

需要指出的是,如果待处理文本已经标注了命名实体,则只需要将标注结果封装成符合格式要求的命名实体列表即可。

1-2)、索引单元切分步骤,该步骤用于将之前已经经过命名实体标注的文本切分成以词为单位的索引单元。

本步骤在将文本切分成以词为单位的索引单元时,不仅可以按照现有技术切分正常的索引词,还可以基于识别的实体类型构造实体类型词。实体类型词是表征命名实体类型的特殊词,其构造方法要点如下:

一是以合适的方式表示实体类型词。为了区分实体类型词和正常的词,实体类型词采用不在词典中收录的非正常词来表示。在一个实施例中,本发明使用小写英文实体类型加后缀z来标识实体类型词,如organizationz表示机构,personz表示人员,这些词都不是合法的英文单词,所以不会与文本切出的正常词混淆。之所以使用小写实体类型词,是因为在很多信息检索系统中为了提高英文的查全率,在索引和检索时均将英文单词单词转换成小写形式;之所以加后缀z而不是其他字母,是因为在很多信息检索系统中为了提高英文的查全率,一般会对英文单词进行词根化操作,即去除ing、s、ed这些通用后缀,z不出现在任何通用后缀中,不至于在词根化操作中被去掉。确定了实体类型词的表示方式以后,就可以将命名实体标注步骤中所确定的命名实体的类型用实体类型词来表示。

二是要正确写入实体类型词的偏移量。在进行索引时,一般要记录索引词的偏移量,这样便于进行与位置相关的检索,如词组检索、邻接检索。实体类型词的偏移量等于该命名实体所对应的文本的偏移量,即起始偏移量是对应文本第一个词的起始偏移量,终止偏移量是对应文本最后一个词的终止偏移量。例如,Lockheed Martin是一个机构名称,命名实体词Lockheed的偏移量是(1002,1010),命名实体词Martin的偏移量是(1011 1017),其实体类型词是organizationz,则实体类型词organizationz的偏移量是(1002 1017)。采用此种方法,在后续的检索中确保可对实体类型词进行基于位置的检索,并可对命中的命名实体进行高亮显示。

三是基于实体类型层级关系构造多个实体类型词。命名实体的类型往往包含层级关系,如“大学”是“机构”的子类。这一层级关系是事先设定好的。在根据实体类型层级关系构造多个实体类型词时,可以将实体类型看作一棵树,通过树遍历的方式,在构造实体类型词时,如果识别出下位实体类型,除了构造下位实体类型词外,也应该依次构造上位实体类型一直到根节点的所有实体类型词。采用此种方法,使得用户在检索时可使用任意粒度的实体类型词进行检索,提升检索体验。

在一个实施例中,待处理文本经命名实体标注后形成头部和正文两部分,则索引单元切分的具体步骤包括:

首先对待处理文本的头部进行解析,将命名实体信息按起始偏移量排序后形成命名实体数组并加以存储;

在对正文中的原始文本进行切分的过程中,每切出一个词都会查找命名实体数组,判断该词是否是某个命名实体的第一个词,如果是的话则同时输出实体类型词的信息(包括实体类型词、偏移量信息),如果对应的命名实体类型还存在上位类,则同时输出上位命名实体类型到根节点对应的所有实体类型词的信息(偏移量不变);如果在命名实体数组内找不到,作为正常词处理。

根据上述步骤所构造的实体类型词的信息与切分所得到的正常索引词的信息一起被写入索引文件中。

步骤1-3)、倒排索引步骤,该步骤以索引词为中心,将同一索引词在不同文档中出现的信息归并存储。

经倒排索引后,所得到的索引文件的逻辑结构如下(其中+表示1个或多个):

(索引词,文档频率,(文档出现信息)+)+;

其中,所述索引词既可以是正常索引词,也可以是实体类型词;文档频率用来表示对应的索引词在多少篇文档中出现,“文档出现信息”格式如下:

文档编号,文档内频率,(起始偏移量,终止偏移量)+

其中,文档编号是文档整数标识,文档内频率是指索引词在该文档中出现多少次。例如,以一个命名实体“Lockheed Martin公司”为例,这一公司的实体类型首先对应公司实体类型,假定实体类型层次中公司实体类型是机构实体类型的子类,机构实体类型没有上位类,则在索引文件中,Lockheed Martin会对应四个索引词,分别是lockheed、martin、companyz和organizationz;其中的lockheed、martin是原始文本信息中出现的词,companyz、organizationz是实体类型词。所生成的索引文件的格式如下:

companyz;15;10,3,1002,1010,1086,1094,2055,2067;……

lockheed;2;10,2,1002,1010,1086,1094;18,1,15,23;

martin;2;10;2,1011,1017,1095,1101;18,1,24,30;

organizationz;20;10,4,1002,1010,1086,1094,2055,2067,2105,2118;……

这一格式的含义为:以第2行为例,lockkheed索引词是正常索引词,出现在2篇文档中,第一篇编号为10,出现2次,偏移量是(1002,1010)和(1086,1094);第二篇编号为18,出现1次,偏移量是(15,23)。第1行和第4行对应的是实体类型词,companyz对应公司实体类型,organizationz对应机构实体类型,公司实体类型是机构实体类型的子类。公司实体类型词出现在15篇文档中,第一篇就是Lockheed Martin出现的10号文档,出现了3次,也就是说除了Lockheed Martin出现的2次外,该文档还出现了一个公司名称。机构实体类型词出现在20篇文档中,也就是说除了公司子类外,机构实体类型还有其他子类出现在另外5篇文档中。

索引文件的上述格式能够同时满足用户的普通检索请求和命名实体模糊检索请求,即用户输入Lockheed Martin或机构实体类型词时均可命中文档。

2)、数据检索

该步骤可进一步包括接受检索式、检索并呈现结果两个子步骤。下面分别予以说明。

2-1)、接收检索式步骤。

检索式既可以是正常的检索词,也可以是实体类型词,或者是两者的组合。由于在索引时将实体类型词的偏移量记录成对应命名实体涵盖文本的偏移量,所以可正确进行基于位置的检索。为了避免用户输入错误,可将目前支持的实体类型词列出为用户提示,并允许用户通过点击实体类型词方式将其加入到检索输入框,提高检索式输入效率。

2-2)、检索并呈现结果步骤。

在得到检索式以后,就可以对检索式进行解析,基于之前数据索引步骤所得到的索引文件查找命中结果,并通过界面向用户展示。

无论检索式中包含的是正常检索词还是实体类型词,在检索时并无本质差别,均可采用现有技术实现。需要指出的是,在进行基于位置的信息检索时,由于实体类型词的偏移量对应原始命名实体文本的偏移量,所以也可准确命中。

为了直观展示命中情况,作为一种优选实现方式,可对命中结果中出现的检索词进行分颜色高亮显示,并在结果页面上方明示。例如使用黄色显示普通检索词,用红色显示机构类型实体名称,绿色显示人名等。需要指出的是,对于实体类型词,高亮显示的是命名实体的原始信息,例如用户使用机构实体类型词organizationz检索,检索结果中NASA会被高亮显示。

本发明还提供了与检索方法相对应的检索系统,如图2所示,该检索系统包括数据索引模块10和数据检索模块20;其中,

数据索引模块10负责对文本数据进行索引操作,输出索引文件。该模块包括命名实体标注单元11、索引单元切分单元12、倒排索引单元13。

其中,命名实体标注单元11负责对文本进行命名实体标注。命名实体标注单元11对文本进行命名实体标注后,将形成新的文本数据,包括头部和正文两个部分。头部存储命名实体识别的结果信息,包括实体类型、起始偏移量和终止偏移量信息;正文存储原始文本信息。头部与正文之间用特殊符号分隔。

索引单元切分单元12负责将文本切分成包含普通词和实体类型词的索引单元。首先对接收文本的头部进行解析,将命名实体信息按起始偏移量排序后形成命名实体数组存储在内存中。在对原始文本进行切分的过程中,每切出一个词,系统都会查找命名实体数组,判断该词是否是某个命名实体的第一个词,如果是的话则同时输出实体类型词的信息。如果对应的命名实体类型还存在上位类,则同时输出上位命名实体类型到根节点对应的所有实体类型词的信息。如果在命名实体数组内找不到,作为正常词进行切分。

倒排索引单元13以索引词为中心,将同一索引词在不同文档中出现的信息归并存储。

数据检索模块20接收用户输入的检索式,基于索引文件查找命中结果,并将结果呈现给用户。该模块包括检索式接收单元21,检索与结果呈现单元22。

检索式接收单元21负责接收用户输入的检索式。为了提高用户输入实体类型词的效率,接收单元在检索输入框附近,显示目前支持的所有命名实体类型和对应的实体类型词信息,并使用Javascript(一种直译式脚本语言)技术使得用户在点击某一命名实体类型时,系统自动将对应的实体类型词信息填入检索输入框。

检索与结果呈现单元22对用户输入的检索式进行解析,基于索引文件查找命中的结果,并向用户呈现。为了方便用户迅速了解检索命中情况,使用不同颜色对命中的检索词进行高亮显示,并在检索结果页面的上方明确标明什么颜色对应哪种类型的实体。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

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