错词纠正方法、装置、计算机装置及存储介质转让专利

申请号 : CN201910199221.9

文献号 : CN110110041A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 解笑徐国强邱寒

申请人 : 平安科技(深圳)有限公司

摘要 :

本发明提供一种错词纠正方法、装置、计算机装置及存储介质。所述错词纠正方法包括:获取通用自然语言数据集;将自然语言数据集包含的每个句子转换为拼音序列,得到通用自然语言数据集的拼音-句子对;将通用自然语言数据集的部分拼音-句子对进行拼音替换,得到第一样本集;利用第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;获取多个与特定领域相关的含相近拼音的拼音-句子对作为第二样本集;利用第二样本集对预训练后的神经网络模型进行微调,得到微调后的神经网络模型;将待纠错句子的拼音序列输入微调后的神经网络模型进行纠错,得到纠错后的句子。本发明可以对语言识别中专有词语被识别为常用词进行纠错。

权利要求 :

1.一种错词纠正方法,其特征在于,所述方法包括:

获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;

将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;

从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;

利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;

获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;

利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;

将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。

2.如权利要求1所述的方法,其特征在于,所述将所述通用自然语言数据集包含的每个句子转换为拼音序列包括:根据汉字的ASCII码将所述句子转换为拼音序列;或

根据汉字的Unicode值将所述句子转换为拼音序列。

3.如权利要求2所述的方法,其特征在于,所述根据汉字的Unicode值将所述句子转换为拼音序列包括:建立拼音-编号对照表,对所有拼音进行编号并将所有拼音对应的编号添加到所述拼音-编号对照表中;

建立Unicode值-拼音编号对照表,将汉字对应拼音的编号按照汉字的Unicode值添加到所述Unicode值-拼音编号对照表中;

逐一读取所述句子中的待转换汉字,确定所述待转换汉字的Unicode值,根据所述待转换汉字的Unicode值从所述Unicode值-拼音编号对照表中获取所述待转换汉字对应的拼音的编号,根据所述待转换汉字对应的拼音的编号从所述拼音-编号对照表获得所述待转换汉字对应的拼音,从而将所述句子中的每个汉字转换为拼音。

4.如权利要求1所述的方法,其特征在于,所述从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对包括:从所述通用自然语言数据集的拼音-句子对中随机选择所述多个拼音-句子对;和/或按照预设比例从所述通用自然语言数据集的拼音-句子对中选择所述多个拼音-句子对。

5.如权利要求1所述的方法,其特征在于,所述神经网络模型是transformer模型。

6.如权利要求1所述的方法,其特征在于,所述对所述预训练后的神经网络模型进行微调包括:固定所述神经网络模型的前面几层神经元的权值,微调所述神经网络模型的后面几层神经元的权值。

7.如权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:对输入的语音进行识别,得到所述待纠错句子。

8.一种错词纠正装置,其特征在于,所述装置包括:

第一获取模块,用于获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;

转换模块,用于将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;

生成模块,用于从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;

预训练模块,用于用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;

第二获取模块,用于获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;

微调模块,用于利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;

纠错模块,用于将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。

9.一种计算机装置,其特征在于:所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1-7中任一项所述错词纠正方法。

10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述错词纠正方法。

说明书 :

错词纠正方法、装置、计算机装置及存储介质

技术领域

[0001] 本发明涉及语音识别技术领域,具体涉及一种错词纠正方法、装置、计算机装置及计算机存储介质。

背景技术

[0002] 随着语音识别应用场景的迅猛拓宽,语音识别技术越来越成熟,市场对高准确度的语音识别需求越来越强烈。对于一些开发具有语音识别功能产品的公司,更多的情况是使用通用系统的语音识别模块,不针对其具体应用场景进行识别,就会很容易出现将某些专有词语识别为常用词。例如将“需要为谁投保”识别为“需要为谁淘宝”,由于其并没有明显的错误,现有错词纠正系统难以发现此类错误。
[0003] 目前,对于如何提升语言识别在实际应用场景中的纠正效果并没有一个有效的解决方法。如何制定合适的方案,以减少语音识别的偏差,提升用户体验,是相关技术人员目前需要解决的技术问题。

发明内容

