CN107153469B - 为输入数据搜索匹配候选项的方法、数据库创建方法、装置及计算机程序产品 - Google Patents

为输入数据搜索匹配候选项的方法、数据库创建方法、装置及计算机程序产品 Download PDF

Info

Publication number
CN107153469B
CN107153469B CN201610119044.5A CN201610119044A CN107153469B CN 107153469 B CN107153469 B CN 107153469B CN 201610119044 A CN201610119044 A CN 201610119044A CN 107153469 B CN107153469 B CN 107153469B
Authority
CN
China
Prior art keywords
dfa
target data
characteristic
database
target
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.)
Active
Application number
CN201610119044.5A
Other languages
English (en)
Other versions
CN107153469A (zh
Inventor
雷鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lei Peng
Original Assignee
Beijing Qijianyun Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qijianyun Technology Co ltd filed Critical Beijing Qijianyun Technology Co ltd
Priority to CN201610119044.5A priority Critical patent/CN107153469B/zh
Priority to US15/444,267 priority patent/US10528606B2/en
Publication of CN107153469A publication Critical patent/CN107153469A/zh
Application granted granted Critical
Publication of CN107153469B publication Critical patent/CN107153469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3337Translation of the query language, e.g. Chinese to English
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/47Machine-assisted translation, e.g. using translation memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • G06F16/3323Query formulation using system suggestions using document space presentation or visualization, e.g. category, hierarchy or range presentation and selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/53Processing of non-Latin text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)

Abstract

本申请公开了一种用于为输入数据搜索匹配候选项的方法以及一种用于创建数据库DFA(确定有限状态自动机)的方法。用于为输入数据搜索匹配候选项的方法包括:获取输入数据的特征信息;基于所述输入数据的特征信息,生成与所述输入数据对应的特征DFA;用所述输入数据对应的特征DFA去搜索包括多个目标状态的预设数据库DFA,以确定与所述输入数据对应的特征DFA相匹配的目标状态,其中,所述预设数据库DFA中的每个目标状态对应于基于一个目标数据的特征信息生成的特征DFA;以及输出与所述搜索得到的匹配的目标状态相关联的目标数据,作为与所述输入数据对应的匹配候选项。

Description

