本发明涉及语音信号处理领域,具体涉及一种文本编辑方法及装置。
背景技术:
文本编辑主要是指对文字进行一些字体格式、排版处理、错误修改等,在现有技术中,一般是由人工利用键盘和鼠标来完成,首先将光标对待编辑文本在原始文本中的位置进行定位,然后对原始文本中相应文本进行编辑。比如,对于文本数据“今天蓝鲸的天气很好,我打算去那玩几天。”,需要将其中的“蓝鲸”改成“南京”,另外还要将“南京”加粗,将“天气”加下划线”等。
这种编辑方法需要人工操作,当需要编辑的原始文本较多时,编辑效率较低,而且容易出错,人工成本较高。
技术实现要素:
本发明提供一种文本编辑方法及装置,以解决现有的文本编辑存在的效率低、成本高的问题。
为此,本发明提供如下技术方案:
一种文本编辑方法,包括:
获取待编辑的原始文本;
接收用户编辑语音数据;
对所述用户编辑语音数据进行语音识别,得到编辑命令;
对所述编辑命令进行语义理解,以确定当前待编辑文本及编辑状态的取值;所述编辑状态用于描述是否能确定所述当前待编辑文本在原始文本中的位置;
根据所述当前待编辑文本及编辑状态的取值确定是否可以执行所述编辑命令;
如果是,则根据所述编辑命令对所述原始文本进行编辑;
否则,与用户交互,以获取更多对应所述当前待编辑文本的编辑状态的取值。
优选地,所述方法还包括:预先设定语义槽的类型;
所述对所述编辑命令进行语义理解,以确定当前待编辑文本及编辑状态包括:
对所述编辑命令进行语义理解,确定所述编辑命令包含的语义槽及其类型;
根据所述编辑命令包含的语义槽及其类型确定当前待编辑文本及编辑状态。
优选地,所述语义槽的类型包括用于描述用户编辑状态的语义槽、用于描述用户编辑操作的语义槽、以及用于描述编辑文本的语义槽;
所述用于描述用户编辑状态的语义槽包括以下任意一种或多种:
顺序语义槽,所述顺序语义槽用于描述待编辑文本在原始文本中的顺序;
类型语义槽,所述类型语义槽用于描述待编辑文本的类型;
汉字结构语义槽,所述汉字结构语义槽用于描述待编辑文本的汉字结构;
偏旁部首语义槽,所述偏旁部首语义槽用于描述待编辑文本的偏旁部首;
汉字描述语义槽,所述汉字描述语义槽用于对待编辑文本进行限定;
参考语义槽,所述参考语义槽用于描述待编辑文本在原始文本中的参考文本;
全局位置语义槽,所述全局语义槽指待编辑文本在原始文本中的全局位置;
相对位置语义槽,所述相对位置语义槽指待编辑文本在原始文本中的相对位置;
所述用于描述用户编辑操作的语义槽包括以下任意一种或多种:添加语义槽、删除语义槽、修改语义槽、修改字体大小语义槽、修改字体颜色语义槽、修改字体粗细语义槽、换行语义槽、缩进语义槽;
所述用于描述编辑文本的语义槽包括:待编辑语义槽、编辑后语义槽。
优选地,所述方法还包括:
预先构建语义槽提取模型;
所述对所述编辑命令进行语义理解,确定所述编辑命令包含的语义槽及其类型包括:
将所述编辑命令中的每个词进行向量化后作为语义槽提取特征;
将所述语义槽提取特征输入所述语义槽提取模型,根据所述语义槽提取模型的输出得到所述编辑命令包含的语义槽及其类型。
优选地,按以下方式构建语义槽提取模型:
设定编辑命令模板,所述编辑命令模板包含一个或多个语义槽,每个语义槽有确定的类型;
收集大量用于填充所述语义槽的填充文本;
将所述填充文本填充到所述语义槽中,得到大量编辑命令数据并将其作为训练数据,标注所述训练数据中每个词是否为语义槽及语义槽的类型;
对所述训练数据进行分词,并获取每个词的词向量;
根据所述词向量及标注信息训练得到语义槽提取模型。
优选地,所述方法还包括:
预先构建文本编辑文法库,所述文本编辑文法库包括多个文法模板;
所述对所述编辑命令进行语义理解,确定所述编辑命令包含的语义槽及其类型包括:
将所述编辑命令与所述文本编辑文法库中各文法模板进行匹配,根据匹配结果确定所述编辑命令包含的语义槽及其类型。
优选地,按以下方式构建文本编辑文法库:
构建基础文法模板,所述基础文法模板包含一个或多个语义槽,每个语义槽有确定的类型;
对所述基础文法模板进行扩展,得到扩展的文法模板;
由所述基础文法模板和所述扩展的文法模板生成文本编辑文法库。
优选地,所述根据所述编辑命令包含的语义槽及其类型确定当前待编辑文本及编辑状态的取值包括:
将所述编辑命令包含的待编辑语义槽中的文本作为当前待编辑文本,根据所述编辑命令包含的用于描述用户编辑状态的语义槽中的文本得到当前编辑状态的取值。
优选地,所述根据所述当前待编辑文本及编辑状态的取值确定是否执行所述编辑命令包括:
将所述当前待编辑文本与所述原始文本进行模糊匹配,得到所述待编辑文本在所述原始文本中的一次匹配位置;
如果所述一次匹配位置有一个,则确定可以执行所述编辑命令;
否则,则将当前编辑状态的取值加入到所述当前待编辑文本与所述原始文本的模糊匹配中,得到所述待编辑文本在所述原始文本中的二次匹配位置;
如果所述二次匹配位置有一个,则确定可以执行所述编辑命令;
否则,确定不可以执行所述编辑命令。
一种文本编辑装置,包括:
文本获取模块,用于获取待编辑的原始文本;
语音接收模块,用于接收用户编辑语音数据;
语音识别模块,用于对所述用户编辑语音数据进行语音识别,得到编辑命令;
语义理解模块,用于对所述编辑命令进行语义理解,以确定当前待编辑文本及编辑状态的取值;所述编辑状态用于描述是否能确定所述当前待编辑文本在原始文本中的位置;
判断模块,用于根据所述当前待编辑文本及编辑状态的取值确定是否可以执行所述编辑命令;
编辑模块,用于在所述判断模块确定可以执行所述编辑命令后,根据所述编辑命令对所述原始文本进行编辑;
交互模块,用于在所述判断模块确定不可以执行所述编辑命令后,与用户交互,以获取更多对应所述当前待编辑文本的编辑状态的取值。
优选地,所述装置还包括:
语义槽设置模块,用于预先设定语义槽的类型;
所述语义理解模块包括:
语义槽信息确定模块,用于对所述编辑命令进行语义理解,确定所述编辑命令包含的语义槽及其类型;
编辑信息确定模块,用于根据所述编辑命令包含的语义槽及其类型确定当前待编辑文本及编辑状态。
优选地,所述语义槽的类型包括用于描述用户编辑状态的语义槽、用于描述用户编辑操作的语义槽、以及用于描述编辑文本的语义槽;
所述用于描述用户编辑状态的语义槽包括以下任意一种或多种:
顺序语义槽,所述顺序语义槽用于描述待编辑文本在原始文本中的顺序;
类型语义槽,所述类型语义槽用于描述待编辑文本的类型;
汉字结构语义槽,所述汉字结构语义槽用于描述待编辑文本的汉字结构;
偏旁部首语义槽,所述偏旁部首语义槽用于描述待编辑文本的偏旁部首;
汉字描述语义槽,所述汉字描述语义槽用于对待编辑文本进行限定;
参考语义槽,所述参考语义槽用于描述待编辑文本在原始文本中的参考文本;
全局位置语义槽,所述全局语义槽指待编辑文本在原始文本中的全局位置;
相对位置语义槽,所述相对位置语义槽指待编辑文本在原始文本中的相对位置;
所述用于描述用户编辑操作的语义槽包括以下任意一种或多种:添加语义槽、删除语义槽、修改语义槽、修改字体大小语义槽、修改字体颜色语义槽、修改字体粗细语义槽、换行语义槽、缩进语义槽;
所述用于描述编辑文本的语义槽包括:待编辑语义槽、编辑后语义槽。
优选地,所述装置还包括:
语义槽提取模型构建模块,用于预先构建语义槽提取模型;
所述语义槽信息确定模块包括:
语义槽提取特征生成单元,用于将所述编辑命令中的每个词进行向量化后作为语义槽提取特征;
语义槽信息提取单元,用于将所述语义槽提取特征输入所述语义槽提取模型,根据所述语义槽提取模型的输出得到所述编辑命令包含的语义槽及其类型。
优选地,所述语义槽提取模型构建模块包括:
模板设定单元,用于设定编辑命令模板,所述编辑命令模板包含一个或多个语义槽,每个语义槽有确定的类型;
文本收集单元,用于收集大量用于填充所述语义槽的填充文本;
语义槽填充单元,用于将所述填充文本填充到所述语义槽中,得到大量编辑命令数据并将其作为训练数据,标注所述训练数据中每个词是否为语义槽及语义槽的类型;
词向量获取单元,用于对所述训练数据进行分词,并获取每个词的词向量;
训练单元,用于根据所述词向量及标注信息训练得到语义槽提取模型。
优选地,所述装置还包括:
文本编辑文法库构建模块,用于预先构建文本编辑文法库,所述文本编辑文法库包括多个文法模板;
所述语义槽信息确定模块,具体用于将所述编辑命令与所述文本编辑文法库中各文法模板进行匹配,根据匹配结果确定所述编辑命令包含的语义槽及其类型。
优选地,所述文本编辑文法库构建模块包括:
基础文法模板构建单元,用于构建基础文法模板,所述基础文法模板包含一个或多个语义槽,每个语义槽有确定的类型;
扩展单元,用于对所述基础文法模板进行扩展,得到扩展的文法模板;
文法库生成单元,用于由所述基础文法模板和所述扩展的文法模板生成文本编辑文法库。
优选地,所述编辑信息确定模块,具体用于将所述编辑命令包含的待编辑语义槽中的文本作为当前待编辑文本,根据所述编辑命令包含的用于描述用户编辑状态的语义槽中的文本得到当前编辑状态的取值。
优选地,所述判断模块包括:
第一匹配单元,用于将所述当前待编辑文本与所述原始文本进行模糊匹配,得到所述待编辑文本在所述原始文本中的一次匹配位置;
判断单元,用于在所述一次匹配位置有一个时,确定可以执行所述编辑命令;否则,触发所述第二匹配单元进行模糊匹配操作;
所述第二匹配单元,用于将当前编辑状态的取值加入到所述当前待编辑文本与所述原始文本的模糊匹配中,得到所述待编辑文本在所述原始文本中的二次匹配位置;
所述判断单元,还用于在所述二次匹配位置有一个时,确定可以执行所述编辑命令;否则,确定不可以执行所述编辑命令。
本发明实施例提供的文本编辑方法及装置,对用户编辑语音数据进行语音识别,得到编辑命令;再对编辑命令进行语义理解确定当前待编辑文本及编辑状态,根据所述编辑状态确定是否执行编辑命令,如果执行,则直接对原始文本进行编辑;否则,向用户提问,进一步确定用户编辑状态取值,进而获取更准确的待编辑文本在原始文本中的位置信息。由于执行相应用户编辑命令,整个过程自动执行,大大提高了文本编辑效率,并且保证了编辑操作的准确性,提升了用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例文本编辑方法的流程图;
图2是本发明实施例中构建语义槽提取模型的流程图;
图3是本发明实施例中构建文本编辑文法库的流程图;
图4是本发明实施例文本编辑装置的结构示意图;
图5是本发明实施例中基于模型的语义槽信息确定模块的一种结构示意图;
图6是本发明实施例中基于文法的语义槽信息确定模块的一种结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
考虑到语音交互的便利性和高效性,使用语音对文本数据进行编辑无疑是快捷高效的方式,因此,针对现有技术通过人工利用键盘和鼠标进行文本编辑存在的效率低的问题,本发明实施例提出一种文本编辑方法及装置,通过语音实现对文本的自动编辑,提高了文本编辑效率;而且,在能够准确定待编辑文本在原始文本中的位置的情况下,执行对原始文本进行编辑,否则通过进一步的交互,获取更准确的待编辑文本在原始文本中的位置信息,保证编辑操作的准确性。
如图1所示,是本发明实施例文本编辑方法的流程图,包括以下步骤:
步骤101,获取待编辑的原始文本。
其中,所述待编辑的原始文本可以根据用户语音输入信息或拍照输入信息得到;对于用户语音输入信息,可以利用语音识别技术将其识别为文本,将该文本作为待编辑的原始文本;对于用户拍照输入信息,可以利用图像识别技术得到相应的文本,将该文本作为待编辑的原始文本。当然,所述待编辑的原始文本也可以由用户直接提供的文本数据。所述语音识别和图像识别可以采用现有的一些相关技术,对此本发明实施例不做限定。
步骤102,接收用户编辑语音数据。
所述用户编辑语音数据是指用户修改文本数据时说出的语音对应的数据,如待编辑的原始文本为“帮我订一张合肥到南京的火车票”,用户想将其中的“南京”修改为“北京”,相应的用户编辑语音数据为“将南京修改为北京”。
步骤103,对所述用户编辑语音数据进行语音识别,得到编辑命令。
所述编辑命令即语音识别得到的识别文本。所述语音识别可以采用相关的现有技术,在此不再详述。
步骤104,对所述编辑命令进行语义理解,以确定当前待编辑文本及编辑状态的取值;所述编辑状态用于描述是否能确定所述当前待编辑文本在原始文本中的位置。
具体地,首先对所述编辑命令进行语义理解,确定所述编辑命令包含的语义槽及其类型;然后根据所述编辑命令包含的语义槽及其类型确定当前待编辑文本及编辑状态。
所述语义槽的类型包括用于描述用户编辑状态的语义槽、用于描述用户编辑操作的语义槽、以及用于描述编辑文本的语义槽。下面分别对这几种类型的语义槽进行详细说明。
1)用于描述用户编辑状态的语义槽包括以下任意一种或多种:
顺序语义槽,所述顺序语义槽用于描述待编辑文本在原始文本中的顺序,如第一个、第二个、最后一个、倒数第二个等;
类型语义槽,所述类型语义槽用于描述待编辑文本的类型,如汉字,中文,英文,数字,中文大写,阿拉伯数字,数字串等;
汉字结构语义槽,所述汉字结构语义槽用于描述待编辑文本的汉字结构,如弓长张,文刀刘,耳东陈,三横一竖王等;
偏旁部首语义槽,所述偏旁部首语义槽用于描述待编辑文本的偏旁部首,如单人旁,立刀旁,王字旁,宝盖头,文字旁等;
汉字描述语义槽,所述汉字描述语义槽用于对待编辑文本进行限定,如我们的我,科大的科,中国的国等等;
参考语义槽,所述参考语义槽用于描述待编辑文本在原始文本中的参考文本,如我想去后面的南京,其中,“我想去”即为参考文本;
全局位置语义槽,所述全局语义槽指待编辑文本在原始文本中的全局位置,如待编辑文本在原始文本中的篇章、段落、句子等;如第三段第二句中的南京;
相对位置语义槽,所述相对位置语义槽指待编辑文本在原始文本中的相对位置,如我要去后面的南京,后面即为相对位置语义槽;
2)用于描述用户编辑操作的语义槽,该类语义槽用于描述用户的具体编辑操作,比如可以包括以下任意一种或多种:添加语义槽、删除语义槽、修改语义槽、修改字体大小语义槽、修改字体颜色语义槽、修改字体粗细语义槽、换行语义槽、缩进语义槽;
3)用于描述编辑文本的语义槽包括:待编辑语义槽、编辑后语义槽。其中,所述待编辑语义槽中文本为待编辑文本,编辑后语义槽中文本为编辑后文本。
在确定所述编辑命令包含的语义槽及其类型时,可采用基于模型的方法或者采用基于文法的方法,具体过程将在后面详细描述。
在得到所述编辑命令包含的语义槽及其类型后,可以直接根据所述编辑命令包含的语义槽及其类型确定当前待编辑文本及编辑状态。具体地,所述编辑命令包含的待编辑语义槽中的文本即为当前待编辑文本;根据所述编辑命令包含的用于描述用户编辑状态的语义槽中的文本,得到当前编辑状态的取值。
如用户编辑命令“把我要去后面的南京修改为北京”,提取到的语义槽类型为“把/o我/reftext要去/reftext后面/relativepos的南京/oritext修改/o为/o北京/text”,其中o表示非语义槽,oritext为待编辑语义槽,reftext为参考语义槽,text为编辑后语义槽;
当前待编辑文本为“南京”,编辑状态的取值为:
顺序语义槽:null
类型语义槽:null
汉字结构语义槽:null
偏旁部首语义槽:null
汉字描述语义槽:null
参考语义槽:我要去
全局位置语义槽:null
相对位置语义槽:后面
步骤105,根据所述当前待编辑文本及编辑状态的取值确定是否可以执行所述编辑命令;如果是,则执行步骤106;否则,执行步骤107。
具体地,将当前编辑文本与所述原始文本进行模糊匹配,得到所述待编辑文本在所述原始文本中的一次匹配位置,所述一次匹配位置有一个或多个。
如果一次匹配位置只有一个,则确定当前待编辑文本在原始文本中的位置为所述一次匹配位置;由于当前待编辑文本的位置已能准确确定,因此在这种情况下,可以执行用户编辑命令,即根据所述编辑命令对所述原始文本进行编辑。
如果一次匹配位置有多个,则可进一步根据当前编辑状态的取值确定待编辑文本在原始文本中的具体位置。具体地,可以直接将当前编辑状态的取值加入到当前待编辑文本与原始文本的模糊匹配中,如果匹配到的二次匹配位置只有一个,则确定可以执行所述编辑命令;否则需要与用户进行交互,以便得到更多编辑状态的取值,直到得到当前待编辑文本在原始文本中的精确位置。
步骤106,根据所述编辑命令对所述原始文本进行编辑,然后返回步骤102。
如用户编辑命令为“把我要去后面的南京修改为北京”,确定了待编辑文本为“南京”,以及原始文本中需要编辑的“南京”的位置后,直接将该位置上的“南京”修改为“北京”;具体修改方法可采用现有的相关技术,在此不再详述。
步骤107,与用户交互,以获取更多对应所述当前待编辑文本的编辑状态的取值。
与用户进行交互时,可以根据当前用户编辑状态中每个语义槽的取值情况及加入用户编辑状态中语义槽取值后的模糊匹配结果向用户进行提问,如“把我要去后面的南京修改为北京”加入当前编辑状态的取值后的二次匹配结果仍然有多个,如原始文本中第一段中出现“南京”、第三段中出现“南京”、“蓝鲸”、“难经”;如可以向用户提问“哪一段的南京”、“是江苏的省会吗”等问题,继续获取更多编辑状态中语义槽的取值;每次提问后将得到的用户编辑状态语义槽取值加入到待编辑文本与原始文本的匹配中,直到得到待编辑文本在原始文本中的精确位置。
需要说明的是,用户对待编辑文本进行编辑时,一般交互次数不能太多,否则,用户体验较差,所以为了提升用户体验,可以将交互次数控制在两次以内;当然,也可以进行多次交互,以获取更准确的信息,确定用户意图。
前面提到,在本发明实施例中,在确定所述编辑命令包含的语义槽及其类型时,可采用基于模型的方法或者采用基于文法的方法,下面分别对这两种方法进行详细说明。
(1)基于模型的方法确定编辑命令包含的语义槽及其类型
在该方法中,需要预先构建语义槽提取模型,如图2所示,是本发明实施例中构建语义槽提取模型的流程图,包括以下步骤:
步骤21,设定编辑命令模板,所述编辑命令模板包含一个或多个语义槽,每个语义槽有确定的类型。
如“把a改成b”为编辑命令模板,其中a和b为语义槽,具体地,语义槽a的类型为待编辑语义槽、语义槽b的类型为编辑后语义槽。
步骤22,收集大量用于填充所述语义槽的填充文本。
步骤23,将所述填充文本填充到所述语义槽中,得到大量编辑命令数据并将其作为训练数据,标注所述训练数据中每个词是否为语义槽及语义槽的类型。
需要说明的是,在进行信息标注时,如果编辑命令数据中的词不是语义槽,可以使用统一符号表示,如使用字符o表示非语义槽。
步骤24,对所述训练数据进行分词,并获取每个词的词向量。
步骤25,根据所述词向量及标注信息训练得到语义槽提取模型。
具体训练时,可以将用户编辑命令中每个词的词向量作为模型输入,对编辑命令中词是否为语义槽及语义槽的类型进行预测,利用每条编辑命令语义槽的预测结果和标注信息对模型参数进行更新,训练结束后,得到语义槽提取模型。
基于上述语义槽提取模型,在确定所述编辑命令包含的语义槽及其类型时,需要将上述步骤103得到的编辑命令中的每个词进行向量化后作为语义槽提取特征;然后将所述语义槽提取特征输入所述语义槽提取模型,根据所述语义槽提取模型的输出得到所述编辑命令包含的语义槽及其类型。如当前用户编辑命令为“把南京修改为北京”,利用该语义槽提取模型,得到的语义槽提取结果为:“把/o南京/oritext修改/o为/o北京/text”,其中o表示非语义槽,oritext为语义槽,类型为待编辑语义槽,text为语义槽,类型为编辑后语义槽。
(2)基于文法的方法确定编辑命令包含的语义槽及其类型
在该方法中,需要预先构建文本编辑文法库,如图3所示,是本发明实施例中构建文本编辑文法库的流程图,包括以下步骤:
步骤31,构建基础文法模板,所述基础文法模板包含一个或多个语义槽,每个语义槽有确定的类型。
步骤32,对所述基础文法模板进行扩展,得到扩展的文法模板。
如基础文法模板为:把a修改为b,可以将其扩展为“把a修改成b、把a换成b、我想把a改成b、a改成b”等,从而得到扩展的文法模板,扩展后的文法模板中的语义槽及其类型与相应的基础文法模板中的语义槽及其类型相同。
步骤33,由所述基础文法模板和所述扩展的文法模板生成文本编辑文法库。
基于上述文本编辑文法库,在确定所述编辑命令包含的语义槽及其类型时,可以将上述步骤103得到的编辑命令与所述文本编辑文法库中各文法模板进行匹配,根据匹配结果即可确定所述编辑命令包含的语义槽及其类型。具体匹配方法可以采用现有的相关技术,如可以采用精确匹配或模糊匹配的方法,在此不再详述。
本发明实施例提供的文本编辑方法,对用户编辑语音数据进行语音识别,得到编辑命令;再对编辑命令进行语义理解确定当前待编辑文本及编辑状态,根据所述编辑状态确定是否执行编辑命令,如果执行,则直接对原始文本进行编辑;否则,向用户提问,进一步确定用户编辑状态取值,进而获取更准确的待编辑文本在原始文本中的位置信息。由于执行相应用户编辑命令,整个过程自动执行,大大提高了文本编辑效率,并且保证了编辑操作的准确性,提升了用户体验。
相应地,本发明实施例还提供一种文本编辑装置,如图4所示,是该装置的结构示意图。
在该实施例中,所述装置包括:
文本获取模块401,用于获取待编辑的原始文本;
语音接收模块402,用于接收用户编辑语音数据;
语音识别模块403,用于对所述用户编辑语音数据进行语音识别,得到编辑命令;
语义理解模块404,用于对所述编辑命令进行语义理解,以确定当前待编辑文本及编辑状态的取值;所述编辑状态用于描述是否能确定所述当前待编辑文本在原始文本中的位置;
判断模块405,用于根据所述当前待编辑文本及编辑状态的取值确定是否可以执行所述编辑命令;
编辑模块406,用于在所述判断模块确定可以执行所述编辑命令后,根据所述编辑命令对所述原始文本进行编辑;
交互模块407,用于在所述判断模块确定不可以执行所述编辑命令后,与用户交互,以获取更多对应所述当前待编辑文本的编辑状态的取值。
上述语音接收模块402具体可以采用现有技术对所述用户编辑语音数据进行语音识别,得到识别文本,该识别文本即用户的编辑命令。
上述语义理解模块404对所述编辑命令的语义理解,主要是基于预先设置的各种语义槽及其类型,来确定当前待编辑文本及编辑状态。语义槽的类型可以预置在所述装置中,当然,为了便于操作,也可以在所述装置中设置相应的语义槽设置模块(未图示),以预先设定语义槽的类型。
在本发明实施例中,所述语义槽的类型包括用于描述用户编辑状态的语义槽、用于描述用户编辑操作的语义槽、以及用于描述编辑文本的语义槽,各类型的语义槽的具体含义已在前面详细说明,在此不再赘述。
相应地,如图4所示,所述语义理解模块404可以包括语义槽信息确定模块441和编辑信息确定模块442。其中,语义槽信息确定模块441用于对所述编辑命令进行语义理解,确定所述编辑命令包含的语义槽及其类型;编辑信息确定模块442用于根据所述编辑命令包含的语义槽及其类型确定当前待编辑文本及编辑状态。
上述语义槽信息确定模块441在确定所述编辑命令包含的语义槽及其类型时,可采用基于模型的方法或者采用基于文法的方法,对此下面进行详细描述。
如图5所示,示出了基于模型的方法确定编辑命令包含的语义槽及其类型时语义槽信息确定模块的一种结构示意图。
在该实施例中,语义槽提取模型50由语义槽提取模型构建模块51预先构建,该语义槽提取模型构建模块51可以作为本发明实施例的装置的一部分,也可以是独立于该装置之外,对此本发明实施例不做限定。
相应地,在该实施例中,语义槽信息确定模块441包括:
语义槽提取特征生成单元52,用于将所述编辑命令中的每个词进行向量化后作为语义槽提取特征;
语义槽信息提取单元53,用于将所述语义槽提取特征输入所述语义槽提取模型,根据所述语义槽提取模型的输出得到所述编辑命令包含的语义槽及其类型。
上述语义槽提取模型构建模块51的一种具体结构包括以下各单元:
模板设定单元,用于设定编辑命令模板,所述编辑命令模板包含一个或多个语义槽,每个语义槽有确定的类型;
文本收集单元,用于收集大量用于填充所述语义槽的填充文本;
语义槽填充单元,用于将所述填充文本填充到所述语义槽中,得到大量编辑命令数据并将其作为训练数据,标注所述训练数据中每个词是否为语义槽及语义槽的类型;
词向量获取单元,用于对所述训练数据进行分词,并获取每个词的词向量;
训练单元,用于根据所述词向量及标注信息训练得到语义槽提取模型。
如图6所示,示出了基于文法的方法确定编辑命令包含的语义槽及其类型时语义槽信息确定模块的一种结构示意图。
在该实施例中,文本编辑文法库60由文本编辑文法库构建模块61预先构建,该文本编辑文法库构建模块61可以作为本发明实施例的装置的一部分,也可以是独立于该装置之外,对此本发明实施例不做限定。文本编辑文法库60包括多个文法模板。
相应地,在该实施例中,语义槽信息确定模块441将所述编辑命令与所述文本编辑文法库中各文法模板进行匹配,根据匹配结果确定所述编辑命令包含的语义槽及其类型。
上述文本编辑文法库构建模块61的一种具体结构包括以下各单元:
基础文法模板构建单元,用于构建基础文法模板,所述基础文法模板包含一个或多个语义槽,每个语义槽有确定的类型;
扩展单元,用于对所述基础文法模板进行扩展,得到扩展的文法模板;
文法库生成单元,用于由所述基础文法模板和所述扩展的文法模板生成文本编辑文法库。
语义槽信息确定模块441无论基于上述何种方式得到编辑命令包含的语义槽及其类型后,
所述编辑信息确定模块442即可根据所述语义槽及其类型确定当前待编辑文本及编辑状态的取值,具体地,将所述编辑命令包含的待编辑语义槽中的文本作为当前待编辑文本,根据所述编辑命令包含的用于描述用户编辑状态的语义槽中的文本得到当前编辑状态的取值。
图4中的判断模块具体可以包括以下各单元:
第一匹配单元,用于将所述当前待编辑文本与所述原始文本进行模糊匹配,得到所述待编辑文本在所述原始文本中的一次匹配位置;
判断单元,用于在所述一次匹配位置有一个时,确定可以执行所述编辑命令,此时可以输出触发编辑模块406开始编辑的指令;否则,触发所述第二匹配单元进行模糊匹配操作;
所述第二匹配单元,用于将当前编辑状态的取值加入到所述当前待编辑文本与所述原始文本的模糊匹配中,得到所述待编辑文本在所述原始文本中的二次匹配位置;
所述判断单元,还用于在所述二次匹配位置有一个时,确定可以执行所述编辑命令,此时可以输出触发编辑模块406开始编辑的指令;否则,确定不可以执行所述编辑命令,此时可以输出触发交互模块407进行交互的指令。
所述编辑模块406根据所述编辑命令对所述原始文本进行编辑的具体操作可以采用现有技术。
所述交互模块407与用户进行交互时,可以根据当前用户编辑状态中每个语义槽的取值情况及加入用户编辑状态中语义槽取值后的模糊匹配结果向用户进行提问。每次提问后将得到的用户编辑状态语义槽取值加入到待编辑文本与原始文本的匹配中,直到得到待编辑文本在原始文本中的精确位置。
本发明实施例提供的文本编辑装置,对用户编辑语音数据进行语音识别,得到编辑命令;再对编辑命令进行语义理解确定当前待编辑文本及编辑状态,根据所述编辑状态确定是否执行编辑命令,如果执行,则直接对原始文本进行编辑;否则,向用户提问,进一步确定用户编辑状态取值,进而获取更准确的待编辑文本在原始文本中的位置信息。由于执行相应用户编辑命令,整个过程自动执行,大大提高了文本编辑效率,并且保证了编辑操作的准确性,提升了用户体验。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及系统;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。