CN110362824A - 一种自动纠错的方法、装置、终端设备及存储介质 - Google Patents
一种自动纠错的方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN110362824A CN110362824A CN201910554177.9A CN201910554177A CN110362824A CN 110362824 A CN110362824 A CN 110362824A CN 201910554177 A CN201910554177 A CN 201910554177A CN 110362824 A CN110362824 A CN 110362824A
- Authority
- CN
- China
- Prior art keywords
- segmentation sequence
- participle
- difference
- noun
- sequence
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/374—Thesaurus
-
- 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/237—Lexical tools
- G06F40/247—Thesauruses; Synonyms
-
- 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
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种自动纠错的方法、装置、终端设备及存储介质,该方法包括步骤:获取待纠错文本;基于汉字对待纠错文本进行分词,获取最优分词序列以及其联合概率;基于拼音对待纠错文本进行分词,并根据每一种分词序列与最优分词序列的区别获取区别分词集合,并计算其每一个区别分词与名词字典中的每一个名词的编辑距离,当小于距离阈值时,将该区别分词替换为该名词,获得新待纠错文本;基于汉字对新待纠错文本进行分词,获取新最优分词序列以及其联合概率;当两个联合概率的差值大于概率阈值时,将该名词加入纠错集合,对待纠错文本进行自动纠错。本发明能有效纠正用户在信息检索时输入的错词,帮助搜索到预期的检索结果。
Description
技术领域
本发明涉及输入纠错的技术领域,尤其涉及一种自动纠错的方法、装置、终端设备及存储介质。
背景技术
随着信息技术的发展,越来越多的用户通过互联网获得信息。当用户在进行信息检索时,常常会因为打错字或输入谐音字导致搜索内容不符合预期所想。特别是在游戏世界中,存在着许多与游戏背景相关的游戏术语,而这些术语有的在现实世界并不存在,甚至有的跟现实世界中的词语用字存在冲突,有的本身就很容易打错,这就很容易导致玩家在游戏中输入游戏相关术语时会出现错别字,从而无法匹配到想要的搜索信息。
发明内容
本发明实施例的目的是提供一种自动纠错的方法、装置、终端设备及存储介质,能有效纠正用户在信息检索时输入的错词,帮助搜索到预期的检索结果。
为实现上述目的,本发明实施例提供了一种自动纠错的方法,包括以下步骤:
获取待纠错文本;
基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率;其中,n≥1;所述联合概率为分词序列中的每一个分词在预设的语料库中出现的概率的乘积;
基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合;其中,n’≥1;
根据所述待纠错文本获取所述第一区别分词集合中的每一个区别分词的起始位置和结束位置;
将所述第一区别分词集合中的每一个区别分词与预设的名词字典中的名词进行比对,若任一区别分词与所述名词字典中的名词相同,则将该区别分词从所述第一区别分词集合中删除,并根据该区别分词的起始位置和结束位置将所述第一区别分词集合中的与该区别分词的位置重叠的区别分词删除,相应获得第二区别分词集合;
分别计算所述第二区别分词集合中的每一个区别分词与所述名词字典中的每一个名词的编辑距离,当任一区别分词与任一名词的编辑距离小于预设的距离阈值时,将该区别分词替换为该名词,获得新待纠错文本;
基于汉字对所述新待纠错文本进行分词,获得n”种分词序列,并根据每一种分词序列对应的联合概率获取新最优分词序列以及所述新最优分词序列的联合概率;其中,n”≥1;
当所述新最优分词序列的联合概率与所述最优分词序列的联合概率的差值大于预设的概率阈值时,将该名词加入纠错集合;
根据所述纠错集合对所述待纠错文本进行自动纠错。
作为上述方案的改进,所述方法还包括:
收集文本语料;
采用字典树算法根据所述文本语料预先构建所述语料库;其中,所述语料库中包括所述文本语料对应的原始文本和对所述文本语料进行分词处理获得的词语;
统计所述语料库中的每一个词语的词频。
作为上述方案的改进,所述方法还包括:
采用BK树算法根据所述语料库中的术语、官方名词和名词缩写预先构建所述名词字典。
作为上述方案的改进,所述基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率,具体包括:
基于汉字对所述待纠错文本进行分词,获得n种分词序列Si={wi,1,wi,2,…,wi,j,…};其中,Si表示第i种分词序列,i=1,2,…,n,wi,j表示第i种分词序列中的第j个分词,j≥1;
根据公式P(Si)=P(wi,1)×P(wi,2)×…×P(wi,j)×…计算每一种分词序列Si对应的联合概率P(Si);其中,P(wi,j)表示第i种分词序列中的第j个分词wi,j在所述语料库中出现的概率,P(wi,j)=wi,j在所述语料库中对应的词频/所述语料库中的词语总数量;
比较每一种分词序列对应的联合概率的大小;
选择联合概率最大的分词序列Sh作为所述最优分词序列,并记录所述最优分词序列Sh的联合概率P(Sh)。
作为上述方案的改进,所述基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合,具体包括:
基于拼音对所述待纠错文本进行分词,获得n’种拼音序列;
将每一种拼音序列对应转换为汉字序列,获得n’种分词序列S′i={w′i,1,w′i,2,…,w′i,j,…};其中,S′i表示第i种分词序列,i=1,2,…,n',w′i,j表示第i种分词序列中的第j个分词,j≥1;
将每一种分词序列与所述最优分词序列进行比对;
根据比对结果筛选出每一种分词序列中的与所述最优分词序列中的分词不相同的分词作为区别分词;
对所有的区别分词进行去重、去单处理,相应获得所述第一区别分词集合。
作为上述方案的改进,所述获取待纠错文本,具体包括:
对接收到的文本进行字符预处理,获取所述待纠错文本。
作为上述方案的改进,所述根据所述纠错集合对所述待纠错文本进行自动纠错,具体包括:
判断所述纠错集合中的名词在所述纠错集合中是否存在子集;
当不存在时,根据所述纠错集合中的名词对所述待纠错文本进行自动纠错;
当存在时,将所述子集从所述纠错集合中删除,相应获得新纠错集合,并根据所述新纠错集合对所述待纠错文本进行自动纠错。
本发明实施例还提供了一种自动纠错的装置,包括:
第一文本获取模块,用于获取待纠错文本;
第一汉字分词模块,用于基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率;其中,n≥1;所述联合概率为分词序列中的每一个分词在预设的语料库中出现的概率的乘积;
拼音分词模块,用于基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合;其中,n’≥1;
位置获取模块,用于根据所述待纠错文本获取所述第一区别分词集合中的每一个区别分词的起始位置和结束位置;
集合优化模块,用于将所述第一区别分词集合中的每一个区别分词与预设的名词字典中的名词进行比对,若任一区别分词与所述名词字典中的名词相同,则将该区别分词从所述第一区别分词集合中删除,并根据该区别分词的起始位置和结束位置将所述第一区别分词集合中的与该区别分词的位置重叠的区别分词删除,相应获得第二区别分词集合;
第二文本获取模块,用于分别计算所述第二区别分词集合中的每一个区别分词与所述名词字典中的每一个名词的编辑距离,当任一区别分词与任一名词的编辑距离小于预设的距离阈值时,将该区别分词替换为该名词,获得新待纠错文本;
第二汉字分词模块,用于基于汉字对所述新待纠错文本进行分词,获得n”种分词序列,并根据每一种分词序列对应的联合概率获取新最优分词序列以及所述新最优分词序列的联合概率;其中,n”≥1;
比较模块,用于当所述新最优分词序列的联合概率与所述最优分词序列的联合概率的差值大于预设的概率阈值时,将该名词加入纠错集合;
纠错模块,用于根据所述纠错集合对所述待纠错文本进行自动纠错。
本发明另一实施例对应提供了一种使用自动纠错的方法的终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的自动纠错的方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任一项所述的自动纠错的方法。
与现有技术相比,本发明实施例公开的一种自动纠错的方法、装置、终端设备及存储介质,通过采用基于汉字分词和基于拼音分词相结合的方式,特别是利用拼音这一元素找到更多的错词候选情况,并逐一对这些候选错词进行排查,在排查中引入了词序列联合概率的比较,减少了对音似字典、形似字典的依赖,可以很好地根据某一特定领域的专用术语或专有名词进行纠错,纠错的准确率得到大大提高,同时也对某一领域具有很好的适应能力,并有效减少人工维护错词字典的成本,特别是纠正用户在信息检索时输入的错词,帮助快速搜索到预期的检索结果。
附图说明
图1是本发明实施例1提供的一种自动纠错的方法的流程示意图。
图2是本发明提供的一种BK树汉字存储的示意图。
图3是本发明提供的一种BK树拼音存储的示意图。
图4是本发明提供的一种BK树模糊搜索的实例示意图。
图5是本发明实施例3提供的一种自动纠错装置的结构示意图。
图6是本发明实施例4提供的一种使用自动纠错的方法的终端设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例1提供的一种自动纠错的方法的流程示意图,所述方法包括步骤S1至步骤S9:
S1、获取待纠错文本;
S2、基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率;其中,n≥1;所述联合概率为分词序列中的每一个分词在预设的语料库中出现的概率的乘积;
S3、基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合;其中,n’≥1;
S4、根据所述待纠错文本获取所述第一区别分词集合中的每一个区别分词的起始位置和结束位置;
S5、将所述第一区别分词集合中的每一个区别分词与预设的名词字典中的名词进行比对,若任一区别分词与所述名词字典中的名词相同,则将该区别分词从所述第一区别分词集合中删除,并根据该区别分词的起始位置和结束位置将所述第一区别分词集合中的与该区别分词的位置重叠的区别分词删除,相应获得第二区别分词集合;
S6、分别计算所述第二区别分词集合中的每一个区别分词与所述名词字典中的每一个名词的编辑距离,当任一区别分词与任一名词的编辑距离小于预设的距离阈值时,将该区别分词替换为该名词,获得新待纠错文本;
S7、基于汉字对所述新待纠错文本进行分词,获得n”种分词序列,并根据每一种分词序列对应的联合概率获取新最优分词序列以及所述新最优分词序列的联合概率;其中,n”≥1;
S8、当所述新最优分词序列的联合概率与所述最优分词序列的联合概率的差值大于预设的概率阈值时,将该名词加入纠错集合;
S9、根据所述纠错集合对所述待纠错文本进行自动纠错。
需要说明的是,随着互联网的普及,越来越多的人开始使用电子设备与外界进行交流,例如在网上搜索相关信息等,在输入过程中可能因为人为失误或不清楚等导致搜索结果不是预期所想的。特别是在游戏世界中,存在着许多与游戏背景相关的游戏术语,而这些术语有的在现实世界并不存在,有的跟现实世界中的词语用字存在冲突,有的本身就很容易打错。这就导致玩家在游戏中输入游戏相关术语时会出现错别字,从而影响游戏中相关系统的运行效率和导致一部分玩家的输入无法匹配到数据库中的知识。为了使用户更好地在检索到自己需要的信息,亟需一种自动纠错的方法。
本发明实施例1提供的一种自动纠错的方法的具体步骤如下:
S1、获取待纠错文本。当用户在系统中输入自己表达的文本时,系统就可以自动识别并主动获取待纠错文本,或者在人们需要对某一特定文本进行纠错时,只需将该文本导入系统,让系统自动识别并获取即可。以上均是获取待纠错文本的方式,但不限于此。
S2、基于汉字对待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及最优分词序列的联合概率;其中,n≥1;联合概率为分词序列中的每一个分词在预设的语料库中出现的概率的乘积。一般地,待纠错文本的呈现方式为汉字,所以先根据汉字的形式对待纠错文本进行分词,因为分词的组合可能有多种,所以分词的切分方式可能有多种,所以可以对应获得多种分词序列,记为n种分词序列。每一种分词序列都是文本中各分词的集合,其中,各分词组合起来就是待纠错文本。对应地,每一种分词序列中的每一个分词在预设的语料库中都有对应的出现的概率,计算每一种分词序列的联合概率,根据联合概率大小获取最优分词序列,即联合概率最大的分词序列,同时记录最优分词序列的联合概率。
S3、同样地,基于拼音对待纠错文本进行分词,获得n’种分词序列,其中,n’≥1。基于拼音对待纠错文本进行分词之前,先将待纠错文本从汉字形式转变为拼音形式,接着根据拼音流进行切分,得到若干个拼音分词系列,再将拼音对照待纠错文本转回汉字,得到n’种分词序列。得到n’种分词序列之后,就根据每一种分词序列与步骤二中的得到的最优分词序列的比对结果,获取第一区别分词集合,这是为了得到疑似纠错候选集,初步确定可能需要纠错的分词。
S4、根据待纠错文本获取第一区别分词集合中的每一个区别分词的起始位置和结束位置,并记录为每一个区别分词的位置坐标(ls,le),其中ls和le分别是该区别分词在待纠错文本中的起始位置和结束位置。由每个分词的位置坐标可以定位该分词在待纠错文本中的位置,从而可以进一步对该分词进行替换和纠错处理。
S5、将第一区别分词集合中的每一个区别分词与预设的名词字典中的名词进行比对,若任一区别分词与名词字典中的名词相同,则将该区别分词从第一区别分词集合中删除。这一做法是为了剔除待纠错文本中不需要进行纠错的分词,当第一区别分词集合的区别分词与名词字典中的名词相同时,则说明该区别分词与系统内收录的名词是一致的,无需进行纠错。
进一步地,根据该区别分词的起始位置和结束位置将第一区别分词集合中的与该区别分词的位置重叠的区别分词删除,相应获得第二区别分词集合。这是为了进一步优化第一区别分词集合,剔除不需要进行纠错的分词,因为当还有区别分词与要删除的区别分词在位置上有重叠时,说明要删除的区别分词已经是正确的,为了尊重用户的输入,要保留该位置的原词,不对有重叠的分词进行纠错。例如,待纠错文本中包含“中华人民”,可切分为中华/人民或中/华人/民,“华人”就与“中华”、“人民”在位置上有重叠。
S6、分别计算第二区别分词集合中的每一个区别分词与名词字典中的每一个名词的编辑距离,当任一区别分词与任一名词的编辑距离小于预设的距离阈值时,将该区别分词替换为该名词,获得新待纠错文本。
编辑距离是指通过增加、删除、替换三种操作,将字符串A变化为字符串B所需的最少操作次数。这一步骤是为了逐一核实第二区别分词集合中的每一个区别分词是否需要纠错,若编辑距离大于等于预设的距离阈值,则不需要纠错;若编辑距离小于预设的距离阈值,则有可能需要纠错。为了进一步核实是否需要纠错,将编辑距离小于预设的距离阈值的名词字典的名词替换到对应区别分词的位置,得到新待纠错文本,再跟原来的待纠错文本进行比较,进行下一步操作。
S7、得到新待纠错文本之后,按照步骤二的做法对新待纠错文本基于汉字进行分词,获得n”种分词序列,其中,n”≥1。同样地,计算每一种分词序列的联合概率,并根据每一种分词序列对应的联合概率大小,将联合概率最大值对应的分词序列选为新最优分词序列,并记录新最优分词序列的联合概率。
S8、当新最优分词序列的联合概率与最优分词序列的联合概率的差值大于预设的概率阈值时,将该名词加入纠错集合。这一步骤是为了检验待纠错文本是否值得替换名词字典的名词,若新最优分词序列的联合概率与最优分词序列的联合概率的差值大于预设的概率阈值,则是值得的,将该名词加入纠错集合,为后续纠错做准备;反之,就不值得,不需要对该位置的分词进行纠错。
S9、根据纠错集合对待纠错文本进行自动纠错。如果待纠错文本需要纠错,根据前面的步骤就可以得到纠错集合,就可以对待纠错文本进行自动纠错;如果待纠错文本不需要纠错,则纠错集合是空集合,也就不需要对待纠错文本进行纠错。
本发明实施例1不仅对待纠错文本采用基于汉字进行分词,从而得到多种分词序列,并比较多种分词序列中的联合概率,通过比较得到最优分词序列;还对待纠错文本采用基于拼音进行分词,利用拼音这一元素找到更多的错词候选情况,通过基于拼音进行分词得到的多种分词序列与最优分词序列进行对比,得到区别分词集合,并对区别分词集合每一个区别分词与名词字典中的名词进行对比,从而得到纠错集合对待纠错文本进行自动纠错。通过采用基于汉字分词和基于拼音分词相结合的方式,能有效纠正用户在信息检索时输入的错词,帮助搜索到预期的检索结果。
作为上述方案的改进,所述方法还包括:
收集文本语料;
采用字典树算法根据所述文本语料预先构建所述语料库;其中,所述语料库中包括所述文本语料对应的原始文本和对所述文本语料进行分词处理获得的词语;
统计所述语料库中的每一个词语的词频。
需要说明的是,参见图2和图3,分别是字典树存储汉字和存储拼音的示意图。字典树,又称“Trie树”。由图2和图3可知,字典树里面每一个块代表一个节点,其中“Root”表示根节点,不代表任何字符,圆形块代表分支节点,矩形代表根节点/叶子节点。除根节点外每一个节点都只包含一个字符。从根节点到叶子节点,路径上经过的字符连接起来,构成一个词。而叶子节点内的数字代表该词在字典树中所处的链路的序号,可以通过获取最大的链路序号获知字典树中有多少个词语。
具有共同前缀的链路称为串,具有相同前缀的词必须位于同一个串内;例如“清华”、“清新”两个词都有“清”这个前缀,那么在Trie树上只需构建一个“清”节点,“华”和“新”节点共用一个父节点即可,如此两个词便只需三个节点便可存储,这在一定程度上减少了字典的存储空间。另外,Trie树中任何一个完整的词,都必须是从根节点开始至叶子节点结束,这意味着对一个词进行检索也必须从根节点开始,至叶子节点才算结束。
具体地,文本语料主要为某一特定领域的技术手册、日志、期刊等,像游戏领域,其本文语料主要收集于游戏中,包含游戏中的日志和文本资料。将收集到的文本语料采用字典树算法进行存储,预先构建语料库。语料库中既包括文本语料对应的原始文本,又包含对文本语料进行分词处理获得的词语。采用字典树算法存储的一个好处就是可以存储分词过程中产生的分词,并统计语料库中每一个词语的词频。这样一来,大大方便了后续计算分词序列的联合概率。
作为上述方案的改进,所述方法还包括:
采用BK树算法根据所述语料库中的术语、官方名词和名词缩写预先构建所述名词字典。
具体地,将语料库中的术语、官方名词和名词缩写等用一定的方法抽取出来,预先构建名词字典,为后续找出纠错集合做准备。除此之外,该名词字典同时包括相应名词的同义词,如“四海”为“四海升平”的同义词,那么“四海”也一样存在于名词字典中。另外,为了能够快速在名词字典中进行搜索,本实施例采用改进的BK树(Burkhard-Keller Tree)对名词字典进行存储。相对于传统的BK树,改进的BK树通过获取语料库中统计的每个词语的词频,优先存储词频高的词语,使得在BK树中检索词频高的词语的开销更小。
需要说明的是,BK树是一种适用于模糊查询的带权重的树形数据结构,本方法中使用父节点和子节点的编辑距离作为树的权重构造BK树。下面是BK树构造和搜索过程:
(1)构建BK树
①假设用于构建BK树的名词字典为wordset,BK树的根节点noderoot;
②从名词字典中取出一个词wi,同时将当前节点nodecur指向noderoot;
③若根节点noderoot为空,noderoot存储词wi,跳转②,否则继续④;
④当前节点nodecur中存储的词为计算词wi与词的编辑距离d;
⑤若当前节点nodecur存在权重为d的子节点nodechild,当前节点nodecur指向nodechild节点并跳转④,否则继续⑥;
⑥以nodecur为父节点,增加权重为d的子节点nodechild,nodechild存储词wi;
⑦名词字典不为空跳转②,否则结束;
(2)BK树模糊搜索
①假设当前待搜索词wj,距离阈值threshold,节点栈stack,结果集result;
②初始化节点栈stack,将根节点noderoot入栈;
③stack出栈一个元素作为当前节点nodenow,当前节点nodenow存储的词为
④计算wj与的距离s,若s小于等于threshold,加入到结果集result
⑤将当前节点nodenow的权重在s±max区间的子节点入栈stack;
⑥检查节点栈,为空时搜索结束返回result,否则跳转③继续搜索。
需要解释的是,根结点是BK树的起点,所有检索和存储操作都必须从根节点开始。当前节点nodecur指向noderoot,指的是可以通过当前节点nodecur找到noderoot节点的位置并访问noderoot节点中的数据。节点的结构包含一个数据域和指针域,数据域存放词语wk,指针域以键值对(key1:value1,key2:value2)的形式存放,其中key为权重,value为子节点,通过遍历指针域可知道该节点有哪些子节点及子节点的权重d。
参见图4,是BK树模糊搜索的示意图。具体过程为:
例如:给定当前待搜索词ac,找出名词词典中和待搜索词ac距离阈值不大于1的所有词语。
先将根节点a加入节点栈,得到第一节点栈[a],接着由节点栈[a]出栈一个节点设为当前节点,得到第一当前节点a,计算ac与a的编辑距离d1,得到d1=1,所以第一当前节点a符合查找条件,加入结果集,得到结果集[a]。再将第一当前节点a中权重在0-2之间的子节点加入节点栈[a],得到第二节点栈[ab,abb]。检查节点栈,有三个节点,节点栈出栈一个第二节点栈[ab],得到第二当前节点abb。同样地,计算ac与abb的编辑距离d2,得到d2=2>1,所以abb不符合查找条件,继续查找。继续将第二当前节点abb中权重在1-3之间的子节点加入节点栈,得到第三节点栈[ab,aba]。检查节点栈,有两个节点,节点栈出栈一个第三节点栈[ab],得到第三当前节点aba,计算ac与aba的编辑距离d3,得到d3=2>1,所以aba不符合查找条件,继续查找。继续将第三当前节点aba中权重在1-3之间的子节点加入节点栈,得到第四节点栈[ab]。检查节点栈,有一个节点,节点栈出栈一个第四节点栈[ab],得到第四当前节点ab,计算ac与ab的编辑距离d4,得到d4=1,ab符合查找条件,加入结果集,得到新的结果集[a,ab]。继续将第一当前节点a中权重在0-2之间的子节点加入节点栈,得到第五节点栈[ba]。检查节点栈,有一个节点,节点栈出栈一个第五节点栈[ba],得到第五当前节点ba,计算ac与ba的编辑距离d5,得到d5=2>1,所以ba不符合查找条件,继续查找。继续将第五当前节点ba中权重在1-3之间的子节点加入节点栈,得到第六节点栈[],检查节点栈,没有节点,结束搜索,所以最后搜索结果为结果集[a,ab]。
作为上述方案的改进,所述基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率,具体包括:
基于汉字对所述待纠错文本进行分词,获得n种分词序列Si={wi,1,wi,2,…,wi,j,…};其中,Si表示第i种分词序列,i=1,2,…,n,wi,j表示第i种分词序列中的第j个分词,j≥1;
根据公式P(Si)=P(wi,1)×P(wi,2)×…×P(wi,j)×…计算每一种分词序列Si对应的联合概率P(Si);其中,P(wi,j)表示第i种分词序列中的第j个分词wi,j在所述语料库中出现的概率,P(wi,j)=wi,j在所述语料库中对应的词频/所述语料库中的词语总数量;
比较每一种分词序列对应的联合概率的大小;
选择联合概率最大的分词序列Sh作为所述最优分词序列,并记录所述最优分词序列Sh的联合概率P(Sh)。
具体地,因为基于汉字对待纠错文本进行分词,会获得n种分词序列Si={wi,1,wi,2,…,wi,j,…};其中,Si表示第i种分词序列,i=1,2,…,n,wi,j表示第i种分词序列中的第j个分词,j≥1。为了得到最优分词序列,引进分词序列的联合概率P(Si)概念,其定义为某一分词序列中各分词在语料库中对应的词频与语料库中的词语总数量的比值的乘积,这样就可以得到每一个分词都是在语料库中出现频率最高的分词序列,因为语料库是根据收集对应特定领域的文本材料得到的,所以联合概率最大的分词序列Sh也就很大概率是最优分词序列。暂且默认分词序列Sh为最优分词序列,并记录其联合概率P(Sh),以此为基础,与后续基于拼音分词得到的词序列进行对比,这样也很大程度上保证了自动纠错的准确性。
作为上述方案的改进,所述基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合,具体包括:
基于拼音对所述待纠错文本进行分词,获得n’种拼音序列;
将每一种拼音序列对应转换为汉字序列,获得n’种分词序列S′i={w′i,1,w′i,2,…,w′i,j,…};其中,S′i表示第i种分词序列,i=1,2,…,n',w′i,j表示第i种分词序列中的第j个分词,j≥1;
将每一种分词序列与所述最优分词序列进行比对;
根据比对结果筛选出每一种分词序列中的与所述最优分词序列中的分词不相同的分词作为区别分词;
对所有的区别分词进行去重、去单处理,相应获得所述第一区别分词集合。
具体地,为了获得更多的错词候选情况,将待纠错文本从汉字转化为拼音,基于拼音进行分词,获得n’种拼音序列后,再将拼音转换为原来的汉字,即将每一种拼音序列对应转换为汉字序列,获得n’种分词序列S′i={w′i,1,w′i,2,…,w′i,j,…};其中,S′i表示第i种分词序列,i=1,2,…,n',w′i,j表示第i种分词序列中的第j个分词,j≥1。
通过将每一种分词序列与最优分词序列进行比对,根据比对结果筛选出每一种分词序列中的与最优分词序列中的分词不相同的分词作为区别分词,对所有的区别分词进行去重、去单处理,相应获得第一区别分词集合。
第一区别分词集合中的每一个区别分词都有可能需要纠错,需要一一核实,为了进一步优化第一区别分词集合的区别分词数量,可以将它们按照在待纠错文本的位置按照起始位置到结束位置的优先顺序进行排序,如果起始位置相同则根据分词长度按从长到短的优先顺序进行排序,这样有利于处理位置重叠的分词或分词的子集,程序上计算更高效,更快地完成纠错过程。
作为上述方案的改进,所述获取待纠错文本,具体包括:
对接收到的文本进行字符预处理,获取所述待纠错文本。
具体地,接收到的文本可能存在英文标点、希腊/拉丁符号或者繁体字等不利于纠错处理的情况,为了更快速地进行自动纠错,需要对接收到的文本进行字符预处理,将无用的字符去除、繁体转简体等,经过预处理后得到的就是待纠错文本,这样的文本有利于分词和检索。
作为上述方案的改进,所述根据所述纠错集合对所述待纠错文本进行自动纠错,具体包括:
判断所述纠错集合中的名词在所述纠错集合中是否存在子集;
当不存在时,根据所述纠错集合中的名词对所述待纠错文本进行自动纠错;
当存在时,将所述子集从所述纠错集合中删除,相应获得新纠错集合,并根据所述新纠错集合对所述待纠错文本进行自动纠错。
具体地,经过上述一系列操作得到的纠错集合,就是待纠错文本需要纠错的词语,对应的位置就是上述步骤中替换区别分词得到新待纠错文本的地方。在进行自动纠错前,先判断纠错集合中的名词是否存在子集情况,若否,则可以进行自动纠错,反之,要先将子集从纠错集合中删除,得到新纠错集合后,才对待纠错文本进行自动纠错。因为当纠错集合中的名词c是名词d的子集时,意味着名词c包含于名词d中,在某特定领域环境下名词c有较大可能是名词d的简称,因此以非简称的名词d为准。例如“华人”是“中华人民”的子集,应该以“中华人民”为准。
为了便于对本发明的理解,本发明实施例2提供一个按照上述自动纠错方法进行纠错的实例,具体如下:
(1)用户输入:“三届悬赏令是什么”,正确输入应为:“三界悬赏令是什么”,名词字典中的名词为:“三界悬赏令”
(2)对“三届悬赏令是什么”同时进行中文和拼音两个维度的分词:
a.中文分词结果为:{“三”、“届”、“悬赏令”、“是”、“什么”},由于“三届”并不是正常词语,所以切分成了单字。这里只有一种分词序列,所以最优分词序列为{“三”、“届”、“悬赏令”、“是”、“什么”},同时计算该分词序列的联合概率。
b.拼音分词结果为:第一分词序列{“三届悬赏令”、“是”、“什么”}和第二分词序列{“三”、“届”、“悬赏令”、“是”、“什么”},第一分词序列中的“三届”没有被切分是因为在拼音维度上,“三届悬赏令”和“三界悬赏令”的拼音(不带音标)是一样,因为“三界悬赏令”和“悬赏令”都是名词字典中的名词,所以切分时都出现了,这样保证了尽可能切分得到更多的分词序列。
C.对于上述两种情况的切分方式,对应记录了它们在句子里的开始和结束位置。
(3)根据拼音分词的结果对比最优分词序列{“三”、“届”、“悬赏令”、“是”、“什么”},得到第一区别分词集合为{“三届悬赏令”},对比名词字典中的名词,发现“三届悬赏令”和正确名词“三界悬赏令”的编辑距离只有1,小于预设的距离阈值2。
(4)将“三界悬赏令”替换掉“三届悬赏令”后,原句子变为“三界悬赏令是什么”。重新进行中文层面上的分词,得到两个分词序列{“三”、“界”、“悬赏令”、“是”、“什么”}和{“三界悬赏令”、“是”、“什么”},分别计算它们的联合概率,发现后者的更大,得到新最优分词序列为{“三界悬赏令”、“是”、“什么”}。
(5)计算新最优分词序列{“三界悬赏令”、“是”、“什么”}的联合概率与最优分词序列{“三”、“届”、“悬赏令”、“是”、“什么”}的联合概率的差值,发现差值大于预设的概率阈值,将“三界悬赏令”加入纠错集合,对用户输入进行自动纠错,则整句话自动纠错为“三界悬赏令是什么”。
之所以对待纠错文本做汉字和拼音两个维度的分词,是因为很多用户在大多情况下因输入同音字导致出错。例如在游戏场景中,有一个游戏名词叫做“玉蓉糕”,但是用户在实际输入过程中并不会总是输入到正确的字,有可能会打成“玉容糕”。但是仅根据拼音进行分词也存在问题,比如对“装备镶嵌”进行分词,因为名词字典中有“装备箱”这个词,而其和“装备镶”的拼音是一样的,所以在根据拼音进行分词时,“装备镶”被认为是一个分词,为了修正这一个问题,本发明同时对比了根据汉字分词的情况,从汉字和拼音两个维度综合考量,共同比对,大大提高了自动纠错的准确率。
参见图5,是本发明实施例3提供的一种自动纠错的装置的结构示意图,所述装置包括:
第一文本获取模块11,用于获取待纠错文本;
第一汉字分词模块12,用于基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率;其中,n≥1;所述联合概率为分词序列中的每一个分词在预设的语料库中出现的概率的乘积;
拼音分词模块13,用于基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合;其中,n’≥1;
位置获取模块14,用于根据所述待纠错文本获取所述第一区别分词集合中的每一个区别分词的起始位置和结束位置;
集合优化模块15,用于将所述第一区别分词集合中的每一个区别分词与预设的名词字典中的名词进行比对,若任一区别分词与所述名词字典中的名词相同,则将该区别分词从所述第一区别分词集合中删除,并根据该区别分词的起始位置和结束位置将所述第一区别分词集合中的与该区别分词的位置重叠的区别分词删除,相应获得第二区别分词集合;
第二文本获取模块16,用于分别计算所述第二区别分词集合中的每一个区别分词与所述名词字典中的每一个名词的编辑距离,当任一区别分词与任一名词的编辑距离小于预设的距离阈值时,将该区别分词替换为该名词,获得新待纠错文本;
第二汉字分词模块17,用于基于汉字对所述新待纠错文本进行分词,获得n”种分词序列,并根据每一种分词序列对应的联合概率获取新最优分词序列以及所述新最优分词序列的联合概率;其中,n”≥1;
比较模块18,用于当所述新最优分词序列的联合概率与所述最优分词序列的联合概率的差值大于预设的概率阈值时,将该名词加入纠错集合;
纠错模块19,用于根据所述纠错集合对所述待纠错文本进行自动纠错。
优选地,所述装置还包括:
收集模块,用于收集文本语料;
语料库构建模块,用于采用字典树算法根据所述文本语料预先构建所述语料库;其中,所述语料库中包括所述文本语料对应的原始文本和对所述文本语料进行分词处理获得的词语;
统计模块,用于统计所述语料库中的每一个词语的词频。
优选地,所述装置还包括:
名词字典构建模块,用于采用BK树算法根据所述语料库中的术语、官方名词和名词缩写预先构建所述名词字典。
优选地,所述第一汉字分词模块具体包括:
分词序列获取单元,用于基于汉字对所述待纠错文本进行分词,获得n种分词序列Si={wi,1,wi,2,…,wi,j,…};其中,Si表示第i种分词序列,i=1,2,…,n,wi,j表示第i种分词序列中的第j个分词,j≥1;
联合概率获取单元,用于根据公式P(Si)=P(wi,1)×P(wi,2)×…×P(wi,j)×…计算每一种分词序列Si对应的联合概率P(Si);其中,P(wi,j)表示第i种分词序列中的第j个分词wi,j在所述语料库中出现的概率,P(wi,j)=wi,j在所述语料库中对应的词频/所述语料库中的词语总数量;
数值比较单元,用于比较每一种分词序列对应的联合概率的大小;
选择单元,用于选择联合概率最大的分词序列Sh作为所述最优分词序列,并记录所述最优分词序列Sh的联合概率P(Sh)。
优选地,所述拼音分词模块具体包括:
拼音序列获取单元,用于基于拼音对所述待纠错文本进行分词,获得n’种拼音序列;
转换单元,用于将每一种拼音序列对应转换为汉字序列,获得n’种分词序列S′i={w′i,1,w′i,2,…,w′i,j,…};其中,S′i表示第i种分词序列,i=1,2,…,n',w′i,j表示第i种分词序列中的第j个分词,j≥1;
比对单元,用于将每一种分词序列与所述最优分词序列进行比对;
区别分词获取单元,用于根据比对结果筛选出每一种分词序列中的与所述最优分词序列中的分词不相同的分词作为区别分词;
第一区别分词集合获取单元,用于对所有的区别分词进行去重、去单处理,相应获得所述第一区别分词集合。
优选地,所述第一文本获取模块具体用于:
对接收到的文本进行字符预处理,获取所述待纠错文本。
优选地,所述纠错模块具体包括:
判断单元,用于判断所述纠错集合中的名词在所述纠错集合中是否存在子集;
第一纠错单元,用于当不存在时,根据所述纠错集合中的名词对所述待纠错文本进行自动纠错;
第二纠错单元,用于当存在时,将所述子集从所述纠错集合中删除,相应获得新纠错集合,并根据所述新纠错集合对所述待纠错文本进行自动纠错。
本发明实施例所提供的一种自动纠错的装置能够实现上述任一实施例所述的自动纠错的方法的所有流程,装置中的各个模块、单元的作用以及实现的技术效果分别与上述实施例所述的自动纠错的方法的作用以及实现的技术效果对应相同,这里不再赘述。
参见图6,是本发明实施例4提供的一种使用自动纠错的方法的终端设备的示意图,所述装置包括处理器10、存储器20以及存储在所述存储器20中且被配置为由所述处理器10执行的计算机程序,所述处理器10执行所述计算机程序时实现上述任一实施例所述的自动纠错的方法。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器20中,并由处理器10执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在一种使用自动纠错的方法的终端设备中的执行过程。例如,计算机程序可以被分割成第一文本获取模块、第一汉字分词模块、拼音分词模块、位置获取模块、集合优化模块、第二文本获取模块、第二汉字分词模块、比较模块和纠错模块,各模块具体功能如下:
第一文本获取模块11,用于获取待纠错文本;
第一汉字分词模块12,用于基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率;其中,n≥1;所述联合概率为分词序列中的每一个分词在预设的语料库中出现的概率的乘积;
拼音分词模块13,用于基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合;其中,n’≥1;
位置获取模块14,用于根据所述待纠错文本获取所述第一区别分词集合中的每一个区别分词的起始位置和结束位置;
集合优化模块15,用于将所述第一区别分词集合中的每一个区别分词与预设的名词字典中的名词进行比对,若任一区别分词与所述名词字典中的名词相同,则将该区别分词从所述第一区别分词集合中删除,并根据该区别分词的起始位置和结束位置将所述第一区别分词集合中的与该区别分词的位置重叠的区别分词删除,相应获得第二区别分词集合;
第二文本获取模块16,用于分别计算所述第二区别分词集合中的每一个区别分词与所述名词字典中的每一个名词的编辑距离,当任一区别分词与任一名词的编辑距离小于预设的距离阈值时,将该区别分词替换为该名词,获得新待纠错文本;
第二汉字分词模块17,用于基于汉字对所述新待纠错文本进行分词,获得n”种分词序列,并根据每一种分词序列对应的联合概率获取新最优分词序列以及所述新最优分词序列的联合概率;其中,n”≥1;
比较模块18,用于当所述新最优分词序列的联合概率与所述最优分词序列的联合概率的差值大于预设的概率阈值时,将该名词加入纠错集合;
纠错模块19,用于根据所述纠错集合对所述待纠错文本进行自动纠错。
一种使用自动纠错的方法的终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。一种使用自动纠错的方法的终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,示意图6仅仅是一种使用自动纠错的方法的终端设备的示例,并不构成对一种使用自动纠错的方法的终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如一种使用自动纠错的方法的终端设备还可以包括输入输出设备、网络接入设备、总线等。
处理器10可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者处理器10也可以是任何常规的处理器等,处理器10是一种使用自动纠错的方法的终端设备的控制中心,利用各种接口和线路连接整个使用自动纠错的方法的终端设备的各个部分。
存储器20可用于存储所述计算机程序和/或模块,处理器10通过运行或执行存储在存储器20内的计算机程序和/或模块,以及调用存储在存储器20内的数据,实现一种使用自动纠错的方法的终端设备的各种功能。存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,一种使用自动纠错的方法的终端设备集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任一实施例所述的自动纠错的方法。
综上,本发明实施例所提供的一种自动纠错的方法、装置、终端设备及存储介质,通过采用基于汉字分词和基于拼音分词相结合的方式,特别是利用拼音这一元素找到更多的错词候选情况,并逐一对这些候选错词进行排查,在排查中引入了词序列联合概率的比较,减少了对音似字典、形似字典的依赖,可以很好地根据某一特定领域的专用术语或专有名词进行纠错,纠错的准确率得到大大提高,同时也对某一领域具有很好的适应能力,并有效减少人工维护错词字典的成本,特别是纠正用户在信息检索时输入的错词,帮助快速搜索到预期的检索结果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种自动纠错的方法,其特征在于,包括以下步骤:
获取待纠错文本;
基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率;其中,n≥1;所述联合概率为分词序列中的每一个分词在预设的语料库中出现的概率的乘积;
基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合;其中,n’≥1;
根据所述待纠错文本获取所述第一区别分词集合中的每一个区别分词的起始位置和结束位置;
将所述第一区别分词集合中的每一个区别分词与预设的名词字典中的名词进行比对,若任一区别分词与所述名词字典中的名词相同,则将该区别分词从所述第一区别分词集合中删除,并根据该区别分词的起始位置和结束位置将所述第一区别分词集合中的与该区别分词的位置重叠的区别分词删除,相应获得第二区别分词集合;
分别计算所述第二区别分词集合中的每一个区别分词与所述名词字典中的每一个名词的编辑距离,当任一区别分词与任一名词的编辑距离小于预设的距离阈值时,将该区别分词替换为该名词,获得新待纠错文本;
基于汉字对所述新待纠错文本进行分词,获得n”种分词序列,并根据每一种分词序列对应的联合概率获取新最优分词序列以及所述新最优分词序列的联合概率;其中,n”≥1;
当所述新最优分词序列的联合概率与所述最优分词序列的联合概率的差值大于预设的概率阈值时,将该名词加入纠错集合;
根据所述纠错集合对所述待纠错文本进行自动纠错。
2.如权利要求1所述的自动纠错的方法,其特征在于,所述方法还包括:
收集文本语料;
采用字典树算法根据所述文本语料预先构建所述语料库;其中,所述语料库中包括所述文本语料对应的原始文本和对所述文本语料进行分词处理获得的词语;
统计所述语料库中的每一个词语的词频。
3.如权利要求2所述的自动纠错的方法,其特征在于,所述方法还包括:
采用BK树算法根据所述语料库中的术语、官方名词和名词缩写预先构建所述名词字典。
4.如权利要求1所述的自动纠错的方法,其特征在于,所述基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率,具体包括:
基于汉字对所述待纠错文本进行分词,获得n种分词序列Si={wi,1,wi,2,…,wi,j,…};其中,Si表示第i种分词序列,i=1,2,…,n,wi,j表示第i种分词序列中的第j个分词,j≥1;
根据公式P(Si)=P(wi,1)×P(wi,2)×…×P(wi,j)×…计算每一种分词序列Si对应的联合概率P(Si);其中,P(wi,j)表示第i种分词序列中的第j个分词wi,j在所述语料库中出现的概率,P(wi,j)=wi,j在所述语料库中对应的词频/所述语料库中的词语总数量;
比较每一种分词序列对应的联合概率的大小;
选择联合概率最大的分词序列Sh作为所述最优分词序列,并记录所述最优分词序列Sh的联合概率P(Sh)。
5.如权利要求1所述的自动纠错的方法,其特征在于,所述基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合,具体包括:
基于拼音对所述待纠错文本进行分词,获得n’种拼音序列;
将每一种拼音序列对应转换为汉字序列,获得n’种分词序列S′i={w′i,1,w′i,2,…,w′i,j,…};其中,S′i表示第i种分词序列,i=1,2,…,n',w′i,j表示第i种分词序列中的第j个分词,j≥1;
将每一种分词序列与所述最优分词序列进行比对;
根据比对结果筛选出每一种分词序列中的与所述最优分词序列中的分词不相同的分词作为区别分词;
对所有的区别分词进行去重、去单处理,相应获得所述第一区别分词集合。
6.如权利要求1所述的自动纠错的方法,其特征在于,所述获取待纠错文本,具体包括:
对接收到的文本进行字符预处理,获取所述待纠错文本。
7.如权利要求1~6任一项所述的自动纠错的方法,其特征在于,所述根据所述纠错集合对所述待纠错文本进行自动纠错,具体包括:
判断所述纠错集合中的名词在所述纠错集合中是否存在子集;
当不存在时,根据所述纠错集合中的名词对所述待纠错文本进行自动纠错;
当存在时,将所述子集从所述纠错集合中删除,相应获得新纠错集合,并根据所述新纠错集合对所述待纠错文本进行自动纠错。
8.一种自动纠错的装置,其特征在于,包括:
第一文本获取模块,用于获取待纠错文本;
第一汉字分词模块,用于基于汉字对所述待纠错文本进行分词,获得n种分词序列,并根据每一种分词序列对应的联合概率获取最优分词序列以及所述最优分词序列的联合概率;其中,n≥1;所述联合概率为分词序列中的每一个分词在预设的语料库中出现的概率的乘积;
拼音分词模块,用于基于拼音对所述待纠错文本进行分词,获得n’种分词序列,并根据每一种分词序列与所述最优分词序列的比对结果获取第一区别分词集合;其中,n’≥1;
位置获取模块,用于根据所述待纠错文本获取所述第一区别分词集合中的每一个区别分词的起始位置和结束位置;
集合优化模块,用于将所述第一区别分词集合中的每一个区别分词与预设的名词字典中的名词进行比对,若任一区别分词与所述名词字典中的名词相同,则将该区别分词从所述第一区别分词集合中删除,并根据该区别分词的起始位置和结束位置将所述第一区别分词集合中的与该区别分词的位置重叠的区别分词删除,相应获得第二区别分词集合;
第二文本获取模块,用于分别计算所述第二区别分词集合中的每一个区别分词与所述名词字典中的每一个名词的编辑距离,当任一区别分词与任一名词的编辑距离小于预设的距离阈值时,将该区别分词替换为该名词,获得新待纠错文本;
第二汉字分词模块,用于基于汉字对所述新待纠错文本进行分词,获得n”种分词序列,并根据每一种分词序列对应的联合概率获取新最优分词序列以及所述新最优分词序列的联合概率;其中,n”≥1;
比较模块,用于当所述新最优分词序列的联合概率与所述最优分词序列的联合概率的差值大于预设的概率阈值时,将该名词加入纠错集合;
纠错模块,用于根据所述纠错集合对所述待纠错文本进行自动纠错。
9.一种使用自动纠错的方法的终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的自动纠错的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的自动纠错的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910554177.9A CN110362824B (zh) | 2019-06-24 | 2019-06-24 | 一种自动纠错的方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910554177.9A CN110362824B (zh) | 2019-06-24 | 2019-06-24 | 一种自动纠错的方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362824A true CN110362824A (zh) | 2019-10-22 |
CN110362824B CN110362824B (zh) | 2022-12-02 |
Family
ID=68217038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910554177.9A Active CN110362824B (zh) | 2019-06-24 | 2019-06-24 | 一种自动纠错的方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362824B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110782885A (zh) * | 2019-09-29 | 2020-02-11 | 深圳和而泰家居在线网络科技有限公司 | 语音文本修正方法及装置、计算机设备和计算机存储介质 |
CN111639493A (zh) * | 2020-05-22 | 2020-09-08 | 上海微盟企业发展有限公司 | 一种地址信息标准化方法、装置、设备及可读存储介质 |
CN111931495A (zh) * | 2020-07-13 | 2020-11-13 | 上海德拓信息技术股份有限公司 | 基于二分法及编辑距离的语料快速匹配方法及纠错方法 |
CN112001168A (zh) * | 2020-07-14 | 2020-11-27 | 咪咕文化科技有限公司 | 词语纠错方法、装置、电子设备及存储介质 |
CN112016304A (zh) * | 2020-09-03 | 2020-12-01 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
CN112765231A (zh) * | 2021-01-04 | 2021-05-07 | 珠海格力电器股份有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN114091468A (zh) * | 2021-10-27 | 2022-02-25 | 北京奇艺世纪科技有限公司 | 指代消解模型的训练方法及装置、电子设备 |
WO2022121172A1 (zh) * | 2020-12-10 | 2022-06-16 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及计算机可读存储介质 |
CN115862674A (zh) * | 2023-02-21 | 2023-03-28 | 山东山大鸥玛软件股份有限公司 | 英语口语评测的语音识别及纠错方法、系统、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136808B2 (en) * | 2000-10-20 | 2006-11-14 | Microsoft Corporation | Detection and correction of errors in german grammatical case |
CN107122346A (zh) * | 2016-12-28 | 2017-09-01 | 平安科技(深圳)有限公司 | 一种输入语句的纠错方法及装置 |
CN107608963A (zh) * | 2017-09-12 | 2018-01-19 | 马上消费金融股份有限公司 | 一种基于互信息的中文纠错方法、装置、设备及存储介质 |
CN108257650A (zh) * | 2017-12-26 | 2018-07-06 | 宁波市科技园区明天医网科技有限公司 | 一种应用于医技检查报告的智能纠错方法 |
CN108717412A (zh) * | 2018-06-12 | 2018-10-30 | 北京览群智数据科技有限责任公司 | 基于中文分词的中文校对纠错方法及系统 |
CN109376362A (zh) * | 2018-11-30 | 2019-02-22 | 武汉斗鱼网络科技有限公司 | 一种纠错文本的确定方法以及相关设备 |
-
2019
- 2019-06-24 CN CN201910554177.9A patent/CN110362824B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136808B2 (en) * | 2000-10-20 | 2006-11-14 | Microsoft Corporation | Detection and correction of errors in german grammatical case |
CN107122346A (zh) * | 2016-12-28 | 2017-09-01 | 平安科技(深圳)有限公司 | 一种输入语句的纠错方法及装置 |
CN107608963A (zh) * | 2017-09-12 | 2018-01-19 | 马上消费金融股份有限公司 | 一种基于互信息的中文纠错方法、装置、设备及存储介质 |
CN108257650A (zh) * | 2017-12-26 | 2018-07-06 | 宁波市科技园区明天医网科技有限公司 | 一种应用于医技检查报告的智能纠错方法 |
CN108717412A (zh) * | 2018-06-12 | 2018-10-30 | 北京览群智数据科技有限责任公司 | 基于中文分词的中文校对纠错方法及系统 |
CN109376362A (zh) * | 2018-11-30 | 2019-02-22 | 武汉斗鱼网络科技有限公司 | 一种纠错文本的确定方法以及相关设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110782885A (zh) * | 2019-09-29 | 2020-02-11 | 深圳和而泰家居在线网络科技有限公司 | 语音文本修正方法及装置、计算机设备和计算机存储介质 |
CN110782885B (zh) * | 2019-09-29 | 2021-11-26 | 深圳数联天下智能科技有限公司 | 语音文本修正方法及装置、计算机设备和计算机存储介质 |
CN111639493A (zh) * | 2020-05-22 | 2020-09-08 | 上海微盟企业发展有限公司 | 一种地址信息标准化方法、装置、设备及可读存储介质 |
CN111931495A (zh) * | 2020-07-13 | 2020-11-13 | 上海德拓信息技术股份有限公司 | 基于二分法及编辑距离的语料快速匹配方法及纠错方法 |
CN112001168A (zh) * | 2020-07-14 | 2020-11-27 | 咪咕文化科技有限公司 | 词语纠错方法、装置、电子设备及存储介质 |
CN112001168B (zh) * | 2020-07-14 | 2024-05-03 | 咪咕文化科技有限公司 | 词语纠错方法、装置、电子设备及存储介质 |
CN112016304A (zh) * | 2020-09-03 | 2020-12-01 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
WO2022121172A1 (zh) * | 2020-12-10 | 2022-06-16 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及计算机可读存储介质 |
CN112765231A (zh) * | 2021-01-04 | 2021-05-07 | 珠海格力电器股份有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN114091468A (zh) * | 2021-10-27 | 2022-02-25 | 北京奇艺世纪科技有限公司 | 指代消解模型的训练方法及装置、电子设备 |
CN115862674A (zh) * | 2023-02-21 | 2023-03-28 | 山东山大鸥玛软件股份有限公司 | 英语口语评测的语音识别及纠错方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110362824B (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362824A (zh) | 一种自动纠错的方法、装置、终端设备及存储介质 | |
US10990767B1 (en) | Applied artificial intelligence technology for adaptive natural language understanding | |
WO2018066445A1 (ja) | 因果関係認識装置及びそのためのコンピュータプログラム | |
CN104298662B (zh) | 一种基于有机物命名实体的机器翻译方法及翻译系统 | |
CN104765769B (zh) | 一种基于词矢量的短文本查询扩展及检索方法 | |
CN111104511B (zh) | 一种提取热点话题的方法、装置及存储介质 | |
CN102169495B (zh) | 行业词典生成方法及装置 | |
CN108874878A (zh) | 一种知识图谱的构建系统及方法 | |
CN110298032A (zh) | 文本分类语料标注训练系统 | |
CN111190900B (zh) | 一种云计算模式下json数据可视化优化方法 | |
CN108132927B (zh) | 一种融合图结构与节点关联的关键词提取方法 | |
CN107430612A (zh) | 查找描述对计算问题的解决方案的文档 | |
CN105830064A (zh) | 情态生成装置以及用于其的计算机程序 | |
CN104281702B (zh) | 基于电力关键词分词的数据检索方法及装置 | |
TWI554896B (zh) | Information Classification Method and Information Classification System Based on Product Identification | |
CN106104524B (zh) | 复杂谓语模板收集装置以及记录介质 | |
JP2017511922A (ja) | スマート質問回答の実現方法、システム、および記憶媒体 | |
CN109408811A (zh) | 一种数据处理方法及服务器 | |
CN110442725B (zh) | 实体关系抽取方法及装置 | |
CN106104519A (zh) | 短语对收集装置以及用于其的计算机程序 | |
CN106557777B (zh) | 一种基于SimHash改进的Kmeans文档聚类方法 | |
CN111460170B (zh) | 一种词语识别方法、装置、终端设备及存储介质 | |
EP3483747A1 (en) | Preserving and processing ambiguity in natural language | |
CN110222250A (zh) | 一种面向微博的突发事件触发词识别方法 | |
CN111460147A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |