CN114970538A - 文本纠错的方法及装置 - Google Patents
文本纠错的方法及装置 Download PDFInfo
- Publication number
- CN114970538A CN114970538A CN202110214179.0A CN202110214179A CN114970538A CN 114970538 A CN114970538 A CN 114970538A CN 202110214179 A CN202110214179 A CN 202110214179A CN 114970538 A CN114970538 A CN 114970538A
- Authority
- CN
- China
- Prior art keywords
- intention
- word
- text
- keyword
- attention
- 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/30—Semantic analysis
-
- 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/35—Clustering; Classification
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本申请涉及人工智能领域中的文本处理的技术领域,本申请提供了一种文本纠错方法及装置,该方法包括:通过自然语言理解模型NLU对文本T进行意图类别的识别,得到预测意图A;当所述预测意图A与用户预期意图B不匹配时,确定所述文本T中各字对所述预测意图A的贡献值,并选取所述贡献值大于阈值的字为负向关键字;针对各所述负向关键字,根据编辑距离从意图混淆列表中匹配出所述负向关键字对应的正向关键字,作为对所述负向关键字纠正后的字;所述意图混淆列表记录了将所述预期意图B混淆为所述预测意图A的各关键字。本申请是基于任务,即针对可识别的意图类别的关键文件的纠错方案,可以适用于通用领域和特定领域。
Description
技术领域
本申请涉及人工智能领域中的文本处理的技术领域,尤其涉及文本纠错的方法及装置、计算设备和计算机可读存储介质。
背景技术
文本纠错(Text Error Correction),其主要目的是对原始文本中的输入进行错误检测(Error Detection),并根据自然语言处理技术对错误进行纠正(ErrorCorrection)。原始文本可以是书籍报刊上文字内容的扫描识别结果、社交网络如新浪微博、微信朋友圈中的内容,也可以是经过自动语音识别(Automatic Speech Recognition,ASR)模块识别的用户输入语音。这些文本难以避免地会含有一定错误(或者是不规范用语),这些错误会导致后续处理(如文本翻译、文本实体识别、意图识别等)准确率下降。
现有的纠错技术从纠错的目标来区分,大致可以分为两大类:通用领域纠错和特定领域纠错。通用领域纠错的纠错对象为不限定领域的文本,主要通过引入读音、字形、语法、知识库和语言模型特征进行错误检测和纠错,由于开放领域范围太大,纠错准确率不高。特定领域文本纠错模块主要通过构建领域词典,利用模糊匹配的算法获取纠错文本,但是只针对特定领域进行纠错,且依赖于领域知识构建。
发明内容
鉴于现有技术,本申请提供一种文本纠错的方法及装置、计算设备和计算机可读存储介质,本申请是基于任务(即针对可识别的意图类别)的关键文件的纠错方案,可以适用于通用领域和特定领域。
为达到上述目的,本申请第一方面提供了一种文本纠错的方法,包括:
通过自然语言理解模型NLU对文本T进行意图类别的识别,得到预测意图A;
当所述预测意图A与用户预期意图B不匹配时,确定所述文本T中各字对所述预测意图A的贡献值,并选取所述贡献值大于阈值的字为负向关键字;
针对各所述负向关键字,根据编辑距离从意图混淆列表中匹配出所述负向关键字对应的关键字作为正向关键字,所述正向关键字作为对所述负向关键字纠正后的字;所述意图混淆列表记录了将所述预期意图B混淆为所述预测意图A的各关键字。
由上,当文本T中的错误导致识别的预测意图与用户预期意图不一致时,本方法可实现自动判别出文本T中存在的错误的关键字,即负向关键字,并对文本中的该负向键字进行自适应纠错。另一方面,在负向关键字推导时,结合了NLU的意图识别结果,通过NLU识别的预测意图反向推导该预测意图对应的负向关键字,将文本纠错限定到与任务相关(即与NLU输出的意图类别相关)的特定的关键字内,缩小了文本纠错范围,因此提升了模型性能和纠错精度。并且,本申请的文本纠错方法可以适用于通用领域和特定领域。
作为第一方面的一种可能的实现方式,所述文本T是由一文本纠错模块对一源文本进行纠错处理生成的;
还包括:将所述负向关键字与纠正后的字构成文本对,作为用于训练所述文本纠错模块的语料。
由上,本申请还可根据文本纠错结果,自动构建负向关键字与纠正后的字的文本对,从而可以根据该文本对生成所述文本T的文本纠错模块进行训练、更新。
作为第一方面的一种可能的实现方式,所述NLU包括至少一层自注意力层;
所述确定所述文本T中各字对所述预测意图A的贡献值的步骤包括:
对于NLU最后K层的自注意力层,获取每层的CLS的注意力得分矩阵;所述CLS为对文本T添加的前缀字符;所述CLS的注意力得分矩阵包括所述CLS相对文本T中各字的注意力得分;K为不小于1的整数;
将所述K层的CLS的注意力得分矩阵求和,其结果作为所述各字对所述预测意图A的贡献值的矩阵。
由上,为所述NLU的一种实施方式,该实施方式采用了K层CLS的注意力得分矩阵计算各字对所述预测意图A的贡献值,由于采用了最后K层的自注意力层,因此可以融合K层的注意力信息,即融合了高层和低层的注意力信息,进而可以使得各字对所述预测意图A的贡献值的计算更精准。
作为第一方面的一种可能的实现方式,所述NLU还包括在多层所述自注意力层后依次堆叠的多通道注意力层、对应所述多通道注意力层的每个通道的线性层、逻辑回归层;所述逻辑回归层包括意图类别为所述预测意图A的输出节点;
所述确定所述文本T中各字对所述预测意图A的贡献值的步骤还包括:
确定所述多通道注意力层的各通道的通道贡献值,并将所述K层的CLS的注意力得分矩阵求和后的结果与大于0的通道贡献值相乘,其结果作为所述各字对所述预测意图A的贡献值的矩阵;
由上,由于进一步采用了多通道注意力层,因此,可以捕获各字在多个通道不同的表征,从而可以捕获不同的多通道下的各字对所述预测意图A的贡献值,并且结合通道贡献值大于0的通道(即与得到所述预测意图强相关的通道)的贡献值进行各字对所述预测意图A的贡献值的计算,进而可以使得各字对所述预测意图A的贡献值的计算更精准。
作为第一方面的一种可能的实现方式,所述CLS相对文本T中各字的注意力得分的计算方法包括以下之一:
根据CLS的查询向量与其他各字键向量进行注意力得分的计算;
根据各字的查询向量与CLS的键向量进行注意力得分的计算;
根据CLS的查询向量与其他各字键向量进行第一注意力得分的计算;根据各字的查询向量与CLS键向量进行第二注意力得分的计算;将对应同一字的第一、第二注意力得分求和计算。
由上,可以根据需要,如计算量的大小等等,灵活选取注意力得分的计算方式。
作为第一方面的一种可能的实现方式,所述注意力得分的计算通过查询向量与键向量的计算模型进行计算;所述计算模型包括以下之一:
点积模型、缩放点积模型、加性模型、双线性模型。
由上,可以根据需要,灵活选取上述计算模型。
作为第一方面的一种可能的实现方式,所述编辑距离包括以下之一:拼音编辑距离、输入法编辑距离、字形编辑距离。
由上,可以根据应用场景的需要,灵活选取编辑距离。例如拼音编辑距离可应用于文本T来自ASR识别的应用场景,输入法编辑距离可应用于文本T来自用户采用输入法输入的场景,字形编辑距离(即字形相似度距离)可应用于文本T来OCR技术识别的应用场景。
作为第一方面的一种可能的实现方式,所述从意图混淆列表中匹配出所述负向关键字对应的关键字之前还包括:确定所述负向关键字在预测意图A的关键字列表中。
由上,可先通过关键字列表判断所述负向关键字是否为关键字,以便于不在所述关键字列表中时(即非关键字时)略过该负向关键字的判断,从而减少数据的判断量、提升本申请纠错方法的运行效率。
作为第一方面的一种可能的实现方式,所述预测意图A的关键字列表采用下述方式构建:
获得该预测意图A的语料库,以字为单位按照下述公式计算该预测意图A的语料库中每个字在该预测意图A的语料库中的字频TF值:
将所述每个字按TF值进行降序排序,将前一定数量的字作为该预测意图A的关键字列表的内容。
由上,本申请的关键字列表是与任务相关,即与NLU的输出的意图类别相关,因此构建的关键字列表适配任务,故纠错能力更为精准,且可以适用于通用领域和特定领域。
作为第一方面的一种可能的实现方式,所述意图混淆列表中的将所述预期意图B混淆为所述预测意图A的各关键字采用下述方式构建:
计算所述预期意图B和预测意图A各自的关键字列表并合并,计算预期意图B的关键字列表中的每个字的TF-IDF值,所述TF-IDF=TF*IDF;所述IDF按照下述公式计算,且公式中的包含该字的意图数为2:
将所述每个字按TF-IDF值进行降序排序,将前一定数量的字作为所述预期意图B混淆为所述预测意图A的各关键字。
由上,本申请的混淆关键字列表是与任务相关,即与NLU的输出的意图类别相关,因此构建的混淆关键字列表适配任务,故纠错能力更为精准,且可以适用于通用领域和特定领域。
本申请第二方面提供了一种文本纠错的装置,包括:
自然语言理解模块,用于对文本T进行意图类别的识别,得到预测意图A;
关键文本检测模块,用于当所述预测意图A与用户预期意图B不匹配时,确定所述文本T中各字对所述预测意图A的贡献值,并选取所述贡献值大于阈值的字为负向关键字;
关键文本挖掘模块,用于针对各所述负向关键字,根据编辑距离从意图混淆列表中匹配出所述负向关键字对应的关键字作为正向关键字,所述正向关键字对所述负向关键字纠正后的字;所述意图混淆列表记录了将所述预期意图B混淆为所述预测意图A的各关键字。
作为第二方面的一种可能的实现方式,所述文本T是由一文本纠错模块对一源文本进行纠错处理生成的;
还包括:将所述负向关键字与纠正后的字构成文本对,作为用于训练所述文本纠错模块的语料。
作为第二方面的一种可能的实现方式,所述自然语言理解模块包括至少一层自注意力层;
所述确定所述文本T中各字对所述预测意图A的贡献值的步骤包括:
对于NLU最后K层的自注意力层,获取每层的CLS的注意力得分矩阵;所述CLS为对文本T添加的前缀字符;所述CLS的注意力得分矩阵包括所述CLS相对文本T中各字的注意力得分;K为不小于1的整数;
将所述K层的CLS的注意力得分矩阵求和,其结果作为所述各字对所述预测意图A的贡献值的矩阵。
作为第二方面的一种可能的实现方式,所述自然语言理解模块还包括在多层所述自注意力层后依次堆叠的多通道注意力层、对应所述多通道注意力层的每个通道的线性层、逻辑回归层;所述逻辑回归层包括意图类别为所述预测意图A的输出节点;
所述确定所述文本T中各字对所述预测意图A的贡献值的步骤还包括:
确定所述多通道注意力层的各通道的通道贡献值,并将所述K层的CLS的注意力得分矩阵求和后的结果与大于0的通道贡献值相乘,其结果作为所述各字对所述预测意图A的贡献值的矩阵;
作为第二方面的一种可能的实现方式,所述CLS相对文本T中各字的注意力得分的计算方法包括以下之一:
根据CLS的查询向量与其他各字键向量进行注意力得分的计算;
根据各字的查询向量与CLS的键向量进行注意力得分的计算;
根据CLS的查询向量与其他各字键向量进行第一注意力得分的计算;根据各字的查询向量与CLS键向量进行第二注意力得分的计算;将对应同一字的第一、第二注意力得分求和计算。
作为第二方面的一种可能的实现方式,所述注意力得分的计算通过查询向量与键向量的计算模型进行计算;所述计算模型包括以下之一:
点积模型、缩放点积模型、加性模型、双线性模型。
作为第二方面的一种可能的实现方式,所述编辑距离包括以下之一:拼音编辑距离、输入法编辑距离、字形编辑距离。
作为第二方面的一种可能的实现方式,所述关键文本挖掘模块还用于确定所述负向关键字在预测意图A的关键字列表中。
作为第二方面的一种可能的实现方式,所述预测意图A的关键字列表采用下述方式构建:
获得该预测意图A的语料库,以字为单位按照下述公式计算该预测意图A的语料库中每个字在该预测意图A的语料库中的字频TF值:
将所述每个字按TF值进行降序排序,将前一定数量的字作为该预测意图A的关键字列表的内容。
作为第二方面的一种可能的实现方式,所述意图混淆列表中的将所述预期意图B混淆为所述预测意图A的各关键字采用下述方式构建:
计算所述预期意图B和预测意图A各自的关键字列表并合并,计算预期意图B的关键字列表中的每个字的TF-IDF值,所述TF-IDF=TF*IDF;所述IDF按照下述公式计算,且公式中的包含该字的意图数为2:
将所述每个字按TF-IDF值进行降序排序,将前一定数量的字作为所述预期意图B混淆为所述预测意图A的各关键字。
本申请第三方面提供了一种计算设备,包括:
通信接口;
至少一个处理器,其与所述通信接口连接;以及
至少一个存储器,其与所述处理器连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行上述第一方面任一所述的方法。
本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行上述第一方面任一所述的方法。
本申请的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
以下参照附图来进一步说明本申请的各个特征和各个特征之间的联系。附图均为示例性的,一些特征并不以实际比例示出,并且一些附图中可能省略了本申请所涉及领域的惯常的且对于本申请非必要的特征,或是额外示出了对于本申请非必要的特征,附图所示的各个特征的组合并不用以限制本申请。另外,在本说明书全文中,相同的附图标记所指代的内容也是相同的。具体的附图说明如下:
图1为本申请的一应用场景的示意图;
图2为本申请文本纠错方法的一实施例的流程图;
图3为本申请文本纠错方法的一具体实施方式的流程图;
图4为本申请具体实施方式中提供的通过NLU进行预测意图的流程图;
图5为本申请具体实施方式中提供的负向关键字挖掘的流程图;
图6为本申请具体实施方式中提供的基于负向关键字匹配正向关键字的流程图;
图7为本申请具体实施方式中提供的NLU模块的结构示意图;
图8为本申请具体实施方式中提供的注意力得分矩阵的示意图;
图9为本申请实施例提供的纠错装置的示意图;
图10为本申请提供的一计算设备的示意图。
具体实施方式
说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本申请,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义:
1)文本挖掘技术:文本挖掘是以计算语言学、统计数理分析为理论基础,结合机器学习和信息检索技术,从文本中发现和提取关键信息的方法。本申请实施例使用文本挖掘技术为负向关键字匹配出对应的正向关键字。
2)意图识别技术:广义上意图识别即自然语言理解(Natural LanguageUnderstanding,NLU),其主要目的是理解用户输入的自然语言文本所对应的用户希望执行的操作,并将该操作用意图(例如该操作在目标系统中对应的动作或所属领域)和槽位(Slot,完成该操作需要的参数)来描述,以通过任务执行模型转换为对应系统上的接口调用或应用执行动作,以达成通过自然语言发起操作的效果。例如,用户输入的自然语言文本为“纽约今天天气如何”,意图识别模块可以基于该文本理解得到用户的意图为“查询天气”,槽位为“地点:纽约”和“时间:今天”;进而系统后续可以根据上述意图和槽位调用接口、执行动作,例如语音播报“纽约今天天气晴朗,最高温23℃,最低温16℃”。意图识别能力依赖于对用户输入的自然语言句子中语义信息的理解,由于用户用语不规范或自动语音识别技术(Automatic Speech Recognition,ASR)出错导致该文本出现错字、多字、漏字等问题时,会影响意图识别的准确率,从而无法正确处理用户希望执行的操作。
3)负向关键字、正向关键字:如前所述,基于NLU(或者说意图识别)可以基于自然语言文本生成预测意图。自然语言文本对应于用户的预期意图(或者说真实意图),即用户实际想通过自然语言表达的意思、用户实际希望执行的操作等。当基于NLU生成的预测意图与用户的预期意图不相符时,本申请将自然语言文本中与错误的预测意图强相关的那个/那些关键字称为负向关键字。相应地,本申请将该负向关键字对应的能够正确描述用户预期意图的关键字称为正向关键字。例如,由于ASR的错误生成“拨一下《电影A》”,NLU基于存在错字的自然语言文本“拨一下《电影A》”输出错误的预测意图“拨打电话”,而用户的预期意图是“播放视频”,则此示例中“拨”即为负向关键字,“播”即为对应于“拨”的正向关键字。
4)词频(Term Frequency,TF):用于表示字、词或短语在文本中出现的频率,词频高的字、词或短语可以作为反映文本对应的意图的关键字。
5)逆向文件频率(Inverse Document Frequency,IDF):其主要思想是,如果某个字、词或短语在一类文本中出现的TF高,且在其他类文本中很少出现,则认为此字、词或短语具有很好的类别区分能力,适合用来分类。通过IDF可以将在所有类别中词频都较高“的”、“了”等高频字、词或短语不作为分类用字、词或短语。
6)分类(Classification,CLS)向量:对于文本分类任务,文本分类模型可以在文本前插入一个CLS符号,并将该符号对应的输出向量作为所述文本的语义表示,用于文本分类。例如,如图5所示,将多通道注意力层输出的CLS对应的向量作为输出,用于下游的分类使用。CLS对应的输出向量的含义可以理解为:与文本中已有的其它字/词相比,这个无明显语义信息的符号会更“公平”地融合文本中各个字/词的语义信息。
7)翻译器(Transformer):是一种自然语言处理(Natural Language Processing,NLP)的经典模型,Transformer模型使用了自注意力(Self-Attention)机制。其中,Transformer模型的编码端包含若干个翻译块(Transformer Block,Trm),每个Trm包含有自注意力层。
下面先对现有的方法进行介绍,然后再对本申请的技术方案进行详细介绍。
现有技术一:公开号为CN107741928A的专利申请提供了一种基于领域识别的对语音识别后文本纠错的方法,在纠错过程中,该方案首先根据预定义的语法规则对待纠错句子进行切分,划分为冗余部分以及核心部分;然后利用搜索引擎进行字符串模糊匹配确定句子核心部分的候选专有词库集;根据编辑距离计算相似度得分,分别对冗余部分和核心部分纠错,其中进行核心部分纠错时根据所述专有词库集进行模糊匹配;然后对纠错后的冗余部分和核心部分进行融合,然后输出纠错结果。
现有技术一存在着以下缺陷:其需要构建复杂的语法规则,通过规则方式将文本划分为冗余部分和核心部分。核心部分定义依赖于规则设定,没有充分利用任务相关的高层语义信息,划分准确率不高。同时该方案需要构建词库集,通过模糊匹配及编辑距离筛选纠错文本,纠错粒度为字符串,当出现多字错误容易出现误匹配。
现有技术二:公开号为CN107741928A的专利申请公开了一种语音识别后文本的纠错方法及纠错装置,该方案通过对语音识别后文本进行预处理、识别搜索意图、抽取属性信息,并计算属性信息与候选词库中的任一候选词的相似度,根据相似度值的高低对抽取出的属性信息进行纠错。
在该技术方案中,通过依次调用搜索意图识别模板库内的规则模板,如果预处理后的文本匹配某个类别的模板(例如,类别C),则认为该搜索意图为当前类别C;否则,通过分词、抽取预处理后的文本的有效特征,并将该有效特征带入预设的分类器进行分类,将得到的类别作为搜索意图;然后根据待抽取的属性信息,从预处理后的文本中识别待抽取的属性片段;获取待抽取的属性信息对应的抽取模板及上下文关键词,根据抽取模板的权重及上下文关键词的权重,计算每个待抽取的属性片段的分值。
现有技术二存在着以下缺陷:该方案本质上是一个利用词典和规则的意图识别方法,当文本中非指定属性存在错字、多字、漏字导致意图识别错误,词典无法匹配,则该方案针对意图的纠错能力则无法生效。
本申请提供了不同于上述思路的文本纠错方案。本申请的文本纠错方案可应用于人工智能领域,涉及该领域下的文本处理技术,应用对象可以是针对用户输入的自然语言文本进行意图和槽位识别能力的终端、应用或网络服务等,例如智能手机、智能音箱、搜索引擎、翻译机等。
本申请的应用场景之一可以是语音助手,如智能音箱、智能手机上的语音助手。如图1示出了该应用场景的示意图,语音助手通常包括用于将语音识别为文字的ASR模块12、用于对识别后的文字进行纠错的文本纠错模块13,用于对纠错后的文本进行意图和槽位识别的NLU模块111。如前所述,当ASR模块12输出的语音识别结果存在错误时,会对NLU模块111意图和槽位识别的准确性造成不利影响,例如导致NLU模块111识别的意图与用户真实意图不符,从而无法正确处理用户希望执行的操作。通过本申请提供的文本纠错方法,使用NLU模块111输出的预测意图及用户预期意图信息,结合关键文本检测和挖掘技术自动检测文本纠错模块所纠错后的文本中的关键字错误,并对关键字进行自适应纠错。本申请实施例提供的文本纠错方法,可以聚焦于文本中的关键文本信息,针对关键字进行纠错,能够有效提升纠错效果,进而提升后续NLU模块识别的准确率。
另外需要说明的是,本申请的文本纠错方案,可以在终端侧实现,也可以在网络侧(如服务器)实现,或者由终端侧与网络侧进行配合的方式实现。
基于上述对相关术语和本申请应用场景的介绍,接下来结合附图详细描述本申请提供的文本纠错方法的一实施例。
如图2示出了本申请提供的一种文本纠错的方法的一实施例,包括以下步骤:
S210:接收一文本T,通过NLU对该文本T进行意图类别的识别,得到预测意图A,例如该预测意图A为“打电话”。
其中,该文本T是待本申请方法进行纠错的文本,例如图1中经文本纠错模块111纠错后的输出文本。
其中,该NLU是输入为文本输出为意图类别的分类模型,各个意图类别对应所要预测的意图,如意图类别可以包括“打电话”、“听音乐”、“播放视频”等。其中,该NLU采用了注意力机制,该注意力机制可以解释为输入的文本T中各个字对NLU模块输出的预测意图的贡献值。下面示例性的列举采用注意力机制的几种NLU的结构,均可作为本申请的NLU:
1)NLU的结构可以包括堆叠的多层自注意力层,其下游堆叠一作为分类层的逻辑回归层。可选的,堆叠的多层自注意力层可以包括堆叠的Trm。
2)NLU的结构可以是如图7示出的结构,包括依次堆叠的Trm、多通道注意力层、对应各所述通道的线性层、作为分类层的逻辑回归层。在后面的具体实施方式中,将以该NLU结构为例对本申请进一步详述。
3)NLU的结构可以是采用了注意力机制的循环神经网络(RNN),其下游堆叠一作为分类层的逻辑回归层构成。RNN可以是传统的RNN、长短期记忆网络(LSTM)、门控循环单元(GRU)等。由于传统的注意力机制的RNN,相当于使用了一层注意力层,故也可归类到上述第一种NLU结构中。
另外需要说明的是,上述各层之间,如Trm与Trm之间、Trm与逻辑回归层之间、Trm与多通道注意力层之间,均可堆叠有线性层,以通过增加网络层数的方式提高网络的精确度。
S220:当所述预测意图A(如打电话)与用户预期意图B(如播放视频)不匹配时,确定所述文本T中各字对所述预测意图A的贡献值,并选取所述贡献值大于阈值的字为负向关键字。
其中用户预期意图B可以通过用户直接反馈或者根据情景感知信息进行预测获得,下面举例说明:
当通过用户直接反馈时,可以通过人机交互界面列举NLU的各个意图类别由用户点选,并且,为了便于用户点选过程中的快速查看和点选,可以根据NLU的逻辑回归层输出的各个意图类别的置信度,即各个意图的Softmax值,进行排序显示。
当根据情景感知时,可以是根据终端当前正在运行的App的类别,如视频App、电话App等类别进行情景感知,也可以是根据历史统计判断当前时间段运行各类别APP的概率进行情景的感知,进而,基于感知的情景判断出用户当前的预期意图B。
其中,所述确定所述文本T中各字对所述预测意图A的贡献值的方式,根据NLU的结构可以使用不同的方式,下面举例说明几种方式:
1)对于包括堆叠的多层自注意力层的NLU结构:
针对NLU最后K层的自注意力层,获取每层的CLS的注意力得分矩阵;然后,将所述K层的CLS的注意力得分矩阵求和,其结果作为所述各字对所述预测意图A的贡献值的矩阵。其中,所述CLS为对文本T添加的前缀字符,所述CLS的注意力得分矩阵包括所述CLS相对文本T中各字的注意力得分,所述K为不小于1的整数。
由于采用了最后K层的自注意力层,因此可以融合K层的注意力信息,即融合了高层和低层的注意力信息,进而可以使得各字对所述预测意图A的贡献值的计算更精准。
2)对于图7示出的还具有多通道注意力层的NLU的结构:
可以如上先计算出最后K层的CLS的注意力得分矩阵,并求和,之后还包括:确定多通道注意力层的各通道的通道贡献值,并将所述K层的CLS的注意力得分矩阵求和后的结果与大于0的通道贡献值相乘,其结果作为所述各字对所述预测意图A的贡献值的矩阵。其中,每个通道的所述通道贡献值的计算方式为其中是该通道对应的线性层第k个节点输出值,是所述第k个节点到逻辑回归层所述预测意图A的输出节点的权值。将在后文的具体实施方式中对该计算过程进一步详述。
由于进一步采用了多通道注意力层,因此,可以捕获各字在多个通道不同的表征,从而可以捕获不同的多通道下的各字对所述预测意图A的贡献值,并且结合通道贡献值大于0的通道(即与得到所述预测意图强相关的通道)的贡献值进行各字对所述预测意图A的贡献值的计算,进而可以使得各字对所述预测意图A的贡献值的计算更精准。
3)对于采用RNN结构的NLU,可以直接使用各字相对输出的意图类别的注意力得分作为所述贡献值。
其中,所述CLS相对文本T中各字的注意力得分的计算方法包括以下之一,可根据需要灵活选取:
1)根据CLS的查询向量与其他各字键向量进行注意力得分的计算;后文的具体实施方式中采用了该方式进行计算。
2)根据各字的查询向量与CLS的键向量进行注意力得分的计算。
3)根据CLS的查询向量与其他各字键向量进行第一注意力得分的计算;根据各字的查询向量与CLS键向量进行第二注意力得分的计算;将对应同一字的第一、第二注意力得分求和计算。
其中,所述注意力得分的计算通过查询向量与键向量的计算模型进行计算,具体来说,对于查询向量矩阵Q、键向量矩阵K、值向量矩阵V,计算注意力得分矩阵的计算模型可以采用以下之一:
1)点积模型:softmax(QKT)。其中,后文的具体实施方式中采用了该计算模型。
3)加性模型:softmax(tanh(WK+UQ)),其中W、U为可学习的参数。
4)双线性模型。softmax(KTWQ),其中W为可学习的参数。
S230:针对各所述负向关键字,根据编辑距离从意图混淆列表中匹配出所述负向关键字对应的正向关键字,作为对所述负向关键字纠正后的字。所述意图混淆列表记录了将所述预期意图B混淆为所述预测意图A的各关键字。
所述编辑距离包括以下之一:
1)拼音编辑距离,如声母、韵母、音调等距离,可应用于文本T来自ASR识别的应用场景;后文的具体实施方式中采用了该编辑距离。
2)输入法编辑距离,如拼音、五笔等,可应用于文本T来自用户采用输入法输入的场景。
3)字形编辑距离,即字形相似度距离,可应用于文本T来自光学字符识别(OpticalCharacter Recognition,OCR)技术识别的应用场景。
在一些实施例中,所述从意图混淆列表中匹配出所述负向关键字对应的正向关键字之前还包括:确定所述负向关键字在预测意图A的关键字列表中。即首先判断负向关键字针对预测意图A来说是否是关键字,以便于不在所述关键字列表中时(即非关键字时)略过该负向关键字的判断,从而减少数据的判断量、提升本申请纠错方法的运行效率。
其中,所述关键字列表、所述混淆列表分别采用后文的公式1和公式2进行构建,将在后文的具体实施方式中参照后文表1进行详述,此处暂不赘述。这里需说明的是,本申请的关键字列表和混淆关键字列表是与任务相关,即与NLU的输出的意图类别相关,因此该负向关键字的挖掘和纠错过程是与该任务适配,故纠错能力更为精准,且可以适用于通用领域和特定领域。
在一些实施例中,上述步骤S210的所述文本T是由一文本纠错模块对一源文本进行纠错处理生成的;则在步骤S230后还可包括:将所述负向关键字与纠正后的字构成文本对,作为用于训练所述文本纠错模块的语料,去训练所述文本纠错模块。
下面,对上述文本纠错方法的实施例的一具体实施方式进行介绍,并且,仍以图1展示的应用于语音助手场景为例。如前所述,其中由语音助手的ASR模块12输出语音识别后的文本,由于语音识别后的文本中存在错误的可能性比较大,本具体实施方式中称之为噪音文本;该噪音文本经由文本纠错模块13进行纠错,生成纠错后的文本;之后该文本经由NLU模块111进行意图识别,生成预测意图;而后由更新决策模块112判断所述预测意图与用户预期意图是否匹配,当不匹配时,则触发关键文本检测模块113从输入NLU模块111的文本中找出生成所述预测意图的负向关键字,再由关键文本挖掘模块114对这些关键字进行纠正,以匹配用户预期意图。
下面对本申请文本纠错方法实施例的一具体实施方式进行详细说明。
其中,在进行文本纠错步骤之前,需根据NLU可识别的各个意图构建混淆数据库,该数据库包括每个意图对应的关键字列表,以及每个意图相对于其他意图的混淆关键字列表。由于关键字列表与混淆关键字列表可以采用矩阵方式(或二维表方式)呈现,故,该数据库也可称为混淆矩阵。下面将参见如下表1进行详述:
混淆矩阵的矩阵对角元素存放意图关键字列表(如下表1中的表格AA项、表格BB项),非对角元素存放混淆关键字列表(如下表1中的表格AB项、表格BA项)。如下以表1示意出的混淆矩阵中,标题行与标题列为NLU可识别的各个意图,分别列为真实意图项和混淆意图项,标题行与标题列对应的表格项的数据为混淆矩阵的具体数据。
表1
下面以如上表1示出的包含“打电话”和“播放视频”两类意图为例,来具体介绍上述混淆矩阵中的关键字列表、混淆关键字列表的构成:
1)针对每个意图,首先获得该意图的语料库,然后以字为单位,按照下述公式(1)计算该意图语料库中每个字在该意图的语料库中的字频TF(term frequency)值,并且按TF值进行降序排序,将前一定数量,如前一定比例(如前10%)或前设定数量(如前20个)的字设为该意图关键字,构建上述该意图的关键字列表。
例如,意图为“打电话”对应的语料库包括语料“给XXX打电话、拨YY的号码、打给Z”,则根据上述TF计算公式,字“打”的TF=2/16,其中2是该字在语料库字集合中出现的次数,16是语料库总字数。
2)针对易混淆的两个意图(如打电话、播放视频),将计算出的两个意图各自的关键字列表进行合并,并分别计算合并后的列表中的每个关键字的TF-IDF值,其中TF-IDF=TF*IDF。其中IDF的计算可采用下述公式(2),公式中由于是计算的是两个意图的混淆情况,因此分母中包含该字的意图数为2:
并且按TF-IDF值进行降序排序,将前一定数量,如前一定比例(如前10%)或前设定数量(如前20个)的字,设为该意图混淆关键字,构建上述该意图的混淆关键字列表。表1中的混淆关键字列表中同时示出了各关键字的TF-IDF值。
当如上构建混淆矩阵后,即可以用于文件纠错过程。如图3所示的流程图,本申请纠错方法应用于语音助手场景的一具体实施方式包括以下步骤:
S310:当语音助手接收到用户语音输入的“播一下釜山行”,首先通过ASR模块进行语音识别,假设本具体实施方式中识别的文本为“拨一下釜山行”。
S320:由文本纠错模块接收ASR识别的文本,并进行纠错处理,假设本具体实施方式中,文本纠错模块未能发现该文本中的错误,未对该文本做任何修正,则经文本纠错模块输出的文本仍为“拨一下釜山行”。
S330:由NLU模块接收文本纠错模块输出的文本,生成预测意图,即输出该文本对应的可能的意图和槽位。要说明的是,本具体实施方式后续纠错主要是以预测意图为例,故为简化描述,关于槽位的填充本具体实施方式不做描述。
例如,NLU模块对“拨一下釜山行”预测的意图结果为<意图:打电话,置信度:0.7>,<意图:播放视频,置信度:0.3>时,则NLU模块的输出结果为<意图:打电话>。
如图7示出了NLU模块的一种实现方式,NLU模块由多个Trm(本具体实施方式中采用了8个Trm)堆叠后再堆叠多通道注意力层、线性层和逻辑回归层构成,其中如图7所示,每个Trm包括自注意力层(self-attention)和前馈网络层(feed forward network)。Trm内的每层,或多通道注意力层还可进一步采用残差连接。
对于该结构的NLU模块,其生成预测意图的流程如图4所示,包括以下子步骤S331-S334:
S331:将输入文本“拨一下釜山行”按字进行划分,得到各字的词令(token)向量,同时在首部添加分类及结束词令向量,分别标记为“CLS”和“SEP”,共计8个词令向量,为Ecls、E1、E2…E6、Esep,作为第一个Trm的输入。其中E1~E6对应“拨一下釜山行”的词令向量。
S332:第一Trm接收各词令向量,其他各Trm接收前一Trm输出的各向量,各Trm进行自注意力编码后形成自注意编码后的各向量输出,输出可仍为8个向量。
其中,在自注意力编码时,通过线性映射分别计算各词令向量对应的query(查询向量),key(键向量)以及value(值向量),且词令间的注意力得分由query及key的内积归一化(即softmax)后来表示。具体计算词令间的注意力得分时,可以直接采用矩阵的方式计算,即计算各词令向量构成的查询向量矩阵Q、键向量矩阵K、值向量矩阵V,并通过下述公式(3)示出的点积模型计算出注意力得分矩阵:
softmax(QKT) (3)
另外指出的是,自注意力层的输出,即对输入的各向量进行自注意编码后输出的各向量,以矩阵表达为下述公式(4):
Z=Attention(Q,K,V)=softmax(QKT)V (4)
S333:最后一Trm的输出提供给多通道自注意力层(Multi Head AttentionLayer,也称作多头自注意力层),由多通道自注意力层来捕获各词令在多个通道不同的表征,多通道自注意力层的各通道(也称作各头)输出包括“CLS”对应的向量。
具体参照图7所示,本具体实施方式中多通道自注意力层包括12个通道,每个通道的输入仍为8个向量,由于下游是分类用,因此每个通道的输出仅取“CLS”对应的向量作为输出,即该12个通道的输出为:Zcls1、Zcls2、…、Zcls12。
S334:多通道自注意力层的各通道输出传递到各通道的线性层,由各通道的线性层传递到逻辑回归层输出。其中逻辑回归层作为分类层,其N个输出对应N个意图类别,逻辑回归层的输出通过Softmax预测各个输出(即意图)的概率值作为置信度,置信度最高的对应的意图类别即为NLU的预测意图。
本具体实施方式中,每个通道的线性层由64个节点构成。如图7所示,每个通道的输出向量Zcls连接该通道线性层的64个节点,每个通道的线性层的64个节点再全连接逻辑回归层的各个节点L1~LN(为了使图7清晰,图7中未示出该全连接,仅示出了到逻辑回归层节点L1的部分连接)。
逻辑回归层N个节点L1~LN的N个输出对应的N个意图包括“打电话”、“播放视频”......“听音乐”。如本具体实施方式中,对应意图为“打电话”的置信度为0.7,对应意图为“播放视频”的置信度为0.3,意图为“打电话”的类别置信度在各类别意图中最高,因此预测意图为“打电话”。
S340:由更新决策模块接收NLU的预测意图“打电话”及用户预期意图。当用户预期意图为“播放视频”,更新决策模块判定NLU的预测意图与用户预期意图不一致,则触发关键文本检测模块执行关键字的检测。
S350:由关键文本检测模块执行关键字检测步骤,确定出NLU模块的预测意图“打电话”与输入NLU的文本“拨一下釜山行”中的哪些关键字强相关,即从文本“拨一下釜山行”中确定出负向关建字。如图5所示,本步骤的实现包括以下子步骤S351-S355:
S351:根据NLU预测结果获取意图标签索引,本具体实施方式中意图标签索引即意图为“打电话”对应的索引(call标签);
S352:获取该意图标签索引(call标签)对应的线性层的权值,参照图7所示,本具体实施方式中该线性层的权值可采用如下公式(5)进行描述:
其中,m表示12个通道标识,即对应多通道自注意力层的12个通道的标识。对应每个通道,该通道的意图标签索引(call标签)对应的线性层的权值为:
其中,k表示当前通道下线性层的64个节点的标识;是当前通道下线性层的第k个节点到逻辑回归层的标签为“打电话”节点的权重向量。如图7所示,在第一通道下,对应图7中的 是当前通道下线性层第k个节点的输出,本具体实施方式中在第一通道下,对应图7中的的输出。
S353:将权值按照多通道注意力层索引进行通道划分,使用如下公式(6)分别获得各通道对预测结果的贡献值,本具体实施方式中,选取通道贡献值大于0的通道的贡献值:
其中通道贡献值大于0的通道称为正向通道,表示该通道对于预测意图“打电话”的具有强相关性。
S354:获取正向通道最后K层的注意力得分矩阵,抽取分类词令CLS对应的注意力得分向量,本申请中将词令CLS对应的注意力得分向量称为CLS的注意力得分矩阵。
如图8示出了其中一个自注意力层的注意力得分矩阵,与分类词令CLS相关的注意力得分向量包括与查询向量q1、键向量k1相关的项,如图8中第一列和第一行。本实施方式中,将使用第一行计算CLS对各词的注意力。
S355:根据分类词令CLS对应的注意力得分矩阵及通道贡献值,计算文本内每个汉字对该预测意图“打电话”的贡献值,其中得分大于一定的阈值的标记为意图负向关键字。
仍参照图8进行说明,图8为其中一层的注意力得分矩阵,其中,CLS的查询向量q1与其他各字词令键向量k的点积,可以作为CLS对各词的注意力。以图8中q1k2为例进行说明,该层中的q1k2对应向量E1,对应字为“拨”,即该层CLS对“拨”字的注意力。对应使用K层的注意力得分矩阵时,则K层的q1k2的相加融合了多层的CLS对“拨”字的注意力。由于使用了K层,因此可以融合到高层和低层的注意力信息。
如上,则可以计算出文本内每个词对CLS的注意力,而后将各词注意力与通道贡献值相乘,可以得到各词对预测意图“打电话”的贡献值,本具体实施方式中计算结果示例如下:(“拨”,0.908),(“一”,0.878),(“下”,1.0),(“釜”,0.019),(“山”,0.0),(“行”,0.131)。本具体实施方式中,将得分大于设定阈值0.5的标记为意图负向关键字时,故,“拨”、“一”、“下”为负向关键字。
S360:由关键文本挖掘模块针对每个负向关键字,在如表1示出的意图混淆矩阵中查找该字是否在预测意图的关键字列表中,即是否在所识别的预测意图为“打电话”的关键字列表中(即表1的表格BB项),当存在时,根据用户预期意图(即真实意图)对应的预测意图(即混淆意图)的表项(即表1的表格BA项),获取混淆关键字列表,然后根据编辑距离从该混淆关键字列表中匹配出该负向关键字的正向关键字。如图6所示,本步骤具体可包括以下子步骤S361-S363:
S361:从表1示出的意图混淆矩阵中获取预测意图为“打电话”的关键字列表,针对每一个负向关键字,例如针对“拨”,判断当前负向关键字“拨”是否存在“打电话”的关键字列表中,如表1中的表格BB。如果存在则执行下一步,否则跳过该“拨”字,对下一个负向关键字进行判断。
S362:从表1示出的意图混淆矩阵中获取将用户预期意图(即真实意图)混淆为预测意图(即混淆意图)的混淆关键字列表,本具体实施方式中即获取真实意图为“播放视频”、混淆意图为“打电话”的所对应的混淆关键字列表,如表1中的表格BA项。
S363:获取混淆关键字列表后,根据拼音编辑距离在该表中查找所述负向关键字对应的正向关键字。例如,对负向关键字“拨”字,在对应的混淆关键字列表中可查找到对应的正向关键字为“播”。
S370:由上完成了纠错的过程,进一步的,当用户预期意图与NLU的预测意图不一致时,还可以将各负向关键字与对应的正向关键字构建训练语料对(TKP),例如语料对:“拨--播”,通过该语料对步骤S320中所述的文本纠错模块进行更新。
在一些实施方式中,也可以将包括该各负向关键字的文本(即步骤S320中文本纠错模块输出的文本),对应正向关键字替换负向关键字后的文本,构建训练语料对(TKP),例如语料对:“拨一下釜山行--播一下釜山行”,通过该语料对所述文本纠错模块进行更新。
本申请还提供了相应的一种纠错装置的实施例,关于该装置的有益效果或解决的技术问题,可以参见与各装置分别对应的方法中的描述,或者参见发明内容中对方法的描述,此处不再一一赘述。
如图1所示,本申请提供的文本纠错装置的实施例中,该装置包括:
自然语言理解模块111,即NLU模块111,用于对文本T进行意图类别的识别,得到预测意图A;
关键文本检测模块113,用于当所述预测意图A与用户预期意图B不匹配时,确定所述文本T中各字对所述预测意图A的贡献值,并选取所述贡献值大于阈值的字为负向关键字;
关键文本挖掘模块114,用于针对各所述负向关键字,根据编辑距离从意图混淆列表中匹配出所述负向关键字对应的正向关键字,作为对所述负向关键字纠正后的字;所述意图混淆列表记录了将所述预期意图B混淆为所述预测意图A的各关键字。
其中,判断预测意图A与用户预期意图B是否匹配可以由更新决策模块112实现。
在一些实施例中,所述文本T是由一文本纠错模块对一源文本进行纠错处理生成的;此时,本申请文本纠错装置还可包括:将所述负向关键字与纠正后的字构成文本对,作为用于训练所述文本纠错模块的语料。
在一些实施例中,所述自然语言理解模块包括至少一层自注意力层;
所述确定所述文本T中各字对所述预测意图A的贡献值的步骤包括:
对于NLU最后K层的自注意力层,获取每层的CLS的注意力得分矩阵;所述CLS为对文本T添加的前缀字符;所述CLS的注意力得分矩阵包括所述CLS相对文本T中各字的注意力得分;K为不小于1的整数;
将所述K层的CLS的注意力得分矩阵求和,其结果作为所述各字对所述预测意图A的贡献值的矩阵。
在一些实施例中,所述自然语言理解模块还包括在多层所述自注意力层后依次堆叠的多通道注意力层、对应所述多通道注意力层的每个通道的线性层、逻辑回归层;所述逻辑回归层包括意图类别为所述预测意图A的输出节点;
所述确定所述文本T中各字对所述预测意图A的贡献值的步骤还包括:
确定所述多通道注意力层的各通道的通道贡献值,并将所述K层的CLS的注意力得分矩阵求和后的结果与大于0的通道贡献值相乘,其结果作为所述各字对所述预测意图A的贡献值的矩阵;
在一些实施例中,所述CLS相对文本T中各字的注意力得分的计算方法包括以下之一:
根据CLS的查询向量与其他各字键向量进行注意力得分的计算;
根据各字的查询向量与CLS的键向量进行注意力得分的计算;
根据CLS的查询向量与其他各字键向量进行第一注意力得分的计算;根据各字的查询向量与CLS键向量进行第二注意力得分的计算;将对应同一字的第一、第二注意力得分求和计算。
在一些实施例中,所述注意力得分的计算通过查询向量与键向量的计算模型进行计算;所述计算模型包括以下之一:
点积模型、缩放点积模型、加性模型、双线性模型。
在一些实施例中,所述编辑距离包括以下之一:拼音编辑距离、输入法编辑距离、字形编辑距离。
在一些实施例中,所述关键文本挖掘模块还用于确定所述负向关键字在预测意图A的关键字列表中。
在一些实施例中,所述预测意图A的关键字列表采用下述方式构建:
获得该预测意图A的语料库,以字为单位按照下述公式计算该预测意图A的语料库中每个字在该预测意图A的语料库中的字频TF值:
将所述每个字按TF值进行降序排序,将前一定数量的字作为该预测意图A的关键字列表的内容。
在一些实施例中,所述意图混淆列表中的将所述预期意图B混淆为所述预测意图A的各关键字采用下述方式构建:
计算所述预期意图B和预测意图A各自的关键字列表并合并,计算预期意图B的关键字列表中的每个字的TF-IDF值,所述TF-IDF=TF*IDF;所述IDF按照下述公式计算,且公式中的包含该字的意图数为2:
将所述每个字按TF-IDF值进行降序排序,将前一定数量的字作为所述预期意图B混淆为所述预测意图A的各关键字。
图10是本申请实施例提供的一种计算设备900的结构性示意性图。该计算设备900包括:处理器910、存储器920、通信接口930。
应理解,该图10中所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信。
其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器910独立的外部存储单元的部件。
可选的,计算设备900还可以包括总线。其中,存储器920、通信接口930可以通过总线与处理器910连接。总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
应理解,在本申请实施例中,该处理器910可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(Application specific integrated circuit,ASIC)、现成可编程门矩阵(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备900可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种多样化问题生成方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请的构思的情况下,还可以包括更多其他等效实施例,均属于本申请的保护范畴。
Claims (22)
1.一种文本纠错的方法,其特征在于,包括:
通过自然语言理解模型NLU对文本T进行意图类别的识别,得到预测意图A;
当所述预测意图A与用户预期意图B不匹配时,确定所述文本T中各字对所述预测意图A的贡献值,并选取所述贡献值大于阈值的字为负向关键字;
针对各所述负向关键字,根据编辑距离从意图混淆列表中匹配出所述负向关键字对应的关键字作为正向关键字,所述正向关键字作为对所述负向关键字纠正后的字;所述意图混淆列表记录了将所述预期意图B混淆为所述预测意图A的各关键字。
2.根据权利要求1所述的方法,其特征在于:所述文本T是由一文本纠错模块对一源文本进行纠错处理生成的;
还包括:将所述负向关键字与纠正后的字构成文本对,作为用于训练所述文本纠错模块的语料。
3.根据权利要求1所述的方法,其特征在于:所述NLU包括至少一层自注意力层;
所述确定所述文本T中各字对所述预测意图A的贡献值的步骤包括:
对于NLU最后K层的自注意力层,获取每层的CLS的注意力得分矩阵;所述CLS为对文本T添加的前缀字符;所述CLS的注意力得分矩阵包括所述CLS相对文本T中各字的注意力得分;K为不小于1的整数;
将所述K层的CLS的注意力得分矩阵求和,其结果作为所述各字对所述预测意图A的贡献值的矩阵。
5.根据权利要求3或4所述的方法,其特征在于:所述CLS相对文本T中各字的注意力得分的计算方法包括以下之一:
根据CLS的查询向量与其他各字键向量进行注意力得分的计算;
根据各字的查询向量与CLS的键向量进行注意力得分的计算;
根据CLS的查询向量与其他各字键向量进行第一注意力得分的计算;根据各字的查询向量与CLS键向量进行第二注意力得分的计算;将对应同一字的第一、第二注意力得分求和计算。
6.根据权利要求5所述的方法,其特征在于,所述注意力得分的计算通过查询向量与键向量的计算模型进行计算;所述计算模型包括以下之一:
点积模型、缩放点积模型、加性模型、双线性模型。
7.根据权利要求1所述的方法,其特征在于:所述编辑距离包括以下之一:拼音编辑距离、输入法编辑距离、字形编辑距离。
8.根据权利要求1所述的方法,其特征在于:所述从意图混淆列表中匹配出所述负向关键字对应的关键字之前还包括:确定所述负向关键字在预测意图A的关键字列表中。
11.一种文本纠错的装置,其特征在于,包括:
自然语言理解模块,用于对文本T进行意图类别的识别,得到预测意图A;
关键文本检测模块,用于当所述预测意图A与用户预期意图B不匹配时,确定所述文本T中各字对所述预测意图A的贡献值,并选取所述贡献值大于阈值的字为负向关键字;
关键文本挖掘模块,用于针对各所述负向关键字,根据编辑距离从意图混淆列表中匹配出所述负向关键字对应的关键字作为正向关键字,所述正向关键字作为对所述负向关键字纠正后的字;所述意图混淆列表记录了将所述预期意图B混淆为所述预测意图A的各关键字。
12.根据权利要求11所述的装置,其特征在于:所述文本T是由一文本纠错模块对一源文本进行纠错处理生成的;
还包括:将所述负向关键字与纠正后的字构成文本对,作为用于训练所述文本纠错模块的语料。
13.根据权利要求11所述的装置,其特征在于:所述自然语言理解模块包括至少一层自注意力层;
所述确定所述文本T中各字对所述预测意图A的贡献值的步骤包括:
对于NLU最后K层的自注意力层,获取每层的CLS的注意力得分矩阵;所述CLS为对文本T添加的前缀字符;所述CLS的注意力得分矩阵包括所述CLS相对文本T中各字的注意力得分;K为不小于1的整数;
将所述K层的CLS的注意力得分矩阵求和,其结果作为所述各字对所述预测意图A的贡献值的矩阵。
15.根据权利要求13或14所述的装置,其特征在于:所述CLS相对文本T中各字的注意力得分的计算方法包括以下之一:
根据CLS的查询向量与其他各字键向量进行注意力得分的计算;
根据各字的查询向量与CLS的键向量进行注意力得分的计算;
根据CLS的查询向量与其他各字键向量进行第一注意力得分的计算;根据各字的查询向量与CLS键向量进行第二注意力得分的计算;将对应同一字的第一、第二注意力得分求和计算。
16.根据权利要求15所述的装置,其特征在于,所述注意力得分的计算通过查询向量与键向量的计算模型进行计算;所述计算模型包括以下之一:
点积模型、缩放点积模型、加性模型、双线性模型。
17.根据权利要求11所述的装置,其特征在于:所述编辑距离包括以下之一:拼音编辑距离、输入法编辑距离、字形编辑距离。
18.根据权利要求11所述的装置,其特征在于:所述关键文本挖掘模块还用于确定所述负向关键字在预测意图A的关键字列表中。
21.一种计算设备,其特征在于,包括:
通信接口;
至少一个处理器,其与所述通信接口连接;以及
至少一个存储器,其与所述处理器连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1-10任一所述的方法。
22.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行权利要求1-10任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110214179.0A CN114970538A (zh) | 2021-02-25 | 2021-02-25 | 文本纠错的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110214179.0A CN114970538A (zh) | 2021-02-25 | 2021-02-25 | 文本纠错的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114970538A true CN114970538A (zh) | 2022-08-30 |
Family
ID=82974098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110214179.0A Pending CN114970538A (zh) | 2021-02-25 | 2021-02-25 | 文本纠错的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114970538A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116136957A (zh) * | 2023-04-18 | 2023-05-19 | 之江实验室 | 一种基于意图一致性的文本纠错方法、装置和介质 |
CN118135578A (zh) * | 2024-05-10 | 2024-06-04 | 沈阳出版社有限公司 | 一种基于图文识别后的文字学习校对系统 |
-
2021
- 2021-02-25 CN CN202110214179.0A patent/CN114970538A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116136957A (zh) * | 2023-04-18 | 2023-05-19 | 之江实验室 | 一种基于意图一致性的文本纠错方法、装置和介质 |
CN116136957B (zh) * | 2023-04-18 | 2023-07-07 | 之江实验室 | 一种基于意图一致性的文本纠错方法、装置和介质 |
CN118135578A (zh) * | 2024-05-10 | 2024-06-04 | 沈阳出版社有限公司 | 一种基于图文识别后的文字学习校对系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111968649B (zh) | 一种字幕纠正方法、字幕显示方法、装置、设备及介质 | |
CN110717327B (zh) | 标题生成方法、装置、电子设备和存储介质 | |
CN107818781B (zh) | 智能交互方法、设备及存储介质 | |
WO2021179897A1 (zh) | 实体链接方法及装置 | |
WO2021068352A1 (zh) | Faq问答对自动构建方法、装置、计算机设备及存储介质 | |
JP5128629B2 (ja) | 品詞タグ付けシステム、品詞タグ付けモデルのトレーニング装置および方法 | |
CN112784581B (zh) | 文本纠错方法、装置、介质及电子设备 | |
CN109976702A (zh) | 一种语音识别方法、装置及终端 | |
CN109684928B (zh) | 基于互联网检索的中文文档识别方法 | |
CN112599128A (zh) | 一种语音识别方法、装置、设备和存储介质 | |
CN113051380B (zh) | 信息生成方法、装置、电子设备和存储介质 | |
CN114970538A (zh) | 文本纠错的方法及装置 | |
CN114154487A (zh) | 文本自动纠错方法、装置、电子设备及存储介质 | |
CN112329482A (zh) | 机器翻译方法、装置、电子设备和可读存储介质 | |
CN113673228A (zh) | 文本纠错方法、装置、计算机存储介质及计算机程序产品 | |
TWI734085B (zh) | 使用意圖偵測集成學習之對話系統及其方法 | |
CN110874408B (zh) | 模型训练方法、文本识别方法、装置及计算设备 | |
CN112528653A (zh) | 短文本实体识别方法和系统 | |
Labbé et al. | Is my automatic audio captioning system so bad? spider-max: a metric to consider several caption candidates | |
CN111026281A (zh) | 一种客户端的词组推荐方法、客户端及存储介质 | |
CN111597822B (zh) | 一种对象名称识别方法及装置 | |
CN115019295A (zh) | 模型训练方法、文本行确定方法及装置 | |
CN115130475A (zh) | 一种可扩展的通用端到端命名实体识别方法 | |
CN113012685B (zh) | 音频识别方法、装置、电子设备及存储介质 | |
CN111090720B (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 |