CN113806469A - 语句意图识别方法及终端设备 - Google Patents
语句意图识别方法及终端设备 Download PDFInfo
- Publication number
- CN113806469A CN113806469A CN202010539858.0A CN202010539858A CN113806469A CN 113806469 A CN113806469 A CN 113806469A CN 202010539858 A CN202010539858 A CN 202010539858A CN 113806469 A CN113806469 A CN 113806469A
- Authority
- CN
- China
- Prior art keywords
- word
- sentence
- words
- processed
- filled
- 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
- 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/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- 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/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language 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/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- 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/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Machine Translation (AREA)
Abstract
本申请提供了语句意图识别方法及终端设备,适用于人工智能技术领域,该方法包括:获取待处理语句,并对待处理语句进行意图预测,得到至少一个预测意图;再获取各个预测意图关联的样本语句,并根据样本语句对待处理语句进行语句重组,得到重组后的待处理语句;最后对重组后的待处理语句进行意图识别,得到对待处理语句的意图识别结果。本申请实施例可以实现对原语句的自适应改写,使得原语句变成可处理识别的语句再进行意图识别。进而实现对不同表达方式语句的兼容处理,因此可以提高自然语言处理领域中对语句意图识别的能力。
Description
技术领域
本申请属于人工智能技术领域,尤其涉及语句意图识别方法及终端设备。
背景技术
在自然语言处理(Natural Language Processing,NLP)领域中,对用户语句的意图识别是一项重要技术。例如在人机对话系统中,准确的识别语句意图,才能保障后续对用户操作的准确响应,从而提高人机交互的效率。
在进行语句的意图识别时,会将语音语句转成文本语句后输入至意图识别模型中进行处理,由意图识别模型输出对应的意图识别结果。例如是询问天气还是播放音乐等。但实际应用中,由于语句的不确定性,以及不同意图识别模型的识别能力存在差异等原因。经常会出现对语句意图识别失败的情况。
综上,现有技术中亟需一种可以对语句意图准确识别的方法。
发明内容
有鉴于此,本申请实施例提供了语句意图识别方法及终端设备,可以解决现有技术中对语句意图识别能力较弱的问题。
本申请实施例的第一方面提供了一种语句意图识别方法,包括:
获取待处理语句,并对待处理语句进行意图预测,得到至少一个预测意图;再获取各个预测意图关联的样本语句,并根据样本语句对待处理语句进行语句重组,得到重组后的待处理语句;最后对重组后的待处理语句进行意图识别,得到对待处理语句的意图识别结果。
由于实际生活中,用户对语句可能的表达方式极多,若以穷举法列出可能的表达方式并根据列出的表达方式一一对原语句进行改写。一方面可操作性过低,另一方面,改写的工作量极大,进而导致整个意图识别的耗时长效率极低,无法满足实际应用的需求。因此,基于筛选出的样本语句对原语句进行改写,相比穷举改写,可以在保障对原语句改写有效性的同时,极大地缩短改写耗时提高改写效率。另外一方面,由于筛选出这些样本语句均为待处理语句预测意图下的样本语句,因此这些样本语句在意图上均与待处理语句存在一定的关联性。再二方面,样本语句是可以预先设置的可意图识别语句,因此具有较大的参考价值。基于样本语句对待处理语句进行重组,可实现对待处理语句的自适应改写,使得待处理语句变成可处理识别的语句再进行意图识别。最后对重组后的待处理语句进行意图识别,进而实现对不同表达方式语句的兼容处理,因此本申请实施例可以提高自然语言处理领域中对语句意图识别的能力。
在第一方面的第一种可能的实现方式中,对待处理语句进行重组,以及对重组后的待处理语句的意图识别的操作,包括:
从样本语句中不重复地选取出一条语句作为目标语句;
基于目标语句对待处理语句进行语句重组,得到重组后的待处理语句;
对重组后的待处理语句进行意图识别;
若意图识别成功,则得到对待处理语句的意图识别结果;
若意图识别失败,则返回执行从样本语句中不重复地选取出一条语句作为目标语句的操作,直至对重组后的待处理语句意图识别成功。
由于意图下样本语句的表达方式可以根据实际需求进行设置,因此基于样本语句对原语句进行语句重组,可以实现对原语句表达方式进行调整,实现对原语句的泛化。而在意图识别失败时,重新利用未参考过的样本语句对原语句进行语句重组,并对重组后的语句进行意图识别。使得在单次调整不适合时,可以继续进行其他表达方式的调整尝试,直至识别成功。因此本申请实施例可以在不对原意图识别模型进行更新优化的情况下,实现对原语句的自适应改写,使得原语句变成原意图识别模型可处理识别的语句。进而实现对不同表达方式语句的兼容处理,提高了对语句意图识别的能力。
在第一方面的第一种可能实现方式的基础上,作为第一方面的第二种可能实现方式,在从样本语句中不重复地选取出一条语句作为目标语句之前,还包括:
获取样本语句与待处理语句的相关度;
相应的,从样本语句中不重复地选取出一条语句作为目标语句,包括:
从样本语句中不重复地选取出相关度最高的一条语句作为目标语句。
在本申请实施例筛选出参考语句之后,还会进一步地计算各个参考语句与原语句的相关度。并会根据相关度从高到低,依次进行参考语句的选取和原语句改写。在每次改写后意图识别成功概率难以预知的情况下。由于每次都是基于相关度最高的参考语句进行语句改写,而该参考语句又是可以被意图识别的语句,因此理论上本申请实施例可以提高单次改写后意图识别成功的概率,进而提高整个意图识别的效率。
在第一方面的第二种可能实现方式的基础上,作为第一方面的第三种可能实现方式,在从样本语句中不重复地选取出一条语句作为目标语句之前,包括:
获取样本语句与待处理语句的相似度,并将相似度最高的至少一条样本语句作为参考语句;
相应的,从样本语句中不重复地选取出一条语句作为目标语句,包括:
从参考语句中不重复地选取出相关度最高的一条语句作为目标语句。
考虑到实际情况中每种意图下对应的样本语句数量可能较多,同时预测意图的数量亦有可能较多。因此根据预测意图筛选出的样本语句数量可能会较多。同时在这些筛选出的样本语句中,亦有可能会存在一些与原语句差异较大,参考价值较低的语句。因此若将所有筛选出的样本语句均作为改写参考,亦可能会导致语句改写的工作量较大,且效果难以得到保障。为了进一步提高语句改写的效率和有效性,在筛选出样本语句之后,本申请实施例会进一步地确定出这些样本语句与原语句之间的相似度。并会根据相似度对样本语句进行筛选,仅保留其中相似度较高的语句作为后续改写的参考语句。
在第一方面的第三种可能实现方式的基础上,作为第一方面的第四种可能实现方式,获取样本语句与待处理语句的相关度,包括:
获取各个预测意图的置信度;
基于样本语句与待处理语句的相似度,以及样本语句所属预测意图的置信度,确定样本语句与待处理语句的相关度。
由于筛选出这些样本语句均为原语句预测意图下的样本语句,因此这些样本语句在意图上均与原语句存在一定的关联性。这个关联性在本申请实施例中,以预测意图的置信度进行量化表征。在此基础上,本申请实施例会同时从置信度和相关度两个维度去综合衡量样本语句与原语句之间的相关度,进而提高相关度的可靠性。
在第一方面的第四种可能实现方式的基础上,作为第一方面的第五种可能实现方式,相关度的计算方法为:相关度=a×置信度+(1-a)×相似度,其中,0<a<1。
在第一方面的第一种至第五种可能实现方式的任意一种的基础上,作为第一方面的第六种可能实现方式,基于目标语句对待处理语句进行语句重组,得到重组后的待处理语句,包括:
从目标语句中筛选出词语类型属于第一类型的第一词语,并获取在目标语句内各个第一词语之间的第一相对位置数据;
从待处理语句中筛选出词语类型属于第一类型的第二词语,并根据第一相对位置数据对第二词语进行排序,得到排序后的第三词语;
基于第三词语进行语句生成,得到重组后的待处理语句。
在本申请实施例中,会分析槽位词在目标语句中的相对位置,以实现对目标语句中槽位词分布的分析,得到目标语句的句式结构信息。在确定出目标语句的句式结构信息之后,本申请实施例会对原语句进行分析,并从分出的词语中提取出所有槽位词。在提取出所有槽位词之后,再利用句式结构信息对提取出的槽位词进行排序,从而使得排序后的槽位词可以适应目标语句的句式结构。最后对排序后的槽位词进行语句生成,从而得到与原语句意图相同,但又具有较强可识别性的重组语句。进而提高了语句改写的有效性,以及对语句意图识别的能力。
在第一方面的第六种可能实现方式的基础上,作为第一方面的第七种可能实现方式,对第二词语排序的操作,包括:
将第一词语的词语类型作为目标类型,根据目标类型和第一相对位置数据,确定目标语句内目标类型之间的位置顺序。
从第二词语中筛选出属于目标类型的词语,并按照定目标语句内目标类型之间的位置顺序,对这些筛选出的词语进行排序。
第一相对位置数据中虽然记录有第一词语在目标语句中的相对位置信息,但由于目标语句内包含的槽位词和原语句内包含的槽位词可能相同也可能不同,因此,实际应用中难以直接根据第一相对位置数据进行第二词语的排序。在本申请实施例中,会根据第一词语的词语类型、第二词语的词语类型以及第一相对位置数据来进行排序。进而提高对排序的有效性。
在第一方面的第六种或第七种可能实现方式的基础上,作为第一方面的第八种可能实现方式,设第三词语的数量为k,其中k为整数且1≤k,基于第三词语进行语句生成,得到重组后的待处理语句,包括:
若k>1,在第一个第三词语之前的位置、相邻两个的第三词语之间的位置以及最后一个第三词语之后的位置,共k+1个位置处,依次进行词语填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
在本申请实施例中,会根据排序后的槽位词的实际数量情况来确定需要填充词语的位置,并进行词语填充。其中考虑到语句具有时序性,为了保障填充词语的逻辑合理性,本申请实施例在进行词语填充时,会按照位置从先到后的顺序,依次对各个位置进行填充。
在第一方面的第八种可能实现方式的基础上,作为第一方面的第九种可能实现方式,对k+1个位置处依次进行词语填充的操作,包括:
在k+1个位置处分别插入空白格,各个位置处插入的空白格数量均大于或等于0。
对第一个位置词语填充的操作包括:根据第一个第三词语,对第一个位置处的空白格进行词语的填充。
对第m个位置词语填充的操作包括:根据第一个至第m个第三词语和所有已填充的第四词语,对第m个位置处的空白格进行词语的填充,其中,1<m≤k。
对第k+1个位置词语填充的操作包括:根据所有第三词语和所有已填充的第四词语,对第k+1个位置处的空白格进行词语的填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
在本申请实施例中,采用在词语前后插入空白格,并对空白格进行词语填充的方式,实现对重组语句的生成。为了使得填充的词语满足自语句的时序性需求,因此在进行某一位置的空白格词语填充时,需要参考该位置前的已有词语,以及该位置后的第一个词语情况进行空白格的词语确定和填充。
在第一方面的第八种或第九种可能实现方式的基础上,作为第一方面的第十种可能实现方式,对k+1个位置处依次进行词语填充的操作,包括:
在k+1个位置中的第一个位置处插入h1个第一空白格,第m个位置处插入hm个第二空白格,第k+1个位置处插入hk+1个第三空白格,其中,m为整数,1<m≤k,h1、hm和hk+1均为自然数;
相应的,对第一个位置处的空白格进行词语填充的操作,包括:
在第一个位置处的h1个第一空白格中,进行h1+1次的词语填充,并计算每一次词语填充后的待处理语句的第一正确概率,其中,h1+1次的词语填充中,每次填充的词语数r1均不相同,r1为整数,0≤r1≤h1;
筛选出第一正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第一个位置对应的第四词语;
相应的,对第m个位置处的空白格进行词语填充的操作,包括:
在第m个位置处的hm空白格中,进行hm+1次的词语填充,并计算每一次词语填充后的待处理语句的第二正确概率,其中,hm+1次的词语填充中,每次填充的词语数r2均不相同,r2为整数,0≤r2≤hm;
筛选出第二正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第m个位置对应的第四词语;
相应的,对第k+1个位置处的空白格进行词语填充的操作,包括:
在第k+1个位置处的hk个空白格中,进行hk+1+1次的词语填充,并计算每一次词语填充后的待处理语句的第三正确概率,其中,hk+1+1次的词语填充中,每次填充的词语数r3均不相同,r3为整数,0≤r3≤hk+1;
筛选出第三正确概率最高的词语填充后的待处理语句,将相应填充的词语作为第k+1个位置对应的第四词语,得到重组后的待处理语句;
其中,第四词语的词语类型不属于第一类型。
考虑到实际应用中每个位置处插入的空白格数量无法预知,因此本申请实施例在针对每个位置处的空白格进行词语填充时,会根据实际空白格数量来确定出实际可能的几种填充方案。并分别对各种填充方案进行非槽位词的填充尝试,以得到对应的多种填充结果。再确定出其中填充效果较好的一种方案作为实际填充方案。因此本申请实施例可以提升对每个位置处词语填充的效果,防止重组语句内容过于冗余。
在第一方面的第十种可能实现方式的基础上,作为第一方面的第十一种可能实现方式,在基于第三词语进行语句生成,得到重组后的待处理语句之前,还包括:
获取预设的系统词典,系统词典中记录有至少一种意图、每种意图下关联的属于第一类型的词语类型,以及每种属于第一类型的词语类型下包含的槽位词;
根据系统词典以及目标语句所属的预测意图,确定出目标语句对应的属于第一类型的第一词语类型,从目标语句内中筛选出不属于第一词语类型的词语,并基于筛选出来的词语和待处理语句中包含的所有词语,构建临时词典;
相应的,从目标语句中筛选出词语类型属于第一类型的第一词语,包括:
从目标语句中筛选出属于第一词语类型的第一词语;
相应的,从待处理语句中筛选出词语类型属于第一类型的第二词语,包括:
从待处理语句中筛选出属于第一词语类型的第二词语。
若对所有意图进行统一的槽位类型和槽位词设置。一方面,使得对目标语句和原语句进行槽位词筛选时,会筛选出部分与原语句意图相关度较低甚至无关的词语。使得筛选出的词语与原语句意图的相关性较弱,进而使得对原语句的改写效果和意图识别效果变差。另一方面,由于槽位词覆盖范围较大,使得可选的非槽位词范围变小。因此在进行语句重组的非槽位词填充时,许多词语无法被作为非槽位词进行选取和填充,进而会导致填充的效果不佳,语句重组的效果不佳。因此在本申请实施例中,会预先建立一个系统词典,并构建相应的临时词典,再根据两个词典来确定本申请实施例中实际槽位词和非槽位词的范围。进而以满足实际每种意图下对应的槽位类型种类和数量可能会存在一定的差异,同时各个槽位类型下包含的槽位词也可能存在一定的差异的情况。提高了对槽位词筛选的效果以及非槽位词填充的效果,以及对语句意图识别的成功率和准确性。
在第一方面的第十一种可能实现方式的基础上,作为第一方面的第十二种可能实现方式,在第一个位置处的h1个第一空白格中,进行h1+1次的词语填充过程中,对r1个词语的单次填充操作,包括:
确定出系统词典和临时词典中,第一词语类型包含的所有第一槽位词,以及不属于第一词语类型的所有第一非槽位词;
根据系统词典和临时词典计算各个第一非槽位词的总生成概率;
基于总生成概率从第一非槽位词依次选取出r1个第一待填入词语,其中,对第一个第一待填入词语的选取操作为不重复的词语选取操作;
根据系统词典、临时词典和r1个第一待填入词语,从第一槽位词中确定出一个第一待校验词语;
若第一待校验词语与第一个第三词语相同,则将r1个第一待填入词语填入至第一个位置处的h1个第一空白格中,完成当次的填充操作;
若第一待校验词语与第一个第三词语不相同,则返回执行基于总生成概率从第一非槽位词依次选取出r1个第一待填入词语的操作,直至得到的第一待校验词语与第一个第三词语相同。
由于语句具有时序性,因此在确定出r1个待填入词语之后,理论上也可以根据这些待填入词语来预测第一个第三词语。若该预测出的词语与原本的第三词语相同,则说明前面待填入词语的选取较为准确,可以作为空白格的填充词语。若不相同,则说明前面待填入词语的选取可信度较低,因此需要重新选取。进而实现对当次非槽位词选取是否合理的有效校验。
在第一方面的第十二种可能实现方式的基础上,作为第一方面的第十三种可能实现方式,对总生成概率的计算方法包括:P(w)=a×Pvocab(w)+(1-a)×Pprior(w)。
其中P(w)为词语w的总生成概率。Pvocab(w)为词语w在系统词典中的生成概率,可以利用指针生成网络模型对系统词典、词语w和词语w之前的语句内容进行处理得到。Pprior(w)为词语w在临时词典中的生成概率,可以利用BERT模型的解码器对临时词典、词语w和词语w之前的语句内容进行处理得到。a为系数,0<a<1,具体值可由技术人员自行设定,或者通过预先训练生成概率计算模型的方式来进行系数确定。
在第一方面的第十二种或第十三种可能实现方式的基础上,作为第一方面的第十四种可能实现方式,在第m个位置处的hm个第二空白格中,进行hm+1次的词语填充过程中,对r2个词语的单次填充操作,包括:
基于总生成概率从第一非槽位词依次选取出r2个第二待填入词语,其中,对第一个第二待填入词语的选取操作为不重复的词语选取操作;
根据系统词典、临时词典和r2个第二待填入词语,从第一槽位词中确定出一个第二待校验词语;
若第二待校验词语与第m个第三词语相同,则将r2个第二待填入词语填入至第m个位置处的hm个第二空白格中,完成当次的填充操作;
若第二待校验词语与第m个第三词语不相同,则返回执行基于总生成概率从第一非槽位词依次选取出r2个第二待填入词语的操作,直至得到的第二待校验词语与第m个第三词语相同。
由于语句具有时序性,因此在确定出r2个待填入词语之后,理论上也可以根据这些待填入词语来预测第m个第三词语。若该预测出的词语与原本的第三词语相同,则说明前面待填入词语的选取较为准确,可以作为空白格的填充词语。若不相同,则说明前面待填入词语的选取可信度较低,因此需要重新选取。进而实现对当次非槽位词选取是否合理的有效校验。
在第一方面的第六种或第七种可能实现方式的基础上,作为第一方面的第十五种可能实现方式,设第三词语的数量为k,其中k为整数且1≤k,基于第三词语进行语句生成,得到重组后的待处理语句,包括:
若k=1,在第三词语前后位置处依次进行词语填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
在本申请实施例中,会根据排序后的槽位词的实际数量情况来确定需要填充词语的位置,并进行词语填充。其中考虑到语句具有时序性,为了保障填充词语的逻辑合理性,本申请实施例在进行词语填充时,会按照位置从先到后的顺序,依次对各个位置进行填充。
在第一方面的第十五种可能实现方式的基础上,作为第一方面的第十六种可能实现方式,对第三词语前后位置处依次进行词语填充的操作,包括:
在第三词语前后位置处分别插入空白格,各个位置处插入的空白格数量均大于或等于0。
根据第三词语,对第三词语前的空白格进行第四词语的填充。
根据第三词语和已填充的所有第四词语,对第三词语后的空白格进行第四词语的填充,得到重组后的待处理语句。
在本申请实施例中,采用在词语前后插入空白格,并对空白格进行词语填充的方式,实现对重组语句的生成。为了使得填充的词语满足自语句的时序性需求,因此在进行某一位置的空白格词语填充时,需要参考该位置前的已有词语,以及该位置后的第一个词语情况进行空白格的词语确定和填充。
在第一方面的第十五种或第十六种可能实现方式的基础上,作为第一方面的第十七种可能实现方式,在第三词语前后位置处依次进行词语填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句,包括:
在第三词语之前的位置处插入h1个第一空白格,第三词语之后的位置处插入h2个第二空白格;
在h1个第一空白格中进行h1+1次的词语填充,并计算每一次词语填充后的待处理语句的第一正确概率,其中,h1+1次的词语填充中,每次填充的词语数r1均不相同,r1为整数,且0≤r1≤h0;
筛选出第一正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第三词语之前的位置对应的第四词语;
在h2个第二空白格中,进行h2+1次的词语填充,并计算每一次词语填充后的待处理语句的第三正确概率,其中,h2+1次的词语填充中,每次填充的词语数r3均不相同,r3为整数,0≤r3≤h2+1;
筛选出第三正确概率最高的词语填充后的待处理语句,将相应填充的词语作为第三词语之后位置对应的第四词语,得到重组后的待处理语句;其中,第四词语的词语类型不属于第一类型。
考虑到实际应用中每个位置处插入的空白格数量无法预知,因此本申请实施例在针对每个位置处的空白格进行词语填充时,会根据实际空白格数量来确定出实际可能的几种填充方案。并分别对各种填充方案进行非槽位词的填充尝试,以得到对应的多种填充结果。再确定出其中填充效果较好的一种方案作为实际填充方案。因此本申请实施例可以提升对每个位置处词语填充的效果,防止重组语句内容过于冗余。
本申请实施例的第二方面提供了一种语句改写方法,包括:
获取待处理语句,获取与待处理语句关联的目标语句;
从目标语句中筛选出词语类型属于第一类型的第一词语,并获取在目标语句内各个第一词语之间的第一相对位置数据;
从待处理语句中筛选出词语类型属于第一类型的第二词语,并根据第一相对位置数据对第二词语进行排序,得到排序后的第三词语;
基于第三词语进行语句生成,得到改写后的待处理语句。
在本申请实施例中,会分析槽位词在目标语句中的相对位置,以实现对目标语句中槽位词分布的分析,得到目标语句的句式结构信息。在确定出目标语句的句式结构信息之后,本申请实施例会对原语句进行分析,并从分出的词语中提取出所有槽位词。在提取出所有槽位词之后,再利用句式结构信息对提取出的槽位词进行排序,从而使得排序后的槽位词可以适应目标语句的句式结构。最后对排序后的槽位词进行语句生成,从而得到与原语句意图相同,但又具有较强可识别性的重组语句。进而提高了语句改写的有效性,实现了对语句的泛化。
在第二方面的第一种可能实现方式中,获取与待处理语句关联的目标语句,包括:
对待处理语句进行意图预测,得到至少一个预测意图;
获取各个预测意图关联的样本语句;
从样本语句中选取出一条语句作为目标语句。
由于实际生活中,用户对语句可能的表达方式极多,若以穷举法列出可能的表达方式并根据列出的表达方式一一对原语句进行改写。一方面可操作性过低,另一方面,改写的工作量极大,耗时长效率极低,无法满足实际应用的需求。因此,基于筛选出的样本语句对原语句进行改写,相比穷举改写,可以在保障对原语句改写有效性的同时,极大地缩短改写耗时提高改写效率。另外一方面,由于筛选出这些样本语句均为待处理语句预测意图下的样本语句,因此这些样本语句在意图上均与待处理语句存在一定的关联性。再二方面,样本语句是可以预先设置的可意图识别语句,因此具有较大的参考价值。基于样本语句对待处理语句进行重组,可实现对待处理语句的自适应改写。
在第二方面的第一种可能实现方式的基础上,作为第二方面的第二种可能实现方式,设第三词语的数量为k,其中k为整数且1≤k,基于第三词语进行语句生成,得到重组后的待处理语句,包括:
若k>1,在第一个第三词语之前的位置、相邻两个的第三词语之间的位置以及最后一个第三词语之后的位置,共k+1个位置处,依次进行词语填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
在本申请实施例中,会根据排序后的槽位词的实际数量情况来确定需要填充词语的位置,并进行词语填充。其中考虑到语句具有时序性,为了保障填充词语的逻辑合理性,本申请实施例在进行词语填充时,会按照位置从先到后的顺序,依次对各个位置进行填充。
在第二方面的第二种可能实现方式的基础上,作为第二方面的第三种可能实现方式,对k+1个位置处依次进行词语填充的操作,包括:
在k+1个位置处分别插入空白格,各个位置处插入的空白格数量均大于或等于0。
对第一个位置词语填充的操作包括:根据第一个第三词语,对第一个位置处的空白格进行词语的填充。
对第m个位置词语填充的操作包括:根据第一个至第m个第三词语和所有已填充的第四词语,对第m个位置处的空白格进行词语的填充,其中,1<m≤k。
对第k+1个位置词语填充的操作包括:根据所有第三词语和所有已填充的第四词语,对第k+1个位置处的空白格进行词语的填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
在本申请实施例中,采用在词语前后插入空白格,并对空白格进行词语填充的方式,实现对重组语句的生成。为了使得填充的词语满足自语句的时序性需求,因此在进行某一位置的空白格词语填充时,需要参考该位置前的已有词语,以及该位置后的第一个词语情况进行空白格的词语确定和填充。
在第二方面的第三种可能实现方式的基础上,作为第二方面的第四种可能实现方式,对k+1个位置处依次进行词语填充的操作,包括:
在k+1个位置中的第一个位置处插入h1个第一空白格,第m个位置处插入hm个第二空白格,第k+1个位置处插入hk+1个第三空白格,其中,m为整数,1<m≤k,h1、hm和hk+1均为自然数;
相应的,对第一个位置处的空白格进行词语填充的操作,包括:
在第一个位置处的h1个第一空白格中,进行h1+1次的词语填充,并计算每一次词语填充后的待处理语句的第一正确概率,其中,h1+1次的词语填充中,每次填充的词语数r1均不相同,r1为整数,0≤r1≤h1;
筛选出第一正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第一个位置对应的第四词语;
相应的,对第m个位置处的空白格进行词语填充的操作,包括:
在第m个位置处的hm空白格中,进行hm+1次的词语填充,并计算每一次词语填充后的待处理语句的第二正确概率,其中,hm+1次的词语填充中,每次填充的词语数r2均不相同,r2为整数,0≤r2≤hm;
筛选出第二正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第m个位置对应的第四词语;
相应的,对第k+1个位置处的空白格进行词语填充的操作,包括:
在第k+1个位置处的hk个空白格中,进行hk+1+1次的词语填充,并计算每一次词语填充后的待处理语句的第三正确概率,其中,hk+1+1次的词语填充中,每次填充的词语数r3均不相同,r3为整数,0≤r3≤hk+1;
筛选出第三正确概率最高的词语填充后的待处理语句,将相应填充的词语作为第k+1个位置对应的第四词语,得到改写后的待处理语句;其中,第四词语的词语类型不属于第一类型。
考虑到实际应用中每个位置处插入的空白格数量无法预知,因此本申请实施例在针对每个位置处的空白格进行词语填充时,会根据实际空白格数量来确定出实际可能的几种填充方案。并分别对各种填充方案进行非槽位词的填充尝试,以得到对应的多种填充结果。再确定出其中填充效果较好的一种方案作为实际填充方案。因此本申请实施例可以提升对每个位置处词语填充的效果,防止重组语句内容过于冗余。
在第二方面的第四种可能实现方式的基础上,作为第二方面的第五种可能实现方式,基于第三词语进行语句生成,得到改写后的待处理语句之前,还包括:
获取预设的系统词典,系统词典中记录有至少一种意图、每种意图下关联的属于第一类型的词语类型,以及每种属于第一类型的词语类型下包含的槽位词;
获取目标语句所属的预测意图;
根据系统词典以及目标语句所属的预测意图,确定出目标语句对应的属于第一类型的第一词语类型,从目标语句内中筛选出不属于第一词语类型的词语,并基于筛选出来的词语和待处理语句中包含的所有词语,构建临时词典;
相应的,从目标语句中筛选出词语类型属于第一类型的第一词语,包括:
从目标语句中筛选出属于第一词语类型的第一词语;
相应的,从待处理语句中筛选出词语类型属于第一类型的第二词语,包括:
从待处理语句中筛选出属于第一词语类型的第二词语。
若对所有意图进行统一的槽位类型和槽位词设置。一方面,使得对目标语句和原语句进行槽位词筛选时,会筛选出部分与原语句意图相关度较低甚至无关的词语。使得筛选出的词语与原语句意图的相关性较弱,进而使得对原语句的改写效果和意图识别效果变差。另一方面,由于槽位词覆盖范围较大,使得可选的非槽位词范围变小。因此在进行语句重组的非槽位词填充时,许多词语无法被作为非槽位词进行选取和填充,进而会导致填充的效果不佳,语句重组的效果不佳。因此在本申请实施例中,会预先建立一个系统词典,并构建相应的临时词典,再根据两个词典来确定本申请实施例中实际槽位词和非槽位词的范围。进而以满足实际每种意图下对应的槽位类型种类和数量可能会存在一定的差异,同时各个槽位类型下包含的槽位词也可能存在一定的差异的情况。提高了对槽位词筛选的效果以及非槽位词填充的效果,以及对语句意图识别的成功率和准确性。
在第二方面的第五种可能实现方式的基础上,作为第二方面的第六种可能实现方式,在第一个位置处的h1个第一空白格中,进行h1+1次的词语填充过程中,对r1个词语的单次填充操作,包括:
确定出系统词典和临时词典中,第一词语类型包含的所有第一槽位词,以及不属于第一词语类型的所有第一非槽位词;
根据系统词典和临时词典计算各个第一非槽位词的总生成概率;
基于总生成概率从第一非槽位词依次选取出r1个第一待填入词语,其中,对第一个第一待填入词语的选取操作为不重复的词语选取操作;
根据系统词典、临时词典和r1个第一待填入词语,从第一槽位词中确定出一个第一待校验词语;
若第一待校验词语与第一个第三词语相同,则将r1个第一待填入词语填入至第一个位置处的h1个第一空白格中,完成当次的填充操作;
若第一待校验词语与第一个第三词语不相同,则返回执行基于总生成概率从第一非槽位词依次选取出r1个第一待填入词语的操作,直至得到的第一待校验词语与第一个第三词语相同。
由于语句具有时序性,因此在确定出r1个待填入词语之后,理论上也可以根据这些待填入词语来预测第一个第三词语。若该预测出的词语与原本的第三词语相同,则说明前面待填入词语的选取较为准确,可以作为空白格的填充词语。若不相同,则说明前面待填入词语的选取可信度较低,因此需要重新选取。进而实现对当次非槽位词选取是否合理的有效校验。
在第二方面的第六种可能实现方式的基础上,作为第二方面的第七种可能实现方式,对总生成概率的计算方法包括:P(w)=a×Pvocab(w)+(1-a)×Pprior(w)。
其中P(w)为词语w的总生成概率。Pvocab(w)为词语w在系统词典中的生成概率,可以利用指针生成网络模型对系统词典、词语w和词语w之前的语句内容进行处理得到。Pprior(w)为词语w在临时词典中的生成概率,可以利用BERT模型的解码器对临时词典、词语w和词语w之前的语句内容进行处理得到。a为系数,0<a<1,具体值可由技术人员自行设定,或者通过预先训练生成概率计算模型的方式来进行系数确定。
在第二方面的第六种或第七种可能实现方式的基础上,作为第二方面的第八种可能实现方式,在第m个位置处的hm个第二空白格中,进行hm+1次的词语填充过程中,对r2个词语的单次填充操作,包括:
基于总生成概率从第一非槽位词依次选取出r2个第二待填入词语,其中,对第一个第二待填入词语的选取操作为不重复的词语选取操作;
根据系统词典、临时词典和r2个第二待填入词语,从第一槽位词中确定出一个第二待校验词语;
若第二待校验词语与第m个第三词语相同,则将r2个第二待填入词语填入至第m个位置处的hm个第二空白格中,完成当次的填充操作;
若第二待校验词语与第m个第三词语不相同,则返回执行基于总生成概率从第一非槽位词依次选取出r2个第二待填入词语的操作,直至得到的第二待校验词语与第m个第三词语相同。
由于语句具有时序性,因此在确定出r2个待填入词语之后,理论上也可以根据这些待填入词语来预测第m个第三词语。若该预测出的词语与原本的第三词语相同,则说明前面待填入词语的选取较为准确,可以作为空白格的填充词语。若不相同,则说明前面待填入词语的选取可信度较低,因此需要重新选取。进而实现对当次非槽位词选取是否合理的有效校验。
在第二方面的第一种可能实现方式的基础上,作为第二方面的第九种可能实现方式,设第三词语的数量为k,其中k为整数且1≤k,基于第三词语进行语句生成,得到重组后的待处理语句,包括:
若k=1,在第三词语前后位置处依次进行词语填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
在本申请实施例中,会根据排序后的槽位词的实际数量情况来确定需要填充词语的位置,并进行词语填充。其中考虑到语句具有时序性,为了保障填充词语的逻辑合理性,本申请实施例在进行词语填充时,会按照位置从先到后的顺序,依次对各个位置进行填充。
在第二方面的第九种可能实现方式的基础上,作为第二方面的第十种可能实现方式,对第三词语前后位置处依次进行词语填充的操作,包括:
在第三词语前后位置处分别插入空白格,各个位置处插入的空白格数量均大于或等于0。
根据第三词语,对第三词语前的空白格进行第四词语的填充。
根据第三词语和已填充的所有第四词语,对第三词语后的空白格进行第四词语的填充,得到重组后的待处理语句。
在本申请实施例中,采用在词语前后插入空白格,并对空白格进行词语填充的方式,实现对重组语句的生成。为了使得填充的词语满足自语句的时序性需求,因此在进行某一位置的空白格词语填充时,需要参考该位置前的已有词语,以及该位置后的第一个词语情况进行空白格的词语确定和填充。
在第二方面的第九种或第十种可能实现方式的基础上,作为第二方面的第十一种可能实现方式,在第三词语前后位置处依次进行词语填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句,包括:
在第三词语之前的位置处插入h1个第一空白格,第三词语之后的位置处插入h2个第二空白格;
在h1个第一空白格中进行h1+1次的词语填充,并计算每一次词语填充后的待处理语句的第一正确概率,其中,h1+1次的词语填充中,每次填充的词语数r1均不相同,r1为整数,且0≤r1≤h0;
筛选出第一正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第三词语之前的位置对应的第四词语;
在h2个第二空白格中,进行h2+1次的词语填充,并计算每一次词语填充后的待处理语句的第三正确概率,其中,h2+1次的词语填充中,每次填充的词语数r3均不相同,r3为整数,0≤r3≤h2+1;
筛选出第三正确概率最高的词语填充后的待处理语句,将相应填充的词语作为第三词语之后位置对应的第四词语,得到重组后的待处理语句;其中,第四词语的词语类型不属于第一类型。
考虑到实际应用中每个位置处插入的空白格数量无法预知,因此本申请实施例在针对每个位置处的空白格进行词语填充时,会根据实际空白格数量来确定出实际可能的几种填充方案。并分别对各种填充方案进行非槽位词的填充尝试,以得到对应的多种填充结果。再确定出其中填充效果较好的一种方案作为实际填充方案。因此本申请实施例可以提升对每个位置处词语填充的效果,防止重组语句内容过于冗余。
本申请实施例的第三方面提供了一种终端设备,所述终端设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使得终端设备实现如上述第一方面中任一项所述语句意图识别方法的步骤,或者实现如上述第二方面中任一项所述语句改写法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,包括:存储有计算机程序,所述计算机程序被处理器执行时,使得终端设备实现如上述第一方面中任一项所述语句意图识别方法的步骤,或者实现如上述第二方面中任一项所述语句改写法的步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述语句意图识别方法,或者实现如上述第二方面中任一项所述语句改写法的步骤。
本申请实施例的第六方面提供了一种芯片,所述芯片包括存储器和处理器,所述存储器和处理器耦合,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时使得所述芯片执行上述第一方面任一项所述的语句意图识别方法,或者实现如上述第二方面中任一项所述语句改写法的步骤。
可以理解的是,上述第三方面至第六方面的有益效果可以参见上述第一方面或第二方面中的相关描述,在此不再赘述。
附图说明
图1A是本申请一实施例提供的手机结构示意图;
图1B是本申请一实施例提供的终端设备的软件结构框图;
图2是本申请一实施例提供的语句意图识别方法的流程示意图;
图3是本申请一实施例提供的语句意图识别方法的流程示意图;
图4A是本申请一实施例提供的应用场景示意图;
图4B是本申请一实施例提供的应用场景示意图;
图4C是本申请一实施例提供的语句意图识别方法的流程示意图;
图4D是本申请一实施例提供的语句意图识别方法的流程示意图;
图5是本申请一实施例提供的语句意图识别方法的流程示意图;
图6是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
由于不同用户的说话习惯存在较大差异,使得对于同一意图的语句表达方式亦会有多种。例如,对于“询问天气”这一意图,可以有以下几种不同的表达方式:“今天天气怎么样”、“今天啥天气呀”、“说下今天天气”和“今天下雨还是晴天呀”。这些不同的表达方式的语句中,使用的词语、语句的结构和句型等,均可能会存在差异。而不同的意图识别模型对这些语句表达方式的兼容能力可能会有所差异,当意图识别模型遇到自身无法兼容的表达方式时,就极容易出现意图识别失败的情况。
为了应对意图识别模型对语句意图识别失败的情况,传统的做法是对意图识别模型进行更新优化,再基于更新优化的后模型重新进行语句意图识别。但实际应用中,一方面对意图识别模型的更新优化难度较大;另一方面,意图识别模型可能是由第三方服务商提供的,使得更新优化具有较强的不可控性。这些原因均导致更新优化意图识别模型的可实现性较差。因此现有技术中需要一种可以对不同表达方式的语句的意图准确识别方法。
为了实现对不同表达方式语句的兼容,以增强对语句的意图识别能力。在本申请实施例中,首先会利用全垂域的意图识别模型对原语句进行意图预测,得到原语句的几个可能意图,以及各个可能意图对应的置信度。同时会获取这些可能意图下预设的一些样本语句。再筛选出与原语句相似度较高的多个样本语句,并根据置信度和相似度对筛选出的样本语句进行相关度排序。最后根据相关度最高的样本语句对原语句进行语句重组,并对重组后的语句进行意图识别。若识别失败,则继续根据未使用过的样本语句中相关度最高的样本语句对原语句进行语句重组,并对重组后的语句进行意图识别。直至意图识别成功,或者基于所有筛选出的样本语句重组识别均失败为止。
由于意图下样本语句的表达方式可以根据实际需求进行设置,因此基于相关度最高的样本语句对原语句进行语句重组,可以实现对原语句表达方式进行调整,实现对原语句的泛化。而在意图识别失败时,重新利用未参考过的样本语句中相关度最高的样本语句对原语句进行语句重组,并对重组后的语句进行意图识别。使得在单次调整不适合时,可以继续进行其他表达方式的调整尝试,直至识别成功。因此本申请实施例可以在不对原意图识别模型进行更新优化的情况下,实现对原语句的自适应改写,使得原语句变成原意图识别模型可处理识别的语句。进而实现对不同表达方式语句的兼容处理,提高了对语句意图识别的能力。
本申请实施例提供的语句意图识别方法可以应用于手机、平板电脑和可穿戴设备等终端设备中,亦可应用在服务器等终端设备中。此时终端设备即为本申请实施例提供的语句意图识别方法的执行主体。本申请实施例对终端设备的具体类型不作任何限制。
下文以终端设备是手机为例,图1A示出了手机100的结构示意图。
手机100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及SIM卡接口195等。其中传感器模块180可以包括陀螺仪传感器180A,加速度传感器180B,气压传感器180C,磁传感器180D,环境光传感器180E,接近光传感器180G、指纹传感器180H,温度传感器180J,触摸传感器180K(当然,手机100还可以包括其它传感器,比如温度传感器,压力传感器、距离传感器、气压传感器、骨传导传感器等,图中未示出)。
可以理解的是,本发明实施例示意的结构并不构成对手机100的具体限定。在本申请另一些实施例中,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是手机100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
处理器110可以运行本申请实施例提供的意图识别方法,以便于实现对用户意图的准确识别。处理器110可以包括不同的器件,比如集成CPU和GPU时,CPU和GPU可以配合执行本申请实施例提供的意图识别方法,比如意图识别方法中部分算法由CPU执行,另一部分算法由GPU执行,以得到较快的处理效率。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,手机100可以包括1个或N个显示屏194,N为大于1的正整数。显示屏194可用于显示由用户输入的信息或提供给用户的信息以及各种图形用户界面(graphical user interface,GUI)。例如,显示器194可以显示照片、视频、网页、或者文件等。再例如,显示器194可以显示图形用户界面。其中图形用户界面上包括状态栏、可隐藏的导航栏、时间和天气小组件(widget)、以及应用的图标,例如浏览器图标等。状态栏中包括运营商名称(例如中国移动)、移动网络(例如4G)、时间和剩余电量。导航栏中包括后退(back)键图标、主屏幕(home)键图标和前进键图标。此外,可以理解的是,在一些实施例中,状态栏中还可以包括蓝牙图标、Wi-Fi图标、外接设备图标等。还可以理解的是,在另一些实施例中,图形用户界面中还可以包括Dock栏,Dock栏中可以包括常用的应用图标等。当处理器检测到用户的手指(或触控笔等)针对某一应用图标的触摸事件后,响应于该触摸事件,打开与该应用图标对应的应用的用户界面,并在显示器194上显示该应用的用户界面。
在本申请实施例中,显示屏194可以是一个一体的柔性显示屏,也可以采用两个刚性屏以及位于两个刚性屏之间的一个柔性屏组成的拼接显示屏。当处理器110运行本申请实施例提供的意图识别方法后,处理器110可以控制外接的音频输出设备切换输出的音频信号。
摄像头193(前置摄像头或者后置摄像头,或者一个摄像头既可作为前置摄像头,也可作为后置摄像头)用于捕获静态图像或视频。通常,摄像头193可以包括感光元件比如镜头组和图像传感器,其中,镜头组包括多个透镜(凸透镜或凹透镜),用于采集待拍摄物体反射的光信号,并将采集的光信号传递给图像传感器。图像传感器根据所述光信号生成待拍摄物体的原始图像。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,应用程序(比如相机应用,微信应用等)的代码等。存储数据区可存储手机100使用过程中所创建的数据(比如相机应用采集的图像、视频等)等。
内部存储器121还可以存储本申请实施例提供的意图识别方法对应的一个或多个计算机程序1210。该一个或多个计算机程序1210被存储在上述存储器121中并被配置为被该一个或多个处理器110执行,该一个或多个计算机程序1210包括指令,上述指令可以用于执行如图2至图5相应实施例中的各个步骤,该计算机程序1210可以包括帐号验证模块1211、优先级比较模块1212。其中,帐号验证模块1211,用于对局域网内的其它终端设备的系统认证帐号进行认证;优先级比较模块1212,可用于比较音频输出请求业务的优先级和音频输出设备当前输出业务的优先级。状态同步模块1213,可用于将终端设备当前接入的音频输出设备的设备状态同步至其它终端设备,或者将其它设备当前接入的音频输出设备的设备状态同步至本地。当内部存储器121中存储的意图识别方法的代码被处理器110运行时,处理器110可以控制终端设备进行语句和文本数据处理。
此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
当然,本申请实施例提供的意图识别方法的代码还可以存储在外部存储器中。这种情况下,处理器110可以通过外部存储器接口120运行存储在外部存储器中的意图识别方法的代码,处理器110可以控制终端设备进行语句和文本数据处理。
下面介绍传感器模块180的功能。
陀螺仪传感器180A,可以用于确定手机100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180A确定手机100围绕三个轴(即,x,y和z轴)的角速度。即陀螺仪传感器180A可以用于检测手机100当前的运动状态,比如抖动还是静止。
当本申请实施例中的显示屏为可折叠屏时,陀螺仪传感器180A可用于检测作用于显示屏194上的折叠或者展开操作。陀螺仪传感器180A可以将检测到的折叠操作或者展开操作作为事件上报给处理器110,以确定显示屏194的折叠状态或展开状态。
加速度传感器180B可检测手机100在各个方向上(一般为三轴)加速度的大小。即陀螺仪传感器180A可以用于检测手机100当前的运动状态,比如抖动还是静止。当本申请实施例中的显示屏为可折叠屏时,加速度传感器180B可用于检测作用于显示屏194上的折叠或者展开操作。加速度传感器180B可以将检测到的折叠操作或者展开操作作为事件上报给处理器110,以确定显示屏194的折叠状态或展开状态。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。手机通过发光二极管向外发射红外光。手机使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定手机附近有物体。当检测到不充分的反射光时,手机可以确定手机附近没有物体。当本申请实施例中的显示屏为可折叠屏时,接近光传感器180G可以设置在可折叠的显示屏194的第一屏上,接近光传感器180G可根据红外信号的光程差来检测第一屏与第二屏的折叠角度或者展开角度的大小。
陀螺仪传感器180A(或加速度传感器180B)可以将检测到的运动状态信息(比如角速度)发送给处理器110。处理器110基于运动状态信息确定当前是手持状态还是脚架状态(比如,角速度不为0时,说明手机100处于手持状态)。
指纹传感器180H用于采集指纹。手机100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于手机100的表面,与显示屏194所处的位置不同。
示例性的,手机100的显示屏194显示主界面,主界面中包括多个应用(比如相机应用、微信应用等)的图标。用户通过触摸传感器180K点击主界面中相机应用的图标,触发处理器110启动相机应用,打开摄像头193。显示屏194显示相机应用的界面,例如取景界面。
手机100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。手机100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在手机100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。在本申请实施例中,移动通信模块150还可以用于与其它终端设备进行信息交互。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在手机100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。本申请实施例中,无线通信模块160可以用于接入接入点设备,向其它终端设备发送和接收消息。
另外,手机100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。手机100可以接收按键190输入,产生与手机100的用户设置以及功能控制有关的键信号输入。手机100可以利用马达191产生振动提示(比如来电振动提示)。手机100中的指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。手机100中的SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和手机100的接触和分离。
应理解,在实际应用中,手机100可以包括比图1A所示的更多或更少的部件,本申请实施例不作限定。图示手机100仅是一个范例,并且手机100可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明终端设备的软件结构。图1B是本发明实施例的终端设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图1B所示,应用程序包可以包括电话、相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图1B所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.164,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合手机100进行语句意图识别的场景,示例性说明手机100软件以及硬件的工作流程。
当受话器170B拾取到用户的语音,相应的硬件中断被发给内核层。内核层将语音加工成原始输入事件,原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,通过调用应用程序框架层中的资源管理器对语音进行识别得到文本语句,并对语句进行改写和意图识别。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
图2示出了本申请实施例一提供的语句意图识别方法的实现流程图,详述如下:
S200,获取待处理语句。
其中,待处理语句即为本申请实施例中所需识别意图的语句。同时为区分于语句改写(重组)前后的待处理语句。在本申请实施例中,将未经语句重组的待处理语句亦称为原语句,而将经过语句重组后的待处理语句亦称为重组语句。
由前述说明可知,本申请实施例可用于实际场景1:意图识别模型无法正常识别语句意图,并实现对语句的改写和意图准确识别。因此对应于该实际场景1,S200获取原语句的触发条件为:若对待处理语句意图识别失败。或者亦可将S200替换为:
若对原语句意图识别失败,则获取待处理语句。
再执行S201的操作。
实际场景1中,终端设备在获取到原语句时,仍会正常使用意图识别模型进行意图识别。若意图识别成功,则可得到所需的意图识别结果,并可结束意图识别的操作。而若意图识别失败,则会重新读取原语句,并执行本申请实施例的操作,以对原语句进行改写和意图重新识别。此时本申请实施例的触发时机即为:对原语句意图识别失败。实际场景1可适用于意图识别模型原本对语句意图识别的效果就较好的情况,此时可以尽可能地保障意图识别模型的正常使用,并实现对异常情况的及时处理。因此可以对语句意图识别的整体效率和准确率起到较好的提升。
同时,本申请实施例亦可应用于正常语句意图识别的实际场景2。实际场景2中,终端设备在获取到原语句时,则会执行本申请实施例的S201步骤。此时本申请实施例即被设置为对语句进行意图识别的正常处理方案。实际场景2可适用于意图识别模型原本对语句意图识别效果较差的情况。由于意图识别模型的更新迭代操作可实现性较差,因此通过本申请实施例来进行意图识别,可以极大地提升原本意图识别方案的识别准确率。
另外,针对于上述的两种实际场景,对原语句的获取方式亦可能会存在一定的差别。
对于实际场景1,由于是在对原语句意图识别失败时触发的本申请实施例操作,即终端设备此时已经获取到了原语句。此时S200获取原语句的操作,可以是获取终端设备内已有的原语句数据。
而对于实际场景2,此时S200即为终端设备对原语句的获取操作。因此需根据实际场景情况确定原语句获取的方式。例如对于有语音拾取或文本输入等与用户进行交互功能的终端设备而言。可以通过对用户进行语音拾取,或者接收用户手动输入的文本内容等方式,实现对原语句的获取。亦可以是接收其他设备发送的原语句,或者对本地存储的原语句进行读取。而对于无法通过与用户进行交互的方式获取到原语句的终端设备而言,则可以通过接收其他设备发送的原语句,或者对本地存储的原语句进行读取等方式,实现对原语句的获取。
同时应当说明地,上述实际场景1和2仅为两种可选的应用场景举例。实际应用中,技术人员亦可以根据实际需求来进行其他应用场景选取,并将本申请实施例结合实际应用场景进行结合应用。此处不做过多限定。
S201,对待处理语句进行意图预测,得到至少一个预测意图,并获取每个预测意图关联的至少一条样本语句。
在本申请实施例中,会预先对每个可识别的意图分别设置一条或多条样本语句,这些样本语句的内容和表达方式可以相同或不同,但均表达着其所属的意图。例如,假设可识别的意图中包含“询问天气”、“播放音乐”和“应用程序操作”。对于“询问天气”这一意图,可以设置以下几条样本语句:“今天天气怎么样”、“今天啥天气呀”、“说下今天天气”和“今天下雨还是晴天呀”。对于“播放音乐”,可以设置以下几条样本语句:“我想听歌了”、“播放睡前音乐”、“来点好听的歌”和“华语音乐推荐”。对于“应用程序操作”,可以设置以下几条样本语句:“帮我打开应用A”、“我想用应用B听歌”、“我要看应用C的视频”和“开启应用D的导航功能”。
在预设好样本语句的基础上,本申请实施例在获取到原语句之后,会先对原语句进行意图预测,即识别原语句可能的一个或多个意图(即预测意图)。其中,具体的意图预测方法此处不做过多限定,可由技术人员根据实际需求进行选取或设定。例如,在一些可选实施例中,可以预先训练一些可以用于意图分类的分类模型,以实现本申请实施例中的意图预测。其中,分类模型种类可根据实际需求确定,包括但不限于如SVM模型和LightGBM模型。而在另一些可选实施例中,亦可以使用一些非分类模型的方法实现意图预测。例如可以计算原语句与各个样本语句的相似度,并筛选其中相似度较高的一个或多个样本语句,再将这些样本语句所属的意图判定为原语句的预测意图。
其中,本申请实施例不对预测意图的具体数量进行限定,可由技术人员根据实际需求进行设定。例如,在一些可选实施例中,可以设置一个固定大小的数值,如可以设置为1~5中任意一值。在进行意图预测时,则基于该数值进行意图筛选。如假设该数量为3,利用分类模型进行意图预测时,则将分类结果中置信度最高的前3个作为预测意图。而在另一些可选实施例中,亦可以预先设置一些其他筛选规则来确定对应的具体数量。例如在利用分类模型进行意图分类预测时,可以设置为将置信度高于预设阈值的所有分类结果均作为预测意图。此时预测意图数量需根据情况确定。其中预设阈值的大小可由技术人员自行设定。
在确定出原语句可能的意图之后,本申请实施例会进一步筛选出这些意图下对应的所有样本语句。例如假设预测意图包括:“询问天气”和“应用程序操作”。此时本申请实施例则会筛选出“询问天气”对应的所有样本语句,和“应用程序操作”对应的所有样本语句。由于筛选出这些样本语句均为原语句预测意图下的样本语句,因此这些样本语句在意图上均与原语句存在一定的关联性。这个关联性在本申请实施例中,可以以预测意图的置信度等数据进行量化表征。由于实际生活中,用户对语句可能的表达方式极多,若以穷举法列出可能的表达方式并根据列出的表达方式一一对原语句进行改写。一方面可操作性过低,另一方面,改写的工作量极大,进而导致整个意图识别的耗时长效率极低,无法满足实际应用的需求。因此,基于筛选出的样本语句对原语句进行改写,相比穷举改写,可以在保障对原语句改写有效性的同时,极大地缩短改写耗时提高改写效率。
在获取到一条或多条样本语句之后,作为本申请的一个可选实施例,理论上可以利用获取到的全部样本语句作为一个整体的参考对象来对原语句进行改写。例如,对这些样本语句进行句式结构的分析归类,再根据归类结果来对原语句进行改写。或者也可以利用其中部分的样本语句作为参考对象来对原语句进行改写。例如,每次从这些样本语句中选取出一条语句作为目标语句,再根据目标语句来对原语句进行改写,并进行意图识别。若识别失败,则再重新选取出一条目标语句,并重新对原语句进行改写并意图识别。具体基于样本语句对原语句的改写方式,可由技术人员根据实际选取或设计,此处不做过多限定。
作为本申请的基于样本语句对原语句进行改写的一种可选方式,包括:S202-S206。
S202,获取各条样本语句与待处理语句的相似度,并将相似度最高的前n条样本语句作为参考语句,其中,n为正整数。
考虑到实际情况中每种意图下对应的样本语句数量可能较多,同时预测意图的数量亦有可能较多。因此S201中筛选出的样本语句数量可能会较多。同时在这些筛选出的样本语句中,亦有可能会存在一些与原语句差异较大,参考价值较低的语句。因此若将所有筛选出的样本语句均作为改写参考,亦可能会导致语句改写的工作量较大,且效果难以得到保障。
为了进一步提高语句改写的效率和有效性,在筛选出样本语句之后,本申请实施例会进一步地确定出这些样本语句与原语句之间的相似度。并会根据相似度对样本语句进行筛选,仅保留其中相似度较高的前n条语句作为后续改写的参考语句。在本申请实施例中,n可以是固定值,也可以是根据预设规则计算出来的值。其中当n为固定值时,n的具体数值此处不予限定,可由技术人员根据实际需求进行设定,满足n为大于或等于1的整数即可。例如,在一些可选实施例中,可以将设置为n=10。另外,预设规则的具体内容亦可由技术人员根据需求进行设定,例如可以设定为:将相似度前q%的样本语句作为参考语句,其中q为预设的一个值。此时n的具体数值,则需根据q的值以及S201中筛选出的样本语句的总数量进行确定。
本申请实施例不对相似度获取的具体方法进行过多限定,可由技术人员根据实际情况确定。例如,在一些可选实施例中,可以利用Word2Vec模型或者余弦相似性等方式,计算各条样本语句与原语句的文本相似度,并作为本申请实施例中的相似度。亦可以使用其他的一些方式实现对样本语句和原语句相似度的计算。而在另一些实施例中,考虑到S201意图预测过程中可能会涉及到语句相似度的计算。例如假设利用样本语句与原语句的相似度来进行意图预测,即意图预测的过程中就已经计算出来各条样本语句分别与原语句之间的相似度。此时可使用已得到的相似度数据,而无需重复进行计算。
S203,基于参考语句相似度,分别确定各个参考语句与待处理语句的相关度。
在本申请实施例筛选出参考语句之后,还会进一步地计算各个参考语句与原语句的相关度。并会根据相关度从高到低,依次进行参考语句的选取和原语句改写。在每次改写后意图识别成功概率难以预知的情况下。由于每次都是基于相关度最高的参考语句进行语句改写,而该参考语句又是可以被意图识别的语句,因此理论上本申请实施例可以提高单次改写后意图识别成功的概率,进而提高整个意图识别的效率。
其中,本申请实施例不对语句相关度的具体确定方法进行限定,可由技术人员根据实际需求进行选取或设定。例如,在一些可选实施例中,可以将语句的相似度作为相关度量化值进行处理,即将相似度作为相关度进行处理。而在另一些实施例中,亦可以综合参考语句实际意图与原语句意图的关联情况进行考量。即在意图预测过程中,对每个预测意图确定出一个置信度数据(例如分类模型在输出分类结果的同时,还输出各个分类结果的置信度)。并根据置信度和相似度两个数据来综合确定语句之间的相关度情况。此时相关度越高,说明参考语句与原语句的意图更加接近,且语句内容更为接近。因此基于高相关度参考语句来对原语句进行重组,可以提高重组结果可被意图识别的概率,即可以提高语句重组的效果。进而使得对整体语句意图识别的效率得以提升。
作为本申请进行相关度计算的一种可选实现方式,本实施例在对原语句进行意图预测时,还会计算各个预测意图的置信度。相应的,S203中对相关度的计算方法为:相关度=a×置信度+(1-a)×相似度,其中,0<a<1。即对于每一条参考语句而言,其与原语句的相关度为:该参考语句所属预测意图的置信度与预设系数a的乘积值,加上该参考语句与原语句的相似度乘以1与a差值得到的乘积值。其中,预设系数a的大小此处不做过多限定,可由技术人员自行设定。或者预先训练一个相关度计算的学习模型,并由该学习模型学习出a的具体值。
S204,从所有参考语句中不重复地选取出相关度最高的参考语句作为目标语句。
为了实现“根据相关度从高到低,依次进行参考语句的选取和原语句改写”。本申请实施例每次选取均是语句不重复的选取,即同一条参考语句最多仅会被选取一次。其中,不重复选取的具体实现方式此处不做过多限定,可由技术人员自行设定。
作为本申请的一个可选实施例,为了实现不重复选取,可采用不放回取样的方式进行参考语句选取。即剩余的参考语句中不会继续保留已被提取过的参考语句。作为本申请的另一个可选实施例,为了实现不重复选取,可采用有放回的取样,但每次取样后都会记录已被提取的参考语句。同时每次取样时,均会根据记录数据,仅对之前未被取样的参考语句进行最高相关度筛选和语句选取。
S205,基于目标语句对待处理语句进行语句重组,得到重组后的待处理语句。
其中,语句重组,是指在不改变原语句语义的情况下,对原语句的表达方式进行调整。在本申请实施例中,会以语句重组的方式实现对原语句的改写,使得重组语句的表达方式接近于可以被意图识别的目标语句。具体而言,在确定出目标语句之后,本申请实施例会根据目标语句的句式结构等信息来对原语句进行语句重组,以实现对原语句表达方式的调整。其中,本申请实施例不对具体的语句重组方法进行过多限定,可有技术人员根据实际需求进行选取或设定。例如在一些可选实施例中,可以对目标语句的句子成分和句子类型进行分析,并分析各个成分的顺序。再基于句子成分、类型以及成分之间的顺序,对原语句的类型和成分进行调整,进而得到重组语句。而在另一些可选实施例中,亦可以预先设置一些与意图关联度较高的关键词,并对目标语句进行关键词提取和关键词之间的顺序分析。再基于提取出的关键词和关键词顺序,对原语句进行关键词顺序和内容的调整,从而得到重组语句。
为了实现对语句的改写,以提高对语句意图识别的能力和准确性。一种可选的做法是将语句进行去口头语化处理,仅保留语句中的实体词语。再将原语句文本和筛选出的实体词语构成的文本分别输入至意图识别模型。最后根据对两个文本的识别结果进行综合决策,确定最终输出的意图。由于仅保留实体词语会丢失语句的结构信息,而在原语句的意图识别结果不理想的情况下,会使得这种做法最终对语句的意图识别结果的准确率并不理想。另一种可选做法中,则是对语句进行分词,再对语句中的词语进行类型识别,并将词语替换为聚类代表词。例如将与“晴”、“下雨”和“暴雨”等词统一替换为聚类代表词“天气”。再基于替换词语后的语句文本进行意图识别模型的处理,识别对应的意图。这样做虽然可以实现对一些不同表达方式语句的意图识别。但实践发现,由于聚类代表词并不能准确体现出原词语的语义。使得词语替换后的语句相比原语句而言,其语义有时已经发生了一定程度的改变。因此虽然可以识别出语句的意图,但该识别出的意图可能已经偏离了原语句的意图。从而使得对语句的意图识别结果仍不准确。
为了提高语句改写的有效性,以提升语句意图识别的能力,作为S205中一种语句重组的可选方案,参考图3,本申请实施例中S205可以被替换为:
S301,从目标语句内包含的词语中筛选出词语类型属于第一类型的第一词语,并获取在目标语句内第一词语之间的第一相对位置数据。
在本申请实施例中,会预先针对可识别的意图整理好一些与意图相关度较高的词语,这些词语被统一命名为槽位词。同时本申请实施例还会对这些槽位词进行分类,并将这些槽位词所属的词语类型统称为槽位类型(即第一类型)。因此在本申请实施例中,槽位类型下可以包含多个不同的词语类型。相对应的,本申请实施例中,非槽位类型则是指槽位类型以外的其他词语类型,非槽位类型下覆盖的词语则统称为非槽位词。其中,具体对槽位词和槽位类型的划分方式和内容等,可由技术人员根据实际情况进行设定,此处不做过多限定。
以一实例进行举例说明。假设将“打开”、“关闭”、“暂停”和“最小化”等动作词语的词语类型设置为“操作”,将“现在”、“早上”、“晚上”和“明天”等时间词语的词语类型设置为“时间”,并将各类应用程序的名称,如应用程序A、应用程序B和应用程序C等,所属的词语类型设置为“应用名称”。同时假设槽位类型仅包含前述的“时间”、“操作”和“应用名称”三类词语类型。此时“打开”等动作词语、“现在”等时间词语和各类应用程序的名称,均为本申请实施例中的槽位词。相应的,槽位词以外的其他词语则可以统称为非槽位词,所属的词语类型均为非槽位类型。
在得到目标语句后,本申请实施例会对目标语句进行分词,识别各个词语的词语类型并筛选出其中属于槽位类型的槽位词。在本申请实施例中,将从目标语句中筛选出的槽位词亦称为第一词语。同时,本申请实施例还会分析这些槽位词在目标语句中的相对位置(即第一相对位置数据),以实现对目标语句中槽位词分布的分析,得到目标语句的句式结构信息。
以一实例进行举例说明。在上述槽位类型仅包含前述的“时间”、“操作”和“应用名称”三类词语类型实例的基础上,假设目标语句为“帮我打开应用程序A”。此时可以确定出目标语句中“打开”属于槽位类型中的“操作”,“应用程序A”属于槽位类型中的“应用名称”。因此在本实例中第一词语包括“打开”和“应用程序A”。目标语句内第一词语之间的相对位置为:“打开”、“应用程序A”,即“打开”在“应用程序A”之前。
S302,从待处理语句包含的词语中筛选出词语类型属于第一类型的第二词语,并根据第一相对位置数据对第二词语进行排序,得到排序后的第三词语。
在确定出第一相对位置数据之后,本申请实施例会对原语句进行分析,并从分出的词语中提取出所有槽位词(即第二词语)。在提取出所有槽位词之后,再利用第一相对位置数据对提取出的槽位词进行排序,从而使得排序后的槽位词(即第三词语)可以适应目标语句的句式结构。
第一相对位置数据中虽然记录有第一词语在目标语句中的相对位置信息,但由于目标语句内包含的槽位词和原语句内包含的槽位词可能相同也可能不同,因此,实际应用中难以直接根据第一相对位置数据进行第二词语的排序。在本申请实施例中,会根据第一词语的词语类型、第二词语的词语类型以及第一相对位置数据,来进行排序,其中,排序的具体说明如下:
将第一词语的词语类型作为目标类型,根据目标类型和第一相对位置数据,确定目标语句内目标类型之间的位置顺序。
从第二词语中筛选出属于目标类型的词语,并按照定目标语句内目标类型之间的位置顺序,对这些筛选出的词语进行排序。
其中,对于第二词语中不属于目标类型的词语,则可以保持其在第二词语中原本的位置即可。
以一实例进行举例说明,在上述实例目标语句为“帮我打开应用程序A”的基础上,假设原语句为“我想现在应用程序B打开”。此时可以确定出原语句中“现在”属于槽位类型中的“时间”、“打开”属于槽位类型中的“操作”,“应用程序B”属于槽位类型中的“应用名称”。因此第二词语排列顺序依次为:现在、应用程序B和打开。
同时由于目标语句中的槽位词所属目标类型为“操作”和“应用名称”,相对位置为:“打开”、“应用程序A”。由此可以确定出需要对词语“打开”和“应用程序B”进行位置对调,从而得到排序后的第三词语:现在、打开以及应用程序B
S303,基于排序后的第三词语进行语句生成,得到重组后的待处理语句
在对原语句槽位词排好序之后,虽然完成了对原语句的语句结构调整,但仅由排序后的槽位词有时无法构成一个完整的语句。因此本申请实施例会进一步地根据排序后的第三词语进行语句生成,以得到重组语句。其中,本申请实施例不对具体使用的语句生成方法进行过多限定,可由技术人员根据实际需求进行选取或设定,但需保障重组语句中第三词语之间的相对位置不变。例如在一些可选实施例中,可以使用一些已有的语言模型(如Trigram语言模型)来对第三词语进行处理,生成包含所有第三词语,且第三词语之间的相对位置不变的重组语句。而在另一些可选实施例中,亦可以由技术人员自行设计一些可用的语句生成方法进行处理。
作为本申请实施例中进行语句生成的一种具体实现方式,在本申请实施例中,设第三词语的数量为k,k为整数且1≤k,S303可以被替换为:
S304,若k>1,在第一个第三词语之前的位置、相邻两个的第三词语之间的位置以及最后一个第三词语之后的位置共k+1个位置处,依次进行词语填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
S305,若k=1,在第三词语前后位置处依次进行词语填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
在本申请实施例中,会根据排序后的槽位词的实际数量情况来确定需要填充词语的位置。对于仅有一个槽位词的情况,此时仅有槽位词前后两个位置可以填充词语。而对于有两个及以上槽位词的情况,则有第一个第三词语之前、相邻两个的第三词语之间以及最后一个第三词语之后,共3类位置。由于排序后的槽位词数量为k,因此实际可填充词语的位置数量为k+1。
在确定出可填充词语的各个位置后,本申请实施例会对这些位置进行词语填充。而考虑到语句具有时序性,为了保障填充词语的逻辑合理性,本申请实施例在进行词语填充时,会按照位置从先到后的顺序,依次对各个位置进行填充。其中,本申请实施例不对具体使用的词语填充方法进行过多限定,可由技术人员根据实际需求选取或设定。例如在一些可选实施例中,可以预先设置一些用于填充的填充词。在对各个位置进行词语填充时,再随机从填充词中进行词语选取和填充,并在每次填充完位置之后,计算一次得到填充语句的困惑度或可信度等指标。最后筛选出困惑度较低或可信度较高的一个填充语句作为重组语句。同时,本申请实施例亦不对每个位置处具体填充的词语数量进行过多限定,可由技术人员根据需求自行设定。或者亦可以根据技术人员实际选取的词语填充方法进行确定。
作为本申请中对S304和S305一种可选的词语填充具体实现方式,在本申请实施例中,S304中对各个位置的词语填充操作包括:
S306,若k>1,在k+1个位置处分别插入空白格,各个位置处插入的空白格数量均大于或等于0。
S307,对第一个位置词语填充的操作包括:根据第一个第三词语,对第一个位置处的空白格进行词语的填充。
S308,对第m个位置词语填充的操作包括:根据第一个至第m个第三词语和所有已填充的第四词语,对第m个位置处的空白格进行词语的填充,其中,1<m≤k。
S309,对第k+1个位置词语填充的操作包括:根据所有第三词语和所有已填充的第四词语,对第k+1个位置处的空白格进行词语的填充,得到由第三词语和填充的第四词语构成的重组后的待处理语句。
相应的,S305中对各个位置的词语填充操作包括:
S310,若k=1,在第三词语前后位置处分别插入空白格,各个位置处插入的空白格数量均大于或等于0。
S311,根据第三词语,对第三词语前的空白格进行第四词语的填充。
S312,根据第三词语和已填充的所有第四词语,对第三词语后的空白格进行第四词语的填充,得到重组后的待处理语句。
在本申请实施例中,采用在词语前后插入空白格,并对空白格进行词语填充的方式,实现对重组语句的生成。其中,将填充的词语命名为第四词语。本申请实施例不对每个位置处插入的具体空白格数量进行过多限定,可由技术人员根据需求进行设定。考虑到当插入空白格较多时,一方面会导致词语填充的工作量越大,但另一方面也会使得最终重组语句相对更加通顺,更加符合实际自然语言的语法要求。因此技术人员根据实际终端设备的数据处理能力和对重组语句的要求,来综合衡量各个位置处空白格的数量。例如在一些可选实施例中,可以将所有位置处的空白格数量均设置为1。此时可以使得语句填充的工作量较小,同时使得生成的重组语句更加精简。其中,每个空白格最多可填充一个词语。
为了使得填充的词语满足自语句的时序性需求,因此在进行某一位置的空白格词语填充时,需要参考该位置前的已有词语,以及该位置后的第一个词语情况进行空白格的词语确定和填充。例如,可以参考图4A,假设3个第三词语分别为:现在、打开以及应用程序B。同时假设在“现在”之前的位置插入了一个空白格,在“现在”和“打开”之间的位置处插入了两个空白格,在“打开”和“应用程序B”之间的位置处插入了一个空白格,在“应用程序B”之后的位置处插入了两个空白格。假设从左到右依次对空白格进行编号:1、2、3、4、5和6。在此基础上,空白格1需要参考“现在”进行词语填充。空白格2和3需要参考空白格1的填充结果以及“现在”和“打开”进行词语填充。空白格4则需要参考空白格1、2和3的填充结果,以及“现在”、“打开”和“应用程序B”进行词语填充。空白格5和6则需要参考所有已有词语的情况进行词语填充。而对于仅有一个第三词语的情况,可以参考图4B,假设第三词语为“天气”,并在“天气”之前插入了两个空白格,“天气”之后插入了一个空白格。此时对于前两个空白格需要参考“天气”进行词语填充。对于最后一个空白格,则需要参考前两个空白格的填充结果,以及“天气”进行词语填充。
在满足上述各个位置处空白格词语填充要求的基础上,本申请实施例不对具体使用的空白格填充方法进行过多限定,可由技术人员根据实际需求选取或设定。例如在一些可选实施例中,可以预先设置一些用于填充空白格的填充词。在插入空白格之后,再从填充词中进行词语选取和空白格的依次填充。并在每次对一个位置处的空白格填充完成时,都对由该位置前所有的已有词语、该位置处填充的词语以及该位置后的第一个词语组成语句内容(该语句内容可以是不完整的语句),计算对应的困惑度或可信度等指标。并在困惑度或可信度等指标满足预设要求时,判定对该位置处空白格填充词语完成。反之若指标不满足要求,则重新对该位置处的空白格进行词语填充并计算指标。亦可以采用来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers,BERT)模型的解码器计算语句内容的正确概率并作为评估的指标。
作为本申请中对各个位置处空白格进行词语填充的一种可选的实现方式。
考虑到实际应用中每个位置处插入的空白格数量无法预知,因此需要一个可以应对未知数量空白格的词语填充方法。同时,在单个位置处空白格数量已确定的情况下,此时理论上可以为该位置填充空白格数量的词语。但实践中发现,由于实际语句的不确定性因素过多,导致实际应用中每个位置处适宜填充的词语数量往往难以准确预估。因此即使技术人员针对某个位置处设置了一个固定的插入空白格数量,也难以保证该数量对应的填充效果较佳。例如假设某一位置处插入了4个空白格,但实际最佳填入的词语数量为2。此时若按照空白格数量填入4个词语,可能会导致重组语句内容过于冗余,填充效果较差。
为了提升对每个位置处词语填充的效果,防止重组语句内容过于冗余。在本申请实施例中,针对k>1的情况,设k+1个位置中,第一个位置处插入了h1个第一空白格,第m个位置处插入hm个第二空白格,第k+1个位置处插入了hk+1个第三空白格,m为整数,且1<m≤k,h1、hm和hk+1均为自然数。
参考图4C,对于第一个位置处空白格的词语填充操作包括:
S401,在第一个位置处的h1个第一空白格中,进行h1+1次的词语填充,并计算每一次词语填充后的待处理语句的第一正确概率,其中,h1+1次的词语填充中,每次填充的词语数r1均不相同,0≤r1≤h1,且填充的词语所属的词语类型不属于第一类型。
S402,筛选出第一正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第一个位置对应的第四词语。
对第m个位置处的空白格词语填充操作包括:
S403,在第m个位置处的hm空白格中,进行hm+1次的词语填充,并计算每一次词语填充后的待处理语句的第二正确概率,其中,hm+1次的词语填充中,每次填充的词语数r2均不相同,0≤r2≤hm,且填充的词语所属的词语类型不属于第一类型。
S404,筛选出第二正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第m个位置对应的第四词语。
对第k+1个位置处的空白格词语填充操作包括:
S405,在第k+1个位置处的hm空白格中,进行hk+1+1次的词语填充,并计算每一次词语填充后的待处理语句的第三正确概率,其中,hk+1+1次的词语填充中,每次填充的词语数r3均不相同,0≤r3≤hk+1,且填充的词语所属的词语类型不属于第一类型。
S406,筛选出第三正确概率最高的词语填充后的待处理语句,将相应填充的词语作为第k+1个位置对应的第四词语,得到重组后的待处理语句。
在本申请实施例中,正确概率是对处理对象(完整或者不完整的语句)可信度的量化,以衡量该处理对象合理性的水平。在一些应用场景中,正确概率亦可被称为语句概率。
本申请实施例在针对每个位置处的空白格进行词语填充时,会根据实际空白格数量来确定出实际可能的几种填充方案。并分别对各种填充方案进行填充尝试,以得到对应的多种填充结果,再确定出其中填充效果较好的一种方案作为实际填充方案。具体而言,假设某个位置处插入的空白格数量为h,那实际可以插入的词语数量包括:0、1、2、…、h-1和h,即有h+1种可能的插入数量。例如当h=4时,可以选择插入:0、1、2、3或4个词语。其中,对单个位置而言,每次填充选用的方案顺序此处不做过多限定,可由技术人员自行设定。例如可以设置为第一次填充0个词语(即不填充任何词语),第二次填充1个词语,依次类推,最后一次填充h个词语(即将所有空白格都填充满)。亦可以在满足h+1种插入数量的情况下,打乱前述的填充顺序。另外,本申请实施例不对具体使用的空白格词语填充方法进行过多限定,可由技术人员根据实际需求选取或设定。例如可以预先设置一些填充词,并随机选取填充词对空白格进行填充。但应当特别说明地,考虑到槽位词均是与意图相关度较高的词语,因此为了防止填充词语对原语句意图产生影响,进而影响最终的意图识别结果。本申请实施例中填充的词语均为非槽位词。
基于上述原理,本申请实施例在对第一个位置处的h1个空白格进行词语填充时,首先会确定出对应的h1+1种填充方案。再针对每种填充方案确定好具体的填充词语并进行h1+1次词语填充。
在h1+1次词语填充后,本申请实施例会对每次填充得到语句分别计算对应的正确概率(即第一正确概率),以实现对填充后语句可信度的量化。再筛选出正确概率最高最为可信的一种填充结果,作为实际的填充结果。例如,可以参考图4A,假设对现在之前的一个空白格填充结果如下:
1、填充词语数为0(即不填充词语),填充得到的语句为:现在打开应用程序B。对应的正确概率为0.7。
2、填充词语数为1,填充得到的语句为:我想现在打开应用程序B。对应的正确概率为0.8。
由于0.8>0.7,因此会以填充词语数为1的方案为准,得到对应的填充后语句:现在打开应用程序B,并继续进行后续的词语填充操作。
本申请实施例中,将相邻第三词语之间的位置统一称为中间位置。在填充完第一个位置之后,本申请实施例会继续对中间位置依次进行空白格的词语填充。由于本申请实施例中对各个中间位置的填充操作基本相同,因此此处仅以第m个位置为例进行说明,其中,1<m≤k。
由于在第m个位置处共有hm个空白格,因此0、1、…、hm-1和hm,共hm+1种填充方案。在本申请实施例中会针对每种填充方案确定好具体的填充词语并进行hm+1次词语填充。在hm+1次词语填充后,本申请实施例会对每次填充得到语句分别计算对应的正确概率(即第二正确概率),以实现对填充后语句可信度的量化。再筛选出正确概率最高,最为可信的一种填充结果,作为实际的填充结果。
在填充完所有中间位置之后,本申请实施例开始对最后一个位置(即第k+1个位置)进行空白格的词语填充。在本申请实施例中会针对每种填充方案确定好具体的填充词语并进行hk+1+1次词语填充。在hk+1+1次词语填充后,本申请实施例会对每次填充得到语句分别计算对应的正确概率(即第三正确概率),以实现对填充后语句可信度的量化。
最后筛选出正确概率最高最为可信的一种填充结果,作为实际的填充结果。至此即可完成对所有位置处空白格的填充,从而得到填充语句。
综上可知,在本申请实施例中,对于具有k个第三词语的情况会对对应的k+1个位置进行空白格插入。对于每个位置均会进行插入空白格数+1种插入方案的尝试,并对尝试的方案进行筛选。因此共有k+1次语句筛选操作。在最后一次筛选之后,即可确定出最终的重组语句。
其中应当特别说明地,本申请实施例不对具体的正确概率计算方法进行过多限定,可由技术人员根据实际需求进行设定。例如在一些可选实施例中,可以采用BERT模型的解码器计算语句的正确概率。同时,在对某一位置进行所有填充方案的尝试之后,在对单个填充方案填充后得到的语句进行正确概率计算时,处理的语句内容也可以有多种选择,包括但不限于如:
方式1、对填充得到的所有语句内容作为处理对象进行正确概率计算。
方式2、对由该位置前所有的已有词语、该位置处填充的词语以及该位置后的第一个词语组成语句内容作为处理对象(若该位置之前或之后没有词语,则不管没有词语的部分),计算对应的正确概率。
以一实例进行举例说明,参考图4A,假设对现在之前的一个空白格填充结果如下:
a、填充词语数为0(即不填充词语),填充得到的语句为:现在打开应用程序B。
b、填充词语数为1,填充得到的语句为:我想现在打开应用程序B。
若需要计算b“我想现在打开应用程序B”的正确概率。对于方式1而言,会以“我想现在打开应用程序B”作为处理对象计算正确概率。对于方式2而言,则仅会将其中的“我想现在”作为处理对象计算正确概率。
针对k=1的情况,设第三词语之前的位置处插入了h1个第一空白格,第三词语之后的位置处插入了h2个第二空白格。
参考图4D,对于第三词语之前的位置处空白格的词语填充操作包括:
S407,在h1个第一空白格中,进行h1+1次的词语填充,并计算每一次词语填充后的待处理语句的第一正确概率,其中,h1+1次的词语填充中,每次填充的词语数r1均不相同,0≤r1≤h0,且填充词语所属的词语类型不属于第一类型。
S408,筛选出第一正确概率最高的词语填充后的待处理语句,并将相应填充的词语作为第一个位置对应的第四词语。
对第三词语之后位置处的空白格词语填充操作包括:
S409,在h2个第二空白格中,进行h2+1次的词语填充,并计算每一次词语填充后的待处理语句的第三正确概率,其中,h2+1次的词语填充中,每次填充的词语数r3均不相同,0≤r3≤h2+1,且填充词语所属的词语类型不属于第一类型。
S410,筛选出第三正确概率最高的词语填充后的待处理语句,将相应填充的词语作为第三词语之后位置对应的第四词语,得到重组后的待处理语句。
对于k=1的情况,原理与上述k>1情况相同,但由于没有相邻的第三词语,因此不存在上述的对中间位置进行词语填充的操作。具体的操作原理和细节说明,均可以参考上述k>1的说明,此处不予赘述。
以一实例进行举例说明,可以参考图4B,假设仅有一个第三词语“天气”。同时假设,在天气之前的位置处插入了两个空白格,在天气之后的位置处插入了一个空白格。
首先,本申请实施例会对天气之前的两个空白格制定3种填充方案:1、不填充任何词语。2、仅填充一个词语。3、填充两个词语。同时,假设按照填充方案填充后得到以下3条填充后的语句:
1、天气。
2、报/天气。
3、告诉/我/天气。
计算3条语句的正确概率,并筛选出其中正确概率最高的一条。如假设3条语句的正确概率分别为:0.5、0.7和0.9。此时即可确定出“告诉/我/天气”是所需的语句内容,此时“告诉”和“我”即为填入的第四语句。
在筛选出语句之后,再对天气之后的一个空白格制定2种填充方案:1、不填充任何词语。2、填充一个词语。同时,假设按照填充方案填充后得到以下2条填充后的语句:
4、告诉/我/天气。
5、告诉/我/天气/谢谢。
计算2条语句的正确概率,并筛选出其中正确概率最高的一条作为最终的重组语句。如假设2条语句的正确概率分别为:0.9和0.7。此时即可确定出“告诉我天气”即为所需的重组语句。此时即可完成对原语句的语句重组。
作为本申请中对空白格进行词语填充一种可选的具体实现方式。考虑到实际生活中,意图与意图之间也可能会存在较大差异,相应的,与各个意图相关的词语亦可能会存在一定的差异。例如对于与应用程序操作相关的意图而言,应用程序名称是相关度较高的词语,因此可以作为该类意图的槽位词。对于与天气查询相关的意图而言,地点是相关度较高的词语,因此可以作为该类意图的词语。但实际应用中地点与应用程序操作的相关度较低,而应用程序名称与天气查询的相关度亦较低。
因此若对所有意图进行统一的槽位类型和槽位词设置。一方面,使得对目标语句和原语句进行槽位词筛选时,会筛选出部分与原语句意图相关度较低甚至无关的词语。使得筛选出的词语与原语句意图的相关性较弱,进而使得对原语句的改写效果和意图识别效果变差。另一方面,由于槽位词覆盖范围较大,使得可选的非槽位词范围变小。因此在进行语句重组的非槽位词填充时,许多词语无法被作为非槽位词进行选取和填充,进而会导致填充的效果不佳,语句重组的效果不佳。综上对所有意图设置相同的槽位类型和槽位词,会导致最终意图识别成功率降低,或者识别准确性下降。
为了提高对槽位词筛选的效果以及非槽位词填充的效果,以提高对语句意图识别的成功率和准确性。在本申请实施例中,会预先建立一个系统词典,在该系统词典中会针对每个可识别的意图分别设置对应的一种或多种词语类型作为对应的槽位类型。同时在每种槽位类型下均会设置至少一个槽位词。其中,具体对各个意图下对应的槽位类型,以及槽位类型下包含的槽位词情况,均可由技术人员根据实际需求进行设定,此处不做过多限定。例如在一些可选实施例中,一方面可以针对每种意图,收集一些人们日常口语化的语句并分析其中包含的词语类型,再基于分析结果对每种意图设置对应的一种或多种槽位类型。另一方面可以先收集日常生活中常用的一些词语,再基于已有的槽位类型对这些词语进行分类,进而得到对应的系统词典。
以一实例进行举例说明,假设可识别的意图中包含“询问天气”、“播放音乐”和“应用程序操作”共3种意图。在系统词典中,针对“询问天气”,可以将“时间”、“地点”和“天气”三种词语类型作为对应的槽位类型。同时,针对每种槽位类型还会进一步地设置一个或多个槽位词。例如针对“时间”可以设置:今天、明天、这周和下周等词语为槽位词。针对“地点”可以设置:深圳、广州、北京和上海等词语作为槽位词。针对“天气”可以设置:晴天、小雨、中雨、大雨和阴天等词语作为槽位词。而对于“应用程序操作”,则可以将“操作”、“时间”和“应用程序名称”三种词语类型作为对应的槽位类型。其中,针对“操作”可以设置:打开、关闭、暂停和最小化等词语作为槽位词。针对时间可以设置:现在、早上、晚上和明天等词语作为槽位词。针对“应用程序名称”则可以将各类应用程序的名称设置为槽位词,如应用程序A、应用程序B和应用程序C等。
由于每种意图下对应的槽位类型种类和数量可能会存在一定的差异,同时各个槽位类型下包含的槽位词也可能存在一定的差异。因此在本申请实施例中,每种意图对应的槽位词的种类和数量均可能存在一定差异。在此基础上,本申请实施例内的非槽位词,是指系统词典和临时词典记录的所有词语中除槽位词以外的词语。因此对于每种意图而言,其对应的非槽位词范围也可能会存在差异。例如:在上述实例中,针对意图“应用程序操作”而言,“应用程序A”是其槽位类型“应用程序名称”下的槽位词。但由于“应用程序A”并不属于意图“询问天气”下属的槽位词,因此对于意图“询问天气”而言,“应用程序A”则为非槽位词。
相应的,本申请实施例中S301在进行槽位词筛选时,则需要根据目标语句所属意图在系统词典中进行查询,以确定出目标语句下对应的槽位类型情况以及槽位词情况。再利用查询出的槽位词情况来实现对目标语句中槽位词的识别和筛选。同理,S302在对原语句进行槽位词筛选时,亦需要利用S301中对目标语句查询出的槽位词情况来实现对原语句中槽位词的识别和筛选。
在预设好系统词典,且S301和S302均为根据系统词典实现了槽位词筛选的基础上。本申请实施例会在S303之前进行临时词典构建,操作包括:
S313,根据系统词典以及目标语句所属的预测意图,确定出目标语句对应的属于第一类型的第一词语类型,从目标语句内中筛选出不属于第一词语类型的词语,并基于筛选出来的词语和原语句中的所有词语,构建临时词典。
临时词典中包含目标语句内的非槽位词、原语句内的槽位词和非槽位词。其中,此处的槽位词和非槽位词,均是以系统词典中目标语句所属意图下的槽位词情况为准确定的。第一词语类型,即为目标语句意图下,槽位类型包含的具体词语类型。
以一实例进行举例说明。在上述系统词典的实例基础上,假设目标语句为“帮我打开应用程序A”,原语句为“我想现在应用程序B打开”,且目标语句所属意图为“应用程序操作”。在此基础上,假设对目标语句分词结果为:帮/我/打开/应用程序A,对原语句的分词结果为:我/想/现在/应用程序B/打开(根据选用的分词方法不同,分词结果可能会存在一定差异,例如“帮我”亦可能会划分为一个词语)。此时可提取出目标语句中的非槽位词:“帮”和“我”。因此,在本实例中,临时词典内包含的词语有:“帮”、“我”、“想”、“打开”、“应用程序A”、“应用程序B”和“现在”。其中,“打开”、“应用程序A”、“应用程序B”和“现在”均为目标语句和原语句此时对应的槽位词,“帮”、“我”和“想”均为对应的非槽位词。
作为本申请的亦可可选实施例,在S401对第一个位置空白格进行h1+1次词语填充过程中,设每次填充的词语数为r1,0≤r1≤h1。在构建好临时词典的基础上,参考图5,对r1个词语的单次填充操作包括:S501-S506。
S501,确定出系统词典和临时词典中,第一词语类型包含的所有第一槽位词,以及不属于第一词语类型的所有第一非槽位词。
由于目标语句所属的意图已知且系统词典已知,因此可以查询出目标语句对应的所有槽位词(即第一槽位词)。在确定出槽位词之后,系统词典和临时词典中所有槽位词以外的词语,则均为目标语句对应的非槽位词(即第一非槽位词)。
S502,根据系统词典和临时词典,计算各个非槽位词的总生成概率。
S503,基于生成概率从非槽位词中依次选取出r1个第一待填入词语,其中,对第一个第一待填入词语的选取操作为不重复的词语选取。
在确定出槽位词和非槽位词之后,本申请实施例会进行非槽位词的选取。具体而言,首先会计算各个非槽位词对应的生成概率(即本申请实施例中的总生成概率),并将生成概率最高的一个非槽位词作为第一个待填入词语。在确定出第一个待填入词语之后,再基于已有的待填入词语再计算一次各个非槽位词对应的生成概率,并将生成概率最高的一个非槽位词作为第二个待填入词语。依此类推,每次都会基于已有的待填入词语重新计算一次各个非槽位词对应的生成概率,并将生成概率最高的一个非槽位词作为此次的待填入词语。进而实现对r1个待填入词语的选取。其中,本申请实施例不对具体的生成概率计算方法进行过多限定,可由技术人员根据实际需求选取或设定。例如可以采用一些已有的语言模型来实现对生成概率的计算,例如可以选用BERT模型。其中由于语句具有时序性,而语言模型基本都遵循着“当前词语的出现概率与前面词语存在依赖关系”。即在神经网络语言模型中,一个词语在t时刻的生成概率与t时刻之前时刻的隐层输出相关。因此在利用语言模型进行生成概率计算时,实际就会将当前位置之前的语句内容(即当前位置之前的各个词语)考量进去。
作为本申请的一个可选实施例,可以利用公式(1)实现对词语w(可以是槽位词或者非槽位词)的总生成概率计算:
P(w)=a×Pvocab(w)+(1-a)×Pprior(w) (1)
其中P(w)为词语w的总生成概率。Pvocab(w)为词语w在系统词典中的生成概率,可以利用指针生成网络(point generator networks,PGN)模型对系统词典、词语w和词语w之前的语句内容进行处理得到。Pprior(w)为词语w在临时词典中的生成概率,可以利用BERT模型的解码器对临时词典、词语w和词语w之前的语句内容进行处理得到。a为系数,0<a<1,具体值可由技术人员自行设定,或者通过预先训练生成概率计算模型的方式来进行系数确定。
S504,根据系统词典、临时词典和r1个第一待填入词语,从槽位词中确定出一个第一待校验词语。
由于语句具有时序性,因此在确定出r1个待填入词语之后,理论上也可以根据这些待填入词语来预测第一个第三词语。若该预测出的词语与原本的第三词语相同,则说明前面待填入词语的选取较为准确,可以作为空白格的填充词语。若不相同,则说明前面待填入词语的选取可信度较低,因此需要重新选取。进而实现对当次非槽位词选取是否合理的有效校验。
例如,可以参考图4B,假设对“天气”之前确定了2个待填入词语:“告诉”和“我”。此时理论上可以根据“告诉/我”来预测下一个词语。如假设预测的待校验词语为“天气”,此时就可以将“告诉”和“我”作为空白格的填充词语填入空白格。若待校验词语不为“天气”,如假设为“北京”。此时则说明前面的“告诉”和“我”不准确,需要重新进行非槽位词的选取。
其中,具体的待校验词语选取方法,亦可以参考上述对非槽位词的选取,即利用语言模型计算各个槽位词的生成概率,并将其中最高生成概率的槽位词作为待校验词语。其原理与S502基本一致,因此此处不予赘述。或者利用公式(1)来进行槽位词选取。由于语言模型进行生成概率计算时,会将当前位置之前的语句内容考量进去。因此已有的r1个待填入词语亦为语言模型的输入数据。
S505,若第一待校验词语与第一个第三词语相同,则将r1个第一待填入词语填充至第一个位置处的空白格中,完成当次词语填充。
S506,若第一待校验词语与第一个第三词语不相同,则返回执行S503的步骤,直至得到的第一待校验词语与第一个第三词语相同。
当预测出的待校验词语与第一个第三词语相同,则说明可对第一位置处的空白格进行词语填充。若不相同,则需要重新进行非槽位词的选取,因此此时本申请实施例会返回执行S502的步骤。由于此时系统词典和临时词典内容均未发生变化,因此为了防止每次都是选取相同的非槽位词,在本申请实施例中,S502对第一个待填入词语的选取为不重复选取。即每次选取的第一个待填入词语是不同的。同时,由于对第一个待填入词语的选取所依据的总生成概率情况没有发生变化,因此在返回S502时,对于第一个待填入词语可以不再重新计算一次各个非槽位词的总生成概率,而是可以采用原来计算出的数据进行处理。
作为本申请的一个可选实施例,考虑到实际应用中可能会出现一直到遍历所有非槽位词,都无法得到待校验词语与第一个第三词语相同的情况。此时S506可能会无法正常正常终止。为了应对这一情况,本申请实施例在图5所示实施例的基础上,还可以包括:S507-S513。
S507,若系统词典和临时词典中,所有非槽位词均被选作过第一个第一待填入词语,且没有得到与第一个第三词语相同的第一待校验词语,则将第一次选取的r1个待填入词语填充至第一个位置处的空白格中,完成当次词语填充。
由于可能会出现一直到遍历所有非槽位词,都无法得到待校验词语与第一个第三词语相同的情况。此时本申请实施例会将第一次选取的r1个待填入词语填充至第一位置出的空白格中,以完成当次词语填充。
作为本申请的一个可选实施例,在S403对第m个位置空白格进行hm+1次词语填充过程中,设每次填充的词语数为r2,0≤r2≤hm。在构建好临时词典的基础上,对r2个词语的单次填充操作包括:
S508,根据总生成概率从非槽位词中依次选取出r2个第二待填入词语,其中,对第一个第二待填入词语的选取操作为不重复的词语选取。
S509,根据系统词典、临时词典和r2个第二待填入词语,从槽位词中确定出一个第m待校验词语。
S510,若第m待校验词语与第m个第三词语相同,则将r2个第二待填入词语填充至第m个位置处的空白格中,完成当次词语填充。
S511,若第二待校验词语与第m个第三词语不相同,则返回执行S508的步骤,直至得到的第m待校验词语与第m个第三词语相同。
S512,若系统词典和临时词典中,所有非槽位词均被选作过第一个第二待填入词语,且没有得到与第m个第三词语相同的第m待校验词语,则将第一次选取的r2个待填入词语填充至第m个位置处的空白格中,完成当次词语填充。
对第m个位置空白格进行hm+1次词语填充原理和操作细节,与对第一个位置空白格进行h1+1次词语填充过程基本相同,因此可以参考S501至S506的说明,此处不予赘述。
作为本申请的一个可选实施例,在S405对第k+1个位置处空白格进行hk+1+1次词语填充过程中,设每次填充的词语数为r3,0≤r3≤hk+1。在构建好临时词典的基础上,对单次r3个词语的填充操作包括:
S513,根据系统词典和临时词典,计算各个非槽位词的生成概率,根据生成概率从非槽位词中依次选取出r3个第三待填入词语,并填充至第k+1个位置处的空白格中,完成当次词语填充。
对第k+1个位置空白格进行hk+1+1次词语填充原理和操作细节,与对第一个位置空白格进行h1+1次词语填充过程基本相同,因此可以参考S501至S506的说明,此处不予赘述。此处仅对不同之处进行说明:
由于第k+1个位置即为最后一个位置,该位置之后已经没有了词语。即在本申请实施例中无法利用预测待校验词语的方式来验证待填入词语的可靠性。因此本申请实施例会利用首次选取出的r3个第三待填入词语进行空白格的填充。
作为本申请的一个可选实施例,对于k=1的情况,与k>1的情况下进行空白格填充的原理相同,但没有其中对中间位置空白格的填充操作。因此具体的操作细节和原理,此处不予赘述,可参考S501-S507以及S513的相关说明。
本申请实施例通过设置系统词典,并为每种意图独立设置槽位词。使得对于每种意图而言其槽位词和非槽位词范围都是适宜的,不会受到其他意图影响。进而使得对槽位词的筛选和对非槽位词的填充,准确性更高。同时还构建了临时词典,可以充分利用原语句内的词语信息,进而使得选取出的非槽位词可以更加适合筛选出的槽位词。同时基于系统词典、临时词典和语句的时序性,来对非槽位词进行选取,并基于实际已有的槽位词对选取的非槽位词进行校验。使得对非槽位词的选取效果得到保障,进而使得重组语句的质量较佳。基于该质量较佳的重组语句进行意图识别,可以极大地提高意图识别的成功率,以及识别结果的准确率。
S206,对重组后的待处理语句进行意图识别,判断是否识别成功;若成功,则得到对待处理语句的意图识别结果,完成对待处理语句的意图识别;若识别失败,则返回执行步骤S204。
在得到重组语句之后,本申请实施例开始对重组进行意图识别。若意图识别成功,得到了对应的意图识别结果。说明此次的语句改写成功,此时可以结束对待处理语句的识别。并可以根据实际需求对意图识别结果进行存储或者发送。而若意图识别识别,则说明此次的语句改写仍无法满足实际需求。因此此时本申请实施例会返回执行步骤S204对目标语句的选取操作,以得到新的目标语句,并重新进行基于目标语句的原语句重组,进而得到新的重组语句。再对最新的重组语句进行意图识别,并继续根据是否识别成功,来确定是否需要继续进行语句改写和意图识别。其中,本申请实施例不对重组语句具体的意图识别方法进行过多限定,可由技术人员根据实际情况进行选取或设定。例如,在一些可选实施例中,可以采用一些已有的意图识别模型进行处理识别。而在另一些可选实施例中,亦可以使用一些经过更新优化后的意图识别模型进行处理识别,此时本申请实施例可以同时利用意图识别模型更新优化和语句重组两种方式,来实现对语句意图识别效率和准确率的有效提升。在又一些实施例中,亦可以由技术人员自行选取或设计一些意图识别算法,并进行本申请实施例对重组语句的意图识别。
由上述说明可知,当意图识别失败时,本申请实施例会进入一个对原语句循环重组识别的操作。实际应用中,可以有多种方式停止该循环操作,以防止陷入死循环。例如,当意图识别成功时,此时已得到原语句的意图,因此无需再进行循环重组。又例如当所有的参考语句均已被选取时,此时说明根据参考语句难以成功改写原语句。如当原语句的意图本来就是无法识别的意图时,无论如何改写,都会无法识别原语句的意图。此时亦可以选择停止循环操作,并判定无法对原语句进行意图识别。另外,技术人员亦可以根据实际应用需求来设定其他的循环停止条件,此处不做过多限定。
在对原语句进行意图识别时,本申请实施例会根据意图已知且相似度最高的样本语句对原语句进行语句重组,并利用意图识别模型对重组后的语句进行意图识别。由于意图下样本语句的表达方式可以根据实际需求进行设置,因此基于相关度最高的样本语句对原语句进行语句重组,可以实现对原语句表达方式进行调整,实现对原语句的泛化和表达方式的调整。而在意图识别失败时,重新利用未提取过的样本语句中相关度最高的样本语句对原语句进行语句重组,并对重组后的语句进行意图识别。使得在单次调整不适合时,可以继续进行其他表达方式的调整尝试,直至识别成功。因此本申请实施例可以在不对原意图识别模型进行更新优化的情况下,实现对原语句的自适应改写,使得原语句变成原意图识别模型可处理识别的语句。进而实现对不同表达方式语句的兼容处理,提高了对语句意图识别成功的概率,同时使得意图识别结果的准确性亦得到提升。因此本申请实施例可以提高现有技术对于语句意图识别的能力。
作为本申请的一个实施例,考虑到实际应用中除了意图识别以外,NLP领域中还有许多应用场景可以应用到语句改写技术。例如在进行各种语言模型训练时,需要收集大量的语句作为语料进行模型训练,以保障训练出来的语言模型的效果。但实际应用中,对语料的收集难度大耗时长。此时若可以通过对有限语料进行合理的改写,进而实现对语句的泛化,得到更多有效的语料。可以极大地提高对语料收集的难度,使得语言模型训练成本大大降低。又例如在一些语言翻译的场景中,采用的翻译技术可能是由第三方合作商提供的。此时翻译的结果可靠性较差,极有可能无法满足实际用户的需求。如不同地区的人说话习惯不同。在此基础上,若可以通过对翻译结果的改写,使得最终输出给用户的语句能够满足实际用户的语言习惯。此时可以极大地提高翻译的准确性和有效性,亦可提高与用户的人机交互效率。
为了实现对语句的改写,在本申请实施例中,对语句的改写流程包括:
获取待处理语句,获取与待处理语句关联的目标语句。
从目标语句中筛选出词语类型属于第一类型的第一词语,并获取在目标语句内各个第一词语之间的第一相对位置数据。
从待处理语句中筛选出词语类型属于第一类型的第二词语,并根据第一相对位置数据对第二词语进行排序,得到排序后的第三词语。
基于第三词语进行语句生成,得到改写后的待处理语句。
其中,本申请实施例的操作细节和原理等,与图3所示实施例基本相同(图3所示实施例中的重组,即为本申请实施例中的改写),因此可以参考图3所示实施例的相关说明,此处不予赘述。此处仅对本申请实施例与图3所示实施例之间的差异进行说明如下:
目标语句是用于对原语句进行改写的参考对象,在本申请实施例中,目标语句的来源此处不做过多限定,可由技术人员根据实际需求选取或设定。例如当应用在语料泛化的场景时,目标语句可以是一些已经收集到作为语料的语句。而在对翻译结果进行改写的场景中,目标语句则可以是用户实际日常说出的一些语句。作为本申请的一个可选实施例,亦可参考图3所示实施例,在技术人员预设好一些作为参考的语句的基础上,在通过对原语句进行意图预测,并根据预测意图来对这些参考语句进行筛选,再确定出实际使用的目标语句。
此外,在与本申请实施例不存在逻辑矛盾或冲突的基础上,图3所示实施例、图4A至图4D所示实施例和图5所示实施例,以及对图3所示实施例、图4A至图4D所示实施例和图5所示实施例的说明中,所涉及一些实施例细化技术方案、优化技术方案和替换技术方案等。均可以与本申请实施例进行结合应用。具体可参考上述对图3所示实施例、图4A至图4D所示实施例和所示实施例的说明内容,此处不予赘述。例如,参考图5所示实施例,可以预先设置一个系统词典并实时构建临时词典,再基于两个词典来计算各个槽位词和非槽位词的生成概率,并基于生成概率来实现词语填充,进而得到填充后,改写完成的语句。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。还应理解的是,虽然术语“第一”、“第二”等在文本中在一些本申请实施例中用来描述各种元素,但是这些元素不应该受到这些术语的限制。这些术语只是用来将一个元素与另一元素区分开。例如,第一表格可以被命名为第二表格,并且类似地,第二表格可以被命名为第一表格,而不背离各种所描述的实施例的范围。第一表格和第二表格都是表格,但是它们不是同一表格。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的语句意图识别方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
例如,所述终端设备可以是WLAN中的站点(STAION,ST),可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(WirelessLocal Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、车联网终端、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备、无线调制解调器卡、电视机顶盒(set top box,STB)、用户驻地设备(customer premise equipment,CPE)和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G网络中的终端设备或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)网络中的终端设备等。
作为示例而非限定,当所述终端设备为可穿戴设备时,该可穿戴设备还可以是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,如智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
图6是本申请一实施例提供的终端设备的结构示意图。如图6所示,该实施例的终端设备6包括:至少一个处理器60(图6中仅示出一个)、存储器61,所述存储器61中存储有可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述各个语句意图识别方法实施例中的步骤,例如图2所示的步骤201至206。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能。
所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入发送设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61在一些实施例中可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经发送或者将要发送的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使对应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种语句意图识别方法,其特征在于,包括:
获取待处理语句,并对所述待处理语句进行意图预测,得到至少一个预测意图;
获取各个所述预测意图关联的样本语句;
基于所述样本语句对所述待处理语句进行语句重组,得到重组后的所述待处理语句;
对重组后的所述待处理语句进行意图识别,得到对所述待处理语句的意图识别结果。
2.根据权利要求1所述的语句意图识别方法,其特征在于,所述基于所述样本语句对所述待处理语句进行语句重组,得到重组后的所述待处理语句;对重组后的所述待处理语句进行意图识别,得到对所述待处理语句的意图识别结果,包括:
从所述样本语句中不重复地选取出一条语句作为目标语句;
基于所述目标语句对所述待处理语句进行语句重组,得到重组后的所述待处理语句;
对重组后的所述待处理语句进行意图识别;
若意图识别成功,则得到对所述待处理语句的意图识别结果;
若意图识别失败,则返回执行所述从所述样本语句中不重复地选取出一条语句作为目标语句的操作,直至对重组后的所述待处理语句意图识别成功。
3.根据权利要求2所述的语句意图识别方法,其特征在于,在所述从所述样本语句中不重复地选取出一条语句作为目标语句之前,还包括:
获取所述样本语句与所述待处理语句的相关度;
相应的,所述从所述样本语句中不重复地选取出一条语句作为目标语句,包括:
从所述样本语句中不重复地选取出所述相关度最高的一条语句作为所述目标语句。
4.根据权利要求3所述的语句意图识别方法,其特征在于,在所述从所述样本语句中不重复地选取出一条语句作为目标语句之前,包括:
获取所述样本语句与所述待处理语句的相似度,并将所述相似度最高的至少一条所述样本语句作为参考语句;
相应的,所述从所述样本语句中不重复地选取出一条语句作为目标语句,包括:
从所述参考语句中不重复地选取出所述相关度最高的一条语句作为所述目标语句。
5.根据权利要求4所述的语句意图识别方法,其特征在于,所述获取所述样本语句与所述待处理语句的相关度,包括:
获取各个所述预测意图的置信度;
基于所述样本语句与所述待处理语句的所述相似度,以及所述样本语句所属所述预测意图的置信度,确定所述样本语句与所述待处理语句的所述相关度。
6.根据权利要求2至5任意一项所述的语句意图识别方法,其特征在于,所述基于所述目标语句对所述待处理语句进行语句重组,得到重组后的所述待处理语句,包括:
从所述目标语句中筛选出词语类型属于第一类型的第一词语,并获取在所述目标语句内各个所述第一词语之间的第一相对位置数据;
从所述待处理语句中筛选出词语类型属于所述第一类型的第二词语,并根据所述第一相对位置数据对所述第二词语进行排序,得到排序后的第三词语;
基于所述第三词语进行语句生成,得到重组后的所述待处理语句。
7.根据权利要求6所述的语句意图识别方法,其特征在于,设所述第三词语的数量为k,其中k为整数且1≤k,所述基于所述第三词语进行语句生成,得到重组后的所述待处理语句,包括:
若k>1,在第一个所述第三词语之前的位置、相邻两个的所述第三词语之间的位置以及最后一个所述第三词语之后的位置,共k+1个位置处,依次进行词语填充,得到由所述第三词语和填充的第四词语构成的重组后的所述待处理语句。
8.根据权利要求7所述的语句意图识别方法,其特征在于,所述在第一个所述第三词语之前的位置、相邻两个的所述第三词语之间的位置以及最后一个所述第三词语之后的位置,共k+1个位置处,依次进行词语填充,得到由所述第三词语和填充的第四词语构成的重组后的所述待处理语句包括:
在所述k+1个位置中的第一个位置处插入h1个第一空白格,第m个位置处插入hm个第二空白格,第k+1个位置处插入hk+1个第三空白格,其中,m为整数,1<m≤k,h1、hm和hk+1均为自然数;
相应的,对所述第一个位置处的空白格进行词语填充的操作,包括:
在所述第一个位置处的所述h1个第一空白格中,进行h1+1次的词语填充,并计算每一次词语填充后的所述待处理语句的第一正确概率,其中,h1+1次的词语填充中,每次填充的词语数r1均不相同,r1为整数,0≤r1≤h1;
筛选出所述第一正确概率最高的词语填充后的所述待处理语句,并将相应填充的词语作为所述第一个位置对应的所述第四词语;
相应的,对所述第m个位置处的空白格进行词语填充的操作,包括:
在所述第m个位置处的所述hm空白格中,进行hm+1次的词语填充,并计算每一次词语填充后的所述待处理语句的第二正确概率,其中,hm+1次的词语填充中,每次填充的词语数r2均不相同,r2为整数,0≤r2≤hm;
筛选出所述第二正确概率最高的词语填充后的所述待处理语句,并将相应填充的词语作为所述第m个位置对应的所述第四词语;
相应的,对所述第k+1个位置处的空白格进行词语填充的操作,包括:
在所述第k+1个位置处的所述hk个空白格中,进行hk+1+1次的词语填充,并计算每一次词语填充后的所述待处理语句的第三正确概率,其中,hk+1+1次的词语填充中,每次填充的词语数r3均不相同,r3为整数,0≤r3≤hk+1;
筛选出所述第三正确概率最高的词语填充后的所述待处理语句,将相应填充的词语作为所述第k+1个位置对应的所述第四词语,得到重组后的所述待处理语句;
其中,所述第四词语的词语类型不属于所述第一类型。
9.根据权利要求8所述的语句意图识别方法,其特征在于,在所述基于所述第三词语进行语句生成,得到重组后的所述待处理语句之前,还包括:
获取预设的系统词典,所述系统词典中记录有至少一种意图、每种意图下关联的属于所述第一类型的词语类型,以及每种属于所述第一类型的词语类型下包含的槽位词;
根据所述系统词典以及所述目标语句所属的所述预测意图,确定出所述目标语句对应的属于所述第一类型的第一词语类型,从所述目标语句内中筛选出不属于所述第一词语类型的词语,并基于筛选出来的词语和所述待处理语句中包含的所有词语,构建临时词典;
相应的,所述从所述目标语句中筛选出词语类型属于第一类型的第一词语,包括:
从所述目标语句中筛选出属于所述第一词语类型的所述第一词语;
相应的,所述从所述待处理语句中筛选出词语类型属于所述第一类型的第二词语,包括:
从所述待处理语句中筛选出属于所述第一词语类型的所述第二词语。
10.根据权利要求9所述的语句意图识别方法,其特征在于,在所述第一个位置处的所述h1个第一空白格中,进行h1+1次的词语填充过程中,对r1个词语的单次填充操作,包括:
确定出所述系统词典和所述临时词典中,所述第一词语类型包含的所有第一槽位词,以及不属于所述第一词语类型的所有第一非槽位词;
根据所述系统词典和所述临时词典计算各个所述第一非槽位词的总生成概率;
基于所述总生成概率从所述第一非槽位词依次选取出r1个第一待填入词语,其中,对第一个所述第一待填入词语的选取操作为不重复的词语选取操作;
根据所述系统词典、所述临时词典和r1个所述第一待填入词语,从所述第一槽位词中确定出一个第一待校验词语;
若所述第一待校验词语与第一个所述第三词语相同,则将r1个所述第一待填入词语填入至所述第一个位置处的所述h1个第一空白格中,完成当次的填充操作;
若所述第一待校验词语与第一个所述第三词语不相同,则返回执行所述基于所述总生成概率从所述第一非槽位词依次选取出r1个第一待填入词语的操作,直至得到的所述第一待校验词语与第一个所述第三词语相同。
11.根据权利要求10所述的语句意图识别方法,其特征在于,在所述第m个位置处的所述hm个第二空白格中,进行hm+1次的词语填充过程中,对r2个词语的单次填充操作,包括:
基于所述总生成概率从所述第一非槽位词依次选取出r2个第二待填入词语,其中,对第一个所述第二待填入词语的选取操作为不重复的词语选取操作;
根据所述系统词典、所述临时词典和r2个所述第二待填入词语,从所述第一槽位词中确定出一个第二待校验词语;
若所述第二待校验词语与第m个所述第三词语相同,则将r2个所述第二待填入词语填入至所述第m个位置处的所述hm个第二空白格中,完成当次的填充操作;
若所述第二待校验词语与第m个所述第三词语不相同,则返回执行所述基于所述总生成概率从所述第一非槽位词依次选取出r2个第二待填入词语的操作,直至得到的所述第二待校验词语与第m个所述第三词语相同。
12.根据权利要求6所述的语句意图识别方法,其特征在于,设所述第三词语的数量为k,其中k为整数且1≤k,所述基于所述第三词语进行语句生成,得到重组后的所述待处理语句,包括:
若k=1,在所述第三词语前后位置处依次进行词语填充,得到由所述第三词语和填充的第四词语构成的重组后的所述待处理语句。
13.根据权利要求12所述的语句意图识别方法,其特征在于,所述在所述第三词语前后位置处依次进行词语填充,得到由所述第三词语和填充的所述第四词语构成的重组后的所述待处理语句,包括:
在所述第三词语之前的位置处插入h1个第一空白格,所述第三词语之后的位置处插入h2个第二空白格;
在所述h1个第一空白格中进行h1+1次的词语填充,并计算每一次词语填充后的所述待处理语句的第一正确概率,其中,h1+1次的词语填充中,每次填充的词语数r1均不相同,r1为整数,且0≤r1≤h0;
筛选出所述第一正确概率最高的词语填充后的所述待处理语句,并将相应填充的词语作为所述第三词语之前的位置对应的所述第四词语;
在所述h2个第二空白格中,进行h2+1次的词语填充,并计算每一次词语填充后的待处理语句的第三正确概率,其中,h2+1次的词语填充中,每次填充的词语数r3均不相同,r3为整数,0≤r3≤h2+1;
筛选出所述第三正确概率最高的词语填充后的所述待处理语句,将相应填充的词语作为所述第三词语之后位置对应的所述第四词语,得到重组后的所述待处理语句;其中,所述第四词语的词语类型不属于所述第一类型。
14.一种终端设备,其特征在于,所述终端设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至13任一项所述方法的步骤。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至13任一项所述方法的步骤。
16.一种芯片,其特征在于,所述芯片包括存储器和处理器,所述存储器和处理器耦合,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时使得所述芯片执行如权利要求1至13任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010539858.0A CN113806469A (zh) | 2020-06-12 | 2020-06-12 | 语句意图识别方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010539858.0A CN113806469A (zh) | 2020-06-12 | 2020-06-12 | 语句意图识别方法及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806469A true CN113806469A (zh) | 2021-12-17 |
Family
ID=78892255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010539858.0A Pending CN113806469A (zh) | 2020-06-12 | 2020-06-12 | 语句意图识别方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806469A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676691A (zh) * | 2022-05-27 | 2022-06-28 | 深圳市人马互动科技有限公司 | 一种识别方法、系统、设备以及计算机可读存储介质 |
CN117316159A (zh) * | 2023-11-30 | 2023-12-29 | 深圳市天之眼高新科技有限公司 | 车辆语音控制方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170140754A1 (en) * | 2015-03-20 | 2017-05-18 | Kabushiki Kaisha Toshiba | Dialogue apparatus and method |
CN109460458A (zh) * | 2018-10-29 | 2019-03-12 | 清华大学 | 查询改写意图的预测方法及装置 |
CN109815492A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种基于识别模型的意图识别方法、识别设备及介质 |
CN110111787A (zh) * | 2019-04-30 | 2019-08-09 | 华为技术有限公司 | 一种语义解析方法及服务器 |
CN110209446A (zh) * | 2019-04-23 | 2019-09-06 | 华为技术有限公司 | 一种人机对话系统中组合槽位的配置方法及装置 |
CN110659366A (zh) * | 2019-09-24 | 2020-01-07 | Oppo广东移动通信有限公司 | 语义解析方法、装置、电子设备以及存储介质 |
US20200066262A1 (en) * | 2017-10-23 | 2020-02-27 | Tencent Technology (Shenzhen) Company Limited | Session information processing method and device and storage medium |
CN111159526A (zh) * | 2019-12-26 | 2020-05-15 | 腾讯科技(深圳)有限公司 | 查询语句处理方法、装置、设备及存储介质 |
-
2020
- 2020-06-12 CN CN202010539858.0A patent/CN113806469A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170140754A1 (en) * | 2015-03-20 | 2017-05-18 | Kabushiki Kaisha Toshiba | Dialogue apparatus and method |
US20200066262A1 (en) * | 2017-10-23 | 2020-02-27 | Tencent Technology (Shenzhen) Company Limited | Session information processing method and device and storage medium |
CN109460458A (zh) * | 2018-10-29 | 2019-03-12 | 清华大学 | 查询改写意图的预测方法及装置 |
CN109815492A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种基于识别模型的意图识别方法、识别设备及介质 |
CN110209446A (zh) * | 2019-04-23 | 2019-09-06 | 华为技术有限公司 | 一种人机对话系统中组合槽位的配置方法及装置 |
CN110111787A (zh) * | 2019-04-30 | 2019-08-09 | 华为技术有限公司 | 一种语义解析方法及服务器 |
CN110659366A (zh) * | 2019-09-24 | 2020-01-07 | Oppo广东移动通信有限公司 | 语义解析方法、装置、电子设备以及存储介质 |
CN111159526A (zh) * | 2019-12-26 | 2020-05-15 | 腾讯科技(深圳)有限公司 | 查询语句处理方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
乔振浩;车万翔;刘挺;: "基于问题生成的知识图谱问答方法", 智能计算机与应用, no. 05, pages 1 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676691A (zh) * | 2022-05-27 | 2022-06-28 | 深圳市人马互动科技有限公司 | 一种识别方法、系统、设备以及计算机可读存储介质 |
CN117316159A (zh) * | 2023-11-30 | 2023-12-29 | 深圳市天之眼高新科技有限公司 | 车辆语音控制方法、装置、设备及存储介质 |
CN117316159B (zh) * | 2023-11-30 | 2024-01-26 | 深圳市天之眼高新科技有限公司 | 车辆语音控制方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110111787B (zh) | 一种语义解析方法及服务器 | |
CN110910872B (zh) | 语音交互方法及装置 | |
CN112269853B (zh) | 检索处理方法、装置及存储介质 | |
WO2022052776A1 (zh) | 一种人机交互的方法、电子设备及系统 | |
CN111970401B (zh) | 一种通话内容处理方法、电子设备和存储介质 | |
CN112130714B (zh) | 可进行学习的关键词搜索方法和电子设备 | |
CN104123937A (zh) | 提醒设置方法、装置和系统 | |
CN111881315A (zh) | 图像信息输入方法、电子设备及计算机可读存储介质 | |
CN116415594A (zh) | 问答对生成的方法和电子设备 | |
WO2021254411A1 (zh) | 意图识别方法和电子设备 | |
CN110866254B (zh) | 一种检测漏洞方法与电子设备 | |
WO2022100222A1 (zh) | 信息检索方法、装置、系统及存储介质 | |
CN113806469A (zh) | 语句意图识别方法及终端设备 | |
WO2021185174A1 (zh) | 一种电子卡的选取方法、装置、终端以及存储介质 | |
CN114691839A (zh) | 一种意图槽位识别方法 | |
CN113742460A (zh) | 生成虚拟角色的方法及装置 | |
CN114465975B (zh) | 一种内容推送方法、装置、存储介质和芯片系统 | |
CN113497835B (zh) | 多屏交互方法、电子设备及计算机可读存储介质 | |
CN116861066A (zh) | 应用推荐方法和电子设备 | |
CN114817521B (zh) | 搜索方法和电子设备 | |
WO2024051729A1 (zh) | 一种音译方法及电子设备 | |
WO2024087202A1 (zh) | 一种搜索方法、模型训练方法、装置及存储介质 | |
WO2023142938A1 (zh) | 地图查询方法及电子设备 | |
WO2024082914A1 (zh) | 视频问答方法及电子设备 | |
CN116415081A (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 |