[0004] 鉴于以上内容,有必要提出一种错词纠正方法、装置、计算机装置及计算机存储介质,可以对语言识别中专有词语被识别为常用词进行纠错。
[0005] 本申请的第一方面提供一种错词纠正方法,所述方法包括:
[0006] 获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;
[0007] 将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;
[0008] 从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;
[0009] 利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;
[0010] 获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;
[0011] 利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;
[0012] 将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
[0013] 另一种可能的实现方式中,所述将所述通用自然语言数据集包含的每个句子转换为拼音序列包括:
[0014] 根据汉字的ASCII码将所述句子转换为拼音序列;或
[0015] 根据汉字的Unicode值将所述句子转换为拼音序列。
[0016] 另一种可能的实现方式中,所述根据汉字的Unicode值将所述句子转换为拼音序列包括:
[0017] 建立拼音-编号对照表,对所有拼音进行编号并将所有拼音对应的编号添加到所述拼音-编号对照表中;
[0018] 建立Unicode值-拼音编号对照表,将汉字对应拼音的编号按照汉字的Unicode值添加到所述Unicode值-拼音编号对照表中;
[0019] 逐一读取所述句子中的待转换汉字,确定所述待转换汉字的Unicode值,根据所述待转换汉字的Unicode值从所述Unicode值-拼音编号对照表中获取所述待转换汉字对应的拼音的编号,根据所述待转换汉字对应的拼音的编号从所述拼音-编号对照表获得所述待转换汉字对应的拼音,从而将所述句子中的每个汉字转换为拼音
[0020] 另一种可能的实现方式中,所述从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对包括:
[0021] 从所述通用自然语言数据集的拼音-句子对中随机选择所述多个拼音-句子对;和/或
[0022] 按照预设比例从所述通用自然语言数据集的拼音-句子对中选择所述多个拼音-句子对。
[0023] 另一种可能的实现方式中,所述神经网络模型是transformer模型。
[0024] 另一种可能的实现方式中,所述对所述预训练后的神经网络模型进行微调包括:
[0025] 固定所述神经网络模型的前面几层神经元的权值,微调所述神经网络模型的后面几层神经元的权值。
[0026] 另一种可能的实现方式中,所述方法还包括:
[0027] 对输入的语音进行识别,得到所述待纠错句子。
[0028] 本申请的第二方面提供一种错词纠正装置,所述装置包括:
[0029] 第一获取模块,用于获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;
[0030] 转换模块,用于将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;
[0031] 生成模块,用于从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;
[0032] 预训练模块,用于用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;
[0033] 第二获取模块,用于获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;
[0034] 微调模块,用于利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;
[0035] 纠错模块,用于将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
[0036] 另一种可能的实现方式中,所述将所述通用自然语言数据集包含的每个句子转换为拼音序列包括:
[0037] 根据汉字的ASCII码将所述句子转换为拼音序列;或
[0038] 根据汉字的Unicode值将所述句子转换为拼音序列。
[0039] 另一种可能的实现方式中,所述根据汉字的Unicode值将所述句子转换为拼音序列包括:
[0040] 建立拼音-编号对照表,对所有拼音进行编号并将所有拼音对应的编号添加到所述拼音-编号对照表中;
[0041] 建立Unicode值-拼音编号对照表,将汉字对应拼音的编号按照汉字的Unicode值添加到所述Unicode值-拼音编号对照表中;
[0042] 逐一读取所述句子中的待转换汉字,确定所述待转换汉字的Unicode值,根据所述待转换汉字的Unicode值从所述Unicode值-拼音编号对照表中获取所述待转换汉字对应的拼音的编号,根据所述待转换汉字对应的拼音的编号从所述拼音-编号对照表获得所述待转换汉字对应的拼音,从而将所述句子中的每个汉字转换为拼音
[0043] 另一种可能的实现方式中,所述从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对包括:
[0044] 从所述通用自然语言数据集的拼音-句子对中随机选择所述多个拼音-句子对;和/或
[0045] 按照预设比例从所述通用自然语言数据集的拼音-句子对中选择所述多个拼音-句子对。
[0046] 另一种可能的实现方式中,所述神经网络模型是transformer模型。
[0047] 另一种可能的实现方式中,所述对所述预训练后的神经网络模型进行微调包括:
[0048] 固定所述神经网络模型的前面几层神经元的权值,微调所述神经网络模型的后面几层神经元的权值。
[0049] 另一种可能的实现方式中,所述装置还包括:
[0050] 识别模块,用于对输入的语音进行识别,得到所述待纠错句子。
[0051] 本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述错词纠正方法。
[0052] 本申请的第四方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述错词纠正方法。
[0053] 本发明获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。本实施例可以解决由于语音识别系统的通用性在特定领域内无法准确预测专有词语的问题,能够对语言识别中专有词语被识别为常用词进行纠错。

