基于加权有限状态转换器的文本内容添加标点方法与流程

文档序号:16989436发布日期:2019-03-02 00:50阅读:290来源:国知局
基于加权有限状态转换器的文本内容添加标点方法与流程

本发明涉及语音识别文本内容的后处理以及自然语言处理,尤其是涉及利用加权有限状态转换器形式的语言模型对无标点文本自动加上常用标点的方法。



背景技术:

在传统的语音识别技术中,识别系统仅针对有声符号进行建模和识别,而无声符号,类似标点符号,如逗号、句号、问号和叹号等则难以像有声符号那样可以依据不同的发音进行区分性的建模和识别,因此,语音识别的结果通常仅仅为一长串没有标点,不包含断句信息的文本,随着识别文本内容的长度增加,这样的结果也变得非常不利于人工阅读,尤其不利于那些利用语音识别技术对大量语音内容进行识别并生成文本内容的场景。

目前已经提供解决此问题的方法只有少数几个,但总归可以分为两类,第一类直接利用语音信息,通过判断语音信号中静音的时长是否超过阈值来决定该位置是否应该添加标点符号,若添加,则将该位置的前后语音信息送入到一个分类器中,以此决定添加哪种标点符号;该类代表性专利有《一种符号插入方法及装置》(专利号:cn201711091958.6)和专利《实现语音识别中自动添加标点符号的方法及系统》(专利号:cn201110156209.3)。第二类则仅仅利用生成的文本内容,如将文本中所有的分词通过词向量模型转化为词向量,以此作为基本输入送入深度神经网络计算分词后出现标点的概率,然后取最高概率的添加方式作为最后的添加方案;该类代表性专利有《标点符号的添加方法、装置和计算机设备》(专利号:cn201710911956.0)。此两者都有其不可避免的局限性,由于标点符号与文本内容的语境是密切相关的,前者只考虑了一些简单的语音信息,如通过静音时长判断时,则无法应对说话者说话时因为犹豫话没说完但突然停顿的情况,也不是很适合应对说话较快的情况,且不能独立地用于只有文本的场景。而后者所述特例虽然脱离了语音内容,能够独立对文本内容进行标点的添加,但是由于其系统的复杂性,对资源和时间的消耗也有所增加,而当需要更新时,如增加标点或者增加语料,也要花更长的时间重新训练神经网络模型,又由于其完全未考虑到语音层面,如静音的信息,可能导致一些比较长的术语和专有名词被标点间隔开。考虑到用自然语言处理领域下的n-gram语言模型(n元语法)对标点符号的语境建模是一种简单快速有效的方法,更新障碍小,而加权有限状态转换器(wfst)处理句子的速度极快且具有易操控的特性,从而又很容易控制在哪些位置加标点,侧重加什么标点,因此,基于加权有限状态转换器的文本内容自动添加标点是一个自由高效且易实现的方法,不仅能独立于语音内容直接对文本进行处理,又能在一定程度上考虑到语音的信息,它与语音识别模块既相互独立又能紧密结合。



技术实现要素:

本发明旨在提供一种为无标点等断句信息的文本自动添加标点等断句信息的方法和系统,以主要解决语音识别中解码内容无标点等断句信息从而影响文字表达与人工阅读的问题,用于任何现成无标点文本自动添加标点的问题,如无标点语料恢复标点等断句信息的基于加权有限状态转换器的文本内容添加标点方法。

本发明包括以下步骤:

1)将待处理文本进行预处理;

2)将待处理句子文本中可能出现标点的分词间插入标志;

3)将包含标志的句子编译为加权有限状态转换器形式;

4)将均为加权有限状态转换器形式的句子和语言模型进行合成;

5)对合成出的加权有限状态转换器进行剪枝等处理并求解最优路径;

6)将最优路径上的数字状态索引转换为真实符号并逆序排列,即得经过自动添加标点处理的最终结果。

在步骤1)中,所述将待处理文本进行预处理的具体方法可为:

由于基于词典的语音识别出来的结果本身可以是分词形式,因此不用额外处理,但在其他使用场景若有不是分词形式的句子文本,在使用该方法前,需要提前进行分词,以此与语言模型的分词集合保持一致。

在步骤2)中,所述将待处理句子文本中可能出现标点的分词间插入标志的具体方法可为:所述标志应区别于其他文本,两个分词之间出现标志代表这两个分词之间的位置有概率出现标点,否则必然不出现标志,结合语音信息,通过控制标志的有无,可以有效避免长词被标点间隔开的情况,对于分词形式的“明天、天晴、适合、出门”这句无标点句子,插入标志后可能出现的形式如下,设标志为“mark”:

[1]明天mark天晴mark适合mark出门;

[2]明天天晴mark适合mark出门;

[3]明天mark天晴适合mark出门;

[4]明天mark天晴mark适合出门;

[5]明天天晴适合mark出门;

[6]明天天晴mark适合出门;

[7]明天mark天晴适合出门;

[8]明天天晴适合出门;

所述插入标志后一共有8种形式,在不借鉴语音信息或其他规则的情况,通常取第1种插入方法,反之,将依据借鉴信息处理得到第2到第8种的某个形式。

在步骤3)中,所述将包含标志的句子编译为加权有限状态转换器形式的具体方法可为:该形式在具体实施时主要使用标准的openfst形式,所述openfst形式为一种关于加权有限状态转换器的由开源代码定义的标准读写格式,该格式描述加权有限状态转换器结构所包含的初始状态结点、转移弧、弧权重或代价、状态结点、输入标签、输出标签以及结束状态结点;从初始状态结点到结束状态结点通过有向转移弧转移可能形成多条路径,每条路径都各自代表一种标点添加方案,而最终所取方案即各条路径总权重最高或者代价最低的路径所代表的标点添加方案;对包含标志的句子进行编译时,两个分词间有标志的,仅仅多插入代表着各个标点的状态结点以及在这两个分词间添加标点类别数量条的线性路径,而两个分词之间的原转移弧则表示这两个分词间不加标点符号的情况,具体过程为:

(1)读取第一个必然是分词的符号,建立序号为0的初始状态结点及序号为1的状态并在序号0和序号1之间建立输入/输出标签均为“分词1”的第一条转移弧,所述第一条转移弧简记为(0,1,分词1);

(2)读取第二个符号,第一种情况为:若该符号不为标志,则必是分词,此时仅添加状态2,并添加弧(1,2,分词2),即分词1到分词2仅有一条无标点路径可走;第二种情况为:若该符号为标志,则再读下一个必然是分词的符号,并添加状态2,3,4,5,6,以及分别添加弧(1,2,“,”)(1,3,“。”)(1,4,“?”)(1,5,“!”)(1,6,分词2)(2,6,分词2)(3,6,分词2)(4,6,分词2)(5,6,分词2),此处仅表示添加四种标点的转移路径(作为示例),而更一般的情况是,假如有m个标点符号,则此时应添加一共m+1个状态,并从2开始对这m+1个状态进行编号,即编号依次为2,3,4,…,m,m+1,m+2,同时添加从状态1发出的弧(1,2,标点1)(1,3,标点2)(1,4,标点3)…(1,m,标点m-1)(1,m+1,标点m)(1,m+2,分词2),并添加进入状态m+1的弧(2,m+2,分词2)(3,m+2,分词2)(4,m+2,分词2)…(m,m+2,分词2)(m+1,m+2,分词2),使得分词1到分词2时可能走一条出现某一种标点或不出现标点的转移路径,第二种情况对于第一种情况来说,仅仅多了几条代表标点的路径;另外,任意一条弧(序号x,序号y,标签z)在被添加时,均可额外补充干预权重以偏向某条路径,从而优化最终加标点的效果;若不额外添加干预权重,则每条路径的基本优势一样,且最终走哪条路径将在加权有限状态转换器合成后完全由语言模型提供的权重决定;

(3)重复步骤(2)直到读取最后一个必然是分词的符号,若此时状态序号已计数到n,则在最后额外添加结束状态结点n+1,n+2,n+3,并添加弧(n,n+1,“。”),(n,n+2,“?”),(n,n+3,“!”),即使得一句话总是以这三种标点收尾,不管一句话中间是否加入标点,末尾总会被加入标点;

