CN113901795A - 基于行为数据统计的中文拼写纠错方法 - Google Patents
基于行为数据统计的中文拼写纠错方法 Download PDFInfo
- Publication number
- CN113901795A CN113901795A CN202111182052.1A CN202111182052A CN113901795A CN 113901795 A CN113901795 A CN 113901795A CN 202111182052 A CN202111182052 A CN 202111182052A CN 113901795 A CN113901795 A CN 113901795A
- Authority
- CN
- China
- Prior art keywords
- user
- input
- probability
- error correction
- character
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- 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/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements 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/0233—Character input methods
- G06F3/0237—Character input methods using prediction or retrieval techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及一种基于行为数据统计的中文拼写纠错方法,通过离线挖掘模块从用户日志中挖掘语言模型、概率转换矩阵、用户输入权重,利用概率转移矩阵对现有的公开混淆集进行过滤,获取面对用户的有效混淆集;实时计算模块基于离线挖掘模块实现拼写纠错,实时将用户输入给定的文本在挖掘语言模型的条件概率,与根据用户输入给定文本依据用户的有效混淆集形成的候选文本在挖掘语言模型的条件概率进行高低对比,实现拼写纠错。考虑应用的检索场景,利用带有输入类型的概率转移矩阵,解决了不同输入法的拼写纠错问题;利用概率矩阵提升了拼写纠错的准确率;利用有效混淆集和beam search,降低候选集的大小,从而提升了纠错的性能。
Description
技术领域
本发明涉及一种数据处理技术,特别涉及一种基于行为数据统计的中文拼写纠错方法。
背景技术
拼写纠错是搜索输入栏的常见辅助功能,旨在帮助用户规范输入内容,进而帮助用户快速定位到期望搜索到的内容。用户产生错误输入存在以下几个原因:
1、输入法软件错误提示,输入法通常会针对用户的拼写提供同音字(拼音输入法)或形近字(手写输入法),用户可能误选中错别字;
2、用户不了解查询词,主动输入错别字;
3、用户输入的查询词并非常见说法,特别是一些特定名词,例如证券名称等,导致搜索内容较少或者不满足用户的期望。
拼写纠错就是针对上述原因造成的拼写错误进行纠正,常见的拼写纠错做法包括两种,一步法:seq2seq(序列到序列模型),利用深度学习网络训练seq2seq模型,直接判断并纠错。两步法:先进行拼写检错,即找出候选文本,再进行拼写纠错,即从候选文本中找出最终正确文本。一步法因其性能和可解释性问题,在工业界使用较少。两步法会更加常见。
例如两步法中根据分词结果判断是否存在错误词条,对错误词条中的中文词汇进行同音词替换,生成候选文本,再利用Learn to Rank算法选择最终结果。
该方法存在如下两个问题:
1、分词会丢失部分信息,导致错误词条产生误判。
2、词汇的同音词替换过于严格,实际应用中存在大量近音词或字型相似的词。比如黄金(huangjin)与环境(huanjing),芈月传与米月传。
还有常用方法在字级别利用同音字找到候选文本,利用语言模型选择最终结果。该方法缺少对形近字的处理。
现有拼写纠错存在误判或错误判别不出等类似问题。
发明内容
为了提高拼写纠错识别率及降低误判的问题,提出了一种基于统计的中文拼写纠错方法,对使用不同输入法的拼写错误都能够被识别和纠正;拼写纠错的准确率高;对新出现的拼写纠错能力适应良好。
本发明的技术方案为:一种基于行为数据统计的中文拼写纠错方法,通过离线挖掘模块从用户日志中挖掘语言模型、概率转换矩阵、用户输入权重,利用概率转移矩阵对现有的公开混淆集进行过滤,获取面对用户的有效混淆集;实时计算模块基于离线挖掘模块实现拼写纠错,实时将用户输入给定的文本在挖掘语言模型的条件概率,与根据用户输入给定文本依据用户的有效混淆集形成的候选文本在挖掘语言模型的条件概率进行高低对比,使用超出用户给定的文本的条件概率的候选文本进行拼写纠错;同时将此次用户搜索行为放入用户日志,作为离线挖掘模块新的挖掘数据。
进一步,所述离线挖掘模块中概率转换矩阵获得方法如下:
首先、挖掘用户纠错对数据:对用户搜索日志中的查询词进行筛选,如果两次查询时间间隔不超过n秒,且两次查询词内容长度相等,编辑距离小于k,且后一次查询结果存在用户点击行为,则认为后一次的查询词为正确输入,之前的内容为错误输入,构成一个纠错对;若存在连续多次查询都满足间隔时间不超过n秒,前后两次查询词内容长度相等,其中多次查询词可以调整顺序,以达到前后两个查询词的编辑距离小于k,则将其中存在最多点击结果行为的查询词视为正确输入,其他内容视为错误输入,形成一正确多错误的多对纠错对;然后、计算出概率转移矩阵:每个纠错对的长度均相等,统计出字符级别的概率转移矩阵,概率转移矩阵由一个字符改写为另一个字符的条件概率构成,已知用户所有纠错对的转移量,即可计算出概率转移矩阵。
进一步,所述挖掘语言模型用户输入权重获取方法:从纠错对筛选判断中,对每个纠错对中正确输入合错误输入的区别来进行输入法判断,统计出用户的所有纠错对的输入类型,通过统计数据获得当前用户选择不同输入法的权重。
进一步,所述挖掘语言模型为利用正确文本得到N-gram语言模型,N-gram语言模型即统计当前字符在前N个字符出现情况下的条件概率。
进一步,所述实时计算模块对给定的文本进行拼写纠错的具体步骤如下:
1)用户在搜索输入栏输入的文字时,对比离线挖掘模块中的有效混淆集,发现有效混淆集中的字符,对此字符进行替换,并根据可替换字符生成所有可能的候选文本;
2)计算前i个字符串的概率,同时记录下每个候选文本生成时对应的输入法类型;
pij是第i个字符m替换成字符j时,前i个字符串的概率,pi-1是前i-1个字符串的概率值,通过N-gram语言模型计算得到;是从字符m替换成字符j的转移概率,可从直接从概率转移矩阵中获取;是字符j的条件概率,也是通过N-gram语言模型得到;
3)从实际使用角度来看,用户在一次输入过程中,不会切换输入法,因此剔除不属于步骤2)确认的输入法中存在的不同转移类型的结果;
再利用beam search算法,选择其中最高的q个候选文本;
4)如果未遍历到用户在搜索输入栏输入的最后一个字符,则继续从步骤1)开始,直到所有均遍历完成;
5)计算最终最高的q个候选句子的条件概率,与用户输入句子的条件概率进行比较,保留高于用户输入句子概率值的候选句子作为最终拼写纠错的句子。
进一步,所述步骤5)存在高于用户输入句子条件概率的候选句,作为当前候选句,按照当前用户选择不同输入法的权重,对当前候选句的条件概率进行加权,得到当前候选句的最终条件概率值。
本发明的有益效果在于:本发明基于统计的中文拼写纠错方法,考虑应用的检索场景,利用带有输入类型的概率转移矩阵,解决了不同输入法的拼写纠错问题;利用概率矩阵提升了拼写纠错的准确率;利用有效混淆集和beam search(启发式搜索),降低候选集的大小,从而提升了纠错的性能,在确保纠错准确率的同时,需要保证性能要求。
附图说明
图1为本发明基于统计的中文拼写纠错方法中离线挖掘模块运行示意图;
图2为本发明基于统计的中文拼写纠错方法中实时计算模块运行流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明首先通过离线挖掘模块从用户日志中挖掘语言模型、概率转换矩阵、用户输入权重,利用概率转移矩阵对现有的公开混淆集进行过滤,获取面对用户的有效混淆集;实时计算模块基于离线挖掘模块实现拼写纠错,实时将用户输入给定的文本在挖掘语言模型的条件概率,与根据用户输入给定文本依据用户的有效混淆集形成的候选文本在挖掘语言模型的条件概率进行高低对比,使用超出用户给定的文本的条件概率的候选文本进行拼写纠错;同时将此次用户搜索行为放入用户日志,作为离线挖掘模块新的挖掘数据。
下面对离线挖掘和实时计算两个模块运行分别进行阐述。
如图1所示离线挖掘模块运行示意图,具体包括如下步骤:
1、对用户搜索日志中的查询词进行筛选,如果两次查询时间间隔不超过n秒,且两次查询词内容长度相等,编辑距离(是指两个字串之间,由一个转成另一个所需的最少编辑操作次数)小于k,且后一次查询结果存在用户点击行为,则认为后一次的查询词为正确输入,之前的内容为错误输入,构成一个纠错对。若存在连续多次查询都满足间隔时间不超过n秒,前后两次查询词内容长度相等,其中多次查询词可以调整顺序,以达到前后两个查询词的编辑距离小于k,则将其中存在最多点击结果行为的查询词视为正确输入,其他内容视为错误输入,形成一正确多错误的多对纠错对。比如用户在1分钟内,分别输入了“环境商圈”,“环京商圈”,第一次的结果没有任何点击行为,第二次结果存在点击行为。则“环境商圈”和“环京商圈”是一对纠错对,且“环京商圈”视为正确输入。通过上述方法可以挖掘出用户纠错对数据。
2、因为每个纠错对的长度均相等,故可以很方便统计出字符级别的概率转移矩阵。概率转移矩阵由一个字符改写为另一个字符的条件概率构成。以步骤1中的例子,在转移量矩阵中,“境”到“京”的位置将转移量加1,得到所有的纠错对的转移量后,即可计算出概率转移矩阵。
3、原始混淆集是现有的公开的数据集,其中包括给定字符的同音字、近音字、形近字,以及用五笔输入法输入较为相似的字,但是由于数据集中包含很多生僻字,同时在不同场景下,部分相近字符实际不会出现,因此需要借助概率转移矩阵过滤掉不适用用户的一些内容,从而得到最终所需的有效混淆集。比如“士”的同音字有“拭、恃、式、轼、适、是、柿、饰、奭、氏、使、视、螫、弑、市、示、试、豉、仕、噬、誓、筮、室、势、侍、世、嗜、识、逝、事、释、舐、士”,但通过转移矩阵可以明确地剔除掉“奭螫筮”等字,大幅减少用于纠错的混淆集。
4、从纠错对筛选判断中还可以挖掘出用户粒度的输入法权重,即每个用户偏好何种输入法。每个纠错对通过错误字符在混淆集中的类型(同音/字型相似)来判断当前纠错对的输入类型,比如“士”与“拭”是同音字,输入类型就是拼音输入法,再如“士”与“土”是形近字,输入类型就是手写输入法。再统计出每个用户的所有纠错对的输入类型,即可得到当前用户选择不同输入法的权重。(这里是指输入法还是所用字库,不清晰“通过错误字符在混淆集中的类型”如何判断输入类型,请举例)
5、从用户行为数据中,根据存在点击行为的查询词,可以筛选出所有的正确文本,也就是纠错对中的正确输入,利用正确文本得到N-gram语言模型。(N-gram语言模型即统计当前字符在前N个字符出现情况下的条件概率)在实际开发中,为了平衡计算量和性能,N通常取1~3。
如图2所示实时计算模块运行流程图,实时计算模块对给定的文本进行拼写纠错的具体步骤如下:
1、用户在搜索输入栏输入的文字时,对比离线挖掘模块中的有效混淆集,发现有效混淆集中的字符,对此字符进行替换(例如文字中第i个字符),并根据可替换字符生成所有可能的候选文本。
2、计算前i个字符串的概率,同时记录下每个候选文本生成时对应的输入法类型:
pij是第i个字符m替换成字符j时,前i个字符串的概率,pi-1是前i-1个字符串的概率值,可通过N-gram语言模型计算得到;是从字符m替换成字符j的转移概率,可从直接从概率转移矩阵中获取;是字符j的条件概率,也是通过N-gram语言模型得到。考虑在计算时,避免概率值过小,取对数作为最终结果值。输入法类型可以根据字符i、j从输入法转移矩阵中获取。
3、从实际使用角度来看,用户在一次输入过程中,不会切换输入法,因此需要剔除不属于步骤2确认的输入法中存在的不同转移类型的结果。比如用户输入是“黄金经济带”,通过步骤2已经完成对前两个字的候选句生成,包括“环京经济带”和“董经经济带”这两个候选句,“环”和“黄”,“京”和“金”都是同近音字,都可视为是拼音输入法,而“董”和“黄”是形近字,“经”和“金”是同近音字,分别代表是手写输入法和拼音输入法,因此丢弃候选句“董经经济带”。
再利用beam search算法,选择其中最高的q个候选文本。仍然以上面的输入为例,通过前两个字变化生成诸如“环京经济带”,“幻境经济带”,“黄静经济带”等多个候选句,通过计算每个候选句前两个字的条件概率(利用N-Gram语言模型),结合beam search的思想保留条件概率最高的q个文本。
4、如果未遍历到用户在搜索输入栏输入的最后一个字符,则继续从步骤1开始,直到所有均遍历完成。
5、将最终条件概率最高的q个候选句子的条件概率,与用户输入句子的条件概率进行比较,保留高于用户输入句子条件概率的候选句子。
6、如果步骤5存在高于用户输入句子条件概率的候选句,作为当前候选句,按照用户输入法习惯,即用户使用不同输入法的概率,对当前候选句的条件概率进行加权,得到当前候选句的最终条件概率。比如当前候选句的条件概率是0.03,且当前候选句是通过在原始句进行同近义字转换得到的,所以判定该候选句是使用拼音输入法,结合离线环节计算出当前用户使用拼音输入法、手写输入法、五笔输入法的概率分别是0.9,0.1,0,则当前候选句的最终条件概率即为0.03*0.9=0.027。最后,根据最终条件概率进行排序,取条件概率最高的候选句作为纠错结果。
本发明解决了各类输入法造成的拼写错误问题。增加了概率转移矩阵,从而提高了纠错的准确率;使用beam search提高了纠错的性能,单次纠错耗时在20ms以下,并且可以横向扩展。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种基于行为数据统计的中文拼写纠错方法,其特征在于,通过离线挖掘模块从用户日志中挖掘语言模型、概率转换矩阵、用户输入权重,利用概率转移矩阵对现有的公开混淆集进行过滤,获取面对用户的有效混淆集;实时计算模块基于离线挖掘模块实现拼写纠错,实时将用户输入给定的文本在挖掘语言模型的条件概率,与根据用户输入给定文本依据用户的有效混淆集形成的候选文本在挖掘语言模型的条件概率进行高低对比,使用超出用户给定的文本的条件概率的候选文本进行拼写纠错;同时将此次用户搜索行为放入用户日志,作为离线挖掘模块新的挖掘数据。
2.根据权利要求1所述基于行为数据统计的中文拼写纠错方法,其特征在于,所述离线挖掘模块中概率转换矩阵获得方法如下:
首先、挖掘用户纠错对数据:对用户搜索日志中的查询词进行筛选,如果两次查询时间间隔不超过n秒,且两次查询词内容长度相等,编辑距离小于k,且后一次查询结果存在用户点击行为,则认为后一次的查询词为正确输入,之前的内容为错误输入,构成一个纠错对;若存在连续多次查询都满足间隔时间不超过n秒,前后两次查询词内容长度相等,其中多次查询词可以调整顺序,以达到前后两个查询词的编辑距离小于k,则将其中存在最多点击结果行为的查询词视为正确输入,其他内容视为错误输入,形成一正确多错误的多对纠错对;
然后、计算出概率转移矩阵:每个纠错对的长度均相等,统计出字符级别的概率转移矩阵,概率转移矩阵由一个字符改写为另一个字符的条件概率构成,已知用户所有纠错对的转移量,即可计算出概率转移矩阵。
3.根据权利要求2所述基于行为数据统计的中文拼写纠错方法,其特征在于,所述挖掘语言模型用户输入权重获取方法:从纠错对筛选判断中,对每个纠错对中正确输入合错误输入的区别来进行输入法判断,统计出用户的所有纠错对的输入类型,通过统计数据获得当前用户选择不同输入法的权重。
4.根据权利要求2所述基于行为数据统计的中文拼写纠错方法,其特征在于,所述挖掘语言模型为利用正确文本得到N-gram语言模型,N-gram语言模型即统计当前字符在前N个字符出现情况下的条件概率。
5.根据权利要求1至4中任意一项所述基于行为数据统计的中文拼写纠错方法,其特征在于,所述实时计算模块对给定的文本进行拼写纠错的具体步骤如下:
1)用户在搜索输入栏输入的文字时,对比离线挖掘模块中的有效混淆集,发现有效混淆集中的字符,对此字符进行替换,并根据可替换字符生成所有可能的候选文本;
2)计算前i个字符串的概率,同时记录下每个候选文本生成时对应的输入法类型;
pij是第i个字符m替换成字符j时,前i个字符串的概率,pi-1是前i-1个字符串的概率值,通过N-gram语言模型计算得到;是从字符m替换成字符j的转移概率,可从直接从概率转移矩阵中获取;是字符j的条件概率,也是通过N-gram语言模型得到;
3)从实际使用角度来看,用户在一次输入过程中,不会切换输入法,因此剔除不属于步骤2)确认的输入法中存在的不同转移类型的结果;
再利用beam search算法,选择其中最高的q个候选文本;
4)如果未遍历到用户在搜索输入栏输入的最后一个字符,则继续从步骤1)开始,直到所有均遍历完成;
5)计算最终最高的q个候选句子的条件概率,与用户输入句子的条件概率进行比较,保留高于用户输入句子概率值的候选句子作为最终拼写纠错的句子。
6.根据权利要求5所述基于行为数据统计的中文拼写纠错方法,其特征在于,所述步骤5)存在高于用户输入句子条件概率的候选句,作为当前候选句,按照当前用户选择不同输入法的权重,对当前候选句的条件概率进行加权,得到当前候选句的最终条件概率值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111182052.1A CN113901795A (zh) | 2021-10-11 | 2021-10-11 | 基于行为数据统计的中文拼写纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111182052.1A CN113901795A (zh) | 2021-10-11 | 2021-10-11 | 基于行为数据统计的中文拼写纠错方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113901795A true CN113901795A (zh) | 2022-01-07 |
Family
ID=79191311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111182052.1A Pending CN113901795A (zh) | 2021-10-11 | 2021-10-11 | 基于行为数据统计的中文拼写纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901795A (zh) |
-
2021
- 2021-10-11 CN CN202111182052.1A patent/CN113901795A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489760B (zh) | 基于深度神经网络文本自动校对方法及装置 | |
CN108287858B (zh) | 自然语言的语义提取方法及装置 | |
US6513005B1 (en) | Method for correcting error characters in results of speech recognition and speech recognition system using the same | |
CN111310443B (zh) | 一种文本纠错方法和系统 | |
CN109800414B (zh) | 语病修正推荐方法及系统 | |
CN106537370B (zh) | 在存在来源和翻译错误的情况下对命名实体鲁棒标记的方法和系统 | |
JP4568774B2 (ja) | 手書き文字認識で使用されるテンプレートを生成する方法 | |
JP6187877B2 (ja) | 同義語抽出システム、方法および記録媒体 | |
JP5809381B1 (ja) | 自然言語処理システム、自然言語処理方法、および自然言語処理プログラム | |
CN109684928B (zh) | 基于互联网检索的中文文档识别方法 | |
CN109299233A (zh) | 文本数据处理方法、装置、计算机设备及存储介质 | |
CN113343671B (zh) | 一种语音识别后的语句纠错方法、装置、设备及存储介质 | |
CN111274785A (zh) | 一种文本纠错方法、装置、设备及介质 | |
CN116306600B (zh) | 一种基于MacBert的中文文本纠错方法 | |
CN111611791B (zh) | 一种文本处理的方法及相关装置 | |
CN111401012A (zh) | 文本纠错方法、电子设备及计算机可读存储介质 | |
CN111680476A (zh) | 一种用于智能生成类文本的业务热词识别转换的方法 | |
Mittra et al. | A bangla spell checking technique to facilitate error correction in text entry environment | |
CN113901795A (zh) | 基于行为数据统计的中文拼写纠错方法 | |
CN112800752B (zh) | 纠错方法、装置、设备以及存储介质 | |
CN112651590B (zh) | 一种指令处理流程推荐的方法 | |
CN114548049A (zh) | 一种数字正则化方法、装置、设备及存储介质 | |
CN113723506A (zh) | 一种对抗样本的生成方法、设备及存储介质 | |
CN114970538A (zh) | 文本纠错的方法及装置 | |
Kumar et al. | Automatic text correction for Devanagari OCR |
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 |