具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明将深度神经网络和模糊搜索相结合,基于大量的文本训练,可以有效地提取自然语言中的感兴趣的关键词,剔除无用词。例如,用户表述“最近有点烦,给我播一个大王让我来巡山”,可以提取感兴趣的词语“大王让我来巡山”,剔除其他无用词,再通过模糊搜索识别为歌曲名,为自然语言关键词提取和分析提供了一种方法。
本发明基于神经网络和模糊搜索的方法,先用神经网络将原始文本翻译为标准文本,这个过程没有任何属性标注,不需要大量的复杂的人工定义和干预。然后再用模糊搜索,对标准说法中的关键词进行搜索标注,最后用CRF得到可能的若干解析结果。本发明大大减少了人工工作量,并且既保留了神经网络鲁棒性高的优点,也保留了规则算法准确性高的优势。
如图1所示,本发明的实施例提供一种对自然语言进行处理的方法,包括:
S10、采用预先训练好的深度神经网络将接收到的用户说法转化为相应的标准说法;示例性的,当接收到用户输入的用户说法后,调用预先训练好的深度神经网络,把一般说法转为标准说法。例如,输入用户说法:给我放一下刘德华唱的忘情水好不好,输出标准说法:播放|刘德华|忘情水。
S20、采用模糊搜索算法对所述标准说法中的关键词进行标注以得到标准说法标注结果;
示例性地,对标准说法中的每个关键词进行搜索标注,比如,播放|刘德华|忘情水,通过模糊搜索,得到每个词的标注如下,播放-操作,刘德华-歌手名|影视演员,忘情水-歌曲名。值得注意的是,这里的模糊匹配是有容错机制的,开头提到的“大王让我来巡山”词库中是没有这首歌曲的,通过模糊搜索,我们可以获取跟它最相似最可能的歌曲“大王叫我来巡山”。
S30、基于预先训练的CRF模型对所述标准说法标注结果进行处理以得到解析结果。示例性地,使用CRF模型得到可能的解析结果,这里需要提前训练好属性标注的转移概率矩阵,即,某个标签后面跟其他标签的概率,比如,影视演员+歌曲名,这种说法几乎很少(事实上训练集中没有,而影视演员+电影名概率很大),则意味着这种解析方式不可靠。
CRF中,我们有两条解析方法,1)[操作][歌手名][歌曲名],2)[操作][影视演员][歌曲名],可以根据转移概率矩阵计算得出,解析方式2)概率几乎为0,而解析方式1)概率很大,因此,选择解析1)输出。
示例性地,转移概率矩阵构建如下。首先,假设只有4个关键词类型(“操作”、“歌手名”、“歌曲名”和“影视演员”),可以根据人工标注训练好它们相互转移的概率(这里只须最简单的计数法),比如,统计“歌手名”后面接“操作”、“歌曲名”、“影视演员”、“END”的次数分别是0,50,0,50,那么“歌手名”转移到“歌曲名”的概率可以近似为0.5,即P(“歌曲名”|“歌手名”)=0.5。同理,统计得到“影视演员”后面接“歌曲名”的概率近似为0,即P(“歌曲名”|“影视演员”)=0。
解析结果出现的概率计算如下:假设转移概率已经得到,现在可求出第一种解析出现的概率P(“START”,“操作”,“歌手名”,“歌曲名”,“END”)=P(“END”)P(“END”|“歌曲名”)P(“歌曲名”|“歌手名”)P(“歌手名”|“操作”)P(“操作”|“START”)P(“START”)。在举例的第二种解析中,P(“歌曲名”|“影视演员”)=0,所以整体解析结果出现概率为0。
本发明实施例的对自然语言进行处理的方法中,基于神经网络和模糊搜索的方法,先用神经网络将原始文本翻译为标准文本,这个过程没有任何属性标注,不需要大量的复杂的人工定义和干预。然后再用模糊搜索,对标准说法中的关键词进行搜索标注,最后用CRF得到可能的若干解析结果。本发明大大减少了人工工作量,并且既保留了神经网络鲁棒性高的优点,也保留了规则算法准确性高的优势。
如图2所示,在一些实施例中,预先训练所述深度神经网络包括:
S11、构造训练集,所述训练集中包括成对设置的用户说法和标准说法。其中,每一条标准说法对应于至少一条用户说法,并且至少一条用户说法中存在一条与标准说法相同的说法。
示例性地,生成训练集主要工作是构造(一般说法,标准说法)数据对,一般说法指用户常用的口语化说法,标准说法是与一般说法有相同含义的确定句式的说法,比如构造一条数据对(给我放一下刘德华唱的忘情水好不好,播放|刘德华|忘情水),注意,标准说法中使用了特殊标记“|”,用来区分关键词。
S12、以所述训练集中的用户说法作为输入,以相应的标准说法作为输出训练得到所述深度神经网络。
在一些实施例中,以所述训练集中的用户说法作为输入,以相应的标准说法作为输出训练得到所述深度神经网络包括:
对输入的用户说法进行分词处理,以得到多个词语;
分别将所述多个词语转化为相应的词向量并输入至神经网络层,以得到对应于所述多个词语的多个特征向量;
基于attention机制对所述多个特征向量进行加权处理;
将加权处理结果输入至所述神经网络层进行并以所述标准说法为目标训练得到所述深度神经网络。
示例性的,训练模型:一般说法=>标准说法;
这个步骤在实际使用时提前训练好,用的时候直接调用模型,把一般说法转为标准说法。已有多种算法可以实现从一般说法到标准说法的转换,这里以带attention机制的BLSTM算法为例,简述训练方法。
这个算法实际上是个翻译模型,分编码部分和解码部分,目的是输入一般说法,输出标准说法。编码部分,先对输入句子分词,然后每个词转化为向量,传入BLSTM中,得到每个词的特征表示;解码部分,加attention机制,依次输入标准说法每个词,输出最可能的下一个词,优化目标是,输出的词与标准说法一致。
本发明实施例中的基于编码-解码的翻译模型可以是基于主流的序列传导模型,都是基于RNN或者CNN的,其中能完美连接编码器和解码器的是注意力机制。也可以是谷歌所提出的框架Transformer,其完全基于注意力机制的。
以下以加attention机制的编解码的翻译模型为例进行说明,为了说明本部分的可实现性,本实施了仅仅以此为例但不限于此。
如图3所示为本发明中的翻译模型的一实施例的整体网络框架,该网络架构基于BLSTM实现,包括编码部分301和解码部分302,以“帮我播放忘情水”为例,编码部分301将输入“帮我”、“播放”、“忘情水”分别编码得到特征向量h1、h2和h3。之后基于attention机制对所得到的特征向量h1、h2和h3进行加权处理,当权重分配不一样的三种情况下分别得到特征向量c0、c1和c2,以作为解码部分302的输入,最后解码得到对应于“帮我播放忘情水”的标准说法“播放忘情水”。
本发明使用翻译模型,将杂乱无章的一般性说法,转换为包含关键词的标准说法,绕过了传统序列标注训练时属性冲突的问题,将属性标注交给模糊搜索,避免了精确匹配带来的鲁棒性不强的问题,最后用CRF做解析选择。整个关键词的提取和识别系统,既保留了规则算法的精确性的优点,也保留了以往统计算法鲁棒性强的优势。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
如图4所示,本发明的实施例还提供一种对自然语言进行处理的装置400,包括:
说法转换模块410,用于采用预先训练好的深度神经网络将接收到的用户说法转化为相应的标准说法;
标注模块420,用于采用模糊搜索算法对所述标准说法中的关键词进行标注以得到标准说法标注结果;
解析模块430,用于基于预先训练的CRF模型对所述标准说法标注结果进行处理以得到解析结果。
本发明实施例的对自然语言进行处理的装置,基于神经网络和模糊搜索的方法,先用神经网络将原始文本翻译为标准文本,这个过程没有任何属性标注,不需要大量的复杂的人工定义和干预。然后再用模糊搜索,对标准说法中的关键词进行搜索标注,最后用CRF得到可能的若干解析结果。本发明大大减少了人工工作量,并且既保留了神经网络鲁棒性高的优点,也保留了规则算法准确性高的优势。
如图5所示,在一些实施例中,本发明的对自然语言进行处理的装置还包括用于预先训练所述深度神经网络的训练模块500,所述训练模块500包括:
训练集构造单元510,用于构造训练集,所述训练集中包括成对设置的用户说法和标准说法;
训练单元520,用于以所述训练集中的用户说法作为输入,以相应的标准说法作为输出训练得到所述深度神经网络。
如图6所示,在本发明的对自然语言进行处理的装置的一些实施例中,所述训练单元520包括:
分词子单元521,用于对输入的用户说法进行分词处理,以得到多个词语;
特征获取子单元522,用于分别将所述多个词语转化为相应的词向量并输入至BLSTM,以得到对应于所述多个词语的多个特征向量。
加权处理子单元523,用于基于attention机制对所述多个特征向量进行加权处理;
训练子单元524,用于将加权处理结果输入至所述神经网络层进行并以所述标准说法为目标训练得到所述深度神经网络。
在一些实施例中,所述训练集中,每一条标准说法对应于至少一条用户说法。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项对自然语言进行处理的方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项对自然语言进行处理的方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行对自然语言进行处理的方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时对自然语言进行处理的方法。
上述本发明实施例的对自然语言进行处理的系统可用于执行本发明实施例的对自然语言进行处理的方法,并相应的达到上述本发明实施例的实现对自然语言进行处理的方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardwareprocessor)来实现相关功能模块。
图7是本申请另一实施例提供的执行对自然语言进行处理的方法的电子设备的硬件结构示意图,如图7所示,该设备包括:
一个或多个处理器710以及存储器720,图7中以一个处理器710为例。
执行对自然语言进行处理的方法的设备还可以包括:输入装置730和输出装置740。
处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器720作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的对自然语言进行处理的方法对应的程序指令/模块。处理器710通过运行存储在存储器720中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例对自然语言进行处理的方法。
存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据对自然语言进行处理的装置的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器720可选包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至对自然语言进行处理的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可接收输入的数字或字符信息,以及产生与对自然语言进行处理的装置的用户设置以及功能控制有关的信号。输出装置740可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器720中,当被所述一个或者多个处理器710执行时,执行上述任意方法实施例中的对自然语言进行处理的方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。