(4)给所有非结束状态结点添加消歧自环,对某个序号为i的非结束状态结点添加弧(i,i,“<eps>:#0”),其中冒号左侧的<eps>是输入标签,冒号右侧的#0是输出标签,以此配合加权有限状态转换器形式的语言模型中包含的由回退结点发出的回退弧,以保证合成环节顺利进行;

所述编译的方法具体实现依据所使用的标点类型和其他一些情况会有不同的编译方法,主要包括分词间和句末两种标点出现位置的不同,成对使用标点与单用标点的不同,以及是否配合加权有限状态转换器形式的语言模型进行其他处理,所述其他处理包括是否添加消歧自环等,这些不同反映在加权有限状态自动机上最终表现为弧与状态结点在数量上的不同以及弧与状态结点在连接方式上的不同。

在步骤4)中,所述将均为加权有限状态转换器形式的句子和语言模型进行合成的具体方法可为:语言模型主要为n-gram语言模型,并事先将其转换为加权有限状态转换器的形式以作为处理模块的资源,其中加权有限状态转换器形式的语言模型生成过程为:预处理语料、包含编码字符等处理;基于特定分词集合对语料进行最大匹配分词,即使语料的分词集合和待加标点文本的分词集合一致;训练三元语言模型;将一般形式的n-gram语言模型转换成加权有限状态转换器形式。

在步骤5)中,所述对合成出的加权有限状态转换器进行剪枝等处理并求解最优路径的具体方法可为:合成出的加权有限状态转换器包含所有可能的加了标点或没加标点的路径,最终的结果由路径代价决定,即最终结果为代价最小的路径上所表示的结果;步骤5)主要对合成出的加权有限状态转换器进一步处理,如剪枝以加快最优路径搜索速度,另外还包含移除无效符号ε(英译epsilon,简记为<eps>)。

在步骤6)中,所述将最优路径上的数字状态索引转换为真实符号并逆序排列,即得经过自动添加标点处理的最终结果的具体方法可为:由于最优路径的搜索通常为回溯搜索,因此逆序才是原来的文本顺序,在将所有数字索引替换为真实符号后,再消除所有其它间隔符如空格,则得到最终的已经自动加了标点的文本。

本发明提供了一种为无标点等断句信息的文本自动添加标点等断句信息的方法,以主要解决语音识别中解码内容无标点等断句信息从而影响文字表达与人工阅读的问题,次要用于任何现成无标点文本自动添加标点的问题。

附图说明

图1为本发明实施例的流程图。

图2为步骤3)具体过程第1步加权有限状态转换器演示图。

图3为步骤3)具体过程第2步第一种情况加权有限状态转换器演示图。

图4为步骤3)具体过程第2步第二种情况加权有限状态转换器演示图。

图5为步骤3)具体过程第3步加权有限状态转换器演示图。

图6为步骤3)具体过程第4步加权有限状态转换器演示图。

具体实施方式

为了使本发明更浅显易懂以及能更好的体会其高效易实现的特点,下面结合图和具体实施方式对本发明作进一步的详细说明。

本发明的核心思想在于,基于加权有限状态转换器的算法和思想实现了无标点文本自动添加标点的方法和系统,主要用于解决语音识别中识别文本内容无标点等断句信息从而影响文字表达与人工阅读的问题,次要用于任何现成无标点文本自动添加标点的问题。

图1为本发明实施例的流程图。

步骤1),将待处理文本进行预处理,由于基于词典的语音识别出来的结果本身可以是分词形式,所以不用额外处理,但在其他使用场景若有不是分词形式的句子文本,在使用该方法前,需要提前进行分词,以此与语言模型的分词集合保持一致。

步骤2),将待处理句子文本中可能出现标点的分词间插入标志,该标志应区别于其他文本,两个分词之间出现标志代表这两个分词之间的位置有概率出现标点,否则必然不出现标志,结合一些规则,如语音信息,通过控制标志的有无,可以有效避免长词被标点间隔开的情况。对于分词形式的“明天天晴适合出门”这句无标点句子,插入标志后可能出现的形式如下(假如标志为“mark”):

[1]明天mark天晴mark适合mark出门

[2]明天天晴mark适合mark出门

[3]明天mark天晴适合mark出门

[4]明天mark天晴mark适合出门

[5]明天天晴适合mark出门

[6]明天天晴mark适合出门

[7]明天mark天晴适合出门

[8]明天天晴适合出门

该例子插入标志后一共有8种形式,在不借鉴语音信息或其他规则的情况,通常取第1种插入方法,反之,将依据借鉴信息处理得到第2到第8种的某个形式。

