语义识别方法、装置、终端及存储介质与流程
本发明实施例涉及计算机技术领域,特别涉及一种语义识别方法、装置、终端及存储介质。
背景技术:
随着计算机技术的不断发展,出现了许多具有语义识别功能的智能终端,用户只需要对终端“说话”,终端就可以确定用户的意图,即理解用户输入的语音的语义,从而为用户提供服务。
目前,终端主要是通过正则匹配规则进行语义识别,发明人发现现有技术中至少存在如下问题:对于有着很多大词表的业务,例如音乐业务中的歌手词表、歌曲词表等都是包括几十万甚至上百万数据的词表,利用正则匹配规则编译涉及这些大词表的模板时,需要耗费较长的时间,导致语义识别的速度较慢。
技术实现要素:
本发明实施例的目的在于提供一种语义识别方法、装置、终端及存储介质,可以提高语义识别的速度。
为解决上述技术问题,本发明的实施例提供了一种语义识别方法,包括:将语音信息转换成文本信息,并对所述文本信息进行分词得到多个词槽值;根据预先构建的字典树,查找每个所述词槽值对应的词槽;根据所述词槽,获取目标用户意图;根据所述目标用户意图和所述多个词槽值,得到语义识别结果。
本发明的实施例还提供了一种语义识别装置,包括:分词模块,用于将语音信息转换成文本信息,并对所述文本信息进行分词得到多个词槽值;查找模块,用于根据预先存储的字典树,查找所述词槽值对应的目标词槽;获取模块,用于根据所述词槽,获取目标用户意图;语义识别模块,用于根据所述用户意图和所述多个词槽值,得到语义识别结果。
本发明的实施例还提供了一种终端,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一所述的语义识别方法。
本发明的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的语义识别方法。
本发明实施例相对于现有技术而言,将语音信息转换成文本信息,并对文本信息进行分词得到多个词槽值,根据预先构建的字典树,查找每个词槽值对应的词槽,由于在利用字典树查找词槽时,可以利用词槽值的公共前缀来减少查询时间,可以减少比较的次数,较快的查找到每个词槽值对应的词槽;从而使得根据词槽获取目标用户意图,并根据目标用户意图和多个词槽值得到语音识别结果较快,即提高了语义识别的速度。
另外,所述根据所述词槽,获取目标用户意图,包括:将所述词槽进行两两组合;获取每个所述组合对应的用户意图;根据每个所述组合对应的用户意图,获取目标用户意图。通过这样的方法,将所有的词槽进行了两两组合,考虑了任意两个词槽形成的组合对应的用户意图,使得得到的目标用户意图更加准确。
另外,所述根据每个所述组合对应的用户意图,获取目标用户意图,包括:获取每个所述组合对应的用户意图组成的集合的交集,得到目标用户意图。将每个组合对应的用户意图组成的集合的交集作为目标用户意图时,所有的组合均对应有目标用户意图,这样得到的目标用户意图更加准确。
另外,所述获取每个所述组合对应的用户意图,包括:对于任一所述组合,根据预先构建的三元组,获取所有的包含所述组合中的两个所述词槽的目标三元组;获取所有的所述目标三元组中的用户意图,得到所述组合对应的用户意图。由于预先构建的三元组的结构较清晰,所以根据预先构建的三元组,可以更方便快捷的得到每个组合对应的用户意图。
另外,在所述根据所述词槽,获取目标用户意图之后,还包括:获取所述目标用户意图对应的词槽;从每个所述词槽值对应的词槽中选取属于所述目标用户意图对应的词槽的目标词槽;所述根据所述目标用户意图和所述多个词槽值,得到语义识别结果,包括:根据所述目标用户意图和所述目标词槽对应的词槽值,得到语义识别结果。由于词槽值对应的词槽中可能存在不属于目标用户意图对应的词槽的词槽,所以选取出目标词槽,并根据目标用户意图和目标词槽对应的词槽值得到的语义识别结果更加的准确。
另外,所述字典树通过以下方式预先构建:建立空的字典树;选取样本词槽值,并在所述空的字典树中确定所述样本词槽值的路径;将所述样本词槽值加入所述路径的各子节点,以及将所述样本词槽值对应的词槽加入所述路径的叶子节点。通过这样的方法,可以实现字典树的预先构建。
另外,所述三元组通过以下方式预先构建:获取样本用户意图和所述样本用户意图对应的样本词槽;将所述样本词槽进行组合,并将所述组合中的两个所述样本词槽和所述样本用户意图构建三元组。通过这样的方法,可以实现三元组的预先构建。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施例的语义识别方法的流程图;
图2是根据本发明第一实施例的步骤102中字典树预先构建的流程图;
图3是根据本发明第一实施例的步骤103的一种具体实现方式的流程图;
图4是根据本发明第一实施例的步骤1032的一种具体实现方式的流程图;
图5是根据本发明第一实施例的步骤10321中三元组预先构建的流程图;
图6是根据本发明第二实施例的语义识别方法的流程图;
图7是根据本发明第三实施例的语义识别装置的结构示意图;
图8是根据本发明第四实施例中的终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种语义识别方法,应用于终端,例如音箱、手机等。具体流程如图1所示,包括:
步骤101,将语音信息转换成文本信息,并对文本信息进行分词得到多个词槽值。
具体地说,终端在拾取到用户的语音信息之后,将语音信息转换成文本信息,并采用内部存储的分词工具对文本信息进行分词得到多个词槽值,分词工具可以但不限于为结巴jieba分词。例如:用户对终端说了一句“我想听x歌手的x歌”,终端会先将用户的语音信息转换成文本信息,分词工具可能会把文本信息分词为“我”、“想”、“听”、“x歌手”、“的”、“x歌”,其中,“我”、“想”、“听”、“x歌手”、“的”、“x歌”为词槽值。
步骤102,根据预先构建的字典树,查找每个词槽值对应的词槽。
具体地说,终端内部存储有预先构建的字典树,根据预先构建的字典树,在字典树中分别查找每个词槽值所属的路径,路径的叶子节点为词槽,这样就可以查找到每个词槽值对应的词槽。例如:根据预先构建的字典树,查找到“我”对应的词槽为“i”、“想”对应的词槽为“want”、“听”对应的词槽为“play”、“x歌手”对应的词槽为“singer”、“的”对应的词槽为“de”、“x歌”对应的词槽为“song”。
在一个例子中,字典树预先构建的具体流程图如图2所示,包括:
步骤1021,建立空的字典树。
步骤1022,选取样本词槽值,并在空的字典树中确定样本词槽值的路径。
步骤1023,将样本词槽值加入路径的各子节点,以及将样本词槽值对应的词槽加入路径的叶子节点。
具体地说,先建立一个空的字典树,并查找选取的样本词槽值的路径,若未查找到样本词槽值的路径,则新建一条路径插入字典树,将样本词槽值的各字符加入路径的各子节点,以及将样本词槽值对应的词槽加入路径的叶子节点。以下以选取的样本词槽值包括两个字符为例进行说明,然不以此为限,从字典树的根节点出发,若样本词槽值的第一个字符在根节点下接的子节点中不存在,则从根节点分出一个分支,作为一条新的路径插入字典树,新的路径的各子节点与样本词槽值的各字符的个数相同,将样本词槽值的各字符加入路径的各子节点,以及将样本词槽值对应的词槽加入路径的叶子节点;若样本词槽值的第一个字符在根节点下接的子节点中已经存在,查找第一个字符所在的子节点下接的子节点,若样本词槽值的第二个字符在下接的子节点中不存在,则从第一个字符所在的子节点分出一个分支,作为一条新的路径插入字典树,新的路径的各子节点与样本词槽值的剩余的字符个数相同,并将样本词槽值的剩余的字符加入路径的各子节点,以及将样本词槽值对应的词槽加入路径的叶子节点,若样本词槽值的第二个字符在下接的子节点中存在,说明该词槽值以及该词槽值对应的词槽已经加入到字典树中。
步骤103,根据词槽,获取目标用户意图。
在一个例子中,根据词槽,获取目标用户意图的具体流程图如图3所示,包括:
步骤1031,将词槽进行两两组合。
步骤1032,获取每个组合对应的用户意图。
具体地说,终端中预先建立有组合和用户意图的对应关系,组合与用户意图之间的对应关系可以用列表形式、三元组形式等进行存储。终端根据存储的对应关系,可以获取每个组合对应的用户意图。
在一个例子中,获取每个组合对应的用户意图的具体流程图如图4所示,包括:
步骤10321,对于任一组合,根据预先构建的三元组,获取所有的包含组合中的两个词槽的目标三元组。
步骤10322,获取所有的目标三元组中的用户意图,得到组合对应的用户意图。
具体地说,终端遍历每个组合,当遍历到任一组合时,根据预先构建的三元组,获取所有的包含组合中的两个词槽的目标三元组,获取所有的目标三元组中的用户意图,得到组合对应的用户意图,当遍历完所有的组合,获取到每个组合对应的用户意图。以词槽want、play组成的组合(want,play)为例进行说明,若预先构建的三元组中,包括want、play的三元组为(playsong,want,play)和(listenbook,want,play),则(playsong,want,play)和(listenbook,want,play)为目标三元组,目标三元组中的用户意图为playsong和listenbook,所以可以得到(want,play)这个组合对应的用户意图为playsong和listenbook。由于预先构建的三元组的结构较清晰,所以根据预先构建的三元组,可以更方便快捷的得到每个组合对应的用户意图。
在一个例子中,三元组预先构建的具体流程图如图5所示,包括:
步骤103211,获取样本用户意图和样本用户意图对应的样本词槽。
步骤103212,将样本词槽进行组合,并将组合中的两个样本词槽和样本用户意图构建三元组。
具体地说,样本用户意图和样本用户意图对应的样本词槽可以是由用户输入终端,也可以是终端通过爬虫技术爬取得到,本实施例不限定样本用户意图和样本用户意图对应的样本词槽的获取方式,可以根据实际需要进行设定。终端将样本词槽进行组合,可以按照两两组合的方式,也可以按照任意组合的方式进行组合,本实施例不做具体限定,可以根据实际需要进行组合,在组合之后,终端将组合中的两个样本词槽和样本用户意图构建三元组,将所有的样本用户意图和样本用户意图对应的样本词槽均按照上述方式构建三元组,完成三元组的预先构建。例如:样本用户意图为playsong,样本用户意图对应的样本词槽为i、want、play、singer、de、song,若将样本词槽进行组合得到的组合为(i,want)、(want,play)、(play,singer)、(singer,de)、(de,song),并将组合中得两个样本词槽和样本用户意图构成三元组(playsong,i,want)、(playsong,want,play)、(playsong,play,singer)、(playsong,singer,de)、(playsong,de,song),将所有的样本用户意图和样本用户意图对应的样本词槽均按照上述方式构建三元组,完成三元组的预先构建。
步骤1033,根据每个组合对应的用户意图,获取目标用户意图。
在一个例子中,根据每个组合对应的用户意图,获取目标用户意图,包括:获取每个组合对应的用户意图组成的集合的交集,得到目标用户意图。
具体地说,终端将每个组合对应的用户意图作为一个集合,若各个集合存在交集,则得到的交集即为目标用户意图,例如:若(i,want)对应的用户意图为playsong、listenbook和listencrosstalk,(want,play)对应的用户意图为playsong、listenbook和listencrosstalk,(play,singer)对应的用户意图为playsong,(singer,de)对应的用户意图为playsong,(de,song)对应的用户意图为playsong,则每个组合对应的集合分别为{playsong,listenbook,listencrosstalk}、{playsong,listenbook,listencrosstalk}、{playsong}、{playsong}、{playsong},则得到的交集为{playsong},即,目标用户意图为{playsong};若各个集合不存在交集,则可以认为获取目标用户意图失败,或者也可以将大多数组合均包含的用户意图作为目标用户意图。当终端将每个组合对应的用户意图组成的集合的交集作为目标用户意图时,所有的组合均对应有目标用户意图,这样使得到的目标用户意图更加准确。
在一个例子中,也可以获取任意数量的组合对应的用户意图组成的集合的交集,得到目标用户意图。
在一个例子中,也可以将任意的两个词槽进行组合,获取每个组合对应的用户意图,并根据每个组合对应的用户意图,获取目标用户意图。
步骤104,根据目标用户意图和多个词槽中的所述词槽值,得到语义识别结果。
具体地说,终端将多个词槽值分别填充到目标用户意图对应的词槽中,即可得到语义识别结果。例如:目标用户意图playsong的词槽为“play”、“singer”、“de”“song”,进行分词得到的多个词槽值分别为“想”、“听”、“x歌手”、“的”、“x歌”,将“听”填充到“play”、“x歌手”填充到“singer”、“的”填充到“de”、“x歌”填充到“song”,得到语义识别结果为播放x歌手的x歌。
本实施例中,将语音信息转换成文本信息,并对文本信息进行分词得到多个词槽值,根据预先构建的字典树,查找每个词槽值对应的词槽,由于在利用字典树查找词槽时,可以利用词槽值的公共前缀来减少查询时间,可以减少比较的次数,较快的查找到每个词槽值对应的词槽;从而使得根据词槽获取目标用户意图,并根据目标用户意图和多个词槽值得到语音识别结果较快,即提高了语义识别的速度。
本发明的第二实施例涉及一种语义识别方法。第二实施例与第一实施例大致相同,主要区别之处在于:还需要从每个词槽值对应的词槽中选取属于目标用户意图对应的词槽的目标词槽,根据目标用户意图和目标词槽中的词槽值,得到语义识别结果。具体流程图如图6所示,包括:
步骤201,将语音信息转换成文本信息,并对文本信息进行分词得到多个词槽值。
步骤202,根据预先构建的字典树,查找每个词槽值对应的词槽。
步骤203,根据词槽,获取目标用户意图。
步骤201-203与第一实施例中的步骤101-103类似,,在此不再赘述。
步骤204,获取目标用户意图对应的词槽。
步骤205,从每个词槽值对应的词槽中选取属于目标用户意图对应的词槽的目标词槽。
步骤206,根据目标用户意图和目标词槽对应的词槽值,得到语义识别结果。
具体地说,终端得到的词槽值对应的词槽并不是均属于目标用户意图对应的词槽值,则终端先获取目标用户意图对应的词槽,并通过过滤器遍历每个词槽值对应的词槽,将不属于目标用户意图对应的词槽的词槽进行删除,从而可以从每个词槽值对应的词槽中选取属于目标用户意图对应的词槽的目标词槽,再将目标词槽对应的词槽值填充到用户意图对应的词槽中,即可得到语义识别结果。例如:每个词槽值对应的词槽分别为“我”对应的词槽为“i”、“想”对应的词槽为“want”、“听”对应的词槽为“play”、“x歌手”对应的词槽为“singer”、“的”对应的词槽为“de”、“x歌”对应的词槽为“song”,目标用户意图对应的词槽为“play”、“singer”、“song”,则将“i”、“want”“de”进行删除,而目标词槽为“play”、“singer”、“song”,将“听”填充到“play”、“x歌手”填充到“singer”、“x歌”填充到“song”,得到语义识别结果为播放x歌手的x歌。
本实施例中,由于词槽值对应的词槽中可能存在不属于目标用户意图对应的词槽的词槽,所以选取出目标词槽,并根据目标用户意图和目标词槽对应的词槽值得到的语义识别结果更加的准确。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施例涉及一种语义识别装置,如图7所示,包括:
分词模块301,用于将语音信息转换成文本信息,并对文本信息进行分词得到多个词槽值。
查找模块302,用于根据预先存储的字典树,查找词槽值对应的目标词槽。
获取模块303,用于根据词槽,获取目标用户意图。
语义识别模块304,用于根据用户意图和多个词槽值,得到语义识别结果。
在一个例子中,根据词槽,获取目标用户意图,包括:将词槽进行两两组合;获取每个所述组合对应的用户意图;根据每个组合对应的用户意图,获取目标用户意图。
在一个例子中,根据每个所述组合对应的用户意图,获取目标用户意图,包括:获取每个所述组合对应的用户意图组成的集合的交集,得到目标用户意图。
在一个例子中,获取每个组合对应的用户意图,包括:对于任一组合,根据预先构建的三元组,获取所有的包含组合中的两个词槽的目标三元组;获取所有的目标三元组中的用户意图,得到组合对应的用户意图。
在一个例子中,装置还包括选取模块;获取模块还用于获取目标用户意图对应的词槽,选取模块从每个词槽值对应的词槽中选取属于目标用户意图对应的词槽的目标词槽,语义识别模块具体用于根据目标用户意图和目标词槽对应的词槽值,得到语义识别结果。
在一个例子,字典树通过以下方式预先构建:建立空的字典树;选取样本词槽值,并在空的字典树中确定样本词槽值的路径;将样本词槽值加入路径的各子节点,以及将样本词槽值对应的词槽加入路径的叶子节点。
在一个例子,三元组通过以下方式预先构建:获取样本用户意图和样本用户意图对应的样本词槽;将样本词槽进行组合,并将组合中的两个样本词槽和样本用户意图构建三元组。
不难发现,本实施例为与第一实施例相对应的装置实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明第四实施例涉及一种终端,如图8所示,包括至少一个处理器402;以及,与至少一个处理器通信连接的存储器401;其中,存储器401存储有可被至少一个处理器402执行的指令,指令被至少一个处理器402执行,以使至少一个处理器402能够执行上述语义识别方法的实施例。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除