文本分析的系统和方法

文档序号:6475132阅读:201来源:国知局
专利名称:文本分析的系统和方法
技术领域
本发明总体上涉及自然语言处理,具体涉及文本分析的系统和方法。
背景技术
对通过使用计算技术而进行的自然语言处理(NLP)研究的关键理解已经允许将这样的领域应用到当今真实世界的问题的解决上,所述问题仅举几个例子,诸如信息检索或基于万维网的服务。
但是,人类语言的复杂性已经导致进行独立的语言学分析以提供高性能的NLP系统,其中之一是语句的形态句法学(morphosyntactic)分析,它也被称为加标记。事实上,由于人类语言的高模糊性,其中一个词可以具有不同的语法值(诸如作为动词或名词),因此正确地解决模糊性以便避免误解是很重要的。为了解决那些问题,已经出现了几种手段,具体上●统计语音部分(POS)标记器,它一般使用所谓的隐藏马尔可夫(Markov)模型(HWM)和维特比(Viterbi)算法;●正式规则系统;●或上述两者的混合。
在市场上可以获得的所述POS系统工作得很好,并且提供很高的成功率,例如对于书写标准英语为大于80%。
但是,统计POS很依赖于它们用来学习它们所使用的三字母组(trigram)或二字母组(bigram)频率的全集(corpus),此外,它们需要操作人员以手工来标记很大的全集以产生足够的学习集。
在所述POS标记器中,使用约束性语法的那些由于其速度、其鲁棒性和其精度而得到特别关注。大部分基于约束性语法的系统都将表示具有模糊性的文本的有向(Directed)非循环图(DAG)与表示一组约束的有向图(有限状态变换器)交叉。但是,这样的实现方式的主要缺点是所述图示处理起来很复杂,需要难以编程的复杂算法,并且在它们的实现中经常依赖于机器。这些问题将这样的系统的使用限制到它们被开发所用于的特定语言。
因此,所需要的是一种系统和方法,用于克服如上所述的传统技术的缺陷。

发明内容
因此,本发明的目的在于提供一种计算机实现的系统和方法,它们使得可以进行更简单、更快和更便携的文本分析。
通过本发明来实现这个目的,其中,通过要以简单有限的状态自动控制来处理的“DAG”串来表示有向非循环图。
在一个优选实施例中,本发明的方法可操作于一种计算机系统,所述计算机系统包括用于建立有向非循环图(DAG)的装置,所述有向非循环图(DAG)表示施加到初始串多链的至少一个约束。所述方法优选地包括步骤(a)从所述至少一个约束来建立至少一个规律表达;(b)使用所述至少一个规律表达来在其中所述至少一个约束所施加到的所述初始串多链中寻找;(c)对于所述至少一个约束所施加之处将所述初始串多链拆分为子多链;(d)向每个子多链施加步骤(b)和(c),直到所述至少一个约束不施加。


