CN108021551A - 一种语料扩展方法及装置 - Google Patents
一种语料扩展方法及装置 Download PDFInfo
- Publication number
- CN108021551A CN108021551A CN201711030230.2A CN201711030230A CN108021551A CN 108021551 A CN108021551 A CN 108021551A CN 201711030230 A CN201711030230 A CN 201711030230A CN 108021551 A CN108021551 A CN 108021551A
- Authority
- CN
- China
- Prior art keywords
- data
- corpus
- corpus data
- word
- language
- 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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- 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
-
- 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)
- 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)
- Probability & Statistics with Applications (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种语料扩展方法及装置,所述方法包括:利用第一语料数据训练获得n‑gram语言模型以及神经网络语言模型;所述第一语料数据为稀疏语料数据;利用神经网络语言模型,预测所述第一语料数据中字或词之后的字词数据,并生成第二语料数据;将所述第二语料数据输入所述n‑gram语言模型,进行过滤后生成第三语料数据;将所述第三语料添加到所述第一语料数据,生成更新的第一语料数据。解决了稀疏语料在实际应用中,由于的必要词语缺失,而导致成句概率小,影响使用效果的问题。
Description
技术领域
本发明涉及语言处理技术领域,包括一种语料扩展方法及装置。
背景技术
N-gram语言模型是现阶段语音识别中最为常用的一种语言模型,可以通过对分词后的文本进行统计计算获得。在自然语言处理中应用广泛,主要用途为计算某句话的成句概率。
但N-gram语言模型对训练数据量十分依赖,目前对N-gram语言模型的优化方式主要为添加更多的适配语料。
而语料稀疏是在训练语料中,由于语料有限,许多实际需要的词或组合可能不会出现。通常会造成路径的缺失,使得成句概率显著变小,显著影响n-gram模型的后续使用效果,若进行人工标注获得更多语料,对时间和人力消耗十分显著。
发明内容
有鉴于此,本发明旨在提出一种语料扩展方法及装置,以解决现有技术中由于稀疏语料在实际应用中,由于许多实际需要的词或组合可能不会出现,造成路径的缺失,使得成句概率显著变小,影响使用效果的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种语料扩展方法,该方法包括:利用第一语料数据训练获得n-gram语言模型以及神经网络语言模型;所述第一语料数据为稀疏语料数据;利用神经网络语言模型,预测所述第一语料数据中字或词之后的字词数据,并生成第二语料数据;将所述第二语料数据输入所述n-gram语言模型,进行过滤后生成第三语料数据;将所述第三语料添加到所述第一语料数据,生成更新的第一语料数据。解决了稀疏语料在实际应用中,由于的路径缺失,而导致成句概率小,影响使用效果的问题。
进一步的,还包括:若满足预设条件,则所述更新的第一语料数据停止更新;所述预设条件包括:使用所述更新的第一语料数据进行本文识别测试的准确率达到预设准确率阈值;使用所述更新的第一语料数据进行本文识别测试的时间超过预设时间阈值。
进一步的,将所述第二语料数据输入所述n-gram语言模型,进行过滤后生成第三语料数据的步骤,包括:将所述第二语料数据输入所述n-gram语言模型,生成文本数据;将所述文本数据进行排序,并根据所述排序结果选取预设比例的文本数据,生成第三语料数据。
进一步的,所述将所述文本数据进行排序,并根据所述排序结果选取预设比例的文本数据,生成第三语料数据的步骤,包括:根据所述文本数据的成句概率,对所述文本数据中的句子进行排序;根据句子所述排序结果,选取预设比例的句子,生成第三语料数据。
进一步的,所述利用神经网络语言模型,预测所述第一语料数据中字或词之后的文本数据,并生成第二语料数据的步骤,包括:将所述第一语料数据输入所述神经网络语言模型,预测得到所述第一语料数据中字或词之后的字词数据;根据所述预测的字词数据中各字词出现的概率,对所述预测字词数据进行排序;根据所述排序结果,选择第一顺位预测字词添加到所述第一语料数据中,生成第二语料数据。
本发明具有以下优势:本发明技术利于稀疏语料训练获得N-gram语言模型和神经网络语言模型,使用神经网络语言模型生成文本语料,并用N-gram语言模型对其进行筛选,将筛选后的语料作为训练样本增量训练N-gram语言模型,并在上述步骤的迭代过程中实现了扩展稀疏语料数据的效果,从而保证最终的扩展后稀疏语料数据在语言处理应用中,达到了完善稀疏语料成句路径,提高成句概率,改善稀疏语料实际应用效果的目的。
本发明的另一目的在于提出一种语料扩展装置,为达到上述目的,本发明的技术方案是这样实现的:语言模型训练模块,用于利用第一语料数据训练获得n-gram语言模型以及神经网络语言模型;所述第一语料数据为稀疏语料数据;第二语料数据生成模块,用于利用神经网络语言模型,预测所述第一语料数据中字或词之后的字词数据,并生成第二语料数据;第三语料数据生成模块,用于将所述第二语料数据输入所述n-gram语言模型,进行过滤后生成第三语料数据;第一语料数据更新模块,用于将所述第三语料添加到所述第一语料数据,生成更新的第一语料数据。
进一步的,还包括:停止更新模块,用于若满足预设条件,则所述更新的第一语料数据停止更新;所述预设条件包括:使用所述更新的第一语料数据进行本文识别测试的准确率达到预设准确率阈值;使用所述更新的第一语料数据进行本文识别测试的时间超过预设时间阈值。
进一步的,所述第三语料数据生成模块,包括:文本数据生成子模块,用于将所述第二语料数据输入所述n-gram语言模型,生成文本数据;第三语料数据生成子模块,用于将所述文本数据进行排序,并根据所述排序结果选取预设比例的文本数据,生成第三语料数据。
进一步的,所述第三语料数据生成子模块,包括:排序单元,用于根据所述文本数据的成句概率,对所述文本数据中的句子进行排序;第三语料数据生成单元,用于根据句子所述排序结果,选取预设比例的句子,生成第三语料数据。
进一步的,所述第二语料数据生成模块,包括:预测子模块,用于将所述第一语料数据输入所述神经网络语言模型,预测得到所述第一语料数据中字或词之后的字词数据;字词排序子模块,用于根据所述预测的字词数据中各字词出现的概率,对所述预测字词数据进行排序;第二语料数据生成子模块,用于根据所述排序结果,选择第一顺位预测字词添加到所述第一语料数据中,生成第二语料数据。
所述一种语料扩展装置与上述一种语料扩展方法相对于现有技术所具有的优势相同,在此不再赘述。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例一所述的一种语料扩展方法的流程图;
图1A为本发明实施例的中文分词结果示意图;
图2为本发明实施例二所述的一种语料扩展方法的流程图;
图2A为本发明实施例的系统逻辑示意图;
图3为本发明实施例三所述的一种语料扩展装置的结构框图;
图4为本发明实施例三所述的一种语料扩展装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
名词解释:
语言模型:英文称为Language Model,简称LM。语言模型是对一组字(词)序列构成的知识表示;n-gram是一种统计语言模型,用来根据前(n-1)个item来预测第n个item。在应用层面,这些item可以是音素(语音识别应用)、字符(输入法应用)、词(分词应用)。根据语言客观事实而进行的语言抽象数学建模,是一种对应关系,比较适合于电子计算机进行自动处理,在自然语言处理中具有非常重大的意义。主要有三种类型:1)生成性模型;2)分析性模型;3)辨识性模型。语言模型常被应用与语音识别系统中,给出相对概率最高的识别结果作为最终的识别结果。
N-gram语言模型:是现阶段语音识别中最为常用的一种语言模型,可以通过对分词后的文本进行统计计算获得。这种模型基于马尔科夫假设,认为句子中第N个词的出现概率至于前面的N-1个词有关。在自然语言处理中应用广泛,主要用途为计算某句话的成句概率;一般来讲,可以从大规模文本或音频语料数据生成n-gram模型。习惯上,1-gram叫unigram,2-gram称为bigram,3-gram是trigram。还有four-gram、five-gram等,不过大于n>5的应用很少见。n-gram语言模型的思想,可以追溯到信息论大师香农的研究工作,他提出一个问题:给定一串字母,如”for ex”,下一个最大可能性出现的字母是什么。从训练语料数据中,我们可以通过极大似然估计的方法,得到N个概率分布:是a的概率是0.4,是b的概率是0.0001,是c的概率是…,当然,所有的N个概率分布的总和为1。
神经网络语言模型:基于神经网络算法的语言模型,与N-gram语言模型类似,通过对分词文本进行训练得到。相比N-gram语言模型,神经网络语言模型可以对长文本进行较好的学习。并且这种语言模型具有生成语句的能力。
成句概率:某一句话或者某一段字词的组合成为一句人类可以正常理解的句子的概率。
语料数据:通俗意义上指的是语言材料库。严格意义上的语料数据(corpus)是指按照一定的语言学原则,运用随机抽样方法,收集自然出现的连续的语言运用文本或话语片断而建成的具有一定容量的大型电子文本库。针对建立语料数据的目的是语料扩展的信息领域,选取针对这一特定领域的语言文本,并进行抽样等预处理后,生成针对该领域的语料数据。
语料稀疏:在训练语料中,由于语料有限,许多实际需要的词或组合可能不会出现。这样的情况下会造成路径的缺失,使得成句概率显著变小,影响使用效果。
分词:将句子切分为词的组合的过程,词的长度可以为单字或多字。
N-gram语言模型在语音识别以及其他语言处理领域有广泛应用,但其模型对训练语料的需求量十分庞大。在训练语料稀疏的情况下,训练得到的模型效果常常难以使人满意。本发明利用神经网络语言模型的文本生成能力,对N-gram语言模型进行语料补充,从而提升稀疏语料在N-gram语言模型中的使用效果。
需要说明的是,为了更为准确的识别同一领域的文本内容,在语料数据的选取上往往更倾向于提取同一领域的电子文本库,例如,计算机语言类、现代文学类、法律类等语料数据。
通过上述方法在语料扩展技术中的融合,可解决稀疏语料在自然语言处理中的语言模型应用中,由于稀疏语料中词句有限,导致在语言处理中实际需要的词或组合可能不会出现,造成成句概率低,语言处理效果不佳的问题。
实施例一
参照图1,为本发明实施例所述的一种语料扩展方法的流程图,具体可以包括如下步骤:
步骤101,利用第一语料数据训练获得n-gram语言模型以及神经网络语言模型;所述第一语料数据为稀疏语料数据。
本发明实施例中,当得到一个语料数据后,对语料库中的数据进行清洗、分词等预处理后,得到以词组为单位的语料数据,将经过预处理的稀疏语料利用n-gram语言模型训练工具以及神经网络语言模型训练工具,进行n-gram语言模型以及神经网络语言模型的训练。
具体地,以n-gram语言模型为例,第n个词出现与前n-1个词相关,而与其他任何词不相关(这也是隐马尔可夫当中的假设。)整个句子出现的概率就等于各个词出现的概率乘积。当将稀疏语料数据输入n-gram语言模型工具后,可以得到稀疏语料中每个词与前后n-1个词的相关度,相关度可以以概率的形式表示。
例如,给定一串字母,如”for ex”,下一个最大可能性出现的字母是什么。从训练语料数据中,我们可以通过极大似然估计的方法,得到N个概率分布:是a的概率是0.4,是b的概率是0.0001,是c的概率是…,所有的N个概率分布的总和为1,拿一个应用来讲,假设T是由词序列A1,A2,A3,…An组成的,那么P(T)=P(A1A2A3…An)=P(A1)P(A2|A1)P(A3|A1A2)…P(An|A1A2…An-1),如果直接这么计算,是有很大困难的,需要引入马尔科夫假设,即:一个item的出现概率,只与其前m个items有关,当m=0时,就是unigram,m=1时,是bigram模型。因此,P(T)可以求得,例如,当利用bigram模型时,P(T)=P(A1)P(A2|A1)P(A3|A2)…P(An|An-1),而P(An|An-1)条件概率可以通过极大似然估计求得,等于Count(An-1,An)/Count(An-1)。当通过工具在搜集特定领域的语料并进行预处理后,生成一个基于特定领域信息的语料数据,利用n-gram只把需要的信息存储下来,其中,n-gram输出数据格式是这样的:
1.272437 阿拉善
1.37447 阿拉伯贵族
1.122427 阿拉伯人
1.373596 阿拉伯数
0.9671616 阿拉伯语
其中各数字表示的是个名词元组在语料数据中出现的次数。
以神经网络语言模型为例,通常情况下,经过分词等预处理的稀疏语料在输入神经网络语言模型训练工具时,输出结果是各个词的词向量,而经过学习该稀疏语料数据的神经网络语言模型,即为训练成功的神经网络语言模型。
具体地,神经网络语言模型由输入层、隐藏层和输出层构成,输入层中通过一个映射矩阵C(矩阵的规模为|V|*m,其中|V|是词表大小,m是词向量的维度),将前n-1个离散的单词映射成n-1个m维向量,也就是通过查表的方式将单词变成词向量。然后将这n-1个m维向量首尾相接形成一个m(n-1)的向量,该向量就是神经网络的输入向量x。
隐藏层的节点个数为h,为了将输入层输出的m(n-1)维向量x转化为隐藏层(维度为h)的输入,在输入层和隐藏层之间需要一个参数矩阵H(H的规模为h*m(n-1)),同时需要一个偏置d,该变化可以表示为f(x)=Hx+d,这是一个线性变换。隐藏层的输出需要将经过线性变换的向量在做一次非线性变换,在这里选择的函数为tanh(双曲正切),也就是激活函数。那么隐藏层的输出就是tanh(Hx+d)。
输出层是从隐藏层到输出层的传递同样需要一个线性变换和一个非线性变化,即首先通过线性变换将隐藏层的输出向量的维数转化为和输出层的节点数一致(其实此时已经可以将这个值作为输出),但是为了将输出表示成概率分布的形式(每个维度上的值之和为1),再通过对输出层的输入(也就是隐藏层的输出)进行一个非线性变换,激活函数为通常为softmax函数,得到的输出可以是对第n个单词的分布做出概率预测的结果。
在实际应用中,n-gram模型在训练后的数据表达形式根据用户的不同需求而不同,并不局限于上述描述,本发明实施例对此不加以限制。
本发明实施例中,将语料分词是训练n-gram语言模型以及神经网络语言模型的特定前提,中文分词(Chinese Word Segmentation)指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。常用的中文分词工具有CRF和Stanford分词工具,如图1A描述的,是针对一游戏热门语料数据的分词结果,可以看出分词后的数据可以清晰的表达出数据的层次和结构,便于进一步的语言处理。分词分方法有多重,例如词表里的词最长有五个字的,就从句子当前位置开始,读取五个字,看是否在词表里面,如果在,就分词,不在,再看四个字的,以此类推,都找不到,则把开始位置向右移动一位,对有权重的词表,可以用最小权值来找最优的分词,对于分词的方法和所用的词表不在本发明实施例的保护范围。
步骤102,利用神经网络语言模型,预测所述第一语料数据中字或词之后的字词数据,并生成第二语料数据。
本发明实施例中,通过上述描述的方法得到的神经网络语言模型后,将第一语料数据(稀疏语料数据)输入该模型,得到第一语料数据中每个词后将要出现的字或词的概率,并将概率较高的词添加到第一语料数据中,生成第二语料数据。
步骤103,将所述第二语料数据输入所述n-gram语言模型,进行过滤后生成第三语料数据。
本发明实施例中,通过上述步骤描述的方法得到第二语料数据后,将其输入之前训练好的n-gram语言模型,进行过滤。
具体地,将第二语料数据输入之前训练好的n-gram语言模型后,得到第二语料库文本数据的成句概率,这样会对每句文本获得一个得分,根据该得分,选择得分较高的一部分添加到第二语料数据中,生成第三语料数据。
步骤104,将所述第三语料添加到所述第一语料数据,生成更新的第一语料数据。
最后,将根据上述步骤中得到的第三语料数据加入到最初的第一语料数据中,生成更新后的第一语料数据。依次重复步骤102-104,将通过步骤103中不断得到的新的第三语料数据添加到第一语料中,不断扩展第一语料数据,实现扩展稀疏语料数据的效果。
在本发明实施例中,本发明将神经网络语言模型与N-gram语言模型技术结合,借助神经网络语言模型的文本生成能力,对N-gram模型的训练语料进行补充,从而达到了使稀疏语料数据得到扩展的有益效果。
实施例二
参照图2,为本发明实施例所述的一种语料扩展方法的流程图,具体可以包括如下步骤:
步骤201,利用第一语料数据训练获得n-gram语言模型以及神经网络语言模型;所述第一语料数据为稀疏语料数据。
此步骤与步骤101相同,在此不再详述。
步骤202,根据所述预测的字词数据中各字词出现的概率,对所述预测字词数据进行排序。
在实际应用中,对于一个训练完成的神经网络语言模型,对于任意一个输入的词或多个词组成的句子,语言模型可以计算在这个词或词组后面要出现的词的概率分布。举例来讲,输入一个词组作为起始词如“今天我要”,语言模型会对可能出现的词给出较高的概率,而对出现可能性较低的词给出较低的概率。
步骤203,根据所述排序结果,选择第一顺位预测字词添加到所述第一语料数据中,生成第二语料数据。
在实际应用中,根据上述步骤的描述,可能的语料中文本数据中每个字词的下一个预测字词的结果如:“上班”->0.11,“学习”->0.101,“运动”–>0.09,“你好”->0.00001,“北京”–>0.0003,“太阳”->0.00002。所有词的概率总和应为1。在生成语料时,我们选取概率最高的预测词,比如在这一例子中,预测概率最大的词为“上班”(实际上不一定总是选取最大的,而是可以在前10或20中随机选取,这样可以使每次生成的语句不一样),则我们将“今天我要上班”作为输入继续输入语言模型。这样语言模型就会在针对这个词组给出下一个词的预测概率。
所以,将第一语料数据中每一个字词的后续将要出现的预测词,按照最高概率添加到第一语料数据中,得到第二语料数据。例如,第一语料数据中“今天我要”后面最高概率出现的词是“上班”,那么就将“上班”添加到“今天我要”后面,生成“今天我要上班”。第一语料数据中所有的字词都按上述方法添加后续预测词后,生成第二语料数据。
步骤204,将所述第二语料数据输入所述n-gram语言模型,生成文本数据。
本发明实施例中,具体的,将上述步骤中生成的第二语料数据输入之前训练好的n-gram语言模型中,假如训练一个3gram(tri-gram)的语言模型,先对语料中出现的1gram,2gram,3gram进行统计,那么可以计算出第二语料数据中每个字词前后三个字词的相关度,进而计算出成句概率。根据成句概率对生成的文本数据进行打分,成句概率越高,打分越高。
具体的,以bigram为例,假设语料库总词数为13,748,表一所示为该语料库中的一些词和词频:
I | 3437 |
Want | 1215 |
to | 3256 |
eat | 938 |
Chinese | 213 |
Food | 1506 |
Lunch | 459 |
表一
表二示出了通过bigram得到的基于表一中各词的词序列频:
I | Want | to | Eat | Chinese | food | lunch | |
I | 8 | 1087 | 0 | 13 | 0 | 0 | 0 |
Want | 3 | 0 | 786 | 0 | 6 | 8 | 2 |
to | 3 | 0 | 10 | 860 | 3 | 0 | 12 |
Eat | 0 | 0 | 2 | 0 | 19 | 2 | 52 |
Chinese | 2 | 0 | 0 | 0 | 0 | 120 | 1 |
food | 19 | 0 | 17 | 0 | 0 | 0 | 0 |
lunch | 4 | 0 | 0 | 0 | 0 | 1 | 0 |
表二
通过表二中词频度,可以计算出句子“I want eat Chinese food”这句话的成句概率:
P(I want to eat Chinese food)
=P(I)*P(want|I)*P(to|want)*P(eat|to)*P(Chinese|eat)*P(food|Chinese)
=0.25*1087/3437*786/1215*860/3256*19/938*120/213
=0.000154171
根据上述计算的成句概率,将各成句进行排序。
步骤205,将所述文本数据进行排序,并根据所述排序结果选取预设比例的文本数据,生成第三语料数据。
本发明实施例中,根据上述步骤中对第二语料数据中通过n-gram语言模型生成的字词进行成句概率计算,并打分后,根据打分结果对该成句进行排序,分数高的排序靠前,并选取一定比例的文本数据,生成第三语料数据。
优选地,步骤205,具体包括:子步骤A11-子步骤A12;
子步骤A11,根据所述文本数据的成句概率,对所述文本数据中的句子进行排序;
本发明实施例中,在生成第二语料达到一定数量之后,可以对第二语料进行分行处理(根据一定长度自动截取即可),之后对每句文本,可已用n-gram语言模型计算成句概率。这样会对每句文本获得一个得分。
子步骤A12,根据句子所述排序结果,选取预设比例的句子,生成第三语料数据。
具体地,按照上述分数进行排序之后,就可以得到n-gram语言模型最为认可的前n个句子。根据一个预先设定的阈值,比如20%,选取排名在这之前的句子作为加入第二语料数据中的语料,以此生成第三语料数据。
需要说明的是,步骤204和205可以重复进行,通过不断迭代扩展第二语料数据,再通过步骤205中的方法对第二语料数据进行过滤,生成第三语料数据。
步骤206,将所述第三语料添加到所述第一语料数据,生成更新的第一语料数据。
在具体应用中,例如,语料数据稀疏时,假设词表中有20000个词,如果是bigram那么可能的N-gram就有400000000个,如果是trigram,那么可能的N-gram就有8000000000000个。那么对于其中的很多词对的组合,在语料库中都没有出现,根据最大似然估计得到的概率将会是0,在算句子的概率时一旦其中的某项为0,那么整个句子的概率就会为0,所以通过上述,但是通过步骤204和205的不断迭代,为稀疏语料补充预测词,实现不断扩充语料的效果。
步骤207,若满足预设条件,则所述更新的第一语料数据停止更新;所述预设条件包括:使用所述更新的第一语料数据进行本文识别测试的准确率达到预设准确率阈值;使用所述更新的第一语料数据进行本文识别测试的时间超过预设时间阈值。
本发明实施例中,步骤204-207可以无限迭代,不断对扩展第一语料数据,然而在实际应用中,可以根据实际需求停止迭代。
例如,迭代停止的条件可以根据模型大小来决定。在实际使用中,受限于机器的硬件条件(内存和硬盘)对模型的大小有可能会有一定限制。而迭代添加语料的方式会使n-gram语言模型不断变大。此时,在n-gram语言模型中使用该语料数据,处理时间会越来越长,所以在处理时间超过预设时间时,例如20分钟,可以停止迭代,当然还可以根据机器能承受的最大限度来决定何时。
除此之外,在存在测试集的情况下,可以根据在测试集上语言模型的表现来决定停止迭代的时机。比如,若语言模型用于语音识别,通过测试集,可以计算每次更新后的语言模型应用在语音识别过程中的准确率。当准确率不再出现明显的提升的时候,或者准确率达到预设值的时候,如70%,则可以停止迭代。
另外,人为经验决定。在没有测试集以及其他可以考量的指标的时,根据经验,可以在一定迭代次数后终止迭代。因为可以肯定是这种方式不会无限制的提升语言模型的效果,一定会到达某个上限。
对于迭代停止的时机和条件不限于上述描述的方式,本发明实施例对此不加以限制。
综上所述,如图2A所示,通过对原始语料数据(第一语料数据)进行训练,得到N-gram语言模型,和神经网络语言模型。然后,使用神经网络语言模型生成一些文本(第二语料数据),这些文本会与训练数据较为相似。之后,使用N-gram语言模型对生成的文本进行打分,即计算成句概率。根据成句概率值对生成文本进行排序,选取阈值高于一定值,或排名靠前的一定数量的文本(第三语料数据)。最后,将这些文本(第三语料数据)加入训练语料(第一语料数据),继续进行这种迭代实现不断更新第一语料数据的效果。
本发明将神经网络语言模型与N-gram语言模型技术结合,借助神经网络语言模型的文本生成能力,对N-gram模型的训练语料进行补充,例如,有初始语料10Mb,约25000行文本。先对这些文本做分词,之后进行模型训练,分别得到N-gram语言模型和神经网络语言模型。使用神经网络语言模型生成5Mb文本,约12500行文本。理论上讲,神经网络语言模型可以生成无限多的文本,但是超过一定数量之后,重复的文本片段会非常多,对进一步训练没有太大帮助,所以只生成一定数量就足够了。之后用N-gram语言模型对生成的文本每行计算成句概率,并按照得到的概率分数排序。对排序后的句子选出前2500行,也就是前20%,作为筛选后的语料,与原来的初始语料合并得到约27500行文本作为新的训练文本。重复以上过程数次,将最终得到的语言模型结合语音识别等项目使用,达到更佳的识别效果。
在本发明实施例中,主要是通过对第一语料数据训练,得到N-gram语言模型,和神经网络语言模型。然后,使用神经网络语言模型生成一些文本,这些文本会与训练数据较为相似。之后,使用N-gram语言模型对生成的文本进行打分,即计算成句概率。根据成句概率值对生成文本进行排序,选取阈值高于一定值,或排名靠前的一定数量的文本。最后,将这些文本加入训练语料,继续进行这种迭代。经过一定轮次的迭代后,实现了补充了第一语料数据的有益效果。
实施例三
参照图3,为本发明实施例所述的一种语料扩展装置的结构框图。
语言模型训练模块301,用于利用第一语料数据训练获得n-gram语言模型以及神经网络语言模型;所述第一语料数据为稀疏语料数据;
第二语料数据生成模块302,用于利用神经网络语言模型,预测所述第一语料数据中字或词之后的字词数据,并生成第二语料数据;
第三语料数据生成模块303,用于将所述第二语料数据输入所述n-gram语言模型,进行过滤后生成第三语料数据;
第一语料数据更新模块304,用于将所述第三语料添加到所述第一语料数据,生成更新的第一语料数据。
参照图4,为本发明实施例中各模块之间的关系示意图,具体如下:
所述第三语料数据生成模块303,包括:
文本数据生成子模块3031,用于将所述第二语料数据输入所述n-gram语言模型,生成文本数据;
第三语料数据生成子模块3032,用于将所述文本数据进行排序,并根据所述排序结果选取预设比例的文本数据,生成第三语料数据。
所述第三语料数据生成子模块3032,包括:
排序单元,用于根据所述文本数据的成句概率,对所述文本数据中的句子进行排序;
第三语料数据生成单元,用于根据句子所述排序结果,选取预设比例的句子,生成第三语料数据。
所述第二语料数据生成模块302,包括:
预测子模块3021,用于将所述第一语料数据输入所述神经网络语言模型,预测得到所述第一语料数据中字或词之后的字词数据;
字词排序子模块3022,用于根据所述预测的字词数据中各字词出现的概率,对所述预测字词数据进行排序;
第二语料数据生成子模块3023,用于根据所述排序结果,选择第一顺位预测字词添加到所述第一语料数据中,生成第二语料数据。
优选的,还包括:
停止更新模块305,用于若满足预设条件,则所述更新的第一语料数据停止更新;所述预设条件包括:使用所述更新的第一语料数据进行本文识别测试的准确率达到预设准确率阈值;使用所述更新的第一语料数据进行本文识别测试的时间超过预设时间阈值。
在本发明实施例中,主要是通过对第一语料数据训练,得到N-gram语言模型,和神经网络语言模型。然后,使用神经网络语言模型生成一些文本,这些文本会与训练数据较为相似。之后,使用N-gram语言模型对生成的文本进行打分,即计算成句概率。根据成句概率值对生成文本进行排序,选取阈值高于一定值,或排名靠前的一定数量的文本。最后,将这些文本加入训练语料,继续进行这种迭代。经过一定轮次的迭代后,实现了补充了第一语料数据的有益效果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种语料扩展方法,其特征在于,所述方法包括:
利用第一语料数据训练获得n-gram语言模型以及神经网络语言模型;所述第一语料数据为稀疏语料数据;
利用神经网络语言模型,预测所述第一语料数据中字或词之后的字词数据,并生成第二语料数据;
将所述第二语料数据输入所述n-gram语言模型,进行过滤后生成第三语料数据;
将所述第三语料添加到所述第一语料数据,生成更新的第一语料数据。
2.根据权利要求1所述的语料扩展方法,其特征在于,还包括:
若满足预设条件,则所述更新的第一语料数据停止更新;所述预设条件包括:使用所述更新的第一语料数据进行本文识别测试的准确率达到预设准确率阈值;使用所述更新的第一语料数据进行本文识别测试的时间超过预设时间阈值。
3.根据权利要求1所述的语料扩展方法,其特征在于,将所述第二语料数据输入所述n-gram语言模型,进行过滤后生成第三语料数据的步骤,包括:
将所述第二语料数据输入所述n-gram语言模型,生成文本数据;
将所述文本数据进行排序,并根据所述排序结果选取预设比例的文本数据,生成第三语料数据。
4.根据权利要求3所述的语料扩展方法,其特征在于,所述将所述文本数据进行排序,并根据所述排序结果选取预设比例的文本数据,生成第三语料数据的步骤,包括:
根据所述文本数据的成句概率,对所述文本数据中的句子进行排序;
根据句子所述排序结果,选取预设比例的句子,生成第三语料数据。
5.根据权利要求1所述的语料扩展方法,其特征在于,所述利用神经网络语言模型,预测所述第一语料数据中字或词之后的文本数据,并生成第二语料数据的步骤,包括:
将所述第一语料数据输入所述神经网络语言模型,预测得到所述第一语料数据中字或词之后的字词数据;
根据所述预测的字词数据中各字词出现的概率,对所述预测字词数据进行排序;
根据所述排序结果,选择第一顺位预测字词添加到所述第一语料数据中,生成第二语料数据。
6.一种语料扩展装置,其特征在于,所述装置包括:
语言模型训练模块,用于利用第一语料数据训练获得n-gram语言模型以及神经网络语言模型;所述第一语料数据为稀疏语料数据;
第二语料数据生成模块,用于利用神经网络语言模型,预测所述第一语料数据中字或词之后的字词数据,并生成第二语料数据;
第三语料数据生成模块,用于将所述第二语料数据输入所述n-gram语言模型,进行过滤后生成第三语料数据;
第一语料数据更新模块,用于将所述第三语料添加到所述第一语料数据,生成更新的第一语料数据。
7.根据权利要求6所述的语料扩展装置,其特征在于,还包括:
停止更新模块,用于若满足预设条件,则所述更新的第一语料数据停止更新;所述预设条件包括:使用所述更新的第一语料数据进行本文识别测试的准确率达到预设准确率阈值;使用所述更新的第一语料数据进行本文识别测试的时间超过预设时间阈值。
8.根据权利要求6所述的语料扩展装置,其特征在于,所述第三语料数据生成模块,包括:
文本数据生成子模块,用于将所述第二语料数据输入所述n-gram语言模型,生成文本数据;
第三语料数据生成子模块,用于将所述文本数据进行排序,并根据所述排序结果选取预设比例的文本数据,生成第三语料数据。
9.根据权利要求8所述的语料扩展装置,其特征在于,所述第三语料数据生成子模块,包括:
排序单元,用于根据所述文本数据的成句概率,对所述文本数据中的句子进行排序;
第三语料数据生成单元,用于根据句子所述排序结果,选取预设比例的句子,生成第三语料数据。
10.根据权利要求6所述的语料扩展装置,其特征在于,所述第二语料数据生成模块,包括:
预测子模块,用于将所述第一语料数据输入所述神经网络语言模型,预测得到所述第一语料数据中字或词之后的字词数据;
字词排序子模块,用于根据所述预测的字词数据中各字词出现的概率,对所述预测字词数据进行排序;
第二语料数据生成子模块,用于根据所述排序结果,选择第一顺位预测字词添加到所述第一语料数据中,生成第二语料数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711030230.2A CN108021551B (zh) | 2017-10-27 | 2017-10-27 | 一种语料扩展方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711030230.2A CN108021551B (zh) | 2017-10-27 | 2017-10-27 | 一种语料扩展方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021551A true CN108021551A (zh) | 2018-05-11 |
CN108021551B CN108021551B (zh) | 2021-02-19 |
Family
ID=62080316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711030230.2A Active CN108021551B (zh) | 2017-10-27 | 2017-10-27 | 一种语料扩展方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021551B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063155A (zh) * | 2018-08-10 | 2018-12-21 | 广州锋网信息科技有限公司 | 语言模型参数确定方法、装置和计算机设备 |
CN109344238A (zh) * | 2018-09-18 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 用户问句的补词方法和装置 |
CN109388404A (zh) * | 2018-10-10 | 2019-02-26 | 北京智能管家科技有限公司 | 一种路径解码方法、装置、计算机设备及存储介质 |
CN110263322A (zh) * | 2019-05-06 | 2019-09-20 | 平安科技(深圳)有限公司 | 用于语音识别的音频语料筛选方法、装置及计算机设备 |
CN110334197A (zh) * | 2019-06-28 | 2019-10-15 | 科大讯飞股份有限公司 | 语料处理方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593518A (zh) * | 2008-05-28 | 2009-12-02 | 中国科学院自动化研究所 | 实际场景语料和有限状态网络语料的平衡方法 |
CN102193909A (zh) * | 2010-03-09 | 2011-09-21 | 方圆 | 一种统计语言模型自动抽选语料算法 |
CN103677729A (zh) * | 2013-12-18 | 2014-03-26 | 北京搜狗科技发展有限公司 | 一种语音输入方法和系统 |
US20140222417A1 (en) * | 2013-02-01 | 2014-08-07 | Tencent Technology (Shenzhen) Company Limited | Method and device for acoustic language model training |
CN107146604A (zh) * | 2017-04-27 | 2017-09-08 | 北京捷通华声科技股份有限公司 | 一种语言模型优化方法及装置 |
-
2017
- 2017-10-27 CN CN201711030230.2A patent/CN108021551B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593518A (zh) * | 2008-05-28 | 2009-12-02 | 中国科学院自动化研究所 | 实际场景语料和有限状态网络语料的平衡方法 |
CN102193909A (zh) * | 2010-03-09 | 2011-09-21 | 方圆 | 一种统计语言模型自动抽选语料算法 |
US20140222417A1 (en) * | 2013-02-01 | 2014-08-07 | Tencent Technology (Shenzhen) Company Limited | Method and device for acoustic language model training |
CN103677729A (zh) * | 2013-12-18 | 2014-03-26 | 北京搜狗科技发展有限公司 | 一种语音输入方法和系统 |
CN107146604A (zh) * | 2017-04-27 | 2017-09-08 | 北京捷通华声科技股份有限公司 | 一种语言模型优化方法及装置 |
Non-Patent Citations (3)
Title |
---|
DANIEL C. CAVALIERI ET AL.: "Combination of Language Models for Word Prediction: An Exponential Approach", 《IEEE TRANSACTIONS ON AUDIO SPEECH AND LANGUAGE PROCESSING》 * |
司玉景 等: "面向口语统计语言模型建模的自动语料生成算法", 《自动化学报》 * |
梁宏 等: "基于N元文法的领域语法语料扩展算法", 《声学技术》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063155A (zh) * | 2018-08-10 | 2018-12-21 | 广州锋网信息科技有限公司 | 语言模型参数确定方法、装置和计算机设备 |
CN109063155B (zh) * | 2018-08-10 | 2020-08-04 | 广州锋网信息科技有限公司 | 语言模型参数确定方法、装置和计算机设备 |
CN109344238A (zh) * | 2018-09-18 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 用户问句的补词方法和装置 |
CN109388404A (zh) * | 2018-10-10 | 2019-02-26 | 北京智能管家科技有限公司 | 一种路径解码方法、装置、计算机设备及存储介质 |
CN109388404B (zh) * | 2018-10-10 | 2022-10-18 | 北京如布科技有限公司 | 一种路径解码方法、装置、计算机设备及存储介质 |
CN110263322A (zh) * | 2019-05-06 | 2019-09-20 | 平安科技(深圳)有限公司 | 用于语音识别的音频语料筛选方法、装置及计算机设备 |
CN110263322B (zh) * | 2019-05-06 | 2023-09-05 | 平安科技(深圳)有限公司 | 用于语音识别的音频语料筛选方法、装置及计算机设备 |
CN110334197A (zh) * | 2019-06-28 | 2019-10-15 | 科大讯飞股份有限公司 | 语料处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108021551B (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021551A (zh) | 一种语料扩展方法及装置 | |
CN109241255B (zh) | 一种基于深度学习的意图识别方法 | |
CN108446271B (zh) | 基于汉字部件特征的卷积神经网络的文本情感分析方法 | |
Gravano et al. | Restoring punctuation and capitalization in transcribed speech | |
CN107273352B (zh) | 一种基于Zolu函数的词嵌入学习模型及训练方法 | |
CN110413768B (zh) | 一种文章题目自动生成方法 | |
CN108846017A (zh) | 基于Bi-GRU和字向量的大规模新闻文本的端到端分类方法 | |
CN109858028A (zh) | 一种基于概率模型的短文本相似度计算方法 | |
Jung et al. | An english to korean transliteration model of extended markov window | |
CN108038205B (zh) | 针对中文微博的观点分析原型系统 | |
CN106570148A (zh) | 一种基于卷积神经网络的属性抽取方法 | |
KR20190063978A (ko) | 비정형 데이터의 카테고리 자동분류 방법 | |
CN109815476B (zh) | 一种基于中文语素和拼音联合统计的词向量表示方法 | |
CN104778209A (zh) | 一种针对千万级规模新闻评论的观点挖掘方法 | |
CN111523304B (zh) | 一种基于预训练模型的产品描述文本的自动生成方法 | |
CN105740236A (zh) | 结合写作特征和序列特征的中文情感新词识别方法和系统 | |
CN110263325A (zh) | 中文分词系统 | |
CN107451115A (zh) | 端到端的汉语韵律层级结构预测模型的构建方法及系统 | |
CN111078833A (zh) | 一种基于神经网络的文本分类方法 | |
CN110222338A (zh) | 一种机构名实体识别方法 | |
CN110472245A (zh) | 一种基于层次化卷积神经网络的多标记情绪强度预测方法 | |
CN115269834A (zh) | 一种基于bert的高精度文本分类方法及装置 | |
Chordia | PunKtuator: A multilingual punctuation restoration system for spoken and written text | |
CN113268974B (zh) | 多音字发音标注方法、装置、设备及存储介质 | |
CN109325243A (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 |