为输入数据搜索匹配候选项的方法、数据库创建方法、装置及 计算机程序产品
技术领域
本申请涉及计算机技术领域,特别涉及一种用于为输入数据搜索匹配候选项的方法和装置,以及一种用于创建数据库的方法及装置。
背景技术
为用户输入寻找匹配是有普遍适用性的技术问题,在例如输入法领域、搜索引擎领域、人工智能领域、自动翻译领域等都有广泛适用。以输入法为例,拼音输入法是目前主要的一种中文输入方法。因为汉语中存在同音字、多音字现象,所以在使用拼音输入法时可能会出现由于上述问题而导致的输入的汉字错误,例如,将“清华大学”误输入为“青华大学”,将“优惠券(quàn)”误输入为“优惠卷(juàn)”,将“传(zhuàn)记”误输入为“穿(chuān)记”等等。
然而,随着用户对速度和准确率的要求越来越高,现有的匹配技术也需要不断的改进。例如,针对用户的中文输入,现有的中文纠错方法不能够有效地处理和纠正因同音字、多音字或错别字等引起的中文输入错误。因此,需要一种能够有效对因拼音相同或相近或类似原因而导致的输入错误进行纠正的技术。
发明内容
本申请的一个目的在于提供一种用于为输入数据搜索匹配候选项的方法、装置和计算机程序产品,以及一种用于创建数据库的方法、装置和计算机程序产品,以解决现有技术中数据匹配搜索效率较低和占用存储空间过大的问题。
在本申请的一个方面,提供了一种用于为输入数据搜索匹配候选项的方法,包括下述步骤:(1)获取输入数据的特征信息;(2)基于所述输入数据的特征信息,生成与所述输入数据对应的特征DFA(确定有限状态自动机);(3)用所述输入数据对应的特征DFA去搜索包括多个目标状态的预设数据库DFA,以确定与所述输入数据对应的特征DFA相匹配的目标状态,其中,所述预设数据库DFA中的每个目标状态对应于基于一个目标数据的特征信息生成的特征DFA的终止状态;以及(4)输出与搜索得到的匹配的目标状态相关联的目标数据,作为与所述输入数据对应的匹配候选项。
在本申请的另一方面,还提供了一种用于创建数据库DFA的方法,所述数据库DFA包括多个目标状态,用于与外部DFA的终止状态进行搜索匹配,所述方法包括:(A)获取目标数据;(B)获取所述目标数据的特征信息;(C)基于所述目标数据的特征信息,生成与所述目标数据对应的特征DFA;(D)将所生成的目标数据对应的特征DFA的终止状态与所述目标数据关联起来;以及(E)将相互关联的目标数据及其对应的特征DFA添加到所述数据库DFA中,其中,所述目标数据对应的特征DFA的终止状态被作为所述数据库DFA中的一个目标状态。
在本申请的另一些方面,还提供了一种用于为输入数据搜索匹配候选项的装置和计算机程序产品,以及一种用于创建数据库DFA的装置和计算机程序产品。
对于本申请的方法和装置,通过将待搜索的输入数据转换为DFA的形式,输入数据特征信息的各种变化可以被DFA有效涵盖,从而使得搜索过程简化且更有效。此外,所创建的数据库DFA对***存储空间和处理资源的占用少,这使得搜索匹配的处理速度和效率大大提高。
本申请的用于为输入数据搜索匹配候选项的方法和基于本申请的方法创建的数据库DFA可用于多种不同的应用领域,例如,输入数据的纠错应用、中文字符的输入法应用、语音翻译应用、语音识别应用、人工智能中的决策树算法优化,等等。
本发明提出了如何利用DFA来解决匹配用户输入的问题。通过预先创建数据库DFA,然后进行DFA求交运算,来大大提高搜索匹配的速度、效率和准确率。
以上为本发明的概述,必然有简化、概括和省略细节的情况,因此本领域的技术人员应该认识到,该部分仅是例示说明性的,而不旨在以任何方式限定本发明范围。本概述部分既非旨在确定所要求保护主题的关键特征或必要特征,也非旨在用作为确定所要求保护主题的范围的辅助手段。
附图说明
通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本发明内容的上述和其他特征。可以理解,这些附图仅描绘了本发明内容的若干实施方式,因此不应认为是对本发明内容范围的限定。通过采用附图,本发明内容将会得到更加明确和详细地说明。
图1示出了根据本申请一个实施例的用于为输入数据搜索匹配候选项的方法100;
图2a和图2b示出了一个输入数据被转换为对应的特征DFA的例子;
图2c示出了图2a的输入数据被转换为另一特征DFA的例子;图3示出了根据本申请一个实施例的用于创建数据库DFA的方法300;
图4a和图4b示出了一个目标数据被转换为对应的特征DFA的例子;
图5示出了以拓扑逆序方式将“券惠优哺呷哺呷”添加到示例性中间数据库DFA中的例子;
图6示出了根据本申请一个实施例的计算机***600;
图7示出了根据本申请一个实施例的用于创建数据库DFA的装置700。
具体实施方式
在下面的详细描述中,参考了构成其一部分的附图。在附图中,类似的符号通常表示类似的组成部分,除非上下文另有说明。详细描述、附图和权利要求书中描述的例示说明性实施方式并非旨在限定。在不偏离本申请的主题的精神或范围的情况下,可以采用其他实施方式,并且可以做出其他变化。可以理解,可以对本文中一般性描述的、在附图中图解说明的本申请内容的各个方面进行多种不同构成的配置、替换、组合,设计,而所有这些都在明确设想之中,并构成本申请内容的一部分。
汉字输入中存在很多因多音字或形近字导致的输入错误,因而汉字的输入纠错可以利用输入汉字的拼音来实现。例如,用户输入一词条为“柙脯柙脯优惠卷”,其对应的拼音如下表1所示,其中包含了多音字“柙”和“脯”以及错别字“卷”。
jia fu jia fu you hui gun
xia pu xia pu juan
jun
quan
表1
可以理解,用户实际希望输入的正确词条应为“呷哺呷哺优惠券”。该词条对应的拼音如下表2所示,其中包含了多音字“呷”、“哺”和“券”。
jia fu jia fu you hui quan
xia bu xia bu xuan
ga ga
表2
由于这两个词条的拼音至少都包括拼音序列(jia)(fu)(jia)(fu)(you)(hui)(quan)或(xia)(fu)(xia)(fu)(you)(hui)(quan)。因此,基于这两个共享的拼音序列,“呷哺呷哺优惠券”和“柙脯柙脯优惠卷”可以相互关联起来,进一步地,可以利用“呷哺呷哺优惠券”来代替用户输入的错误词条“柙脯柙脯优惠卷”以实现输入纠错。
简言之,上述的中文纠错方法需要将用户输入的中文词条还原为拼音,然后用一个拼音相同的已知正确词语代替错误的中文词条。然而,当被纠错的词条中包括较多的多音字或错别字时,为了准确纠错,需要将这些多音字或错别字还原为对应的多个拼音,这会导致所还原的拼音组合急剧增长。正如表1所示,“呷哺呷哺优惠券”对应的拼音组合有72种,而“柙脯柙脯优惠卷”对应的拼音组合有64种;如果再考虑到仅利用拼音中的声母或韵母来标记中文字符的情况,上述的拼音组合可能会继续成倍的增加。这种拼音组合的“数量***”有可能会导致无法高效地进行输入纠错。尤其是考虑到服务器需要处理海量的用户输入时,数量***的问题会导致服务器难以提供满意的匹配结果,也导致部署服务器的成本过于高昂。
另一方面,发明人发现,由于正则表达式可以用运算符来描述字符或字符串集合之间的逻辑关系,并且中文词条是以确定顺序(线性的)排列的中文字符的组合,因此如果用正则表达式描述中文词条对应的拼音组合或其他英文字符组合,则这些组合的描述可以被极大地简化。
举例说明,基于表1,可以得到用户输入的错误中文词条“柙脯柙脯优惠卷”对应的正则表达式(1)
(xia|jia)(fu|pu)(xia|jia)(fu|pu)(you)(hui)(gun|juan|jun|quan) (1)
而基于表2,可以得到正确的中文词条“呷哺呷哺优惠券”对应的正则表达式(2)
(ga|xia|jia)(bu|pu)(ga|xia|jia)(bu|pu)(you)(hui)(quan|xuan) (2)
这两个正则表达式所定义的字符串集合存在交集(也即相互匹配),则说明可以用“呷哺呷哺优惠券”来纠错“柙脯柙脯优惠卷”。可以理解,在一些情况下,“柙脯柙脯优惠卷”可能存在多个匹配的中文词条。可选地,在获得匹配结果后,如果需要纠错,可以将所有匹配的中文词条都作为“柙脯柙脯优惠卷”的纠错候选结果提供给用户。用户可以再从中选择希望的纠错结果。
通常来说,正则表达式是由字符串构成的一个表达式,用来描述符合特定规则的字符串的集合。正则表达式包括常量和运算符,其中,常量表示字符串集合,运算符表示作用于字符串集合之上的运算。为了能够被计算机读取并处理,词条的正则表达式可以被转换为等价的确定有限状态自动机(Deterministic Finite Automaton,简称DFA),并且利用DFA来实现数据处理过程。
基于上述发明构思,本申请额外地提供了一种用于创建数据库DFA的方法,以及利用所创建的数据库DFA来为一输入数据搜索匹配候选项的方法。利用上述方法,可以高效、快速地对输入的中文字符进行纠错,并且这种方法对***的处理资源占用少。在实际应用中,本申请还可以用于多种其他的应用领域,例如,中文字符的输入法应用、语音翻译应用、语音识别应用、人工智能中的决策树算法优化,等等。在下文中,以对输入中文字符进行拼音纠错为例对本申请的方法和装置进行说明,但是可以理解,这种说明和描述仅仅是示例性而非限制性的。
可以理解,在一些实施例中,数据库DFA可以被集成在用户使用的个人终端上,例如手机、平板电脑、个人计算机或其他智能电子设备;相应地,可以由个人终端来执行为输入数据搜索匹配候选项的方法。在另一些实施例中,数据库DFA可以被设置在服务器等远程处理设备上,而输入数据可以是用户使用个人终端发送到该远程处理设备的数据;相应地,可以由该远程处理设备来执行为输入数据搜索匹配候选项的方法。
图1示出了根据本申请一个实施例的用于为输入数据搜索匹配候选项的方法100。在图1所示的实施例中,该方法100被用于进行中文字符的拼音纠错,也即输入数据为中文字符串,例如搜索关键词等。可以理解,在一些其他的应用场合中,输入数据也可以为拼音字符串(例如汉语拼音)、外文字符串(例如英语单词)、语音输入,或者其他由顺序排列的多个数据项构成的序列。
如图1所示,在步骤S102,获取输入数据的特征信息。
具体地,输入数据是中文字符串,其可以是用户在使用搜索应用时输入的搜索关键词。例如,该搜索关键词可以是主要由多个汉字构成的中文字符串,或者还可以包括其他类型的字符,例如数字、拼音或外语单词。可选地,在步骤S102中,可以仅处理搜索关键词中包括的中文字符,或者一并处理搜索关键词中包括的中文字符以及数字字符、拼音字符和/或外语字符。例如,搜索关键词可以为“柙脯柙脯youhuiquan”,其中包含中文字符串“柙脯柙脯”和拼音字符串“youhuiquan”。在一些例子中,在搜索匹配候选项时,可以仅处理搜索关键词中包括的中文字符串“柙脯柙脯”,而不处理拼音字符串“youhuiquan”。而在另一些例子中,在搜索匹配候选项时,可以同时处理搜索关键词中包括的汉字词条“柙脯柙脯”以及拼音字符“youhuiquan”。优选地,可以将汉字词条“柙脯柙脯”以及拼音字符“youhuiquan”共有的特征信息提取出来,以进行后续匹配处理。例如,可以将汉字词条“柙脯柙脯”对应的拼音提取出来。
可选地,在一些实施例中,输入数据的特征信息可以是中文字符串中的中文字符或相邻多个中文字符对应的汉语拼音、特征字形或外语单词。其中,中文字符串中包括的每个中文可以对应于一个或多个拼音,或者相邻的两个或更多个中文字符可以对应于一个或多个外语单词。需要说明的是,中文字符或字符串的特征信息可以是符合常用字典定义或语法标准的,但也可以是对应于常见错误或明显错误的而预先定义。例如,对于中文词条“柙脯柙脯优惠卷”,其中每个汉字的拼音参见表1,这些拼音都是在多音字字典中定义的。此外,对于相邻的汉字“优惠卷”,其还可以对应于英语单词“coupon”,虽然汉英词典中通常包括的词条是“优惠券-coupon”,但是“优惠卷”显然是“优惠券”的错误输入,因此出于纠错的目的,可以将“优惠卷”与英语单词“coupon”关联起来。需要说明的是,在此所述的拼音包括汉字的全拼,也可以仅包括汉字全拼中的声母。例如,根据表1,对于汉字“柙”的全拼为“xia”和“jia”,则其对应的拼音可以为“xia”和“jia”或“x”和“j”。此外,拼音还可以包括汉字易读错的拼音,例如,对于汉字“女”的全拼为“nv”,其容易被错读成“lv”,因此,其对应的拼音可以包括“nv”和“lv”。
在另一些例子中,输入数据的特征信息也可以是搜索关键词中各个汉字字符的特征字形。例如,对于中文词条“柙脯柙脯”中的“柙”,其特征字形可以为“甲”,而“脯”的特征字形可以为“甫”。
在一些实施例中,可以通过预设的特征信息数据库来确定输入数据的特征信息。具体地,特征信息数据库可以是一汉语字典、易错字字典、汉语-外语字典或其他类似的数据库。特征信息数据库可以预先创建。根据具体应用的不同,特征信息数据库中包括的特征信息的量可以增多或减少。例如,对于拼音纠错而言,为了避免遗漏,可以将每个汉字的所有可能拼音全部都包括在特征信息数据库中。具体地,特征信息数据库存储有多个数据项,并且特征信息数据库相互关联地存储数据项及与其对应的特征信息,其中数据项的数据类型与输入数据的数据类型相同。例如,汉语字典中包括汉字以及每个汉字可能采用的拼音;易错字字典包括汉字以及与每个汉字同音、近音或字形相似的汉字;汉语-外语字典包括汉语词条以及对应的外语单词,例如英语单词。对于输入数据中包括的每个数据项或多个相邻的数据项,可以搜索特征信息数据库以确定与其匹配的特征信息。
接着,在步骤S104中,基于输入数据的特征信息,生成与输入数据对应的特征确定有限状态自动机(DFA)。
图2a和图2b示出了一个输入数据被转换为对应的特征DFA的例子。
如图2a所示,输入数据“柙脯柙脯优惠卷”是一个汉字字符串,其包括顺序排列的“柙”、“脯”、“柙”、“脯”、“优”、“惠”和“卷”。相应地,当采用DFA形式时,该输入数据可以表示为具有八个状态的线性DFA,其中每个汉字字符是使得该线性DFA发生状态转移的状态转移字符或符号。
结合表1所示的“柙脯柙脯优惠卷”的拼音,“柙脯柙脯优惠卷”可以被转换为对应的特征DFA,图2b是特征DFA对应的NFA(非确定有限状态自动机),其可用正则表达式(1)表示。该NFA具有等价的DFA,并且一个DFA和一个正则表达式存在一一对应关系。
在实际应用中,可以基于输入数据中的数据项或多个相邻数据项的特征信息,分别地创建对应的子特征DFA。例如,由于汉语拼音通常包括一串拼音字符,因此,每个拼音实质上对应于一个子DFA。例如,对于汉字“柙”,可以用其拼音“jia”和“xia”创建对应的子特征DFA,该子特征DFA可以由正则表达式(xia|jia)表示。接着,可以将所创建的全部子特征DFA连接起来,例如用ε转移将这些子特征DFA连接起来,形成与输入数据对应的DAG(有向无环图)形状的非确定有限状态自动机(NFA),所得到的NFA即为输入数据对应的特征NFA。之后,可以将该特征NFA转化为特征DFA。将NFA转换为DFA可以采用现有方法,例如幂集构造法,在此不再赘述。
图2c示出了图2a的输入数据被转换为另一特征DFA的例子。
如图2c所示,不同于图2b所示的DFA,图2c所示的特征NFA中还包括了词条“优惠卷”对应的英语单词“coupon”,其与“优惠卷”的汉语拼音正则表达式(you)(hui)(gun|juan|jun|quan)并列。相应地,图2c所示的特征NFA可由正则表达式(3)表示。
(xia|jia)(fu|pu)(xia|jia)(fu|pu)(((you)(hui)(gun|juan|jun|quan))|(coupon)) (3)
可以理解,每个特征DFA都是包括多个状态的自动机,其能够基于状态转移字符实现这些状态之间的状态转移。每个特征DFA都包括终止状态(也称作接受状态)。该终止状态对应于接受给定字符串的状态,例如图2b所示的特征NFA的终止状态可以是接受了字符串(jia)(fu)(jia)(fu)(you)(hui)(quan)或(xia)(fu)(xia)(fu)(you)(hui)(quan)后的状态。
在得到输入数据对应的特征DFA之后,在步骤S106中,用输入数据对应的特征DFA去搜索包括多个目标状态的预设数据库DFA,以确定与输入数据对应的特征DFA相匹配的目标状态。其中,预设数据库DFA中的每个目标状态是基于一个目标数据的特征信息生成的特征DFA的终止状态。所确定的匹配的目标状态应与输入数据对应的特征DFA的终止状态相匹配。
具体地,预设数据库DFA中存储有多个目标数据,并且每个目标数据关联于一个对应的特征DFA。在一些实施例中,目标数据可以与输入数据具有相同的数据类型,例如在中文字符的纠错应用中,目标数据通常也是中文字符串,其与输入数据(中文字符串)的数据类型相同。举例来说,输入数据可以是“柙脯柙脯优惠卷”,而目标数据可以是“呷哺呷哺优惠券”或其他具有类似拼音的中文词条。
可以理解,取决于具体应用场合的不同,目标数据可以与输入数据具有不同的数据类型。例如,对于拼音输入法应用,输入数据可以是拼音字符串(可以包括或不包括将相邻拼音分隔开的分隔符),其特征信息则是拼音字符串对应的拼音特征(该拼音字符串被根据汉语拼音语法分隔开来)。举例来说,输入数据可以是“xiabuxiabuyouhuiquan”,而目标数据可以是“呷哺呷哺优惠券”,可以理解,预设数据库DFA中的目标数据也可以用目标数据的标识来代替,例如唯一地标识目标数据的标识码或标识符等。通过该标识码或标识符,可以唯一地确定目标数据(例如通过一由标识码或标识符索引的目标数据数据库)。可以看出,目标数据通常是预先确定的正确数据。
正如前述,每个目标数据均具有与其对应的特征DFA。该特征DFA是基于目标数据的特征信息生成的。在一些实施例中,与目标数据相关联的特征DFA的生成方式可以相同于或相似于与输入数据对应的特征DFA的生成方式。例如,目标数据可以是中文字符串“呷哺呷哺优惠券”,其对应的特征DFA可以由正则表达式(2)表示。关于目标数据对应的特征DFA的创建和生成可以参考输入数据对应的特征DFA的生成方式,在此不再赘述。
目标数据对应的特征DFA也具有终止状态,也即预设数据库DFA中的目标状态。在一些实施例中,在预设数据库DFA中,目标数据和与其对应的特征DFA可以通过分隔符来连接,从而使得目标数据对应的特征DFA的终止状态与目标数据相互关联。可以理解,目标数据(例如中文字符串)也可以被看作为一个线性DFA,其可以以DFA形式存储在数据库DFA中。该线性DFA包括多个状态,每两个状态之间的状态转移取决于目标数据中的各个数据项。分隔符可以使得目标数据对应的特征DFA的终止状态与DFA形式的目标数据的状态相关联,例如与其起始状态相关联。这样,当一个匹配的字符串输入使得目标数据对应的特征DFA转移到其终止状态后,通过识别该分隔符并进一步地进行后续状态转移,即可得到相应的目标数据。
例如,由分隔符连接的中文字符串“呷哺呷哺优惠券”以及其所对应的DFA(正则表示式(2)表示)可以由正则表达式(4)表示:
(ga|xia|jia)(bu|pu)(ga|xia|jia)(bu|pu)(you)(hui)(quan|xuan)\t呷哺呷哺优惠券(4)
其中,分隔符连接“\t”连接了特征DFA与目标数据。在实际应用中,分隔符可以是任何不属于目标数据和特征信息的标记符号,例如,分隔符还可以采用其他标记符号(例如“\n”,“#”,“$”等)。当与特征DFA连接在一起时,目标数据的字符串相当于一个线性DFA。优选地,特征DFA的终止状态被设置在DFA形式的目标数据之前,正如正则表达式(4)所示。实质上来说,通过分隔符连接的特征DFA与目标数据仍然是一个DFA。
可以看出,当输入数据对应的特征DFA中存在一条与一个DFA条目相同的路径时,例如正则表达式4表示的DFA与输入数据“柙脯柙脯优惠卷”对应的特征DFA均包含拼音序列(jia)(fu)(jia)(fu)(you)(hui)(quan)或(xia)(fu)(xia)(fu)(you)(hui)(quan),则可以认为目标状态同输入数据对应的特征DFA的终止状态相匹配。在这种情况下,目标数据“呷哺呷哺优惠券”即可作为与输入数据“柙脯柙脯优惠卷”匹配的一个匹配候选项。
在一些实施例中,步骤S106的匹配操作可以通过将输入数据对应的特征DFA与预设数据库DFA进行求交运算进行。可以基于求交运算的结果,确定一个或多个匹配候选项。
特征DFA与预设数据库DFA的求交,其实质上是将两个DFA的状态转移集合按照对应的状态转移字符进行求交,从而确定相匹配的状态。具体地,求交操作可以以下述方式进行。首先,可以将特征DFA的初始状态(s0)与预设数据库DFA的初始状态(d0)(整个数据库DFA可以看作为一个大的DFA,其仅具有一个初始状态)配对。之后,将特征DFA初始状态(s0)的至少一个状态转移字符与数据库DFA初始状态(d0)的所有状态转移字符进行比较,如果状态s0的至少一个状态转移字符中存在与状态d0的状态转移字符相同的状态转移字符,则将状态s0对于该相同的状态转移字符的下一个状态(s1)与状态d0对于该相同状态转移字符的下一个状态(d1)配对,则采用相同的方法,继续比较特征DFA的状态s1的状态转移字符和数据库DFA的状态d1的状态转移字符,以得到特征DFA的状态(s2)和数据库DFA的状态(d2)的新的配对。经多次比较后,直至得到特征DFA的终止状态(st)为止,此时,数据库DFA的状态(dt)与特征DFA的终止状态st相配对,可选地,将数据库DFA的状态(dt)对于状态转移字符为分隔符时的下一状态确定为与特征DFA匹配的目标状态。
之后,在步骤S108中,输出与搜索得到的匹配的目标状态相关联的目标数据,作为与输入数据对应的匹配候选项。
例如,可以将字符串“呷哺呷哺优惠券”输出,作为字符串“柙脯柙脯优惠卷”的匹配候选项。可以理解,在实际应用中,当检索到一个输入数据存在多个匹配的目标状态时,可以将这些目标状态关联的目标数据全部输出。用户可以根据自己的需求从这些目标数据中选择需要的数据。
可选地,在一些实施例中,在步骤S108之后,还可以包括步骤S110,接收用户的选择输入,以及步骤S112,基于用户的选择输入,从多个匹配候选项中选择一个匹配项。
上述步骤执行后,用户提供的输入数据即可被转换为匹配的目标数据。这种搜索匹配过程较为简化且更有效。此外,所创建的数据库DFA对***存储空间和处理资源的占用少,这使得搜索匹配的处理速度和效率大大提高。
图3示出了根据本申请一个实施例的用于创建数据库DFA的方法300。通过方法300所创建的数据库DFA可以用于输入数据的匹配搜索,正如图1所示的方法中的步骤S106所述。其中,数据库DFA中包括多个目标状态,每个目标状态用于与外部DFA进行搜索匹配,并且每个目标状态实质上都是一个目标数据对应的特征DFA的终止状态。可以理解,该数据库DFA中每个目标状态的添加方式通常是相同或相似的。因此,在下面的描述中,仅以创建和添加一个目标状态为例进行说明,但是本领域技术人员可以理解,多个目标状态的添加可以通过重复地执行下述方法中的全部或部分步骤来实现。
如图3所示,首先,在步骤S302中,获取目标数据。
具体地,根据数据库DFA具体应用场合的不同,目标数据的类型也不同。在一些实施例中,数据库DFA被用于中文字符串的纠错,则目标数据可以是关键词(汉语词条)。在另一些实施例中,数据库DFA被用于拼音输入法应用,则目标数据也可以是汉语词条。在又一些实施例中,数据库DFA被用于语音识别,则目标数据可以是文字词条,例如汉语或英语词条。
接着,在步骤S304中,获取目标数据的特征信息。
为了创建目标状态,还需要获取目标数据的特征信息。目标数据的特征信息通常取决于数据库DFA的应用场合,以及目标数据的数据类型。在一些实施例中,数据库DFA被用于输入数据的纠错应用,目标数据包括中文字符串,则特征信息包括中文字符串中的中文字符或相邻多个中文字符对应的汉语拼音、外语单词或特征字形。在另一些实施例中,数据库DFA被用于输入法应用,目标数据包括中文字符,则目标数据的特征信息包括中文字符对应的拼音特征,例如汉语拼音。在又一些实施例中,数据库DFA被用于语言翻译应用,目标数据包括中文词条,则目标数据的特征信息包括中文词条对应的外文单词特征。在一些实施例中,数据库DFA被用于语音识别应用,目标数据包括文字字符,则目标数据的特征信息包括文字字符对应的发音特征,例如汉语拼音或外语音标。
此外,正如结合图1所示的实施例所说明,可以通过预设的特征信息数据库来确定输入数据的特征信息。类似地,目标数据中各个目标数据项对应的特征信息也可由预设的特征信息数据库来确定,其中该特征信息数据库可以是一汉语字典、易错字字典、汉语-外语字典或其他类似的数据库。在此不再赘述。
之后,在步骤S306中,基于目标数据的特征信息,生成与目标数据对应的特征DFA。
图4a和图4b示出了一个目标数据被转换为对应的特征DFA的例子。
如图4a所示,目标数据“呷哺呷哺优惠券”是一个汉字字符串,其包括顺序排列的“呷”、“哺”、“呷”、“哺”、“优”、“惠”和“券”。相应地,当采用DFA形式时,该目标数据可以表示为具有八个状态的线性DFA,并且这八个状态是按照目标数据中的各个目标数据项的排列顺序进行状态转移的,其中每个汉字字符是使得该线性DFA发生状态转移的状态转移字符或符号。
结合表2所示的“呷哺呷哺优惠券”的拼音,图4a所示的“呷哺呷哺优惠券”DFA可以被转换为图4b所示的特征NFA,该特征NFA可以由正则表达式(2)表示。进一步地,可以将特征NFA转换为对应的特征DFA。其中,该特征DFA具有一个终止状态(也称作接受状态)
接着,在步骤S308中,将所生成的目标数据对应的特征DFA的终止状态与目标数据关联起来。
具体地,目标数据和与其对应的特征DFA可以通过分隔符来连接,从而使得目标数据对应的特征DFA的终止状态与DFA形式的目标数据的状态相互关联。这样,当一个匹配的字符串输入使得目标数据对应的特征DFA转移到其终止状态后,通过识别该分隔符并进一步地进行后续状态转移,即可确定相应的目标数据。例如,由分隔符连接的中文字符串“呷哺呷哺优惠券”以及其所对应的DFA(正则表示式(2)表示)可以由正则表达式(4)表示。当与特征DFA连接在一起时,目标数据的字符串相当于一个线性DFA。优选地,特征DFA的终止状态被设置在DFA形式的目标数据之前,正如正则表达式(4)所示。实质上来说,通过分隔符连接的特征DFA与目标数据仍然是一个DFA。
之后,在步骤S310中,将相互关联的目标数据及其对应的特征DFA添加到数据库DFA中,其中,目标数据对应的特征DFA的终止状态被作为数据库DFA中的一个目标状态。
例如,可以通过将所得到的DFA与数据库DFA中已有的DFA的集合求并的方式,来将该DFA添加到数据库DFA中。在一些实施例中,可以通过增量方式将相互关联的目标数据及其对应的特征DFA添加到数据库DFA中。
然而,将正则表达式(4)表示的DFA直接添加到数据库DFA中可能会使得生成数据库DFA的过程中消耗过多的内存,为了解决这个问题,在步骤S310中可以使用下述步骤来创建数据库DFA:
首先,对步骤S308得到的关联的目标数据及其特征DFA进行翻转。例如,翻转后,正则表达式(4)对应的DFA可以示例性地由下述正则表达式(5)表示。
券惠优哺呷哺呷\t(naux|nauq)(iuh)(uoy)(uf|up)(aij|aix)(uf|up)(aij|aix)(5)
需要说明的是,由于汉字包括两个字节,翻转汉字实际上需要把将每个汉字包括的所有字节都反过来,但是按字节反过来之后就是乱码了,上面的例子中以汉字为单位翻转只是为了便于理解。其中,正则表达式(5)中,分隔符“\t”之前的正则表达式“券惠优哺呷哺呷”称为为前缀,分隔符之后的正则表达式“(naux|nauq)(iuh)(uoy)(uf|up)(aij|aix)(uf|up)(aij|aix)”称为后缀。
之后,先在中间数据库DFA中加入前缀“券惠优哺呷哺呷”(这个过程中可能创建也可能不创建新的状态),然后在该前缀的目标状态上创建一个新的“\t”的状态转移。这个状态转移的目标状态是正则表达式(5)中的后缀对应的DFA(\t之后的部分)的根状态,最后按拓扑逆序依次将正则表达式(5)对应的DFA合并到中间数据库DFA中,合并过程中会消除等价状态。其中,中间数据库DFA是创建数据库DFA过程中的一个临时性数据库,而拓扑逆序是拓扑排序的逆序。
当以拓扑逆序方式添加状态时,正则表达式(5)对应的DFA中的各个状态被逆序地排序,以得到拓扑逆序排列状态序列。之后,依次以拓扑逆序排列状态序列中的每个状态在数据库DFA中进行搜索,以确定数据库DFA中是否存在该状态的等价状态:如果不存在等价状态,则将该状态添加到数据库DFA中;如果存在等价状态,则不添加该状态到数据库DFA中,但将该状态之后的状态关联到已有的等价状态之后。这使得很多DFA可以共用前缀,并且使得很多等价状态被合并,因此采用拓扑逆序方式生成的数据库DFA可以是最小化的。最小化的数据库DFA可以大大减小对存储空间的占用。
图5示出了以拓扑逆序方式将“券惠优哺呷哺呷”添加到中间数据库DFA中的例子。如图5所示,假设原有的中间数据库DFA中存在“券惠优王大和永”DFA(翻转后的“永和大王优惠券”),但是不存在例如“券惠优哺呷”或类似的DFA。在添加“券惠优哺呷哺呷”的过程中,先添加前缀“券惠优哺呷哺呷”,其中“券惠优”在中间数据库DFA中已存在,不需要创建新状态,而需要为“哺呷哺呷”创建新状态(B4,B5,B6,B7),再将状态B7用分隔符\t链接到状态B8(也即B7通过\t状态转移到B8)。由于分隔符\t之后紧接着特征DFA,因而状态B8实质上是特征DFA的初始状态(即根状态)。经过整个特征DFA的状态转移字符后(图上省略了很多拼音DFA的中间状态),状态B8转移到状态B9,其是特征DFA的终止状态。接下来,可以从状态B9开始,用拓扑逆序依次消除1到B9中的所有与现有中间数据库DFA等价的状态。等价状态的消除可以使得中间数据库DFA最小化。
在将翻转后的所有DFA均添加到中间数据库DFA后,继续对得到的中间数据库DFA再进行一次翻转操作(整体地翻转操作),从而得到数据库DFA。该翻转操作使得每个目标数据对应的特征DFA的终止状态位于目标数据之前,正如正则表达式(4)所示。
经过上述步骤后,即可得到所需的数据库DFA。可以看出,由于很多DFA共用了前缀,并且消除了很多等价状态,这使得数据库DFA最小化。最小化的数据库DFA大大减小了内存用量。
在进行搜索匹配时,该数据库DFA中每个关联的目标数据及其特征DFA都是从特征DFA的状态开始进行搜索的。这样,当该数据库DFA被用于与输入数据进行搜索匹配时,输入数据对应的特征DFA可以与目标数据对应的特征DFA进行匹配,以确定与输入特征DFA的终止状态匹配的目标状态。当确定匹配的目标状态后,该目标状态所关联的目标数据即可被输出,作为匹配候选项提供给用户。
图6示出了根据本申请一个实施例的计算机***600的框图。该计算机***600包括了用于为输入数据搜索匹配候选项的装置620。
如图6所示,计算机***600包括用户终端610和用于为输入数据搜索匹配候选项的装置620,其可以通过网络(例如有线网络或无线网络)相互连接以交互数据。其中,装置620可以被设置在服务器端,作为网络服务器向用户端的用户终端610提供数据处理服务。用户终端610可以是任何类型的具有数据输入/输出和/或数据处理功能的设备,例如,移动终端、PC、路由器、无线通信设备或者另一台服务器等等。
装置620通过输入/输出端口622连接到网络,进而与用户终端610进行数据交互,例如获取用户终端610提供的输入数据,并且向用户终端610提供目标数据。
具体地,装置620包括:特征信息获取装置624,用于获取输入数据的特征信息;特征DFA生成装置626,用于基于所述输入数据的特征信息,生成与所述输入数据对应的特征DFA;搜索装置628,用于用所述输入数据对应的特征DFA去搜索包括多个目标状态的预设数据库DFA640,以确定与所述输入数据对应的特征DFA相匹配的目标状态,其中,所述预设数据库DFA中的每个目标状态是基于一个目标数据的特征信息生成的特征DFA的终止状态;以及目标数据输出装置630,用于输出与搜索得到的匹配的目标状态相关联的目标数据,作为与所述输入数据对应的匹配候选项。在图6所示的实施例中,数据库DFA640可以被设置在装置620的外部。但是在一些实施例中,数据库DFA640也可以被与装置620集成在一起。例如,数据库DFA640、装置620以及输入/输出端口622都可以被集成在服务器中。可以理解,服务器可以是任何类型的服务器或者实现服务器功能的计算机设备。除了图6所示的装置620、数据库DFA640,服务器还可以包括其他模块,例如数据存储装置,用于为服务器保存所需要的数据以及处理后得到的数据。数据存储装置可以是任何类型的数据存储设备,例如,硬盘存储器、磁带存储器、RAM/ROM、FLASH存储器等等。在一个实施例中,数据存储装置保存服务器对数据进行处理后得到中间结果或者最终结果。
此外需要说明的是,在一些实施例中,本申请所示的用于为输入数据搜索匹配候选项的装置也可以被集成在用户终端,例如个人计算机或移动终端上。相应地,数据库DFA可以被集成在用户终端上,或者被设置在服务器端。具体结构框图在本说明书中不再赘述,本领域技术人员应该可以清楚地了解对应的实现方式。
图7示出了一种用于创建数据库DFA的装置700,所述数据库DFA包括多个目标状态,用于与外部DFA进行搜索匹配。如图7所示,该装置700包括:目标数据获取装置702,用于提供目标数据;特征信息获取装置704,用于获取所述目标数据的特征信息;特征DFA生成装置706,用于基于所述目标数据的特征信息,生成与所述目标数据对应的特征DFA;特征DFA及目标数据关联装置708,用于将所生成的目标数据对应的特征DFA的终止状态与所述目标数据关联起来;以及特征DFA及目标数据添加装置710,用于将相互关联的目标数据及其对应的特征DFA添加到所述数据库DFA中,其中,所述目标数据对应的特征DFA的终止状态被作为所述数据库DFA中的一个目标状态。
关于图6和图7所示的本申请的装置实施例,其运行可以参考图1和图3所示的方法实施例,在此不再赘述。
需要说明的是,图6和图7所示的结构方框图仅仅为了示例的目的而示出的,并非是对本发明的限制。在一些情况下,可以根据需要添加或者减少其中的一些模块。
在一些实施例中,本申请还提供了一些计算机程序产品,其包括非暂态计算机可读存储介质。该非暂态计算机可读存储介质包括计算机可执行的代码,用于执行图1或图3所示的方法实施例中的步骤。在一些实施例中,计算机程序产品可以被存储在图6或图7所示的***或装置中。
本发明的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行***,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当注意,尽管在上文详细描述中提及了若干装置或子装置,但是这种划分并非强制性的。实际上,根据本发明的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。那些本技术领域的一般技术人员可以通过研究说明书、公开的内容及附图和所附的权利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排除其他的元素和步骤,并且措辞“一”、“一个”不排除复数。在发明的实际应用中,一个零件可能执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。

Claims (25)

1.一种用于为输入数据搜索匹配候选项的方法,其特征在于,包括下述步骤:
(1)获取输入数据的特征信息;
(2)基于所述输入数据的特征信息,生成与所述输入数据对应的特征DFA,DFA为确定有限状态自动机;
(3)用所述输入数据对应的特征DFA去搜索包括多个目标状态的预设数据库DFA,以确定与所述输入数据对应的特征DFA相匹配的目标状态,其中,所述预设数据库DFA中的每个目标状态对应于基于一个目标数据的特征信息生成的特征DFA;以及
(4)输出与所述搜索得到的匹配的目标状态相关联的目标数据,作为与所述输入数据对应的匹配候选项;
所述步骤(1)包括:
基于预设特征信息数据库,确定所述输入数据中的各个输入数据项对应的特征信息,其中所述预设特征信息数据库相互关联地存储数据项与对应的特征信息。
2.根据权利要求1所述的方法,其特征在于,所述步骤(2)包括:
基于所述输入数据中的数据项或多个相邻数据项的特征信息,分别地创建对应的子特征DFA;
将所创建的子特征DFA连接起来,形成与所述输入数据对应的特征NFA,NFA为非确定有限状态自动机;以及
将所述特征NFA转化为特征DFA。
3.根据权利要求1所述的方法,其特征在于,所述预设数据库DFA是通过下述步骤创建的:
(A)获取目标数据;
(B)获取所述目标数据的特征信息;
(C)基于所述目标数据的特征信息,生成与所述目标数据对应的特征DFA;
(D)将所生成的目标数据对应的特征DFA的终止状态与所述目标数据关联起来;以及
(E)将相互关联的目标数据及其对应的特征DFA添加到所述预设数据库DFA中。
4.根据权利要求3所述的方法,其特征在于,所述目标数据被以DFA形式存储,所述步骤(D)包括:
用分隔符连接目标数据对应的特征DFA与目标数据,以使得目标数据对应的特征DFA的终止状态与DFA形式的目标数据的状态相互关联。
5.根据权利要求3所述的方法,其特征在于,所述步骤(E)包括:
以增量方式将相互关联的目标数据及其对应的特征DFA添加到所述预设数据库DFA中。
6.根据权利要求3所述的方法,其特征在于,所述步骤(E)包括:
对相互关联的目标数据及其对应的特征DFA进行翻转;
以拓扑逆序方式将翻转后的相互关联的目标数据及其对应的特征DFA添加到中间数据库DFA中;以及
对所述中间数据库DFA进行翻转,以得到所述预设数据库DFA,其中在所述预设数据库DFA中,每个目标数据对应的特征DFA的终止状态位于所述目标数据之前。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
(5)接收用户的选择输入;
(6)基于所述用户的选择输入,从所述匹配候选项中选择一个匹配项。
8.根据权利要求1所述的方法,其特征在于,所述方法被用于输入数据的纠错应用,其中所述输入数据和所述目标数据均包括中文字符串,所述特征信息包括中文字符串中的中文字符对应的汉语拼音、外语单词或特征字形;或者所述特征信息包括相邻多个中文字符对应的汉语拼音、外语单词或特征字形。
9.根据权利要求1所述的方法,其特征在于,所述方法被用于输入法应用,其中所述输入数据包括拼音字符串,所述输入数据的特征信息包括拼音字符串对应的拼音特征;所述目标数据包括中文字符。
10.根据权利要求1所述的方法,其特征在于,所述方法被用于语言翻译应用,其中所述输入数据包括外文字符串,所述输入数据的特征信息包括外文单词特征;所述目标数据包括中文词条。
11.根据权利要求1所述的方法,其特征在于,所述方法被用于语音识别应用,所述输入数据包括语音输入,所述输入数据的特征信息包括所述语音输入中的发音特征;所述目标数据包括与所述语音输入对应的文字字符。
12.一种用于创建数据库DFA的方法,所述数据库DFA包括多个目标状态,用于与外部DFA进行搜索匹配,其特征在于,所述方法包括:
(A)获取目标数据;
(B)获取所述目标数据的特征信息;
(C)基于所述目标数据的特征信息,生成与所述目标数据对应的特征DFA,DFA为确定有限状态自动机;
(D)将所生成的目标数据对应的特征DFA的终止状态与所述目标数据关联起来;以及
(E)将相互关联的目标数据及其对应的特征DFA添加到所述数据库DFA中,其中,所述目标数据对应的特征DFA的终止状态被作为所述数据库DFA中的一个目标状态。
13.根据权利要求12所述的方法,其特征在于,所述步骤(B)包括:
基于预设特征信息数据库,确定所述目标数据中的各个目标数据项对应的特征信息,其中所述预设特征信息数据库相互关联地存储所述数据项与对应的特征信息。
14.根据权利要求12所述的方法,其特征在于,所述步骤(C)包括:
基于所述目标数据中的数据项或多个相邻数据项的特征信息,分别地创建对应的子特征DFA;
将所创建的子特征DFA连接起来,形成与所述目标数据对应的特征NFA,NFA为非确定有限状态自动机,以及
将所述特征NFA转化为特征DFA。
15.根据权利要求12所述的方法,其特征在于,所述步骤(D)包括:
用分隔符连接目标数据对应的特征DFA与目标数据,以使得目标数据对应的特征DFA的终止状态与目标数据相关联。
16.根据权利要求15所述的方法,其特征在于,所述目标数据被以DFA形式存储,所述分隔符将目标数据对应的特征DFA的终止状态与DFA形式的目标数据的状态相关联。
17.根据权利要求12所述的方法,其特征在于,所述步骤(E)包括:
对相互关联的目标数据及其对应的特征DFA进行翻转;
以拓扑逆序方式将翻转后的相互关联的目标数据及其对应的特征DFA的状态添加中间数据库DFA中;以及
对所述中间数据库DFA进行翻转,以得到所述数据库DFA,其中在所述数据库DFA中,每个目标数据对应的特征DFA的终止状态位于所述目标数据之前。
18.根据权利要求12所述的方法,其特征在于,所述数据库DFA被用于输入数据的纠错应用,其中所述目标数据包括中文字符串,所述特征信息包括中文字符串中的中文字符对应的汉语拼音、外语单词或特征字形;或者所述特征信息包括相邻多个中文字符对应的汉语拼音、外语单词或特征字形。
19.根据权利要求12所述的方法,其特征在于,所述数据库DFA被用于输入法应用,其中所述目标数据包括中文字符,所述目标数据的特征信息包括中文字符对应的拼音特征。
20.根据权利要求12所述的方法,其特征在于,所述数据库DFA被用于语言翻译应用,其中所述目标数据包括中文词条,所述目标数据的特征信息包括中文词条对应的外文单词特征。
21.根据权利要求12所述的方法,其特征在于,所述数据库DFA被用于语音识别应用,其中所述目标数据包括文字字符,所述目标数据的特征信息包括文字字符对应的发音特征。
22.一种用于为输入数据搜索匹配候选项的装置,其特征在于,所述装置包括:
用于获取输入数据的特征信息的装置;
用于基于所述输入数据的特征信息,生成与所述输入数据对应的特征DFA的装置,其中,DFA为确定有限状态自动机;
用于用所述输入数据对应的特征DFA去搜索包括多个目标状态的预设数据库DFA,以确定与所述输入数据对应的特征DFA相匹配的目标状态的装置,其中,所述预设数据库DFA中的每个目标状态对应于基于一个目标数据的特征信息生成的特征DFA;以及
用于输出与所述搜索得到的匹配的目标状态相关联的目标数据,作为与所述输入数据对应的匹配候选项的装置;
用于获取输入数据的特征信息的装置设置为基于预设特征信息数据库,确定所述输入数据中的各个输入数据项对应的特征信息,其中所述预设特征信息数据库相互关联地存储数据项与对应的特征信息。
23.一种用于创建数据库DFA的装置,所述数据库DFA包括多个目标状态,用于与外部DFA进行搜索匹配,其特征在于,所述装置包括:
用于获取目标数据的装置;
用于获取所述目标数据的特征信息的装置;
用于基于所述目标数据的特征信息,生成与所述目标数据对应的特征DFA的装置,其中,DFA为确定有限状态自动机;
用于将所生成的目标数据对应的特征DFA的终止状态与所述目标数据关联起来的装置;以及
用于将相互关联的目标数据及其对应的特征DFA添加到所述数据库DFA中的装置,其中,所述目标数据对应的特征DFA的终止状态被作为所述数据库DFA中的一个目标状态。
24.一种用于为输入数据搜索匹配候选项的计算机程序产品,包括非暂态计算机可读存储介质,其包括用于执行下述步骤的代码:
(1)获取输入数据的特征信息;
(2)基于所述输入数据的特征信息,生成与所述输入数据对应的特征DFA,DFA为确定有限状态自动机;
(3)用所述输入数据对应的特征DFA去搜索包括多个目标状态的预设数据库DFA,以确定与所述输入数据对应的特征DFA相匹配的目标状态,其中,所述预设数据库DFA中的每个目标状态对应于基于一个目标数据的特征信息生成的特征DFA的终止状态;以及
(4)输出与所述搜索得到的匹配的目标状态相关联的目标数据,作为与所述输入数据对应的匹配候选项;
所述步骤(1)包括:
基于预设特征信息数据库,确定所述输入数据中的各个输入数据项对应的特征信息,其中所述预设特征信息数据库相互关联地存储数据项与对应的特征信息。
25.一种用于创建数据库DFA的计算机程序产品,所述数据库DFA包括多个目标状态,用于与外部DFA进行搜索匹配,其特征在于,所述计算机程序产品包括非暂态计算机可读存储介质,其包括用于执行下述步骤的代码:
(A)获取目标数据;
(B)获取所述目标数据的特征信息;
(C)基于所述目标数据的特征信息,生成与所述目标数据对应的特征DFA,DFA为确定有限状态自动机;
(D)将所生成的目标数据对应的特征DFA的终止状态与所述目标数据关联起来;以及
(E)将相互关联的目标数据及其对应的特征DFA添加到所述数据库DFA中,其中,所述目标数据对应的特征DFA的终止状态被作为所述数据库DFA中的一个目标状态。
CN201610119044.5A 2016-03-03 2016-03-03 为输入数据搜索匹配候选项的方法、数据库创建方法、装置及计算机程序产品 Active CN107153469B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610119044.5A CN107153469B (zh) 2016-03-03 2016-03-03 为输入数据搜索匹配候选项的方法、数据库创建方法、装置及计算机程序产品
US15/444,267 US10528606B2 (en) 2016-03-03 2017-02-27 Method for providing search suggestion candidates for input key and method for creating database DFA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610119044.5A CN107153469B (zh) 2016-03-03 2016-03-03 为输入数据搜索匹配候选项的方法、数据库创建方法、装置及计算机程序产品

Publications (2)

Publication Number Publication Date
CN107153469A CN107153469A (zh) 2017-09-12
CN107153469B true CN107153469B (zh) 2021-03-30

Family

ID=59722797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610119044.5A Active CN107153469B (zh) 2016-03-03 2016-03-03 为输入数据搜索匹配候选项的方法、数据库创建方法、装置及计算机程序产品

Country Status (2)

Country Link
US (1) US10528606B2 (zh)
CN (1) CN107153469B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11063966B2 (en) 2017-06-15 2021-07-13 Crowdstrike, Inc. Data-graph information retrieval using automata
US10983995B2 (en) * 2017-06-15 2021-04-20 Crowdstrike, Inc. Information retrieval using automata
CN107707745A (zh) * 2017-09-25 2018-02-16 百度在线网络技术(北京)有限公司 用于提取信息的方法和装置
CN109102824B (zh) * 2018-07-06 2021-04-09 北京比特智学科技有限公司 基于人机交互的语音纠错方法和装置
CN116821271B (zh) * 2023-08-30 2023-11-24 安徽商信政通信息技术股份有限公司 一种基于音形码的地址识别和规范化方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260558B1 (en) * 2004-10-25 2007-08-21 Hi/Fn, Inc. Simultaneously searching for a plurality of patterns definable by complex expressions, and efficiently generating data for such searching
CN101639861A (zh) * 2009-09-02 2010-02-03 福建星网锐捷网络有限公司 一种基于有限状态自动机的字符串匹配方法及装置
CN104994219A (zh) * 2015-05-18 2015-10-21 北京奇虎科技有限公司 一种数据处理方法和***

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8564541B2 (en) * 2009-03-16 2013-10-22 Apple Inc. Zhuyin input interface on a device
WO2013137864A1 (en) * 2012-03-13 2013-09-19 Hewlett-Packard Development Company, L.P. Submatch extraction
US9262555B2 (en) * 2013-03-15 2016-02-16 Yahoo! Inc. Machine for recognizing or generating Jabba-type sequences
CN105096935B (zh) * 2014-05-06 2019-08-09 阿里巴巴集团控股有限公司 一种语音输入方法、装置和***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260558B1 (en) * 2004-10-25 2007-08-21 Hi/Fn, Inc. Simultaneously searching for a plurality of patterns definable by complex expressions, and efficiently generating data for such searching
CN101639861A (zh) * 2009-09-02 2010-02-03 福建星网锐捷网络有限公司 一种基于有限状态自动机的字符串匹配方法及装置
CN104994219A (zh) * 2015-05-18 2015-10-21 北京奇虎科技有限公司 一种数据处理方法和***

Also Published As

Publication number Publication date
US10528606B2 (en) 2020-01-07
US20170255692A1 (en) 2017-09-07
CN107153469A (zh) 2017-09-12

Similar Documents

Publication Publication Date Title
US11113234B2 (en) Semantic extraction method and apparatus for natural language, and computer storage medium
CN107153469B (zh) 为输入数据搜索匹配候选项的方法、数据库创建方法、装置及计算机程序产品
CN108959242B (zh) 一种基于中文字符词性特征的目标实体识别方法及装置
US10853576B2 (en) Efficient and accurate named entity recognition method and apparatus
US20180173694A1 (en) Methods and computer systems for named entity verification, named entity verification model training, and phrase expansion
CN107025239B (zh) 敏感词过滤的方法和装置
CN101082908A (zh) 一种中文分词方法及***
CN110046348B (zh) 一种基于规则和词典的地铁设计规范中主体识别方法
KR101509727B1 (ko) 자율학습 정렬 기반의 정렬 코퍼스 생성 장치 및 그 방법과, 정렬 코퍼스를 사용한 파괴 표현 형태소 분석 장치 및 그 형태소 분석 방법
CN102455845A (zh) 一种文字输入方法和装置
CN105243055A (zh) 基于多语言的分词方法和装置
CN104572685B (zh) 数据排序方法
CN107526721B (zh) 一种对电商产品评论词汇的歧义消除方法及装置
CN111339166A (zh) 基于词库的匹配推荐方法、电子装置及存储介质
Saluja et al. Error detection and corrections in Indic OCR using LSTMs
CN110750984A (zh) 命令行字符串处理方法、终端、装置及可读存储介质
Gupta et al. SMPOST: parts of speech tagger for code-mixed indic social media text
CN113836316B (zh) 三元组数据的处理方法、训练方法、装置、设备及介质
CN113919424A (zh) 文本处理模型的训练、文本处理方法、装置、设备和介质
US11321529B2 (en) Date and date-range extractor
Prutskov Algorithmic provision of a universal method for word-form generation and recognition
CN110705258A (zh) 文本实体识别方法及装置
CN115455416A (zh) 一种恶意代码检测方法、装置、电子设备及存储介质
CN104641367B (zh) 用于格式化电子字符序列的格式化模块、***和方法
CN107203512B (zh) 用于从用户的自然语言输入中提取关键元素的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190313

Address after: 100089 F026, First Floor, 23 Building, No. 1 Gaolizhang Road, Haidian District, Beijing

Applicant after: Beijing Qijianyun Technology Co.,Ltd.

Address before: Room 1701-1703, No. 37 Nanmofang Road, Chaoyang District, Beijing

Applicant before: TERARK SOFTWARE (BEIJING) CO.,LTD.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230419

Address after: 710016 No. 2008 Chanba Second Road, Weiyang District, Xi'an City, Shaanxi Province

Patentee after: Lei Peng

Address before: 100089 F026, First Floor, 23 Building, No. 1 Gaolizhang Road, Haidian District, Beijing

Patentee before: Beijing Qijianyun Technology Co.,Ltd.

TR01 Transfer of patent right