步骤3),将包含标志的句子编译为加权有限状态转换器形式,该形式在具体实施时主要使用标准的openfst形式(一种关于加权有限状态转换器的由开源代码定义的标准读写格式),其结构包含初始状态结点、转移弧、弧权重或代价、状态结点、输入标签、输出标签以及结束状态结点。从初始状态结点到结束状态结点通过有向转移弧转移可能形成多条路径,每条路径都各自代表一种标点添加方案,而最终所取方案即各条路径总权重最高或者代价最低的路径所代表的标点添加方案。对包含标志的句子进行编译时,对于一般情况,两个分词间有标志的,仅仅多插入代表着各个标点的状态结点以及在这两个分词间添加标点类别数量条的线性路径,而两个分词之间的原转移弧则表示这两个分词间不加标点符号的情况,具体过程为:

(1)读取第一个必然是分词的符号,建立序号为0的初始状态结点及序号为1的状态并在序号0和序号1之间建立第一条转移弧,该弧简述为(0,1,分词1),如图2所示;

(2)读取第二个符号,若该符号不为标志,则必是分词,此时仅添加状态2,并添加弧(1,2,分词2),即分词1到分词2仅有一条无标点路径可走,如图3所示;若该符号为标志,则再读下一个必然是分词的符号,并添加状态2,3,4,5,6,并分别添加弧(1,2,“,”)(1,3,“。”)(1,4,“?”)(1,5,“!”)(1,6,分词2)(2,6,分词2)(3,6,分词2)(4,6,分词2)(5,6,分词2),如图4所示,此处表示添加四种标点(假设只考虑这四种)的转移路径,使得分词1到分词2时可能走一条出现某一种标点或不出现标点的转移路径,这对于前一种情况来说,仅仅多了几条代表标点的路径。另外,这些弧在被添加的时候,还可额外补充干预权重以偏向某条路径,从而优化最终加标点的效果。若不额外添加干预权重,则每条路径的基本优势一样,且最终走哪条路径将在加权有限状态转换器合成后完全由语言模型提供的权重决定;

(3)重复步骤(2)直到读取最后一个必然是分词的符号,若此时状态序号已计数到n,则在最后额外添加结束状态结点n+1,n+2,n+3,并添加弧(n,n+1,“。”),(n,n+2,“?”),(n,n+3,“!”),即使得一句话总是以这三种标点收尾,不管一句话中间是否加入标点,末尾总会被加入标点,如图5所示。

(4)给所有非结束状态结点添加消歧自环,即如图6所示的,对某个序号为i的非结束状态结点添加弧(i,i,“<eps>:#0”),以此配合加权有限状态转换器形式的语言模型中包含的由回退结点发出的回退弧,以保证合成环节顺利进行。

所述编译的方法的具体实现依据所使用的标点类型和其他一些情况会有不同的编译方法,主要包括分词间和句末两种标点出现位置的不同,成对使用标点与单用标点的不同,以及是否配合加权有限状态转换器形式的语言模型进行其他处理,如是否添加消歧自环等等,这些不同反映在加权有限状态自动机上最终表现为弧与状态结点在数量上的不同以及弧与状态结点在连接方式上的不同。

步骤4),将均为加权有限状态转换器形式的句子和语言模型进行合成,语言模型主要为n-gram语言模型,并事先将其转换为加权有限状态转换器的形式以作为处理模块的资源。其中加权有限状态转换器形式的语言模型生成过程为:预处理语料,包含编码字符等处理;基于特定分词集合对语料进行最大匹配分词,即使语料的分词集合和待加标点文本的分词集合一致;训练三元语言模型;将一般形式的n-gram语言模型转换成加权有限状态转换器形式。

步骤5),对合成出的加权有限状态转换器进行剪枝等处理并求解最优路径,合成出的加权有限状态转换器包含了所有可能的加了标点或没加标点的路径,最终的结果由路径代价决定,即最终结果为代价最小的路径上所表示的结果。该步骤主要对合成出的加权有限状态转换器进一步处理,剪枝用于加快最优路径搜索速度,另外还包含移除无效符号ε(英译epsilon,简记为<eps>)。

步骤6),将最优路径上的数字状态索引转换为真实符号并逆序排列,即是经过自动添加标点处理的最终结果。由于最优路径的搜索通常为回溯搜索,因此逆序才是原来的文本顺序,在将所有数字索引替换为真实符号后,再消除所有其它间隔符如空格,则得到最终的已经自动加了标点的文本。

总之,本发明提供了一种为无标点等断句信息的文本自动添加标点等断句信息的方法和系统,以主要解决语音识别中解码内容无标点等断句信息从而影响文字表达与人工阅读的问题,次要用于任何现成无标点文本自动添加标点的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1