CN100361124C - 用于词分析的系统和方法 - Google Patents
用于词分析的系统和方法 Download PDFInfo
- Publication number
- CN100361124C CN100361124C CNB2004100324280A CN200410032428A CN100361124C CN 100361124 C CN100361124 C CN 100361124C CN B2004100324280 A CNB2004100324280 A CN B2004100324280A CN 200410032428 A CN200410032428 A CN 200410032428A CN 100361124 C CN100361124 C CN 100361124C
- Authority
- CN
- China
- Prior art keywords
- morpheme
- transformation
- input text
- character
- speech
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004458 analytical method Methods 0.000 title claims description 25
- 230000009466 transformation Effects 0.000 claims description 48
- 230000008859 change Effects 0.000 claims description 15
- 239000002131 composite material Substances 0.000 claims description 9
- 238000000844 transformation Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 abstract 3
- 238000006243 chemical reaction Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 241000134253 Lanka Species 0.000 description 4
- QIQXTHQIDYTFRH-UHFFFAOYSA-N octadecanoic acid Chemical compound CCCCCCCCCCCCCCCCCC(O)=O QIQXTHQIDYTFRH-UHFFFAOYSA-N 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 241000251468 Actinopterygii Species 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 241000270322 Lepidosauria Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/02—Constructional features of telephone sets
- H04M1/0202—Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
- H04M1/0206—Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings
- H04M1/0208—Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings characterized by the relative motions of the body parts
- H04M1/0225—Rotatable telephones, i.e. the body parts pivoting to an open position around an axis perpendicular to the plane they define in closed position
- H04M1/0227—Rotatable in one plane, i.e. using a one degree of freedom hinge
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/268—Morphological analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/02—Constructional features of telephone sets
- H04M1/0202—Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
- H04M1/0206—Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings
- H04M1/0208—Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings characterized by the relative motions of the body parts
- H04M1/0225—Rotatable telephones, i.e. the body parts pivoting to an open position around an axis perpendicular to the plane they define in closed position
- H04M1/0233—Including a rotatable display body part
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Machine Translation (AREA)
Abstract
一种分析输入文本的计算机实施的方法,包括比较输入文本中的转变和规则引擎中的转变。该方法还包括,根据在规则引擎内词素中的找到的字符,以及与按照规则的字形变化相关的输入文本以及与按照规则的词边界相关的输入文本中的至少一个,来确定输入文本中的转变是否在规则引擎中找到。
Description
技术领域
本发明涉及语言或文本处理。具体而言,本发明涉及一种经改进的用于分析输入文本的方法和设备。
背景技术
语言或文本处理涉及多种系统。例如,剖析器、拼写检查器、语法检查器、单词断开器、词法分析器、自然语言处理器,可以理解这些系统只是这个宽泛类别中少数几种系统。
这些系统中的许多系统在分析输入文本时很有价值。例如,拼写检查器将输入文本中的单词与字典、词典进行比较,以确定输入文本是否和字典中的单词对应或匹配。可以向用户指示字典中没有找到输入文本,因此可能拼错。可能还会提供纠正建议,对拼错的单词进行纠正。拼写检查器还需要确定输入文本是否是字典中的单词经过合理字形变化而得到,并且为拼错的单词提供建议,这些建议是字典中的单词的合理字形变化。
单词断开,即单词分段,指识别组成语言表达的个别单词的过程,例如在书面文本中。单词分段可用于检查拼写和语法、从文本合成语音、语音识别,信息检索并执行自然语言剖析和理解。对英语文本执行单词分段相当直截了当,因为空格和标点符号一般会划定文本中个别字的界限。不过,在中文之类的其它语言中,词边界是隐含的,而不是外在的。因此在语言处理中提供有关词边界的建议很有价值。
词法分析器涉及根据词汇的非词根形式识别词汇的词根形式。例如,通过对单词“running”进行词法分析可以识别出“run”为该词的词根形式。对于字形高度变化的语言,词法分析器需要记下大量有关的数据,用来查找词根形式。一旦查找到词根形式,便可用词根来进一步处理,例如剖析或信息检索。
一般而言,上述系统会针对各种不同的语言加以定制,包括英语、法语、德语、西班牙语、中文、日语。而且,语言分析的复杂性已对程序的执行造成限制,使程序只能独立地执行,这会相当麻烦。因此,需要一种能够对输入文本进行各种分析的通用语言处理系统。
发明内容
本发明一方面是一种计算机实施的方法,用来对含有多个转变的输入文本进行分析。对于多个输入文本转变的每一个来说,该方法把输入文本的转变与规则引擎内的转变相比较。接着,根据在规则引擎内的词素中找到的一个字符,以及与按照规则的字形变化相关的输入文本或与按照规则的词边界相关的输入文本中的至少一个,来确定是否在规则引擎内的转变中找到输入文本的转变。如果确定没有在规则引擎的转变中找到输入文本的转变,则该方法可进一步建议规则引擎中一个可能的转变,并将成本应用于这个可能的转变。
计算机实施的方法提供一种集成、高效的方式来提供拼写建议、词法分析和词边界候选。可通过各种语言规则定义规则引擎中的转变,以便对输入文本进行词分析。
本发明另一方面是一种对输入文本进行词分析的系统。该系统包括词典、正字规则模块和词素组合模块。词典包括多个自由词素和约束词素。正字规则模块定义了自由词素至字形变化的变换。而且,词素组合模块定义了自由词素和约束词素间的可允许组合、以及字形变化和约束词素间的可允许组合。结果,词典只需记下自由词素和约束词素,因为在正字规则模块中定义了来自字形变化的变换。词典还可包括针对自由词素、自由词素和约束词素间的可允许组合、以及字形变化和约束词素间的可允许组合中的每一个所提供的有关词边界、语义信息、句法信息的指示。
附图说明
图1是语言或文本处理系统的框图。
图2是用于实施本发明的示范性环境的框图。
图3是线索的图示。
图4是根据本发明的规则引擎的框图。
图5是定义变换的规则的表达式。
图6是根据本发明一实施例提供词分析的方法。
图7是遍历规则引擎的图示。
具体实施方式
图1一般说明一种语言或文本处理系统,用来接收输入12(通常采用文本字符串的形式)并处理输入12以提供输出14(也通常采用文本字符串的形式)。例如,语言处理系统可用于字处理、语言剖析及/或信息检索。提供给这些应用的输出14可以为拼写检查分析指示、单词断开分析指示、词法分析指示及/或这些指示的组合。本领域的技术人员会明白,语言处理系统可以为单独的系统,或者是可由另一系统存取或包含于另一系统中的模块或组件。
一般而言,语言处理系统包括文本分析器20和规则引擎22。文本分析器20示意性地表示接收输入12、存取规则引擎22并且从中获得信息以及处理单词信息以便提供输出14的组件或模块。本发明一方面涉及经改进的规则引擎22,用于分析输入文本以便识别词素、拼写错误和单词断开。鉴于规则引擎22是可用在许多语言处理系统中并且具有许多文本分析器形式的独立组件,将说明文本分析器20与规则引擎22的一般性交互作用,但有关各种文本分析器形式的具体细节将不再说明,因为理解本发明不需要这样的说明。
在进一步详细讨论本发明之前,对操作环境进行概述有助于理解本发明。图2说明其上可实施本发明的适当计算系统环境50的例子。计算系统环境50只是适当计算环境的一个例子,并不想对本发明的使用范围或功能作出任何限制。也不应将计算系统环境50解释成具有与示范性操作环境中所述的任一组件或各组件的组合有关的依赖性或要求。
本发明可结合众多其它的通用或专用计算系统环境或配置来操作。有很多众所周知的计算系统、环境及/或配置适用于本发明,例如,包括但不限于:个人计算机、服务器计算机、掌上型设备或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型计算机、大型计算机、包括上述系统或设备的分布式计算环境等。
大体按照计算机可执行指令来说明本发明,例如由计算机执行的程序模块。一般而言,程序模块包括执行特定任务或实施特定抽象结构类型的例程、程序、对象、组件、数据结构等。也可以在分布式计算环境中实施本发明,在这样的环境中,由通过通信网络连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可位于包括存储设备的本地和远程计算器存储媒质中。下面将借助附图说明程序和模块所执行的任务。本领域的技术人员可用处理器可执行指令来实施说明和附图,并且可在任何形式的计算器可读媒质上编写这些指令。
参考图2,一种用于实施本发明的示范性系统包括以计算机60为形式的通用计算设备。计算机60的组件可包括但不限于:处理单元70、系统内存80以及将包含系统内存在内的各种系统组件耦合到处理单元70的系统总线71。系统总线71可以采用各种总线结构,包括内存总线或内存控制器、外围总线以及使用各种总线结构的任一种的局域总线。举例而言,但不作限制,此类结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局域总线以及PCI(外围组件互连)总线(也称为Mezzanine总线)。
计算机60通常包括多种计算机可读媒质。计算机可读媒质可以是任何可由计算机60存取的可用媒质,包括易失性与非易失性媒质以及可移动与非可移动媒质。举例而言,但不作限制,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质兼含可以任何方法或技术实施的易失性与非易失性以及可移动与非可移动媒质,用来存储信息,例如计算机可读指令、数据结构、程序模块或其它数据。计算机存储媒质包括但不限于:RAM、ROM、EEPROM、闪存或其它内存技术、CD-ROM、数字化视频光盘(DVD)或其它光盘存储器、磁盒、磁带、磁盘存储器或其它磁性存储设备,或任何其它可用于存储所需信息并且可由计算机60存取的媒质。
通信媒质通常采用已调数据信号(例如载波或其它传输机制)具体化计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传送媒质。术语“已调数据信号”表示信号的一个或多个特性是以对信号内信息进行编码的方式设定或改变的信号。举例而言,但不作限制,通信媒质包括有线媒质,如有线网络或直线连接,还包括无线媒质,如声音、FR、红外线以及其它无线媒质。上述媒质的任何组合也应包括在计算机可读媒质的范围之内。
系统内存80包括采用易失性及/或非易失性内存形式的计算机存储媒质,例如只读存储器(ROM)81和随机存取存储器(RAM)82。基本输入/输出系统83(BIOS)所含有的基本例程有助于在计算机60内的元件之间传送信息,例如在启动期间。BIOS系统83通常存储在ROM 81内。RAM 82通常包含处理单元70可即时存取及/或目前在操作的数据及/或程序模块。举例而言,但不作限制,图2说明了操作系统84、应用程序85、其它程序模块86以及程序数据87。
计算机60亦可包括其它可移动/非可移动、易失性/非易失性的计算机存储媒质。举例而言,图2说明了读写非可移动、非易失性磁性媒质的硬盘驱动器91、读写可移动、非易失性磁盘102的磁盘驱动器101以及读写可移动、非易失性光盘106(例如CD ROM或其它光学媒质)的光盘驱动器105。其它可用于示范性操作环境的可移动/非可移动、易失性/非易失性计算机存储媒质包括但不限于:磁带盒、闪存卡、数字化视频光盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器91通常通过非可移动存储接口(例如非可移动非易失性存储接口90)连接到系统总线71,磁盘驱动器101和光盘驱动器105通常通过可移动存储接口(例如可移动非易失性存储接口100)连接到系统总线71。
上文所讨论以及图2所述的驱动器及其相关的计算机存储媒质可存储计算机60的计算机可读指令、数据结构、程序模块和其它数据。例如,图2所示的硬盘驱动器91存储操作系统94、应用程序95、其它程序模块96和程序数据97。注意到这些组件可以和操作系统84、应用程序85、其它程序模块86以及程序数据87相同,也可以不同。这里为操作系统84、应用程序85、其它程序模块86和程序数据87给出不同的编号,用来说明它们至少是不同的副本。
用户可通过输入设备(例如键盘112、麦克风113、输入板114)以及指示设备111(例如鼠标、轨迹球或触控垫)将命令和信息输入到计算机60中。其它输入设备(未显示)可包括操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪等。这些输入设备和其它输入设备通常通过用户输入接口110(与系统总线连接)连接到处理单元70,但也可以由其它接口和总线结构连接,例如并行端口、游戏端口或通用串行总线(USB)。监视器141或其它类型的显示设备也可经由一个接口(例如视频接口140)连接到系统总线71。除了监视器以外,计算机还可以包括其它可通过输出外围接口145连接的外围输出设备,例如扬声器147和打印机146。
计算机60可在网络化的环境中操作,该环境使用逻辑连接与一台或多台远程计算机(例如远程计算机130)连接。远程计算机130可以是个人计算机、掌上型设备、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且通常包括上述有关计算机60的许多或全部元件。图2中描述的逻辑连接包括局域网(LAN)121和广域网(WAN)123,但也可包括其它网络。此类网络环境在办公室、公司范围的计算机网络、企业内部网和互联网中非常普遍。
当用在LAN网络环境中时,计算机60可通过网络接口120或适配器连接到LAN121。当用在WAN网络环境中时,计算机60通常包括调制解调器122或其它用于在WAN(例如互联网)123上建立通信的装置。调制解调器122(可为内置型或外置型)可经由用户输入接口110或其它适当的机制连接到系统总线71。在网络化的环境中,关于计算机60所述的程序模块或其中一部分可存储在远程存储设备中。举例而言,但不作限制,图2说明了驻留在远程计算机130上的远程应用程序135。应明白,图示的网络连接是示范性的,可使用其它在计算机之间建立通信连接的装置。
应理解,文本分析器20可驻留在计算机60或任何与计算机60通信的计算机上,例如远程计算机130。同样,规则引擎22可驻留在上述计算机60上的任一存储设备中,或可通过适当的通信连接加以存取。
在一实施例中,本发明的字典信息存储在线索(也称为数字树)中。有很多种方式可用来表示线索,例如将线索表示成一系列的节点。图3说明了包含线索200的节点的线索数据结构,示出字典中的各个单词。每个节点,例如节点205,表示一个字母,并且可包括一个或多个标记。其中一个标记可以是词结尾(end-of-word)标记,如阴影节点所示,例如图3中的节点212。各节点还可包括向下指针210以及指向其它节点的右指针。右指针连接相邻的节点,图3中用彼此相邻的节点隐含说明了这一点。例如,211中的节点“a”、“i”、“k”和“u”,这些节点还形成一个状态。本文所指的状态(例如211或215)是由右指针连接在一起的一系列节点。
在完整的字典中,线索200的顶部状态215通常是字典中单词的全部允许出现的第一个字符(ASCII或Unicode),即对于英语来说,是字母“A”到“Z”。在图3中,“...”表示其它允许出现的节点。每个节点的向下指针210指向随后允许出现的节点的下一个状态中的第一个节点,通常包括字母,但也可以包括像“?”这样的标点和符号。例如,在节点220中,第一个(并且在这种情况下是唯一的)允许出现的字母是“r”。
通过继之以可能的转变,或路径,即可再现列表225中的单词。当继之以向下指针210时,可继之以向下指针210所指向的节点或该节点右边的任何节点。还应注意,每个节点均具有一个向下指针或者是一个词结尾节点(例如节点230)。事实上,很多节点都具有一个向下指针,同时也是词结尾节点(例如节点212)。
图3还说明了用于线索的压缩技术,如结尾压缩。例如,可以从很多不同的节点指向节点230。因此,可使用单个存储值或位置来表示节点230中存储的“s”。线索和各种压缩技术是用来表示和存储字典的完善方法,因此不必要进行详细说明。值得注意的是,该现有技术实施例中包括各个字形变化,这会使字典很大。在某些字形高度变化的语言中,字典或线索中囊括全部字形变化是不切实际的。
为了访问线索中的所有节点,并因此提取线索中包括的所有单词,本领域中有若干众所周知的方法用来建立字符数组并连续填充数组中的每个位置。例如,数组中的第一位置被设置为第一可能的字符;数组中的下一位置被设置为下一个可能的字符,依此类推。结束节点的每个实例表示已找到线索中的单词,或字典中的单词。
应理解,为了验证单词是否在字典中,或为了对单词进行拼写检查,只有当节点中的当前字母和用户输入的字母匹配时才需要继之以节点的向下指针。与线索“平行”地继之以输入文本。第一个指针逐字符地继之以输入文本,而第二指针逐节点地继之以线索。如果输入文本与字典中的单词匹配,就可以确定输入文本是正确的。
为了执行词分析,规则引擎22包括一个线索。在本发明的一项实施例中,将线索具体化为有限状态变换器,可定义遍历规则,以便根据各种语言规则遍历线索。规则与线索分开存储。规则引擎22使用各种规则在有限状态变换器的每次转变时进行词法分析、拼写检查并识别候选单词断开,并提供输出用来指示所识别的单词断开。规则引擎22因而提供了一种快速、高效的词分析方法。
如图4所述,规则引擎22包含众多组件。第一组件是基于线索的词典250,兼含“自由词素”(即happy、run、cat等词)与“约束词素”(即un、ness、ing、s等词缀)。自由和约束单词词素可排列在图3所示的线索中。词典250是一种数据结构,包含有关词素的信息。例如,词典250可存储句法和语义信息的指示。这些指示可包括词素是名词、动词还是形容词。还可提供词素组合的指示。例如,词典250可包括这样的指示:词素“happy”是形容词以及“ness”是将形容词变换为名词的后缀。因此,可以确定单词“happiness”是名词,然而虽然不需要它有一个单独的项目。
此外,词典中可存储不同类型的语言信息。这种语言信息取决于所执行的词分析的类型。存储与有助于剖析的单词有关的信息是这类信息的一个例子。有关单词是否为正确的姓名或地理位置的指示也是有用的。
规则引擎22的另一个组件是正字规则模块252。正字规则模块252与词典250交互作用,并且定义了各种允许从输入文本中识别词素的规则。因此,词典250只需存储词素,而不是全部字形变化。正字规则模块252根据称为“两级”词法的分析来操作。两级词法分析包括数据从表面级(即来自用户的输入)到词汇级(即单词的各部分和各种特性)的变换。例如,两级词法分析将用户输入“happiness”变换为形容词“happy”以及指示各种特性的后缀“ness”。
语言学家或掌握类似技术的人员所开发的正字规则定义了两级词法系统中的变换。例如,从“happiness”到“happy+ness”的变换基于如下面的例子中所示的各种规则。可通过“常规表达式”来表达每个规则。常规表达式包括核心、算子和左右上下文。核心是特定规则的字符映射。算子规定了核心如何与左右上下文交互作用。左右上下文定义了包围核心的字符,以便应用规则。
图5说明了表达式300的例子。应注意,下列符号只是示范性的。表达式300包括核心302、算子304、左上下文306以及右上下文308。核心302是主要字符或者规则或映射对其进行操作的字符。核心302将‘a’映射到‘b’,表示为a:b。值得注意的是,格式“a:b”可解释成表示“可将表面字符‘a’映射为词汇字符‘b’”。表达式300包括“---”,这表示映射发生的位置。算子304可以为表1中所包含的四个选项之一。
表1
算子 | 功能 |
<-> | 变换必须在给定了左右上下文时发生。不允许其它的字符。 |
-> | 变换可能发生在给定的上下文中。 |
<- | 对于给定左右上下文中的给定的表面字符,必须发生变换,但允许其它的表面字符。 |
>< | 变换不能发生在给定的上下文中。 |
这里,算子304是‘<->’,表示核心302的变换(a:b)必须在给定左上下文306(c:c)和右上下文308(d:d)时发生。假设用户输入“cad”,正字表达式300将会确定,“cad”也可以合法地表达成“cbd”。
左上下文306和右上下文308可包含表面和词汇字符、字符集(即全部辅音CONS、全部元音VOWL等)或特殊的元字符。表2包含各种所用的元字符。
表2
字符 | 含义 |
* | 任何字符 |
- | 空字符 |
+ | 词素边界 |
# | 词边界 |
正字规则模块252提供在词典中查找字时可以使用的选项。例如,给定输入“happiness”,正字规则模块252将‘i’映射到‘y’,并且在词典中找到词素“happy”和“ness”。此表达式可一般性地写成:
i:y<->CONS:CONS---*:+
表达式指示,当且仅当映射之前有词典中所映射的辅音以及映射之后有表示词素边界的任一字符时,才将表面字符‘i’映射成‘y’。因此,随着通过词典遍历输入“happiness”时,将“hap”映射到“hap”,将‘p’映射到‘p’(其满足左上下文CONS:CONS),‘y’的映射之后是词素边界,即词素“happy”的边界。
也可将表达式组合以指示组合表达式。一个组合算子是:与/并集(||),另一个是:或/交集(&&)。例如,可组合上述规则表达式,以便在上述规则表达式中包括字符“qu”。所得到的组合规则将为:
i:y<->CONS:CONS---*:+||qu:qu---*:+
此外,左右上下文内可使用不同的算子。表3示出示范性算子。
表3
算子 | 含义 |
| | 从一个集合中选择一个(即a:a|b:b之一) |
? | 指示字符出现零次或一次(即a:a?) |
* | 指示一个字符出现零次或一次 |
+ | 指示一个字符出现一次或多次 |
() | 集合的分组(即(a:b|c:d)*) |
文字字符 |
下面提供规则表达式的其它例子。在规则表达式中,CONS被定义为任何辅音,VOWL被定义为任何元音,SIB被定义为任何齿擦音{s x z},VOW1被定义为{e i ou y}。
例如,为了将“fishes”映射成“fish+s”或将“boxes”映射成“box+s”,只有当前面有“sh”、“ch”齿擦音时,词素边界才是“e”,或者当后面有s时,词素边界才把‘y’当成‘i’。可使用下列表达式:
e:+<->sh:sh|SIB:SIB|i:y---s:s||ch:ch---s:s
为了把bagged映射为bag+ed或把bigger映射为big+er,当前面是辅音、元音或在词典中作为任何字符的表面字符‘g’,并且后面是表现为元音或‘y’的任何字符时,表面字符‘g’作为词素边界出现在词典中。可使用下列表达式:
g:+->(CONS:CONS)VOWL:VOWL g:*---VOW1:*|a:*
为了把continuing映射为continue+ing、把tying映射为tie+ing或把reptilian映射为reptile+an,当‘e’的前面是辅音或表现为‘u’的任何字符、后面是表现为空字符的词素边界并且或是‘a’或是‘i’时,当‘e’的前面是表现为y的‘i’、后面是表现为空字符的词素边界时,或者当‘e’的前面是任何字符、后面是表现为‘i’的词素边界时,‘e’必须表现为空字符。可使用下列表达式:
-:e<->CONS:CONS u:*--- -:+a:a|i:i||y:i--- -:+||*:*---i:+
为了把panicked映射为panic+ed并把panicking映射为panic+ing,只有当或者前面是元音和‘c’、后面是‘e’或‘y’时,或者当前面是元音和‘c’、后面是‘i’以及‘n’、‘o’或‘f’时,词素边界才必须表现化为‘k’。可使用下列表达式:k:+<->VOWL:VOWL c:c---e:e|y:y||VOWL:VOWL c:c---i:i n:n|o:o|f:f
规则引擎22还包括词素组合模块254,它与词典250交互作用,以便定义可允许的词素组合。可使用任何适当的数据结构来存储这种信息。例如,交互作用可以是与各词素一起存储的词汇位。词汇位可定义词根的各种可允许的字形变化。例如,词素“happy”可以被存储或者与各种指示相关,允许它与如“ness”、“er”、“est”和“ly”等各种后缀组合。此外,这些指示可识别“happy”与“un”之类前缀的组合。
使用规则引擎22可实现一种同时执行单词断开、拼写检查和词法分析的快速高效的方法。为执行单词断开,标记可同词素一起存储在词典250中,以便指示词边界。如果用户输入和词典250都和一个词结尾匹配,便识别一个候选词结尾。然后可将用户输入指针移到下一个用户输入词。此外,重新初始化到词典250的指针,以搜索下一单词。
也可以将多个词组放在词典250中以允许识别词组,其中词组的一部分或全部组件部分不在词典中。这种词组的一个例子是“Sri Lanka”。“Sri”和“Lanka”都不在字典中。在“Sri Lanka”的后面放一个词边界使规则引擎22能够识别出整个词组,而不只是“Sri”或“Lanka”部分。
如果用户输入不包括单词断开(如在很多亚洲语言中),就可以根据各种规则识别出候选的单词断开。找到候选词结尾之后,重新初始化到词典250的指针。如需要,概率数据可与各候选词结尾一起存储。识别出所有的候选单词断开之后,可执行进一步的分析以进一步确定用户输入文本中的单词断开。
为了执行词法分析,将词素边界标记添加到词典250中的词素。如果识别出词典250中的词素,可将词素添加到词法分析中。词素组合模块254识别出词素的可能组合,因此可根据词素的组合方式得出分析结果。
为执行拼写纠正,可使用一种成本计算的方法和系统。为用户输入与词典250中的信息之间的差异计算成本。如果用户输入与词典250中的项目匹配,则成本为零。否则,计算出成本,为可用的转变产生拼写建议。当转变的成本过大时,如阈值所定义,就不再进一步探索转变。一种根据本发明一项实施例进行拼写检查的示范性系统和方法在美国专利第6,131,102号中说明,该专利标题为“计算拼写建议和自动更换成本的方法和系统(Method and System for Cost Computation ofSpelling Suggestions and Automatic Replacement)”,2000年10月10发布,这项专利的内容通过引用被完全结合于此。
图6说明了使用规则引擎22进行词分析的方法。规则引擎22是一种状态机,包括基于词典250、正字规则模块252和词素组合模块254的各种转变。方法350从步骤352开始。在步骤354中,将输入文本中的转变与规则引擎22中的转变比较。例如,这个转变可比作输入文本中的“h”,“h:h”比作词典250中词素“happy”的第一字符映射。在应用转变之后,在步骤356中根据拼写、词法或单词断开规则确定是否在一条路径的规则引擎22中找到该转变。如果转变匹配,该方法进行步骤358,在该步骤中,将规则引擎22和用户输入中的指针递增。如果转变不匹配,就在步骤360中建议一种可能的转变,并将补罚(成本)应用于这种可能的转变。在步骤362中,确定继续所建议路径(转变)的总成本是否太大。如果已将附加的补罚应用于所建议的路径,就可能需要添加多重成本。如果成本太大,就在步骤364中放弃特定的路径。因此,不再进一步探索这条路径。如果成本在可接受的范围内,该方法就返回到步骤358,并且使输入和规则引擎22中的指针递增。
递增指针后,确定是否已到达路径的结尾。在步骤366中作出这个确定。如果用户输入中包含附加的转变,该方法就返回步骤354。如果已到达路径的结尾,就在步骤368中确定是否有附加的路径可用。探索完全部路径之后,该方法在步骤370中结束。如果需要探索附加的路径,规则引擎22将在步骤372中探索下一条路径,并且在步骤354中应用一次转变。在步骤372中找到下一条路径的步骤涉及通过规则引擎22向后移动,并且应用一种替代性的转变或重新初始化规则引擎22以便分析下一个输入词。
图7说明了遍历规则引擎22以便根据图6中的方法350同时提供单词断开、拼写检查和词法分析的一个例子。规则引擎22中的指针始于初始状态。
假定输入是“dishes”,遍历词典250,到达词素“dish”的第一个字母‘d’。接着,继之以一次转变,到达词典250中的‘i’。“s:s”转变开始由规则控制的转变,即“sh”后面的名词复数形式可映射为“es”。转变“s:s”和“h:h”使规则引擎22继续到达状态“S2”。在状态“S2”中,到达字母‘h’的词素边界‘+’和词边界‘#’,因此这个字符用作词素和词边界候选。正字规则模块252允许词典250中从词素边界到‘e’的转变,表示为“+:e”。同样,词素组合模块254允许词素“dish”与‘s’组合,表示为转变“s:s”。用户输入与“S3”和“S4”的其余转变匹配。“S4”包含词边界标记,指示用户输入中匹配的词边界。因此,到达状态“S4”之后,拼写检查没有找到错误,单词断开操作已确定在“dishes”之后出现单词断开,词法分析已识别出词素“dish”和“s”。然后便可提供用来指示这些分析结果的输出。
如果用户输入和词典250不匹配,就应用适当的补罚以遍历词典250。例如,如果用户输入“deshes”,就会将补罚“P1”应用于所建议的从‘d’到‘i’的转变。接着,可建议正确的词“dishes”。如果用户错误地输入“dishis”,就会将补罚“P2”应用于从状态“S2”到“S3”的转变,即“+:e”。同样,可建议并输出“dishes”。如上所述,如果补罚太大,就不会对转变进行遍历。结果,正字规则模块252和词素组合模块254确立的规则可以控制词典250中的转变。遍历规则引擎22可以提供高效的词分析。
尽管上文已参考特定的实施例说明本发明,但本领域的技术人员将会认识到,可在形式和细节方面进行更改,而不致脱离本发明的精神和范围。
Claims (13)
1.一种用来分析包含多个转变的输入文本的计算机实施的方法,该方法包括:
对于输入文本中多个转变的各转变:
把输入文本中的转变和规则引擎中的转变相比较,所述输入文本中的转变是从一个字符到另一个字符和从一个字符到一个词边界中的一个转变,并且所述规则引擎中的转变包括从一个字符到另一个字符、从一个字符到字形变化、从一个字符到词素边界和从一个字符到一个词边界中的一个转变,所述字形变化指示了一个特定的词素且在输入文本中的字符应该要映射到词素中的不同字符,所述词素边界指示了一个特定词素的尾部,而所述词边界指示了一个特定词的尾部;
根据在规则引擎内的词素中找到的一个字符,和与按照规则的字形变化相关的输入文本以及与按照规则的词边界相关的输入文本中的至少一个,来确定输入文本中的转变是否在规则引擎中找到;以及
提供所述输入文本中词素、输入文本中的词和输入文本的拼写建议中的至少一个作为输出。
2.根据权利要求1所述的计算机实施的方法,其中,如果确定输入文本中的转变没有在规则引擎的转变中找到,那么该方法还包括建议规则引擎中的一个可能转变,并将成本应用到这个可能转变上。
3.根据权利要求2所述的计算机实施的方法,还包括为规则引擎中没有找到的输入文本中的所有转变计算总成本。
4.根据权利要求3所述的计算机实施的方法,还包括,如果确定所述可能转变的成本太大,就放弃所述的可能转变。
5.根据权利要求1至4中任一项所述的计算机实施的方法,还包括提供一指示,指明输入文本中的转变是一个词边界。
6.根据权利要求1至4中任一项所述的计算机实施的方法,还包括,如果根据词边界确定在规则引擎内的转变中找到输入文本中的转变,就对输入文本进行词法分析。
7.根据权利要求1至4中任一项所述的计算机实施的方法,还包括提供一指示,指明输入文本中的转变是一个词素边界。
8.根据权利要求1至4中任一项所述的计算机实施的方法,还包括,提供对输入文本进行拼写检查分析的指示作为所述确定输入文本中的转变是否在规则引擎中找到的步骤的一项功能。
9.一种用来对输入文本进行词分析的系统,其包括:
词典,用于存储多个自由词素和约束词素;
正字规则模块,用于定义在自由词素中的字符到字形变化中的字符的转变,所述转变至少通过将自由词素中的字符与约束词素组合来改变字符;以及
词素组合模块,用于定义自由词素和约束词素以及字形变化和约束词素的可允许的组合。
10.根据权利要求9所述的系统,其中所述词典包括针对自由词素以及自由词素与约束词素间的可允许组合、字形变化和约束词素间的可允许组合所提供的有关词边界的指示。
11.根据权利要求9至10中任一项所述的系统,其中所述词典包括针对自由词素以及自由词素和约束词素间的可允许组合中的每一个所提供的有关语义信息的指示。
12.根据权利要求9至10中任一项所述的系统,其中所述词典包括针对自由词素以及自由词素和约束词素间的可允许组合、字形变化和约束词素间的可允许组合中的每一个所提供的有关句法信息的指示。
13.根据权利要求9至10中任一项所述的系统,其中,所述词典存储在一个线索结构中,并且其中所述正字规则模块和所述词素组合模块定义了线索结构内的可能转变。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/403,646 US20040193399A1 (en) | 2003-03-31 | 2003-03-31 | System and method for word analysis |
US10/403,646 | 2003-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1542648A CN1542648A (zh) | 2004-11-03 |
CN100361124C true CN100361124C (zh) | 2008-01-09 |
Family
ID=32962382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100324280A Expired - Fee Related CN100361124C (zh) | 2003-03-31 | 2004-03-31 | 用于词分析的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20040193399A1 (zh) |
EP (1) | EP1471440A3 (zh) |
JP (1) | JP2004303240A (zh) |
KR (1) | KR20040086775A (zh) |
CN (1) | CN100361124C (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617089B2 (en) | 2003-04-03 | 2009-11-10 | Microsoft Corporation | Method and apparatus for compiling two-level morphology rules |
US8543378B1 (en) * | 2003-11-05 | 2013-09-24 | W.W. Grainger, Inc. | System and method for discerning a term for an entry having a spelling error |
EP2140376A1 (en) * | 2007-05-01 | 2010-01-06 | International Business Machines Corporation | Method and system for approximate string matching |
US8630841B2 (en) * | 2007-06-29 | 2014-01-14 | Microsoft Corporation | Regular expression word verification |
US9109928B2 (en) * | 2007-08-16 | 2015-08-18 | International Business Machines Corporation | Methods and apparatus for efficient and adaptive transmission of data in data collection networks |
EP2745210A4 (en) * | 2011-08-15 | 2014-11-26 | Equal Media Ltd | SYSTEM AND METHOD FOR MANAGING OPINION NETWORKS WITH INTERACTIVE OPINION FLOWS |
US8380758B1 (en) | 2011-11-14 | 2013-02-19 | Google Inc. | Trie specialization allowing storage of value keyed by patterns and retrieval by tokens |
WO2013137864A1 (en) | 2012-03-13 | 2013-09-19 | Hewlett-Packard Development Company, L.P. | Submatch extraction |
US9558299B2 (en) | 2012-04-30 | 2017-01-31 | Hewlett Packard Enterprise Development Lp | Submatch extraction |
US8725749B2 (en) | 2012-07-24 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Matching regular expressions including word boundary symbols |
CN103680261B (zh) * | 2012-08-31 | 2017-03-08 | 英业达科技有限公司 | 词汇学习系统及其方法 |
WO2014189400A1 (en) | 2013-05-22 | 2014-11-27 | Axon Doo | A method for diacritisation of texts written in latin- or cyrillic-derived alphabets |
US9300322B2 (en) * | 2014-06-20 | 2016-03-29 | Oracle International Corporation | Encoding of plain ASCII data streams |
KR102033395B1 (ko) * | 2014-11-20 | 2019-10-18 | 한국전자통신연구원 | 심층 자연어 질문 분석 기반 구조화된 지식베이스 질의응답 시스템 및 그 방법 |
EP3474095A1 (en) * | 2017-10-23 | 2019-04-24 | Mastercard International Incorporated | System and method for specifying rules for operational systems |
KR20210060857A (ko) * | 2019-11-19 | 2021-05-27 | 현대자동차주식회사 | 메시지 처리 차량 단말기, 시스템 및 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4953088A (en) * | 1986-10-27 | 1990-08-28 | Sharp Kabushiki Kaisha | Sentence translator with processing stage indicator |
US6424983B1 (en) * | 1998-05-26 | 2002-07-23 | Global Information Research And Technologies, Llc | Spelling and grammar checking system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE190156T1 (de) * | 1992-09-04 | 2000-03-15 | Caterpillar Inc | Integriertes entwurf- und übersetzungssystem |
US5485372A (en) * | 1994-06-01 | 1996-01-16 | Mitsubishi Electric Research Laboratories, Inc. | System for underlying spelling recovery |
US5721938A (en) * | 1995-06-07 | 1998-02-24 | Stuckey; Barbara K. | Method and device for parsing and analyzing natural language sentences and text |
US5875443A (en) * | 1996-01-30 | 1999-02-23 | Sun Microsystems, Inc. | Internet-based spelling checker dictionary system with automatic updating |
US6415250B1 (en) * | 1997-06-18 | 2002-07-02 | Novell, Inc. | System and method for identifying language using morphologically-based techniques |
US6131102A (en) * | 1998-06-15 | 2000-10-10 | Microsoft Corporation | Method and system for cost computation of spelling suggestions and automatic replacement |
US6405162B1 (en) * | 1999-09-23 | 2002-06-11 | Xerox Corporation | Type-based selection of rules for semantically disambiguating words |
-
2003
- 2003-03-31 US US10/403,646 patent/US20040193399A1/en not_active Abandoned
-
2004
- 2004-03-23 EP EP04006949A patent/EP1471440A3/en not_active Withdrawn
- 2004-03-24 JP JP2004087791A patent/JP2004303240A/ja active Pending
- 2004-03-30 KR KR1020040021633A patent/KR20040086775A/ko not_active Application Discontinuation
- 2004-03-31 CN CNB2004100324280A patent/CN100361124C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4953088A (en) * | 1986-10-27 | 1990-08-28 | Sharp Kabushiki Kaisha | Sentence translator with processing stage indicator |
US6424983B1 (en) * | 1998-05-26 | 2002-07-23 | Global Information Research And Technologies, Llc | Spelling and grammar checking system |
Also Published As
Publication number | Publication date |
---|---|
JP2004303240A (ja) | 2004-10-28 |
EP1471440A3 (en) | 2006-04-26 |
CN1542648A (zh) | 2004-11-03 |
EP1471440A2 (en) | 2004-10-27 |
KR20040086775A (ko) | 2004-10-12 |
US20040193399A1 (en) | 2004-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5903858A (en) | Translation machine for editing a original text by rewriting the same and translating the rewrote one | |
US5418717A (en) | Multiple score language processing system | |
JP4404211B2 (ja) | マルチリンガル翻訳メモリ、翻訳方法および翻訳プログラム | |
US7797303B2 (en) | Natural language processing for developing queries | |
US7672832B2 (en) | Standardized natural language chunking utility | |
US8185377B2 (en) | Diagnostic evaluation of machine translators | |
US5895446A (en) | Pattern-based translation method and system | |
EP1899835B1 (en) | Processing collocation mistakes in documents | |
CN100361124C (zh) | 用于词分析的系统和方法 | |
US20130061139A1 (en) | Server-based spell checking on a user device | |
WO2010038540A1 (ja) | テキストセグメントを有する文書から用語を抽出するためのシステム | |
US20130060560A1 (en) | Server-based spell checking | |
JP2002215617A (ja) | 品詞タグ付けをする方法 | |
Seraji | Morphosyntactic corpora and tools for Persian | |
CN111046168B (zh) | 用于生成专利概述信息的方法、装置、电子设备和介质 | |
US20070011160A1 (en) | Literacy automation software | |
Nugues | Language processing with Perl and Prolog | |
CN113065002A (zh) | 一种基于知识图谱和上下文语境的中文语义消歧方法 | |
JP7227705B2 (ja) | 自然言語処理装置、検索装置、自然言語処理方法、検索方法およびプログラム | |
US20050267735A1 (en) | Critiquing clitic pronoun ordering in french | |
KR101052004B1 (ko) | 번역서비스 제공방법 및 그 시스템 | |
CN115034209A (zh) | 文本分析方法、装置、电子设备以及存储介质 | |
KR20040018008A (ko) | 품사 태깅 장치 및 태깅 방법 | |
Oostdijk¹ | Using the TOSCA analysis system to analyse a software manual corpus | |
US11017172B2 (en) | Proposition identification in natural language and usage thereof for search and retrieval |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080109 Termination date: 20130331 |