本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及用于生成同语言平行文本的方法和装置。
背景技术:
人工智能(artificialintelligence,ai)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能领域中的自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。为一个文本生成与该文本语言相同语义相似的同语言平行文本是自然语言处理中的重要组成部分。同语言平行文本的应用场合很多,作为示例,目前,搜索引擎在对用户输入的查询语句(query)进行检索时,由于用户输入查询语句的随意性,如果使用用户输入的查询语句进行检索,往往效果不好,为了能够获得更好的检索效果,通常都会对查询语句生成同语言平行文本,然后用所生成的同语言平行文本进行检索。
然而,目前在生成一个文本的同语言平行文本时,通常是预先采用统计对齐算法或者规则对齐算法,基于平行语料库生成替换词典;然后,根据先验知识和替换词典,生成替换后的同语言平行文本。现有的生成同语言平行文本的方法,对齐算法复杂,需要人工干预较多,所生成的替换词典准确率低,而且需要存储替换词典,通常替换词典的所需存储空间大小都在几千兆字节,从而存在着所需存储空间大的问题。
技术实现要素:
本申请的目的在于提出一种改进的用于生成同语言平行文本的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种用于生成同语言平行文本的方法,该方法包括:获取源切分词序列和预先训练的词向量表,其中,上述词向量表用于表征词与词向量之间的对应关系;根据上述词向量表,确定与上述源切分词序列对应的源词向量序列;将上述源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征上述源切分词序列的语义的预设维数的中间向量,其中,上述第一循环神经网络模型用于表征词向量序列与上述预设维数的向量之间的对应关系;将上述中间向量导入预先训练的第二循环神经网络模型,生成与上述中间向量对应的目标词向量序列,其中,上述第二循环神经网络模型用于表征上述预设维数的向量与词向量序列之间的对应关系;根据上述词向量表,确定与上述目标词向量序列对应的目标切分词序列,并将上述目标切分词序列确定为与上述源切分词序列对应的同语言平行文本。
在一些实施例中,上述获取源切分词序列和预先训练的词向量表之前,上述方法还包括:接收用户使用终端发来的查询请求,上述查询请求包括查询语句;对上述查询语句进行预处理,得到上述查询语句的切分词序列,上述预处理包括分词处理和去除特殊符号;将所得到的切分词序列确定为源切分词序列。
在一些实施例中,上述将上述目标切分词序列确定为与上述源切分词序列对应的同语言平行文本之后,上述方法还包括:根据上述同语言平行文本进行搜索,得到搜索结果;将上述搜索结果发送至上述终端。
在一些实施例中,上述获取源切分词序列和预先训练的词向量表之前,上述方法还包括训练步骤,上述训练步骤包括:获取至少一对同语言平行切分词序列,其中,每对同语言平行切分词序列包括语言相同且语义相同的第一切分词序列和第二切分词序列;获取预设的词向量表、预设的第一循环神经网络模型和预设的第二循环神经网络模型;对于上述至少一对同语言平行切分词序列中的每对同语言平行切分词序列,根据上述预设的词向量表,确定该对同语言平行切分词序列的第一切分词序列对应的第一切分词向量序列;将上述第一切分词向量序列导入上述预设的第一循环神经网络模型,得到与上述第一切分词向量序列对应的上述预设维数的向量;将所得到的向量导入上述预设的第二循环神经网络模型,得到与所得到的向量对应的第二切分词向量序列;根据上述预设的词向量表,确定与上述第二切分词向量序列对应的词序列;根据所得到的词序列与该对同语言平行切分词序列的第二切分词序列之间的差异信息,对上述预设的词向量表、上述预设的第一循环神经网络模型和上述预设的第二循环神经网络模型进行调整;将上述预设的词向量表、上述预设的第一循环神经网络模型和上述预设的第二循环神经网络模型分别确定为训练得到的词向量表、第一循环神经网络模型和第二循环神经网络模型。
在一些实施例中,上述第一循环神经网络模型和上述第二循环神经网络模型均为时间循环神经网络模型。
在一些实施例中,上述根据上述词向量表,确定与上述源切分词序列对应的源词向量序列,包括:对上述源切分词序列中的每个切分词,在上述词向量表中查询与该切分词匹配的词向量,并将查找到的词向量确定为上述源词向量序列中与该切分词在上述源切分词序列中的位置相同的位置对应的源词向量。
在一些实施例中,上述根据上述词向量表,确定与上述目标词向量序列对应的目标切分词序列,包括:对于上述目标词向量序列中的每个目标词向量,从上述词向量表中选取与该目标词向量的相似度最高的词向量所对应的词,将所选取的词确定为上述目标切分词序列中与该目标词向量在上述目标词向量序列中的位置相同的位置对应的目标切分词。
第二方面,本申请实施例提供了一种用于生成同语言平行文本的装置,该装置包括:获取单元,配置用于获取源切分词序列和预先训练的词向量表,其中,上述词向量表用于表征词与词向量之间的对应关系;第一确定单元,配置用于根据上述词向量表,确定与上述源切分词序列对应的源词向量序列;第一生成单元,配置用于将上述源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征上述源切分词序列的语义的预设维数的中间向量,其中,上述第一循环神经网络模型用于表征词向量序列与上述预设维数的向量之间的对应关系;第二生成单元,配置用于将上述中间向量导入预先训练的第二循环神经网络模型,生成与上述中间向量对应的目标词向量序列,其中,上述第二循环神经网络模型用于表征上述预设维数的向量与词向量序列之间的对应关系;第二确定单元,配置用于根据上述词向量表,确定与上述目标词向量序列对应的目标切分词序列,并将上述目标切分词序列确定为与上述源切分词序列对应的同语言平行文本。
在一些实施例中,上述装置还包括:接收单元,配置用于接收用户使用终端发来的查询请求,上述查询请求包括查询语句;预处理单元,配置用于对上述查询语句进行预处理,得到上述查询语句的切分词序列,上述预处理包括分词处理和去除特殊符号;第三确定单元,配置用于将所得到的切分词序列确定为源切分词序列。
在一些实施例中,上述装置还包括:搜索单元,配置用于根据上述同语言平行文本进行搜索,得到搜索结果;发送单元,配置用于将上述搜索结果发送至上述终端。
在一些实施例中,上述装置还包括训练单元,上述训练单元包括:第一获取模块,配置用于获取至少一对同语言平行切分词序列,其中,每对同语言平行切分词序列包括语言相同且语义相同的第一切分词序列和第二切分词序列;第二获取模块,配置用于获取预设的词向量表、预设的第一循环神经网络模型和预设的第二循环神经网络模型;调整模块,配置用于对于上述至少一对同语言平行切分词序列中的每对同语言平行切分词序列,根据上述预设的词向量表,确定该对同语言平行切分词序列的第一切分词序列对应的第一切分词向量序列;将上述第一切分词向量序列导入上述预设的第一循环神经网络模型,得到与上述第一切分词向量序列对应的上述预设维数的向量;将所得到的向量导入上述预设的第二循环神经网络模型,得到与所得到的向量对应的第二切分词向量序列;根据上述预设的词向量表,确定与上述第二切分词向量序列对应的词序列;根据所得到的词序列与该对同语言平行切分词序列的第二切分词序列之间的差异信息,对上述预设的词向量表、上述预设的第一循环神经网络模型和上述预设的第二循环神经网络模型进行调整;确定模块,配置用于将上述预设的词向量表、上述预设的第一循环神经网络模型和上述预设的第二循环神经网络模型分别确定为训练得到的词向量表、第一循环神经网络模型和第二循环神经网络模型。
在一些实施例中,上述第一循环神经网络模型和上述第二循环神经网络模型均为时间循环神经网络模型。
在一些实施例中,上述第一确定单元进一步配置用于:对上述源切分词序列中的每个切分词,在上述词向量表中查询与该切分词匹配的词向量,并将查找到的词向量确定为上述源词向量序列中与该切分词在上述源切分词序列中的位置相同的位置对应的源词向量。
在一些实施例中,上述第二确定单元进一步配置用于:对于上述目标词向量序列中的每个目标词向量,从上述词向量表中选取与该目标词向量的相似度最高的词向量所对应的词,将所选取的词确定为上述目标切分词序列中与该目标词向量在上述目标词向量序列中的位置相同的位置对应的目标切分词。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的用于生成同语言平行文本的方法和装置,通过根据词向量表,确定与对应的源词向量序列,再将源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征源切分词序列的语义的预设维数的中间向量,而后将中间向量导入预先训练的第二循环神经网络模型,生成与中间向量对应的目标词向量序列,接着再根据上述词向量表,确定与目标词向量序列对应的目标切分词序列,最后并将目标切分词序列确定为与源切分词序列对应的同语言平行文本。从而,生成过程不需要人工干预,降低了生成同语言平行文本的算法复杂性,并且不需要存储占用空间较大的替换词典(通常大小在几千兆字节),只需要存储词向量表、第一循环神经网络模型的参数和第二循环神经网络模型的参数(三者总共约占用空间为几十兆),从而减少了所需的存储空间。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于生成同语言平行文本的方法的一个实施例的流程图;
图3是根据本申请的用于生成同语言平行文本的方法的一个应用场景的示意图;
图4是根据本申请的用于生成同语言平行文本的方法的又一个实施例的流程图;
图5是根据本申请的用于生成同语言平行文本的装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于生成同语言平行文本的方法或用于生成同语言平行文本的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如从终端设备101、102、103上显示的搜索类网站提供支持的后台搜索服务器。后台搜索服务器可以对接收到的搜索请求等数据进行分析等处理,并将处理结果(例如网页链接数据)反馈给终端设备。
需要说明的是,本申请实施例所提供的用于生成同语言平行文本的方法一般由服务器105执行,相应地,用于生成同语言平行文本的装置一般设置于服务器105中。在一些情况下,本申请实施例所提供的用于生成同语言平行文本的方法也可以不需要终端设备101、102、103,而可以由服务器105单独执行,这时,服务器105既可以是具有服务器功能的服务器,也可以是不具有服务器功能但具有运算功能的一般电子设备。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,其示出了根据本申请的用于生成同语言平行文本的方法的一个实施例的流程200。该用于生成同语言平行文本的方法,包括以下步骤:
步骤201,获取源切分词序列和预先训练的词向量表。
在本实施例中,用于生成同语言平行文本的方法运行于其上的电子设备(例如图1所示的服务器)可以本地或者远程地从与上述电子设备网络连接的其他电子设备获取源切分词序列和预先训练的词向量表。
在本实施例中,切分词是指不带有特殊符号或者标点符号的词或短语。切分词序列是由按顺序排列的至少一个切分词组成的序列。源切分词序列可以是预先存储在上述电子设备本地的待生成同语言平行文本的切分词序列。源切分词序列也可以是由用户指定的待生成同语言平行文本的切分词序列。源切分词序列还可以是上述电子设备从与上述电子设备网络连接的其他电子设备(例如,图1所示的终端设备)接收到的待生成同语言平行文本的切分词序列。一个文本的平行文本是指与该文本的语义相似的文本。一个文本的同语言平行文本是指与该文本语言相同且义相似的文本。例如,“订直达车”是“直达车订票”的同语言平行文本,“大米有没有蛋白质”是“米饭有没有蛋白质”的同语言平行文本。
在本实施例中,词向量表用于将词或短语映射成实数向量,所映射的实数向量就是词向量。通过使用词向量表,可以实现把自然语言中的特征从词汇表大小的高维度空间降低到一个相对低的维度空间。衡量词向量表的原则为:语义相近的两个词的词向量之间的相似度应该比较高,反之较低。作为示例,词向量可以是用distributedrepresentation(或distributionalrepresentation)表示的一种实数向量。这里的词向量表可以是预先训练好的。例如,词向量表中的一条记录可以是词为“北京”,对应的词向量为“-0.1654,0.8764,0.5364,-0.6354,0.1645”,这里词向量具有5维,实际应用中可以为任意维数,本申请对此不做具体限定。
需要说明的是,如何训练词向量表是目前广泛研究和应用的现有技术,在此不再赘述。
作为示例,可以首先获取包括大量语句的语句库以及每个语句所包括的词语;然后,对于词语库中的每个词语,获取语句库中包含该词语的语句,进而在这些语句中,获取与该词语相邻的上下文词语,基于使词语与上下文词语的关联度之和最大的原则,计算每个词语的词向量。
作为示例,也可以获取语句库中包含的每个待分析词语在语句库中所属的各语句的预设的类型,得到每个待分析词语对应的类型集合;将每个待分析词语的词向量设置为训练变量,根据每个待分析词语对应的类型集合和词向量,建立各待分析词语之间关联度的总和的计算模型,作为训练模型;根据上述训练模型,基于使关联度的总和最大的原则,对训练变量进行训练,得到每个待分析词语的词向量。
步骤202,根据词向量表,确定与源切分词序列对应的源词向量序列。
在本实施例中,根据步骤201中得到的词向量表,上述电子设备(例如图1所示的服务器)可以确定与步骤201所获取的源切分词序列对应的源词向量序列。这里,源词向量序列是用于生成源切分词序列的同语言平行文本的词向量序列。源词向量序列是由按顺序排列的至少一个源词向量组成的。源词向量序列中的每个源词向量与源切分词序列中的每个源切分词一一对应,且源词向量序列中的每个源词向量是根据源切分词序列中与该源词向量对应的源切分词在词向量表中查询得到的。
在本实施例的一些可选的实现方式中,步骤202可以如下进行:对源切分词序列中的每个切分词,在词向量表中查询与该切分词匹配的词向量,并将查找到的词向量确定为源词向量序列中与该切分词在源切分词序列中的位置相同的位置对应的源词向量。
步骤203,将源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征源切分词序列的语义的预设维数的中间向量。
在本实施例中,用于生成同语言平行文本的方法运行于其上的电子设备上可以将源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征源切分词序列的语义的预设维数的中间向量。其中,第一循环神经网络模型用于表征词向量序列与预设维数的向量之间的对应关系。
实践中,循环神经网络(recurrentneuralnetworks,rnns)模型不同于传统的fnns(feed-forwardneuralnetworks,前向反馈神经网络),rnns引入了定向循环,能够处理那些输入之间前后关联的问题。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于处理序列相关的问题却无能无力。而在循环神经网络模型中,一个序列当前的输出与前面的输出也有关。具体的表现形式为循环神经网络网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,循环神经网络能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关。
作为示例,第一循环神经网络模型可以是以大量的词向量序列和对应的预设维数的向量作为训练数据,使用任意的非线性激活函数(例如,sigmoid函数、softplus函数、双极性sigmoid函数等)作为预设的第一循环神经网络模型的神经元激活函数,对所输入的词向量序列进行计算,将与该输入的词向量序列对应的预设维数的向量作为输出,训练初始的第一循环神经网络模型而得到的。
步骤204,将中间向量导入预先训练的第二循环神经网络模型,生成与中间向量对应的目标词向量序列。
在本实施例中,上述电子设备可以将步骤203中所生成的中间向量导入预先训练的第二循环神经网络模型,生成与中间向量对应的目标词向量序列。其中,第二循环神经网络模型用于表征预设维数的向量与词向量序列之间的对应关系。这里,目标词向量序列是由按顺序排列的至少一个目标词向量组成的,目标词向量序列中目标词向量的个数可以与源词向量序列中源词向量的个数相同,也可以与源词向量序列中源词向量的个数不同,即,目标词向量序列中目标词向量的个数不是固定不变的。
作为示例,第二循环神经网络模型可以是以大量的预设维数的向量和对应的词向量序列作为训练数据,使用任意的非线性激活函数(例如,sigmoid函数、softplus函数、双极性sigmoid函数等)作为预设的第二循环神经网络模型的神经元激活函数,对所输入的预设维数的向量进行计算,将与所输入的预设维数的向量对应的词向量序列作为输出,训练初始的第二循环神经网络模型而得到的。
步骤205,根据词向量表,确定与目标词向量序列对应的目标切分词序列,并将目标切分词序列确定为与源切分词序列对应的同语言平行文本。
在本实施例中,上述电子设备可以根据步骤201中获取的词向量表,确定与步骤204中所生成的目标词向量序列对应的目标切分词序列,并将目标切分词序列确定为与源切分词序列对应的同语言平行文本。这里,目标切分词序列是由按顺序排列的至少一个目标切分词组成的。目标切分词序列中的每个目标切分词与目标词向量序列中的每个目标词向量一一对应,且目标切分词序列中的每个目标切分词是根据目标词向量序列中与该目标切分词对应的目标词向量在词向量表中查询得到的。
在本实施例的一些可选的实现方式中,步骤205可以如下进行:
对于目标词向量序列中的每个目标词向量,从词向量表中选取与该目标词向量的相似度最高的词向量所对应的词,将所选取的词确定为目标切分词序列中与该目标词向量在目标词向量序列中的位置相同的位置对应的目标切分词。
作为示例,可以计算两个词向量之间的余弦相似度作为两个词向量之间的相似度。
作为示例,还可以计算两个词向量之间的欧式距离,欧式距离越近,则两个词向量之间的相似度越高,反之相似度越低。
由于步骤201中所获取的词向量表可以将源切分词映射到源词向量,在步骤205中将目标词向量映射到目标切分词时,使用的还是步骤201中所获取的词向量表,即是与将源切分词映射到源词切分向量时相同的词向量表,因此,按照步骤201中所获取的词向量表,将目标词向量序列映射到目标切分词序列,所得到的目标切分词序列与源切分词序列的语言相同且语义相似,即,所得到的目标切分词序列为与源切分词序列对应的同语言平行文本。
在本实施例的一些可选的实现方式中,词向量表、第一循环神经网络模型和第二循环神经网络模型可以是通过如下训练步骤训练得到的:
首先,获取至少一对同语言平行切分词序列。
这里,每对同语言平行切分词序列包括语言相同且语义相同的第一切分词序列和第二切分词序列。作为示例,所获取的每对同语言平行切分词序列可以是由技术人员人工标注的语言相同且语义相同的第一切分词序列和第二切分词序列。
然后,获取预设的词向量表、预设的第一循环神经网络模型和预设的第二循环神经网络模型。
接着,对于至少一对同语言平行切分词序列中的每对同语言平行切分词序列,根据预设的词向量表,确定该对同语言平行切分词序列的第一切分词序列对应的第一切分词向量序列;将第一切分词向量序列导入预设的第一循环神经网络模型,得到与第一切分词向量序列对应的预设维数的向量;将所得到的向量导入预设的第二循环神经网络模型,得到与所得到的向量对应的第二切分词向量序列;根据预设的词向量表,确定与第二切分词向量序列对应的词序列;根据所得到的词序列与该对同语言平行切分词序列的第二切分词序列之间的差异信息,对预设的词向量表、预设的第一循环神经网络模型和预设的第二循环神经网络模型进行调整。作为示例,调整词向量表可以是调整词向量表中词与词对应的词向量中各维的取值,调整第一循环神经网络模型可以是调整第一循环神经网络模型的输入矩阵、隐藏层矩阵和输出矩阵,调整第二循环神经网络模型可以是调整第二循环神经网络模型的输入矩阵、隐藏层矩阵和输出矩阵。
最后,将预设的词向量表、预设的第一循环神经网络模型和预设的第二循环神经网络模型分别确定为训练得到的词向量表、第一循环神经网络模型和第二循环神经网络模型。这里,预设的词向量表、预设的第一循环神经网络模型和预设的第二循环神经网络模型中的各项参数已经在训练过程中得到了调整和优化,在使用时可以达到更好的效果。
在本实施例的一些可选的实现方式中,第一循环神经网络模型和第二循环神经网络模型可以均为时间循环神经网络模型,例如lstm(longshort-termmemory)时间循环神经网络模型。
继续参见图3,图3是根据本实施例的用于生成同语言平行文本的方法的应用场景的一个示意图。在图3的应用场景中,首先电子设备获取了源切分词序列301“订直达车”和词向量表302,然后通过词向量表302确定源切分词序列301的源词向量序列303,再将源词向量序列303导入预先训练的第一循环神经网络模型304,生成中间向量305,而后将中间向量305导入预先训练的第二循环神经网络模型306,生成目标词向量序列307,最后通过词向量表302将目标词向量序列307确定目标切分词序列308“直达车订票”,从而生成了源切分词序列301“订直达车”对应的同语言平行文本“直达车订票”。
本申请的上述实施例提供的方法通过根据词向量表,确定与对应的源词向量序列,再将源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征源切分词序列的语义的预设维数的中间向量,而后将中间向量导入预先训练的第二循环神经网络模型,生成与中间向量对应的目标词向量序列,接着再根据上述词向量表,确定与目标词向量序列对应的目标切分词序列,最后并将目标切分词序列确定为与源切分词序列对应的同语言平行文本。从而降低了生成同语言平行文本的算法复杂性,并减少了所需的存储空间。
进一步参考图4,其示出了用于生成同语言平行文本的方法的又一个实施例的流程400。该用于生成同语言平行文本的方法的流程400,包括以下步骤:
步骤401,接收用户使用终端发来的查询请求。
在本实施例中,用于生成同语言平行文本的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式接收用户使用终端发来的查询请求。这里,查询请求可以包括查询语句。作为示例,用户可以使用终端上安装的浏览器访问搜索类网站,并输入查询语句,而后向对上述搜索类网站提供支持的上述电子设备发送包括上述查询语句的查询请求,从而上述电子设备可以接收到上述查询请求。
步骤402,对查询语句进行预处理,得到查询语句的切分词序列。
在本实施例中,上述电子设备可以对查询语句进行预处理,得到查询语句的切分词序列。这里,预处理可以包括分词处理和去除特殊符号。
分词处理就是将连续的字序列按照一定的规范重新组合成词序列的过程。需要说明的是分词处理是本领域技术人员广泛研究和应用的现有技术,在此不再赘述。作为示例,分词处理可以采用基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。
在这里,特殊符号指相对于传统或常用的符号外,使用频率较少且难以直接输入的符号,比如:数学符号、单位符号、制表符等。去除特殊符号就是指对待去除特殊符号的文本,将其中所包括的特殊符号去除,保留其中非特殊符号的过程。
经过了上述的预处理,可以得到查询语句的切分词序列。这里,切分词序列是由按照顺序排列的至少一个切分词组成的。
步骤403,将所得到的切分词序列确定为源切分词序列。
在本实施例中,上述电子设备可以将步骤402中所得到的切分词序列确定为源切分词序列,以供后续步骤使用。
步骤404,获取源切分词序列和预先训练的词向量表。
步骤405,根据词向量表,确定与源切分词序列对应的源词向量序列。
步骤406,将源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征源切分词序列的语义的预设维数的中间向量。
步骤407,将中间向量导入预先训练的第二循环神经网络模型,生成与中间向量对应的目标词向量序列。
步骤408,根据词向量表,确定与目标词向量序列对应的目标切分词序列,并将目标切分词序列确定为与源切分词序列对应的同语言平行文本。
在本实施例中,步骤404、步骤405、步骤406、步骤407和步骤408的具体操作与图2所示的实施例中步骤201、步骤202、步骤203、步骤204和步骤205的具体操作基本相同,在此不再赘述。
步骤409,根据同语言平行文本进行搜索,得到搜索结果。
在本实施例中,上述电子设备可以在步骤408中确定了与源切分词序列对应的同语言平行文本后,根据同语言平行文本进行搜索,得到搜索结果。作为示例,搜索结果可以包括与同语言平行文本相关的网页的网页链接。由于用户在终端输入查询语句的时候比较随意,如果按照用户输入的内容进行搜索,召回率较低。而采用步骤404到步骤408的操作,生成了查询语句的切分词序列对应的同语言平行文本后,所生成的同语言平行文本与查询语句的语义近似,但更适合用于搜索,从而可以提高搜索的召回率。
步骤410,将搜索结果发送至终端。
在本实施例中,上述电子设备可以将步骤409中搜索得到的搜索结果发送至步骤401中接收到查询请求的终端。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于生成同语言平行文本的方法的流程400多出了从终端接收查询请求并对查询请求中的查询语句进行预处理以及根据所确定的同语言平行文本进行搜索并将搜索结果返回终端的步骤。由此,本实施例描述的方案可以提高搜索引擎搜索的召回率。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于生成同语言平行文本的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于生成同语言平行文本的装置500包括:获取单元501、第一确定单元502、第一生成单元503、第二生成单元504和第二确定单元505。其中,获取单元501,配置用于获取源切分词序列和预先训练的词向量表,其中,上述词向量表用于表征词与词向量之间的对应关系;第一确定单元502,配置用于根据上述词向量表,确定与上述源切分词序列对应的源词向量序列;第一生成单元503,配置用于将上述源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征上述源切分词序列的语义的预设维数的中间向量,其中,上述第一循环神经网络模型用于表征词向量序列与上述预设维数的向量之间的对应关系;第二生成单元504,配置用于将上述中间向量导入预先训练的第二循环神经网络模型,生成与上述中间向量对应的目标词向量序列,其中,上述第二循环神经网络模型用于表征上述预设维数的向量与词向量序列之间的对应关系;第二确定单元505,配置用于根据上述词向量表,确定与上述目标词向量序列对应的目标切分词序列,并将上述目标切分词序列确定为与上述源切分词序列对应的同语言平行文本。
在本实施例中,用于生成同语言平行文本的装置500的获取单元501、第一确定单元502、第一生成单元503、第二生成单元504和第二确定单元505的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤201、步骤202、步骤203、步骤204和步骤205的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述用于生成同语言平行文本的装置500还可以包括:接收单元506,配置用于接收用户使用终端发来的查询请求,上述查询请求包括查询语句;预处理单元507,配置用于对上述查询语句进行预处理,得到上述查询语句的切分词序列,上述预处理包括分词处理和去除特殊符号;第三确定单元508,配置用于将所得到的切分词序列确定为源切分词序列。接收单元506、预处理单元507和第三确定单元508的具体处理及其所带来的技术效果可分别参考图4对应实施例中步骤401、步骤402和步骤403的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述用于生成同语言平行文本的装置500还可以包括:搜索单元509,配置用于根据上述同语言平行文本进行搜索,得到搜索结果;发送单元510,配置用于将上述搜索结果发送至上述终端。搜索单元509和发送单元510的具体处理及其所带来的技术效果可分别参考图4对应实施例中步骤409和步骤410的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述用于生成同语言平行文本的装置500还可以包括训练单元511,上述训练单元511可以包括:第一获取模块5111,配置用于获取至少一对同语言平行切分词序列,其中,每对同语言平行切分词序列包括语言相同且语义相同的第一切分词序列和第二切分词序列;第二获取模块5112,配置用于获取预设的词向量表、预设的第一循环神经网络模型和预设的第二循环神经网络模型;调整模块5113,配置用于对于上述至少一对同语言平行切分词序列中的每对同语言平行切分词序列,根据上述预设的词向量表,确定该对同语言平行切分词序列的第一切分词序列对应的第一切分词向量序列;将上述第一切分词向量序列导入上述预设的第一循环神经网络模型,得到与上述第一切分词向量序列对应的上述预设维数的向量;将所得到的向量导入上述预设的第二循环神经网络模型,得到与所得到的向量对应的第二切分词向量序列;根据上述预设的词向量表,确定与上述第二切分词向量序列对应的词序列;根据所得到的词序列与该对同语言平行切分词序列的第二切分词序列之间的差异信息,对上述预设的词向量表、上述预设的第一循环神经网络模型和上述预设的第二循环神经网络模型进行调整;确定模块5114,配置用于将上述预设的词向量表、上述预设的第一循环神经网络模型和上述预设的第二循环神经网络模型分别确定为训练得到的词向量表、第一循环神经网络模型和第二循环神经网络模型。训练单元511的具体处理及其所带来的技术效果可分别参考图2对应实施例中的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述第一循环神经网络模型和上述第二循环神经网络模型可以均为时间循环神经网络模型。
在本实施例的一些可选的实现方式中,上述第一确定单元502可以进一步配置用于:对上述源切分词序列中的每个切分词,在上述词向量表中查询与该切分词匹配的词向量,并将查找到的词向量确定为上述源词向量序列中与该切分词在上述源切分词序列中的位置相同的位置对应的源词向量。第一确定单元502的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤202的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述第二确定单元505可以进一步配置用于:对于上述目标词向量序列中的每个目标词向量,从上述词向量表中选取与该目标词向量的相似度最高的词向量所对应的词,将所选取的词确定为上述目标切分词序列中与该目标词向量在上述目标词向量序列中的位置相同的位置对应的目标切分词。第一确定单元505的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤205的相关说明,在此不再赘述。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(cpu,centralprocessingunit)601,其可以根据存储在只读存储器(rom,readonlymemory)602中的程序或者从存储部分606加载到随机访问存储器(ram,randomaccessmemory)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o,input/output)接口605也连接至总线604。
以下部件连接至i/o接口605:包括硬盘等的存储部分606;以及包括诸如lan(局域网,localareanetwork)卡、调制解调器等的网络接口卡的通信部分607。通信部分607经由诸如因特网的网络执行通信处理。驱动器608也根据需要连接至i/o接口605。可拆卸介质609,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器608上,以便于从其上读出的计算机程序根据需要被安装入存储部分606。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分607从网络上被下载和安装,和/或从可拆卸介质609被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、第一确定单元、第一生成单元、第二生成单元和第二确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一确定单元还可以被描述为“确定源词向量序列的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:获取源切分词序列和预先训练的词向量表,其中,上述词向量表用于表征词与词向量之间的对应关系;根据上述词向量表,确定与上述源切分词序列对应的源词向量序列;将上述源词向量序列导入预先训练的第一循环神经网络模型,生成用于表征上述源切分词序列的语义的预设维数的中间向量,其中,上述第一循环神经网络模型用于表征词向量序列与上述预设维数的向量之间的对应关系;将上述中间向量导入预先训练的第二循环神经网络模型,生成与上述中间向量对应的目标词向量序列,其中,上述第二循环神经网络模型用于表征上述预设维数的向量与词向量序列之间的对应关系;根据上述词向量表,确定与上述目标词向量序列对应的目标切分词序列,并将上述目标切分词序列确定为与上述源切分词序列对应的同语言平行文本。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。