附图说明

[0054] 图1是本发明实施例提供的错词纠正方法的流程图。
[0055] 图2是本发明实施例提供的错词纠正装置的结构图。
[0056] 图3是本发明实施例提供的计算机装置的示意图。

具体实施方式

[0057] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0058] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
[0060] 优选地,本发明的错词纠正方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
[0061] 所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
[0062] 实施例一
[0063] 图1是本发明实施例一提供的错词纠正方法的流程图。所述错词纠正方法应用于计算机装置。
[0064] 本发明的错词纠正方法是对语言识别得到的句子进行纠错。所述错词纠正方法可以解决由于语音识别系统的通用性在特定领域内无法准确预测专有词语的问题,同时增强了纠错系统在专有词语被替换为常用词时的错词寻找能力,提升用户的使用体验。
[0065] 如图1所示,所述错词纠正方法包括:
[0066] 步骤101,获取通用自然语言数据集,所述通用自然语言数据集包含多个句子。
[0067] 所述通用自然语言数据集是包含日常用语的中文文本。
[0068] 可以从书籍、新闻、网页(例如百度百科、维基百科等)等数据源中收集所述通用自然语言数据集。例如,可以对书籍中的文字进行文字识别,得到所述通用自然语言数据集。又如,可以对播报的新闻进行语言识别,得到所述通用自然语言数据集。再如,可以从网页中抓取文本,得到所述通用自然语言数据集。
[0069] 或者,可以从预设数据库读取所述通用自然语言数据集。所述预设数据库可以预先存储大量的中文文本。
[0070] 或者,可以接收用户输入的中文文本,将用户输入的中文文本作为所述通用自然语言数据集。
[0071] 步骤102,将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对。
[0072] 在本实施例中,所述通用自然语言数据集可以包括多个中文文本,每个中文文本可以包括多个句子(即多句话)。这种情况下,可以根据标点符号(例如逗号、分号、句号等)将每个中文文本划分为多个句子,将划分得到的每个句子转换为拼音序列,即得到每个句子对应的拼音-句子对。
[0073] 可以根据汉字的ASCII码将所述句子转换为拼音序列。由于汉字在计算机系统中以ASCII码表示,只需要利用计算机系统中已有的或用户建立的每个拼音与每个ASCII码对应关系,即可实现将句子转换成拼音序列。若句子含有多音字,可以列出多音字的多个拼音,接收用户选择的正确拼音。
[0074] 或者,可以根据汉字的Unicode值将所述句子转换为拼音序列。具体步骤如下:
[0075] (1)建立拼音-编号对照表,对所有拼音进行编号并将所有拼音对应的编号添加到所述拼音-编号对照表中。所有汉字的拼音不超过512个,可以用两个字节对拼音进行编号。每个拼音对应一个编号。
[0076] (2)建立Unicode值-拼音编号对照表,将汉字对应拼音的编号按照汉字的Unicode值添加到所述Unicode值-拼音编号对照表中。
[0077] (3)逐一读取所述句子中的待转换汉字,确定所述待转换汉字的Unicode值,根据所述待转换汉字的Unicode值从所述Unicode值-拼音编号对照表中获取所述待转换汉字对应的拼音的编号,根据所述待转换汉字对应的拼音的编号从所述拼音-编号对照表获得所述待转换汉字对应的拼音,从而将所述句子中的每个汉字转换为拼音。
[0078] 若所述句子中含有多音字,可以在上述步骤(2)中将所述多音字对应的多个拼音的编号按照所述多音字的Unicode值添加到所述Unicode值-拼音编号对照表中,在上述(3)中确定所述多音字的Unicode值,根据所述多音字的Unicode值从所述Unicode值-拼音编号对照表中获取所述多音字对应的多个拼音的编号,根据所述多音字对应的多个拼音的编号从所述拼音-编号对照表获得所述多音字对应的多个拼音。可以接收用户从所述多个拼音中选择的正确拼音,将用户选择的拼音作为所述多音字在所述句子中的正确拼音。
[0079] 步骤103,从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集。
[0080] 可以从所述通用自然语言数据集的拼音-句子对中随机选择所述多个拼音-句子对,将选择的每个拼音-句子中的部分拼音替换为相近拼音。
[0081] 可以按照预设比例从通用自然语言数据集的拼音-句子对中选择多个拼音-句子对。例如,可以从所述通用自然语言数据集的拼音-句子对中选择20%的拼音-句子对进行拼音替换。举例来说,若所述通用自然语言数据集包括100个句子(即包括100个拼音-句子对),则选择20个拼音-句子对进行拼音替换。
[0082] 所述第一样本集的训练样本包括未选择的拼音-句子对,即正确的拼音-句子对,还包括替换后的拼音-句子对,即将部分拼音替换为相近拼音的拼音-句子对。
[0083] 本发明主要用于对语言识别得到的句子进行纠错。由于语音识别得到的句子错误大多是句子中的词语有意义而句子无意义,例如“需要为谁投保”有时会被识别成“需要为谁淘宝”。因此,不仅需要正确的拼音-句子对作为训练样本,还需要将部分拼音替换为相近拼音的拼音-句子对作为模型的训练样本。
[0084] 步骤104,利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型。
[0085] 所述神经网络模型的输入为拼音序列,输出为对应的句子(即汉字序列),对拼音序列中的每一个拼音,预测其对应的汉字。
[0086] 在对神经网络模型进行训练时,以每个未选择的拼音-句子对(即未替换的拼音-句子对)和每个替换后的拼音-句子对作为训练样本。拼音-句子对中的拼音序列为神经网络模型的输入,拼音-句子对中的句子为真实结果。
[0087] 在本实施例中,所述神经网络模型可以是transformer模型。
[0088] transformer模型可以接受一串序列作为输入,同时输出一串序列,在本发明中,Transformer模型将拼音序列作为输入,输出汉字序列。
[0089] transformer模型包含编码层、自注意力层、解码层。其中编码层和解码层分别对应拼音的编码和到汉字的解码。自注意力层则用于重复拼音的汉字预测。由于汉字拼音有大量重复,不同的汉字和词语对应于相同的拼音,例如“爆笑”和“报效”拥有同样的拼音和声调,因此在每一个拼音所在进行预测时,需要“关注”整个句子的拼音序列,而不是只看当前位置的拼音。自注意力机制可以使得某一位置的拼音获得其它所有位置的拼音表示,从而做出更符合该句子场景的汉字预测。
[0090] 在经过大量样本的训练后,该Ttransformer模型可以通过输入拼音序列来输出对应的汉字序列。
[0091] 步骤105,获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集。
[0092] 所述第二样本集中的每个训练样本是与特定领域相关的一个拼音-句子对,该拼音-句子对中包含与所述特定领域相关的相近拼音。
[0093] 特定领域是本方法所要应用的专有领域,例如法律、保险等。
[0094] 步骤101获得的语料数据集是通用自然语言数据集,主要包含一些日常用语,根据通用自然语言数据集得到的第一样本集是关于日常用语的训练样本,因此预训练得到的神经网络模型在当日常生活中的句子有明显的语音识别错误时,可以进行很好地纠错。但当遇到某些例如法律、保险等专有领域,则神经网络模型的纠错效果有所下降,会将很多专有词语识别为日常用语。例如将“需要为谁投保”中的“投保”识别为“淘宝”。因此要应用到特定领域进行错词纠错时,需要该特定领域的样本数据。
[0095] 可以按照下述方法获取多个与特定领域相关的包含相近拼音的拼音-句子对:
[0096] 获取所述特定领域的文本数据集,所述文本数据集包含多个句子;
[0097] 将所述文本数据集包含的每个句子转换为拼音序列,得到所述文本数据集的拼音-句子对;
[0098] 将所述文本数据集的拼音-句子对中所述特定领域的专有词语的拼音替换为相近拼音,得到与特定领域相关的包含相近拼音的拼音-句子对。例如,将“需要为谁投保”中的“投保”的拼音(tou,二声,bao,三声)替换为“淘宝”的拼音(tao,二声,bao,三声)。
[0099] 或者,可以预先建立数据库,用于存储所述特定领域识别错误的拼音-句子对,从所述数据库获取多个与特定领域相关的包含相近拼音的拼音-句子对。
[0100] 步骤106,利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型。
[0101] 利用所述第二样本集对所述神经网络模型进行微调的目的是使所述神经网络模型更适用于特定领域,提高特定领域的纠错准确率。
[0102] 微调训练后的模型在拼音近似的情况下,更倾向于预测为该特定领域的专有词语,从而提高语音识别错误的错词纠正效果。
[0103] 可以固定所述神经网络模型的前面几层神经元的权值,微调神经网络模型的后面几层神经元的权值。这样做主要是为了避免第二样本集过小出现过拟合现象,神经网络模型前几层神经元一般包含更多的一般特征,对于许多任务而言非常重要,但是后面几层神经元的特征学习注重高层特征,不同的数据集间差异较大。
[0104] 步骤107,将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
[0105] 语言识别得到的结果可以包括多个中文文本,每个中文文本可以包括多个待纠错句子(即多句话)。这种情况下,可以根据标点符号(例如逗号、分号、句号等)将语言识别得到的中文文本划分为多个待纠错句子,将划分得到的每个待纠错句子转换为拼音序列。
[0106] 可以根据汉字的ASCII码将所述待纠错句子转换为拼音序列。或者,可以根据汉字的Unicode值将所述待纠错句子转换为拼音序列。将待纠错句子转换为拼音序列的方法可以参考步骤102。
[0107] 或者,可以接收用户输入的待纠错句子,将所述待纠错句子转换为拼音序列。例如,可以生成用户界面,从所述用户界面接收用户输入的待纠错句子。也可以直接接收用户输入的待纠错句子的拼音序列。
[0108] 实施例一的错词纠正方法获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。本实施例可以解决由于语音识别系统的通用性在特定领域内无法准确预测专有词语的问题,能够对语言识别中专有词语被识别为常用词进行纠错。
[0109] 在另一实施例中,所述错词纠正方法还可以包括:对输入的语音进行识别,得到所述待纠错句子。可以采用各种语音识别技术,例如动态时间规整(Dynamic Time Warping,DTW)、隐马尔可夫模型(Hidden Markov Model,HMM)、矢量量化(Vector Quantization,VQ)、人工神经网络(Artificial Neural Network,ANN)等技术对所述语音进行识别。
[0110] 实施例二
[0111] 图2是本发明实施例二提供的错词纠正装置的结构图。所述错词纠正装置20应用于计算机装置。如图2所示,所述错词纠正装置20可以包括第一获取模块201、转换模块202、生成模块203、预训练模块204、第二获取模块205、微调模块206、纠错模块207。
[0112] 第一获取模块201,用于获取通用自然语言数据集,所述通用自然语言数据集包含多个句子。
[0113] 所述通用自然语言数据集是包含日常用语的中文文本。
[0114] 可以从书籍、新闻、网页(例如百度百科、维基百科等)等数据源中收集所述通用自然语言数据集。例如,可以对书籍中的文字进行文字识别,得到所述通用自然语言数据集。又如,可以对播报的新闻进行语言识别,得到所述通用自然语言数据集。再如,可以从网页中抓取文本,得到所述通用自然语言数据集。
[0115] 或者,可以从预设数据库读取所述通用自然语言数据集。所述预设数据库可以预先存储大量的中文文本。
[0116] 或者,可以接收用户输入的中文文本,将用户输入的中文文本作为所述通用自然语言数据集。
[0117] 转换模块202,用于将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对。
[0118] 在本实施例中,所述通用自然语言数据集可以包括多个中文文本,每个中文文本可以包括多个句子(即多句话)。这种情况下,可以根据标点符号(例如逗号、分号、句号等)将每个中文文本划分为多个句子,将划分得到的每个句子转换为拼音序列,即得到每个句子对应的拼音-句子对。
[0119] 可以根据汉字的ASCII码将所述句子转换为拼音序列。由于汉字在计算机系统中以ASCII码表示,只需要利用计算机系统中已有的或用户建立的每个拼音与每个ASCII码对应关系,即可实现将句子转换成拼音序列。若句子含有多音字,可以列出多音字的多个拼音,接收用户选择的正确拼音。
[0120] 或者,可以根据汉字的Unicode值将所述句子转换为拼音序列。具体步骤如下:
[0121] (1)建立拼音-编号对照表,对所有拼音进行编号并将所有拼音对应的编号添加到所述拼音-编号对照表中。所有汉字的拼音不超过512个,可以用两个字节对拼音进行编号。每个拼音对应一个编号。
[0122] (2)建立Unicode值-拼音编号对照表,将汉字对应拼音的编号按照汉字的Unicode值添加到所述Unicode值-拼音编号对照表中。
[0123] (3)逐一读取所述句子中的待转换汉字,确定所述待转换汉字的Unicode值,根据所述待转换汉字的Unicode值从所述Unicode值-拼音编号对照表中获取所述待转换汉字对应的拼音的编号,根据所述待转换汉字对应的拼音的编号从所述拼音-编号对照表获得所述待转换汉字对应的拼音,从而将所述句子中的每个汉字转换为拼音。
[0124] 若所述句子中含有多音字,可以在上述步骤(2)中将所述多音字对应的多个拼音的编号按照所述多音字的Unicode值添加到所述Unicode值-拼音编号对照表中,在上述(3)中确定所述多音字的Unicode值,根据所述多音字的Unicode值从所述Unicode值-拼音编号对照表中获取所述多音字对应的多个拼音的编号,根据所述多音字对应的多个拼音的编号从所述拼音-编号对照表获得所述多音字对应的多个拼音。可以接收用户从所述多个拼音中选择的正确拼音,将用户选择的拼音作为所述多音字在所述句子中的正确拼音。
[0125] 生成模块203,用于从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集。
[0126] 可以从所述通用自然语言数据集的拼音-句子对中随机选择所述多个拼音-句子对,将选择的每个拼音-句子中的部分拼音替换为相近拼音。
[0127] 可以按照预设比例从通用自然语言数据集的拼音-句子对中选择多个拼音-句子对。例如,可以从所述通用自然语言数据集的拼音-句子对中选择20%的拼音-句子对进行拼音替换。举例来说,若所述通用自然语言数据集包括100个句子(即包括100个拼音-句子对),则选择20个拼音-句子对进行拼音替换。
[0128] 所述第一样本集的训练样本包括未选择的拼音-句子对,即正确的拼音-句子对,还包括替换后的拼音-句子对,即将部分拼音替换为相近拼音的拼音-句子对。
[0129] 本发明主要用于对语言识别得到的句子进行纠错。由于语音识别得到的句子错误大多是句子中的词语有意义而句子无意义,例如“需要为谁投保”有时会被识别成“需要为谁淘宝”。因此,不仅需要正确的拼音-句子对作为训练样本,还需要将部分拼音替换为相近拼音的拼音-句子对作为模型的训练样本。
[0130] 预训练模块204,用于利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型。
[0131] 所述神经网络模型的输入为拼音序列,输出为对应的句子(即汉字序列),对拼音序列中的每一个拼音,预测其对应的汉字。
[0132] 在对神经网络模型进行训练时,以每个未选择的拼音-句子对(即未替换的拼音-句子对)和每个替换后的拼音-句子对作为训练样本。拼音-句子对中的拼音序列为神经网络模型的输入,拼音-句子对中的句子为真实结果。
[0133] 在本实施例中,所述神经网络模型可以是transformer模型。
[0134] transformer模型可以接受一串序列作为输入,同时输出一串序列,在本发明中,Transformer模型将拼音序列作为输入,输出汉字序列。
[0135] transformer模型包含编码层、自注意力层、解码层。其中编码层和解码层分别对应拼音的编码和到汉字的解码。
[0136] 自注意力层则用于重复拼音的汉字预测。由于汉字拼音有大量重复,不同的汉字和词语对应于相同的拼音,例如“爆笑”和“报效”拥有同样的拼音和声调,因此在每一个拼音所在进行预测时,需要“关注”整个句子的拼音序列,而不是只看当前位置的拼音。自注意力机制可以使得某一位置的拼音获得其它所有位置的拼音表示,从而做出更符合该句子场景的汉字预测。
[0137] 在经过大量样本的训练后,该Ttransformer模型可以通过输入拼音序列来输出对应的汉字序列。
[0138] 第二获取模块205,用于获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集。
[0139] 所述第二样本集中的每个训练样本是与特定领域相关的一个拼音-句子对,该拼音-句子对中包含与所述特定领域相关的相近拼音。
[0140] 特定领域是本方法所要应用的专有领域,例如法律、保险等。
[0141] 第一获取模块201获得的语料数据集是通用自然语言数据集,主要包含一些日常用语,根据通用自然语言数据集得到的第一样本集是关于日常用语的训练样本,因此预训练得到的神经网络模型在当日常生活中的句子有明显的语音识别错误时,可以进行很好地纠错。但当遇到某些例如法律、保险等专有领域,则神经网络模型的纠错效果有所下降,会将很多专有词语识别为日常用语。例如将“需要为谁投保”中的“投保”识别为“淘宝”。因此要应用到特定领域进行错词纠错时,需要该特定领域的样本数据。
[0142] 可以按照下述方法获取多个与特定领域相关的包含相近拼音的拼音-句子对:
[0143] 获取所述特定领域的文本数据集,所述文本数据集包含多个句子;
[0144] 将所述文本数据集包含的每个句子转换为拼音序列,得到所述文本数据集的拼音-句子对;
[0145] 将所述文本数据集的拼音-句子对中所述特定领域的专有词语的拼音替换为相近拼音,得到与特定领域相关的包含相近拼音的拼音-句子对。例如,将“需要为谁投保”中的“投保”的拼音(tou,二声,bao,三声)替换为“淘宝”的拼音(tao,二声,bao,三声)。
[0146] 或者,可以预先建立数据库,用于存储所述特定领域识别错误的拼音-句子对,从所述数据库获取多个与特定领域相关的包含相近拼音的拼音-句子对。
[0147] 微调模块206,用于利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型。
[0148] 利用所述第二样本集对所述神经网络模型进行微调的目的是使所述神经网络模型更适用于特定领域,提高特定领域的纠错准确率。
[0149] 微调训练后的模型在拼音近似的情况下,更倾向于预测为该特定领域的专有词语,从而提高语音识别错误的错词纠正效果。
[0150] 可以固定所述神经网络模型的前面几层神经元的权值,微调神经网络模型的后面几层神经元的权值。这样做主要是为了避免第二样本集过小出现过拟合现象,神经网络模型前几层神经元一般包含更多的一般特征,对于许多任务而言非常重要,但是后面几层神经元的特征学习注重高层特征,不同的数据集间差异较大。
[0151] 纠错模块207,用于将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
[0152] 语言识别得到的结果可以包括多个中文文本,每个中文文本可以包括多个待纠错句子(即多句话)。这种情况下,可以根据标点符号(例如逗号、分号、句号等)将语言识别得到的中文文本划分为多个待纠错句子,将划分得到的每个待纠错句子转换为拼音序列。
[0153] 可以根据汉字的ASCII码将所述待纠错句子转换为拼音序列。或者,可以根据汉字的Unicode值将所述待纠错句子转换为拼音序列。将待纠错句子转换为拼音序列的方法可以参考转换模块202的描述。
[0154] 或者,可以接收用户输入的待纠错句子,将所述待纠错句子转换为拼音序列。例如,可以生成用户界面,从所述用户界面接收用户输入的待纠错句子。也可以直接接收用户输入的待纠错句子的拼音序列。
[0155] 本实施例的错词纠正装置20获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
本实施例可以解决由于语音识别系统的通用性在特定领域内无法准确预测专有词语的问题,能够对语言识别中专有词语被识别为常用词进行纠错。
[0156] 在另一实施例中,所述错词纠正装置20还可以包括:识别模块,对输入的语音进行识别,得到所述待纠错句子。可以采用各种语音识别技术,例如动态时间规整(Dynamic Time Warping,DTW)、隐马尔可夫模型(Hidden Markov Model,HMM)、矢量量化(Vector Quantization,VQ)、人工神经网络(Artificial Neural Network,ANN)等技术对所述语音进行识别。
[0157] 实施例三
[0158] 本实施例提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述错词纠正方法实施例中的步骤,例如图1所示的步骤101-107:
[0159] 步骤101,获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;
[0160] 步骤102,将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;
[0161] 步骤103,从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;
[0162] 步骤104,利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;
[0163] 步骤105,获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;
[0164] 步骤106,利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;
[0165] 步骤107,将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
[0166] 或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-207:
[0167] 第一获取模块201,用于获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;
[0168] 转换模块202,用于将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;
[0169] 生成模块203,用于从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;
[0170] 预训练模块204,用于利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;
[0171] 第二获取模块205,用于获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;
[0172] 微调模块206,用于利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;
[0173] 纠错模块207,用于将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
[0174] 实施例四
[0175] 图3为本发明实施例四提供的计算机装置的示意图。所述计算机装置30包括存储器301、处理器302以及存储在所述存储器301中并可在所述处理器302上运行的计算机程序303,例如错词纠正程序。所述处理器302执行所述计算机程序303时实现上述错词纠正方法实施例中的步骤,例如图1所示的步骤101-107:
[0176] 步骤101,获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;
[0177] 步骤102,将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;
[0178] 步骤103,从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;
[0179] 步骤104,利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;
[0180] 步骤105,获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;
[0181] 步骤106,利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;
[0182] 步骤107,将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
[0183] 或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-207:
[0184] 第一获取模块201,用于获取通用自然语言数据集,所述通用自然语言数据集包含多个句子;
[0185] 转换模块202,用于将所述通用自然语言数据集包含的每个句子转换为拼音序列,得到所述通用自然语言数据集的拼音-句子对;
[0186] 生成模块203,用于从所述通用自然语言数据集的拼音-句子对中选择多个拼音-句子对,将选择的每个拼音-句子对的部分拼音替换为相近拼音,得到替换后的拼音-句子对,将所述通用自然语言数据集的未选择的拼音-句子对和所述替换后的拼音-句子对组成第一样本集;
[0187] 预训练模块204,用于利用所述第一样本集对神经网络模型进行预训练,得到预训练后的神经网络模型;
[0188] 第二获取模块205,用于获取多个与特定领域相关的包含相近拼音的拼音-句子对作为第二样本集;
[0189] 微调模块206,用于利用所述第二样本集对所述预训练后的神经网络模型进行微调,得到微调后的神经网络模型;
[0190] 纠错模块207,用于将待纠错句子的拼音序列输入所述微调后的神经网络模型进行纠错,得到纠错后的句子。
[0191] 示例性的,所述计算机程序303可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器301中,并由所述处理器302执行,以完成本方法。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序303在所述计算机装置30中的执行过程。例如,所述计算机程序303可以被分割成图2中的第一获取模块201、转换模块202、生成203、预训练模块204、第二获取模块205、微调模块206、纠错模块207,各模块具体功能参见实施例二。
[0192] 所述计算机装置30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图3仅仅是计算机装置30的示例,并不构成对计算机装置30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置30还可以包括输入输出设备、网络接入设备、总线等。
[0193] 所称处理器302可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器302也可以是任何常规的处理器等,所述处理器302是所述计算机装置30的控制中心,利用各种接口和线路连接整个计算机装置30的各个部分。
[0194] 所述存储器301可用于存储所述计算机程序303,所述处理器302通过运行或执行存储在所述存储器301内的计算机程序或模块,以及调用存储在存储器301内的数据,实现所述计算机装置30的各种功能。所述存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置30的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0195] 所述计算机装置30集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0196] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0197] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0198] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0199] 上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。
[0200] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他模块或步骤,单数不排除复数。系统权利要求中陈述的多个模块或装置也可以由一个模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
[0201] 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。