通过下面参照附图更具体地说明本发明,本发明的上述和其他目的、特点和优点将会变得更好理解,其中图1是图解可以用于实现本发明的所述优选实施例的示例性硬件环境的方框图。
图2是图解通过本发明的方法而执行的步骤的流程图。
具体实施例方式
图1是图解可以用于实现本发明的所述优选实施例的示例性硬件环境的方框图。在所述示例性硬件环境中,计算机100,在其它的事物中(inter alia),可以包括处理器102、存储器104(例如随机存取存储器(RAM))、输入器件106(例如键盘、鼠标指示器件、语音激活的输入器件等)、显示器件108(例如阴极射线管、液晶显示器等)以及数据存储器件110(例如硬盘、软盘和/或CD-ROM盘驱动器等)和/或数据通信器件112(例如,调制解调器、网络接口等)。可以想像,附接到计算机100的可以是其他器件,诸如只读存储器(ROM)、视频卡、总线接口、打印机等。本领域的技术人员将认识到上述部件的任何组合、或任何数量的不同部件、外围设备、和在本领域内公知的其他器件可以用于计算机100。计算机100在操作系统(OS)114的控制下操作,所述操作系统诸如OS/390(商标)、MVS(商标)、VM(商标)、OS/2(商标)、AIX(商标)、UNIX(商标)、WINDOWS(商标)、MACINTOSH(商标)等。当计算机100启动或重新启动时,操作系统114被引导入计算机100的存储器104以执行。操作系统114然后依次控制一个或多个计算机程序的执行,所述程序诸如约束检查器120。所述约束检查器使得可以从规律表达和串(string)多链二者来建立本发明的新颖DAG表示。一般从初始多链来获得所述串多链,初始多链是要消除模糊性和存储在串多链数据库118中的短语的通用DAG表示。所述短语可以是在数据存储器件110上的文本文件中存储的文本,并且/或者由编程人员从输入器件106交互地输入。
所述规律表达被存储在规律表达数据库116中。规律表达(一般缩写为regexp或regex)是按照特定的句法规则(也称为约束)描述整组串的实体序列。这些表达被许多文本编辑器和实用程序(utility)使用来对文本体搜索特定模式,并且例如使用特定的其他串来替代所找到的串。存在一些基本类型的、需要熟悉的匹配字符匹配、重复匹配和位置匹配。规律表达因此实际上是很小的、高度专用的编程语言,使得可以指定要被匹配的可能串组的规则。规律表达频繁用于Unix操作系统和Unix类的操作系统中(Unix是Unix系统实验室的商标)。为了更多地了解规律表达,读者可以参见A.Aho、R.Sethi和J.Ullman的、ADDISON WESLEY出版的、题目为“Compilers,Principles,Techniques and Tools(编译器、原理、技术和工具)”的书。
规律表达数据库116、串多链数据库118和约束检查器120由逻辑和/或数据组成,它们当被处理器102访问、解译和/或执行时使得计算机100执行实现和/或使用本发明所需要的步骤。一般,规律表达数据库116、串多链数据库118和约束检查器120被包含在和/或可读取自器件、载体或媒体,诸如存储器104、数据存储器件110和/或经由数据通信器件12耦接到计算机100的远程器件。因此,本发明可以被实现为使用用于生产软件、固件、硬件或其组合的标准编程和/或工程技术的一种方法、装置或制造品。在此使用的术语“制造品”(或“计算机程序产品”)意欲涵盖被包含在和/或可读取自任何器件、载体或媒体的逻辑和/或数据。当然,本领域的技术人员可以认识到在不脱离本发明的范围的情况下可以对这种配置进行许多修改。本领域的技术人员将认识到图1中图解的示例性环境不意欲限定本发明。事实上,本领域的技术人员将认识到可以在不脱离本发明的范围的情况下使用其他的替代硬件环境和程序。
在参见图2之前,首先对图(Graph)、有向图和有向非循环图进行背景概述。有限状态机(FSM)或有限状态自动机(FSA)是在计算和语言的研究中使用的抽象机,它仅仅具有有限的恒定存储量(状态)。它可以被概念化为有向图。存在有限数量的状态,每个状态具有向零或多个状态的跃变。存在输入串,它确定要遵从哪个跃变。图描述了在对象之间的一组连接。每个对象被称为节点。它也可以被称为顶点。所述连接本身被称为边或弧。根节点是在树数据结构中的顶节点。可以通过根节点来访问在树中的所有数据。在一些树中,根节点具有特殊属性(诸如允许比子节点的正常数量更大或更小)。叶节点是具有零个子(child)的树的节点。经常,叶节点是距离根节点最远的节点。一些树仅仅在叶节点中存储数据。父节点或先辈节点是链接到一个或多个子节点的、在树数据结构中的节点。子节点或后代节点是由父节点链接的、在树数据结构中的节点。
表示要被消除模糊的短语的有向非循环图(DAG)具有先前所述被称为多链的特定形式。多链是具有下述属性的有向非循环图●多链具有仅仅一个根和仅仅一个叶。
●来自给定节点的每个顶点到达相同的节点。
下面是多链(MC)的图示说明,其中节点1是根,节点6是叶。
从上面的示例,我们解释约束、即给定规则如何被施加到这样的多链。我们声明,作为约束,序列“ac”要从上述的多链排除。技术人员将容易地通过下图(CT)来表示这个约束 在这个图示中,符号@表示“除了标注来自同一节点的边的那些之外的任何字符”。节点1是根(起始节点),节点2是结尾节点。另外,节点3表示汇点(sink),即没有后辈(issue)的节点。
所述前面两个图MC与CT的相交导致所得的有向非循环图(DAG) 在这个DAG中,作为预期的结果,没有包含序列“ac”的路径。它可以被分解为一组5个多链(MC1到MC5)
技术人员可以明白在上述前者的多链(MC1到MC5)的一个或多个中能找到上述所得的DAG(DAG)的每个链。
发明人已经使用了多链的特殊表示,以便提供当前的计算机实现的简单方法。然后以在计算机上更容易操作的“串”表达的形式来表示多链。例如,可以将第一图解的多链(MC)表达为下面的串(ST)●ST=<a b c><a b><a b c><a c><a c>,其中<a b c>表示两个节点通过边a、b和c链接。然后使用这种形式,上述的串(ST)表示通过边a、b或c中任意一个从节点(或位置)1到达节点(或位置)2。然后,通过边a或b到达位置3。通过边a、b或c到达位置4。通过边a或c到达位置5,并且最后通过边a或c到达位置6。
以相同的方式,可以由下列串(ST1到ST5)分别表达通过应用下列约束而获得的其他多链(MC1到MC5),该约束声明避免序列“ac”●ST1=<a b c><a b><b><c><a c>
●ST2=<a b c><a b><a b><a><a>
●ST3=<a b c><b><a b c><a><a>
●ST4=<a b c><b><b c><a c><a>
●ST5=<a b c><b><b c><c><a c>
现在参见图2,发明人已经设计了一种方法,用于当向被表示为串(ST)多链(206)的初始多链(MC)施加所定义的约束(200)时直接导出串多链(ST1到ST5)。在第一操作(202)中,建立规律表达,使得可以检测在多链中的所希望约束(200)。从上面的示例,当要检测序列“ac”时,可以建立对应的规律表达如下P=“<”^(@*“>”@*)“a”^(@*“>”@*)“>”“<”^(@*“>”@*)“c”^(@*“>”@*)“>”其中,●符号@表示任何字符;●‘pattern’*是公知的星运算符,它表示规律表达‘pattern’的0或几次出现(occurrence),因此@*0或几次出现任何字符;●^(‘pattern’)表示不匹配规律表达‘pattern’的任何内容,以这种方式,^(@*“>”@*)表示不包含字符>的任何串;●两个表达的拼接是隐含的,因此“<”^(@*“>”@*)“a”^(@*“>”@*)“>”表示字符<,后随不包含字符>的任何内容,后随字符a,后随不包含字符>的任何内容,后随字符>.
像这样,规律表达P表示在两个定界符<和>之间包含a的某些内容,后随在两个定界符<和>之间包含c的某些内容。模式P从位置1起匹配在初始串ST中的子串<a b><a b c>,并且这个子串违反了所述约束,因为“ac”是在多链<a b><a b c>中的可能链。在这个多链中的其他链(除了ac之外)被包含在下述两个多链中●<b><a b c>
●<a b><a b>
在下一个步骤,在本发明的DAG建立器(块208)算法的第一次运行中,将由规律表达(块204)表达的约束施加到初始串ST(206)。则提供了新串,即子多链,在所讨论的示例中的两个STA1和STA2●STA1=<a b c><b><a b c><a c><a c>
●STA2=<a b c><a b><a b><a c><a c>
模式P从位置3匹配在STA1中的子串<a b c><a c>。在STA1上操作所述DAG建立器算法的第二次运行,并且获得新串STA11和STA12●STA11=<a b c><b><b c><a c><a c>
●STA12=<a b c><b><a b c><a><a c>
类似地,在串多链STA2中,模式P在位置3匹配,并且通过操作DAG建立器,获得新的串STA21和STA22●STA21=<a b c><a b><b><a c><a c>
●STA22=<a b c><a b><a b><a><a c>
所述DAG建立器在STA11上运行,其中模式在位置4匹配,并且获得新串STA111和STA112●STA111=<a b c><b><b c><c><a c>
●STA112=<a b c><b><b c><a c><a>
类似地,在串多链STA12中,模式P在位置4匹配,并且通过操作DAG建立器,获得新的串STA121和STA122●STA121=<a b c><b><a b c><a><a>
●STA122=<a b c><b><a b c><><a c>
应当注意,STA122不是有效的串(因为空括号)。
关于STA12,DAG建立器运行在STA21上,其中所述模式在位置4匹配,并且获得新串STA211和STA212●STA211=<a b c><a b><b><c><a c>
●STA212=<a b c><a b><b><a><a>
最后,DAG建立器在STA22上运行,其中,所述模式在位置4匹配,并且获得新串STA221和STA222●STA221=<a b c><a b><a b><><a c>它是无效的●STA222=<a b c><a b><a b><a><a>
并且应当注意,STA221不是有效的串(因为空括号)。
DAG建立器的几个先前的操作已经产生最终的串,在其上,模式P不再匹配。一些可以被忽略为无效(STA122和STA221)或为复制(在STA222中包括的STA212)。因此,由DAG建立器获得的最终的有效串被列出如下●STA111=<a b c><b><b c><c><a c>
●STA112=<a b c><b><b c><a c><a>
●STA121=<a b c><b><a b c><a><a>
●STA211=<a b c><a b><b><c><a c>
●STA222=<a b c><a b><a b><a><a>
并且,应当明白,这些串多链分别对应于表示当施加所定义的约束时的初始多链(MC)的串多链(ST1到ST5)。
现在进行本发明的更一般化的说明。技术人员公知,约束语法使用两种主要的规则否定规则,指出不能在给定的上下文中出现给定的表达。在一般使用的形式中,以下述方式来表达这样的规则C<=L_R它表示规律表达C不能出现在规律表达L和规律表达R之间。
肯定规则,指出给定的表达在给定上下文中是强制的。在一般使用的形式中,以下述方式来表达这样的规则C=>L_R它表示规律表达C在规律表达L和规律表达R之间是必需的。
以描述在节点之间的基本连接的规律表达来建立规律表达L、C和R,例如●<b>=“<”^(@*(“>”|“<b”|“b”)@*)(“<b”|“b”)^(@*(“>”|“<b”|“b”)@*)“>”表示在包含被标注为b的边的两个节点之间的连接匹配例如下述连接●<b c>、<a b c>或<b>
但是不是●<a c>或<a>
或者,规律表达建立器可以被设计来产生三种串●对于第一所得的串,它将仅仅重写诸如“<”、“>”、“<b”或“b”之类的显式表达,并且以这种方式擦除由元字符@匹配的全部内容,所述方式中,评估器像在UNIX中的公知sed程序或公知的PERL程序的替代命令那样工作,它擦除除了b和定界符<和>之外的所有字符,对于这个示例,它可以以这个形式被写s/<[^<b]*b[^<b]*>/<b>/。
●对于第二所得的串,它将仅仅重写定界符“<”和“>”和除了b之外的所有字符。在PERL语言中,这可以被写为s/<([^<b]*)b([^<b]*)>/<$1$2>/。
●最后的所得的串是匹配的串本身。
优选的是,在要被分析的多链中遇到的每个边x对应于基本的规律表达<x>。以这种方式,在上述段落中给出的示例给出了基本规律表达<a>、<b>和<c>。在这个同一示例中用于防止序列ac的规则于是被写为●<a><=_<c>
从这个规则,可以建立下面的规律表达●0“<L>”<a>0“<C>”<c>0“<R>”其中,<L>、<C>和<R>是允许将所匹配的多链拆分为其左、中和右的标记(0<xyz>表示要产生串“xyz”)。这种表达被应用到下述串●MC=<a b c><a b><a b c><a c><a c>
通过运行,所述建立器从第一位置提供了下述三个串●MC1-1=<L><a><C><><R>
●MC1-2=<L><b c><C><a b><R>以及●MC1-3=<L><a b c><C><a b><R>
当在<C>和<R>之间的连接为空时,所述规则从这个位置起失效。
从第二位置,表达MC产生●MC2-1=<L><a><C><c><R>
●MC2-2=<L><b><C><a b><R>以及●MC2-3=<L><a b><C><a b c><R>
从这三个串,可以建立防止在多链<a b><a b c>中链<a><c>的发生而需要的两个多链●<b><a b c>,因为跟随在除了<a>之外的内容之后的任何内容不受所述规则影响;以及●<a><a b>,因为跟随<a>之后的任何内容必须不包含c。
整个算法因此如下首先,对于约束语法的每个规则(200)建立对应的规律表达(202)对于每个规则R=C<=L_R或R=C=>L_R建立规律表达P=L 0“<L>”C 0“<C>”R 0“<R>”然后,对于要分析的多链MC(206),设置“分支”是多链的空列表;“位置”是空的双条目列表,它对于每个规则号和每个分析号分支提供在分支中应用规则的位置;“规则”是从规则组先前建立的规律表达的列表,所述规则具有规则的性质的指示符(肯定或否定)。
本方法优选地实现功能“applyRule(应用规则)”(204),它执行上述的操作,将来自规则列表中的规则、来自分支的分析分支和来自在分支上应用规则的位置的位置作为变元。
然后,如上详细描述,只要规则匹配,则DAG建立器功能(208)运行在多链上以分析。当获得最终的串、即最后剩余的分支时,处理结束。
虽然已经以其基本模式来描述了所述算法,但是可以以多种方式来进行许多修改和改进,例如,有效地查找第一位置,规则可以被应用到分支上,或者通过利用规则的所留(left)上下文以同一所留上下文对它们编组。而且,作为另一种替代方式,可以考虑被标注为不操作的分支来改进位置和分支的管理。
这种手段的优点是其简单和其便携性,因为仅仅需要字符串来实现它。本发明的原理在于对于文献中普通所述的串使用简单模式的匹配技术,主要思想是可以通过表示多链的一组串来描述DAG。
最后,本领域的技术人员应当明白,虽然已经参照其优选实施例特别示出和说明了本发明,但是在不脱离本发明的精神和范围的情况下,可以进行形式和细节上的各种改变。
权利要求
1.一种计算机实现的方法,用于建立有向非循环图(DAG),所述有向非循环图表示施加到初始串多链的至少一个约束,所述方法包括步骤(a)从所述至少一个约束来建立至少一个规律表达;(b)使用所述至少一个规律表达来在所述至少一个约束所施加的所述初始串多链中寻找;(c)对于所述至少一个约束所施加之处,将所述初始串多链拆分为子多链;(d)向每个子多链施加步骤(b)和(c),直到所述至少一个约束不施加。
2.按照权利要求1的方法,还包括在步骤(c)后的步骤在所述至少一个约束不施加之处,删除所述子多链。
3.按照权利要求1或2的方法,还包括在步骤(c)之后的步骤组合至少两个子多链。
4.按照权利要求1-3的任何一个的方法,其中,在步骤(a)建立的所述至少一个规律表达包括左部、中部和右部,使得可以识别所述至少一个约束的上下文。
5.按照权利要求4的方法,其中,步骤(b)还包括步骤在左部、在中部、在右部寻找。
6.按照权利要求1-5的任何一个的方法,其中,所述至少一个约束是否定规则。
7.按照权利要求1-6的任何一个的方法,其中,所述至少一个约束是肯定规则。
8.按照权利要求1-7的任何一个的方法,其中,初始串多链是要消除模糊的短语的串表示。
9.一种系统,包括用于操作权利要求1-8的任何一个的方法的每个步骤的装置。
10.一种计算机程序产品,被存储在计算机可用介质上,包括用于使计算机执行按照权利要求1-8的任何一个的方法的计算机可读程序装置。
全文摘要
所公开的本发明允许通过将以简单有限的状态自动控制处理的“DAG”串来表示有向非循环图。被表示为有限状态自动控制的约束被施加,以排除包含特定模式的替代物。提供了一种允许更简单、更快和更便携的文本分析的计算机实现的系统和方法。
文档编号G06F17/27GK1717680SQ200480001633
公开日2006年1月4日 申请日期2004年1月23日 优先权日2003年1月30日
发明者克里斯琴·莫塞里 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1