词向量的生成方法、装置和系统与流程

文档序号:20189483发布日期:2020-03-27 19:30阅读:301来源:国知局
词向量的生成方法、装置和系统与流程

本发明涉及语言处理领域,具体而言,涉及一种词向量的生成方法、装置和系统。



背景技术:

计算机难以理解人类语言的语义,例如,“猫”和“猫咪”可能会被计算机识别为是两个无关的词语,计算机很难刻画这两个词语的语义相似度。因此在计算机在处理语言信息时,需要将语言信息通过数据的方式体现出来。而词向量技术恰好解决了这一难题,词向量算法会为“猫”和“猫咪”分别生成一个向量,进而使计算机计算向量的夹角余弦就可以计算出来这两个词语的语义相似度(0-1之间的实数),例如,相似度为0.95,就说明“猫”和“猫咪”是语义很接近的两个词语。因此词向量算法的准确度就决定了计算机语义理解的能力。

目前通常使用的词向量生成方法包括如下两种:1)的单词向量算法。算法步骤:a)扫描训练数据得到单词词典,随机初始化词向量b)从第一个单词开始滑动,依次选取当前单词作为焦点单词,抽取窗口距离(固定值,一般为5~10)以内的单词作为上下文单词c)根据损失函数调整误差,得到词向量;2)n元字符算法。算法步骤:a)扫描训练数据得到单词词典,随机初始化词向量b)从第一个单词开始滑动,依次选取作为当前单词的所有n元字符,抽取窗口距离(固定值,一般为5~10)以内的单词作为上下文单词c)根据损失函数调整误差,得到词向量和n元字符向量。

方案2)仅能应用于英文法文等拉丁字母构成的语言,且仅在语料足够充分时才得到较准确的结果,当语料不充分时,得到的结果准确度差,例如,对于生僻字,上述两种方案都难以得到准确的词向量。

针对现有技术中生成的词语向量不准确的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种词向量的生成方法、装置和系统,以至少解决现有技术中生成的词语向量不准确的技术问题。

根据本发明实施例的一个方面,提供了一种词向量的生成方法,包括:获取语句中的至少一个词语;提取词语的至少一个笔画的笔画信息;基于笔画的笔画信息,生成词语的笔画特征向量,其中,笔画特征向量表示词语的局部特征信息;基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量,其中,词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

根据本发明实施例的另一方面,还提供了一种词向量的生成装置,包括:获取模块,用于获取语句中的至少一个词语;提取模块,用于提取词语的至少一个笔画的笔画信息;生成模块,用于基于笔画的笔画信息,生成词语的笔画特征向量,其中,笔画特征向量表示词语的局部特征信息;确定模块,用于基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量,其中,词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

根据本发明实施例的另一方面,还提供了一种词向量的生成系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取语句中的至少一个词语;提取词语的至少一个笔画的笔画信息;基于笔画的笔画信息,生成词语的笔画特征向量,其中,笔画特征向量表示词语的局部特征信息;基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量,其中,词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

在本发明实施例中,获取语句中的至少一个词语,提取词语的至少一个笔画的笔画信息,基于笔画的笔画信息,生成词语的笔画特征向量,基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量。上述方案在对词语进行向量化处理时,引入了词语的笔画信息,从而增强了对语言的结构信息提取的能力,进而针对词语的向量化提高了准确程度;尤其是对于在预料不充分的情况下,对于包括生僻字的词语,大幅度提高了词语生成词向量的准确程度。

由此,本申请上述实施例现有技术中生成的词语向量不准确的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1示出了一种用于实现词向量的生成方法的计算机终端(或移动设备)的硬件结构框图;

图2是根据本申请实施例1的一种词向量的生成方法的流程图;

图3是根据本申请实施例1的一种笔画与标识的示意图;

图4是根据本申请实施例1的一种生成笔画特征向量的示意图;

图5是根据本申请实施例1的一种神经网络模型的示意图;

图6是根据本申请实施例1的一种对上下文词语进行特征提取的示意图;

图7是根据本申请实施例2的一种词向量的生成装置的示意图;以及

图8是根据本发明实施例3的一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,还提供了一种词向量的生成方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现词向量的生成方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的词向量的生成方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。

此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。

在上述运行环境下,本申请提供了如图2所示的词向量的生成方法。图2是根据本申请实施例1的一种词向量的生成方法的流程图。

步骤s21,获取语句中的至少一个词语。

具体的,获取的词语即为生成词向量的词语,该词语可以是语句中的任意一个,或预先指定的其中一个。上述词语可以是中文词语、日文词语、韩文词语等具有笔画的词语,在下述实施例中,以中文词语为例进行说明。

步骤s23,提取词语的至少一个笔画的笔画信息。

具体的,上述笔画信息可以是根据词语的至少一个笔画生成的笔画信息,提取的笔画信息用于描述词语的结构特征。

在一种可选的实施例中,可以将词语按照笔画进行拆分,并将拆分得到的笔画按照书写的顺序进行排列,得到的按照书写顺序排列的笔画元素的集合即为该笔画的笔画信息。以“大人”这个词语为例,将“大人”按照笔画进行拆分,得到的笔画信息为“横,撇,捺,撇,捺”。

在另一种可选的实施例中,设置每种笔画对应的标识,仍将词语按照笔画进行拆分,并将拆分得到的笔画按照书写的顺序进行排列后,使用笔画对应的标识表示每个笔画,从而得到由笔画的标识构成的数据集,将该数据集作为笔画信息。

图3是根据本申请实施例1的一种笔画与标识的示意图,如图3所示,以“大人”这个词语为例,将“大人”按照笔画进行拆分,得到“横,撇,捺,撇,捺”,结合图3中笔画与标识的对应关系,使用笔画对应的标识来表示每个笔画,则得到词语“大人”对应的笔画信息可以为“1,3,4,3,4”。

步骤s25,基于笔画的笔画信息,生成词语的笔画特征向量,其中,笔画特征向量表示词语的局部特征信息。

上述笔画特征向量用于对笔画的局部信息进行描述,获取到笔画的笔画信息后,可以使用笔画信息生成词语对应的笔画特征向量。

具体的,上述笔画特征向量可以为预设维度的特征向量,可以在笔画信息的基础上进行特征提取,从而得到笔画特征向量。由于笔画特征向量表示的是词语的局部特征信息,词语的局部特征信息通常为文字的一部分,例如文字的偏旁部首等,一定程度上能够表达词语的语义,因此基于词语的笔画信息提取词语的笔画特征向量,不仅携带了词语的结构信息,还在一定程度上携带了词语的语义信息。

在一种可选的实施例中,可以从笔画信息中提取一部分笔画,并使用提取的笔画的标识作为笔画特征向量。

在另一种可选的实施例中,还可以将笔画信息中的笔画划分为多组,每组对应笔画特征向量中的一个值,如果最后一组的位数不足则补零,从而得到笔画特征向量,例如,将“大人”的笔画信息“1,3,4,3,4”分为两组,第一组为“1,3,4”,第二组为“3,4,0”,分别将第一组和第二组内的数据进行预设的运算,即可得到第一组和第二组对应的数据,从而得到笔画特征向量。

在又一种可选的实施例中,还可以先确定词语的笔画信息对应的n元笔画,在根据词语对应的n元笔画确定语的笔画特征向量。词语的n元笔画可以是将笔画信息中的每n个相连的笔画提取出来,得到多个n元笔画。仍以“大人”为例,其对应得笔画信息为“横,撇,捺,撇,捺”,在n=3的情况下,“横,撇,捺,撇,捺”对应的n元笔画可以为“横撇捺”,“撇捺撇”和“捺撇捺”。再根据预设的n元笔画与编号的对应关系,即可确定词语的笔画特征向量。

步骤s27,基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量,其中,所述词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

具体的,上述向量生成模型可以是预先获取到的rnn神经网络模型,该神经网络模型通过词语的笔画特征向量确定词语的词向量。

词语的词向量与词语具有一一对应关系,可以使用上述实施例生成的词向量进行进一步的语义分析等运算。

本申请上述实施例获取语句中的至少一个词语,提取词语的至少一个笔画的笔画信息,基于笔画的笔画信息,生成词语的笔画特征向量,基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量。上述方案在对词语进行向量化处理时,引入了词语的笔画信息,从而增强了对语言的结构信息提取的能力,进而针对词语的向量化提高了准确程度;尤其是对于在预料不充分的情况下,对于包括生僻字的词语,大幅度提高了词语生成词向量的准确程度。

由此,本申请上述实施例现有技术中生成的词语向量不准确的技术问题。

作为一种可选的实施例,所述笔画信息包括所述词语对应的n元笔画,提取词语的至少一个笔画的笔画信息,包括:获取预先构建的n元笔画映射表,其中,n元笔画映射表用于表示词语与n元笔画的对应关系;从n元笔画映射表中查找词语对应的n元笔画。

具体的,上述n元笔画映射表用于记录词语与n元笔画的对应关系,在得到n元笔画映射表的情况下,可以根据词语直接在n元笔画映射表中查找对应的n元笔画。n元笔画可以是从笔画信息中提取的词语的结构特征信息,可以由连续的n个笔画构成,一个词语可以对应多个n元笔画,如果词语的笔画数量为m,则该词语对应m-1+1个n元笔画。

n的取值本申请不做具体限定。n的取值越小,笔画特征向量中包含的词语的特征信息越多,但运算时所消耗的运算资源就越多;n的取值越大,笔画特征向量中包含的词语的特征信息越少,但运算时消耗对应运算资源也越少,在实际应用中,可以根据对运算精度的需求调整n的取值。

在一种可选的实施例中,n元笔画映射表是基于预设的词库生成的,包括词库中的每个词语与n元笔画的对应关系。系统预存了多个n为不同值时的n元笔画映射表,在获取词语的n元笔画时,根据n的取值获取对应的n元笔画映射表。仍以词语“大人”为例,在预先构建的n元笔画映射表中查找“大人”,即可得到n元笔画映射表中记录的“大人”对应的n元笔画。

作为一种可选的实施例,在获取预先构建的n元笔画映射表之前,上述方法还包括:构建n元笔画映射表,包括:将词语拆分成多个按照顺序排列的笔画元素;所述笔画元素中提取连续的n个相连的笔画元素;确定所述连续的n个相连的笔画元素为所述词语的n元笔画。

为了构建n元笔画映射表,需要确定预设词库中的每个词语对应的n元笔画,从而构成n元映射表。在一种可选的实施例中,可以设置n分别为2、3、4、5等数值,获取不同n值对应的n元笔画映射表。

下面以确定一个词语的n元笔画为例进行说明,仍以“大人”为例,拆分该词语得到按顺序排列的五个笔画元素“横,撇,捺,撇,捺”,以n=3为例,从笔画元素中提取连续的3个相连的笔画元素,即可得到“横撇捺”,“撇捺撇”和“捺撇捺”。再以n=4为例,从笔画元素中提取连续的4个相连的笔画元素,即可得到横,撇,捺,撇”和“撇,捺,撇,捺”。

对词库中的每个词语按照上述方式得到对应的n元笔画,再建立每个词语与其对应的n元笔画的对应关系,即可得到n元笔画映射表。将n取多个不同的值,即可得到多个n元笔画映射表,在使用过程中可以根据n的取值获取对应的n元笔画映射表。

图4是根据本申请实施例1的一种生成笔画特征向量的示意图,在一种可选的实施例中,如图4所示,仍以“大人”为例,先将词语“大人”划分为两个单独的汉字“大”和“人”,然后再将每个汉字进行拆分,得到“横,撇,捺,撇,捺”,结合图3中笔画与标识的对应关系可知,“大人”按照笔画进行拆分后可以用标识“1,3,4,3,4”表示。

再获取笔画元素中n个相邻的笔画元素,在n=3的情况下,得到3元笔画为“1,3,4”、“3,4,3”以及“4,3,4”,转换为笔画元素即为“横撇捺”,“撇捺撇”和“捺撇捺”。在n=4的情况下,得到的4元笔画为“1,3,4,3”和“3,4,3,4”,转换为笔画元素即为“横,撇,捺,撇”以及“撇,捺,撇,捺”。在n=5的情况下,得到的5元笔画为“1,3,4,3,4”,转换为笔画元素即为横,撇,捺,撇,捺”。

作为一种可选的实施例,基于笔画的笔画信息,生成词语的笔画特征向量,包括:确定n元笔画对应的编号,其中,每个n元笔画具有对应的编号;在预设维度的向量中,将编号对应位置的元素与其他位置的元素相反设置,得到词语的笔画特征向量,其中,笔画特征向量中的每个元素为0或1。

具体的,n元笔画与编号的对应关系可以是预设的,n元笔画包括n个笔画元素,因此为了使每种n元笔画对应的组合都具有不同的编号,如果将笔画分为k种,则编号至少有nk个,如图3所示,k=5,则编号至少有n5个。

在一种可选的实施例中,设置编号的方式可以是由0开始顺序编号,为每个n元笔画进行编号。

上述预设的维度与编号的数量可以相同,或大于编号的数量。在一种可选的实施例中,以n=3为例,在笔画被分为如图3所示的5种,n元笔画中的每一位都至少会有5种选择,因此需要的编号至少为53个。在这种情况下,预设的维度至少包括124位。如果“横撇捺”,“撇捺撇”和“捺撇捺”对应的标号为2,34,123,则在125位的向量中,将第2位、第34位以及第123位置1,其他位置置0,或将第2位、第34位以及第123位置0,其他位置置1,从而得到的“大人”对应的笔画特征向量。

作为一种可选的实施例,在获取语句中至少一个词语之前,方法还包括:获取词向量生成模型,其中,获取词向量生成模型,包括:获取训练数据和预设的神经网络模型;使用训练数据训练预设的神经网络模型,得到神经网络参数;基于神经网络参数确定词向量生成模型。

具体的,上述训练数据可以是预设词库中的词语,预设的神经网络模型可以是网络参数被初始化的神经网络模型。在一种可选的实施例中,训练数据中除了正样本词语,还可以包括负样本词语,以对神经网络模型进行更准确的训练。

作为一种可选的实施例,获取训练数据,包括:获取多个候选样本词语中,每个候选样本词语出现的次数;确定出现的次数大于或等于预设次数的候选样本词语构成训练数据。

具体的,可以通过扫描预设的文本数据得到候选样本词语,在扫描过程中,记录文本数据中所有出现过的词汇,这些词汇即为上述的候选样本词语。

在一种可选的实施例中,逐句扫描所有预先准备的文本数据,统计所有出现过的词语,根据统计的词语建立词汇表,并从词汇表中删除出现次数小于b次的词语。

在词语出现次数较少的情况下,神经网络模型难以对词语在语句中语义进行学习,因此,上述实施例剔除候样本词语中出现次数小于预设次数的候选样本词语,以使神经网络模型仅对有效的样本词语进行训练。

作为一种可选的实施例,使用训练数据训练预设的神经网络模型,得到神经网络参数,包括:获取所述训练数据中的正样本词语对应的上下文词语;基于所述上下文词语得到所述正样本词语对应的第一词向量;将所述正样本词语的笔画特征向量输入至所述神经网络模型的全连接层,得到所述神经网络模型输出的第一预测结果,其中,所述第一预测结果用于表示所述神经网络模型预测的所述正样本词语对应的第二词向量;所述训练数据中的负样本词语的笔画特征向量输入至所述神经网络模型的全连接层,得到所述神经网络模型输出的第二预测结果,其中,所述第二预测结果用于表示所述神经网络模型预测的所述负样本词语对应的第三词向量;基于所述第一词向量、所述第二词向量和所述第三词向量构造所述神经网络模型的损失函数;基于所述损失函数的最小值,得到所述神经网络参数。

具体的,上下文词语用于表示临近信息对当前信息的预测,上述正样本词语和负样本词语均为词语,负样本词语可以是随机抽取得到的,正样本词语的上下文可以从正样本词语所在的语句中获得,例如,可以以正样本词语为中心,获取左侧的p个词语以及右侧的p个词语,作为该样本词语的上下文词语。

在上述方案中,可以将上下文词语对应的n元笔画输入至卷积神经网络的特征层,以提取上下文语句的特征,提取出的结果即为上述第一词向量。图5是根据本申请实施例1的一种神经网络模型的示意图,结合图5所示,在“雅加达亚运会闭幕”这个语句中的“亚运会”作为当前词语,其上下文词语为“雅加达”和“闭幕”,因此将“雅加达”和“闭幕”这两个上下文词语输入至神经网络模型的特征层,即图5所示的左侧,卷积神经网络输出的即为第一词向量,图5中仅示出了最后一个上下文词语“闭幕”的输出单元,即“sequencerepresentationlayer。

在该实施例中,正样本词语即为当前词语“亚运会”,将“亚运会”对应的笔画特征信息输入至全连接层,得到全连接层输出的“亚运会”对应的第二词向量。通过公示表示为w为全连接层输出的第二词向量,σ为神经网络激励函数,和τ为全连接层的网络参数,q为“亚运会”对应的笔画特征向量。

负样本词语即为与正样本词语不同的词语,如图5所示,该示例中选择负样本词语为“奥运会”和“开幕”,通过同样的公式即可得到负样本词语对应的第三词向量。

在得到上述第一词向量、第二词向量以及第三词向量后,根据第一词向量、第二词向量和第三词向量确定损失函数,该损失函数是由神经网络参数模型的网络参数表达的函数,神经网络模型的性能越好,其损失函数越小,因此可以基于损失函数最小值,确定最佳的神经网络参数。

上述方案中,可以通过本实施例中提出的获取笔画特征向量的方式确定正样本词语和负样本词语的笔画特征向量,在得到正样本词语和负样本词语的笔画特征向量后,将正样本词语和负样本词语的笔画特征向量输入至神经网络模型的全连接层,由全连接层输出根据正样本词语和负样本词语的笔画特征向量得到的第二词向量和第三词向量,再根据第一词向量、第二词向量和第三词向量,即可得到神经网络模型的损失函数。

神经网络模型的损失函数越小,神经网络模型越准确,上述方案中获取的损失函数是由神经网络参数表示的函数,因此可以通过求取损失函数的极值的方式,得到神经网络参数。

需要说明的是,传统的生成词向量的方法均单独计算每一个上下文词语与当前词语的相似度,并不能够描述上下文词语整体的语义,而本身中由卷积神经网络通过卷积和池化,对上下文整体语义信息进行描述,进而提取更多的上下文语义信息,训练得到更准确的神经网络模型。

作为一种可选的实施例,获取训练数据中的正样本词语对应的上下文词语,包括:以正样本词语为中心向两侧滑动预设数量的词语,得到词语对应的上下文词语。

在上述方案中,以词语为中心向两侧滑动预设数量的词语,即为以正样本词语为中心,取前向的设数量的词语和后向的设数量的个词语。

此处需要说明的是,语句中的标点符号用于进行断句,标点符号前后的语义可能存在较大的差别,因此在以正样本词语为中心滑动时,如果遇到标点符号,则停止继续滑动。

作为一种可选的实施例,基于所述上下文词语得到所述正样本词语对应的第一词向量,包括:获取上下文词语对应的笔画特征向量;将上下文词语对应的笔画特征向量输入至神经网络模型,得到神经网络模型的特征层输出的第一词向量,其中,第一词向量与神经网络参数中的特征层参数相关。

在一种可选的实施例中,结合图5所示,以当前词语为中心,向两侧滑动p个词语建立窗口,从窗口内的第一个词语到最后一个词语,每次选择一个作为“上下文词语”,在语句“雅加达亚运会闭幕”中,如果当前词语为“亚运会”,则其上下文为“雅加达”和“闭幕”。

对于上下文词语,根据上述实施例中的n元笔画映射表,找到上下文词语对应的所有n元笔画,将上下文词语对应的n元笔画输入至进入图5左侧的循环神经网络中。图6是根据本申请实施例1的一种对上下文词语进行特征提取的示意图,计算过程可以如图6所示,xt是在时刻t的输入单元,即为第t+1个词语的笔画特征向量(x0为第一个词语的笔画特征向量),而st是在时刻t的隐藏单元,目的是产生输出单元ot,更加具体地:

st=σ(uxt+wst-1);

ot=softmax(vst-1);

其中,σ为神经网络激励函数,可以采用tanh或relu,u、w、v是循环神经网络的参数。输出ot是一个d维的向量,是融合了前t+1个上下文词语信息的向量表示。在图6中,仅示出了最后一个上下文词语“闭幕”的输出单元,即“sequencerepresentationlayer”中的单元,即上下文表示向量。

作为一种可选的实施例,基于所述第一词向量、所述第二词向量和所述第三词向量构造所述神经网络模型的损失函数,包括:获取所述第二词向量与所述第一词向量的第一余弦,所述第三词向量与所述第一词向量的第二余弦;获取所述第一余弦与预设超参数之积的相反数,与所述第二余弦的相反数相加得到的第一和值;获取所述第一和值的指数函数;确定每个负样本词语对应的指数函数之和为第二和值;确定所述第二和值和预设常数相加得到的第三和值为对数参数;确定所述对数参数的对数值为所述损失函数。

具体的,上述第一余弦用于表示第一词向量与第二词向量之间的距离,第二余弦用于表示第三词向量与第一次向量的距离。在一种可选的实施例中,可以通过如下公式计算损失函数:

其中,为损失函数,log是对数函数,u,w,v为神经网络模型的特征层的网络参数,τ为神经网络模型的全连接层的网络参数,γ为预设的超参数,可以设置为大于1的正整数(例如,在10-100中取任意整数作为γ);c用于表示第一词向量,w用于表示第二词向量,wj′用于表示第三词向量,s(w,c)表示w和c两个向量的夹角余弦值,即第一余弦,s(w′j,c)用于表示w′j和c两个向量的夹角余弦值,即第二余弦,λ用于表示负样例的个数。

作为一种可选的实施例,上述词语为如下任意一种或多种:中文词语、韩文词语和日文词语。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述词向量的生成方法的词向量的生成装置,图7是根据本申请实施例2的一种词向量的生成装置的示意图,如图7所示,该装置700包括:

获取模块702,用于获取语句中的至少一个词语。

提取模块704,用于提取所述词语的至少一个笔画的笔画信息。

生成模块706,用于基于所述笔画的笔画信息,生成所述词语的笔画特征向量,其中,所述笔画特征向量表示所述词语的局部特征信息。

确定模块708,用于基于所述词语的笔画特征向量,通过所述词向量生成模型,确定所述词语的词向量,其中,所述词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

此处需要说明的是,上述获取模块702、提取模块704、生成模块706和确定模块708对应于实施例1中的步骤s21至步骤s27,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

作为一种可选的实施例,提取模块包括:第一获取子模块,用于获取预先构建的n元笔画映射表,其中,n元笔画映射表用于表示词语与n元笔画的对应关系;查找子模块,用于从n元笔画映射表中查找词语对应的n元笔画。

作为一种可选的实施例,上述装置还包括:构建模块,用于在获取预先构建的n元笔画映射表之前,构建n元笔画映射表,其中,构建模块包括:拆分子模块,用于将词语拆分成多个按照顺序排列的笔画元素;提取子模块,用于从笔画元素中提取连续的n个相连的笔画元素;第一确定子模块,用于确定连续的n个相连的笔画元素为词语的n元笔画。

作为一种可选的实施例,生成模块包括:第二确定子模块,用于确定n元笔画对应的编号,其中,每个n元笔画具有对应的编号;设置子模块,用于在预设维度的向量中,将编号对应位置的元素与其他位置的元素相反设置,得到词语的笔画特征向量,其中,笔画特征向量中的每个元素为0或1。

作为一种可选的实施例,上述装置还包括:模型获取模块,用于在获取语句中的至少一个词语之前,获取词向量生成模型,其中,模型获取模块包括:第二获取子模块,用于获取训练数据和预设的神经网络模型;训练子模块,用于使用训练数据训练预设的神经网络模型,得到神经网络参数;第三确定子模块,用于基于神经网络参数确定词向量生成模型。

作为一种可选的实施例,训练子模块包括:第一获取单元,用于获取多个候选样本词语中,每个候选样本词语出现的次数;第一确定单元,用于确定出现的次数大于或等于预设次数的候选样本词语构成训练数据。

作为一种可选的实施例,训练子模块包括:第二获取单元,用于获取训练数据中的正样本词语对应的上下文词语;第三获取单元,用于基于上下文词语得到正样本词语对应的第一词向量;第一输入单元,用于将正样本词语的笔画特征向量输入至神经网络模型的全连接层,得到神经网络模型输出的第一预测结果,其中,第一预测结果用于表示神经网络模型预测的正样本词语对应的第二词向量;第二输入单元,用于将训练数据中的负样本词语的笔画特征向量输入至神经网络模型的全连接层,得到神经网络模型输出的第二预测结果,其中,第二预测结果用于表示神经网络模型预测的负样本词语对应的第三词向量;构造单元,用于基于第一词向量、第二词向量和第三词向量构造神经网络模型的损失函数;第四获取单元,用于基于损失函数的最小值,得到神经网络参数。

作为一种可选的实施例,第二获取单元包括:滑动子单元,用于以正样本词语为中心向两侧滑动预设数量的词语,得到样本词语对应的上下文词语。

作为一种可选的实施例,第三获取单元包括:第一获取子单元,用于获取上下文词语对应的n元笔画;输出子单元,用于将上下文词语对应的n元笔画输入至神经网络模型,得到神经网络模型的特征层输出的第一词向量,其中,第一词向量与神经网络参数相关。

作为一种可选的实施例,构造单元包括:第二获取子单元,用于获取第二词向量与第一词向量的第一余弦,第三词向量与第一词向量的第二余弦;第三获取子单元,用于获取第一余弦与预设超参数之积的相反数,与第二余弦的相反数相加得到的第一和值;第四获取子单元,用于获取第一和值的指数函数;第一确定子单元,用于确定每个负样本词语对应的指数函数之和为第二和值;第二确定子单元,用于确定第二和值和预设常数相加得到的第三和值为对数参数;第三确定子单元,用于确定对数参数的对数值为损失函数。

作为一种可选的实施例,上述词语为如下任意一种或多种:中文词语、韩文词语和日文词语。

具体的,上述实施例通过生成词语的笔画特征向量来生成词语的词向量,因此除中文词语之外,韩文词语、日文词语,以及其他与中文同属于汉藏语系的其他词语也均能够应用上述方案生成对应的词向量,例如:藏文词语、缅甸文词语等。

实施例4

本发明的实施例可以提供一种词向量的生成系统,包括:

处理器;以及

存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:获取语句中的至少一个词语;提取所述词语的至少一个笔画的笔画信息;基于所述笔画的笔画信息,生成所述词语的笔画特征向量,其中,所述笔画特征向量表示所述词语的局部特征信息;基于所述词语的笔画特征向量,通过词向量生成模型,确定所述词语的词向量,其中,所述词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

进一步的,存储器还为处理器提供了处理实施例1中其他步骤的指令,此处不再赘述。

实施例4

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:获取语句中的至少一个词语;提取词语的至少一个笔画的笔画信息;基于笔画的笔画信息,生成词语的笔画特征向量,其中,笔画特征向量表示词语的局部特征信息;基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量,其中,词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

可选地,图8是根据本发明实施例4的一种计算机终端的结构框图。如图8所示,该计算机终端a可以包括:一个或多个(图中仅示出一个)处理器802、存储器804、以外设接口806。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端a。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取语句中的至少一个词语;提取词语的至少一个笔画的笔画信息;基于笔画的笔画信息,生成词语的笔画特征向量,其中,笔画特征向量表示词语的局部特征信息;基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量,其中,词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

可选的,上述处理器还可以执行如下步骤的程序代码:获取预先构建的n元笔画映射表,其中,所述n元笔画映射表用于表示词语与n元笔画的对应关系;从所述n元笔画映射表中查找所述词语对应的n元笔画。

可选的,上述处理器还可以执行如下步骤的程序代码:在获取预先构建的n元笔画映射表之前,构建所述n元笔画映射表,其中,构建所述n元笔画映射表,包括:将所述词语拆分成多个按照顺序排列的笔画元素;从所述笔画元素中提取连续的n个相连的笔画元素;确定所述连续的n个相连的笔画元素为所述词语的n元笔画。

可选的,上述处理器还可以执行如下步骤的程序代码:确定所述n元笔画对应的编号,其中,每个所述n元笔画具有对应的编号;在预设维度的向量中,将所述编号对应位置的元素与其他位置的元素相反设置,得到所述词语的笔画特征向量,其中,所述笔画特征向量中的每个元素为0或1。

可选的,上述处理器还可以执行如下步骤的程序代码:在获取语句中的至少一个词语之前,获取所述词向量生成模型,其中,获取所述词向量生成模型,包括:获取训练数据和预设的神经网络模型;使用所述训练数据训练所述预设的神经网络模型,得到神经网络参数;

基于所述神经网络参数确定所述词向量生成模型。

可选的,上述处理器还可以执行如下步骤的程序代码:获取多个候选样本词语中,每个所述候选样本词语出现的次数;确定出现的次数大于或等于预设次数的所述候选样本词语构成所述训练数据。

可选的,上述处理器还可以执行如下步骤的程序代码:获取所述训练数据中的正样本词语对应的上下文词语;基于所述上下文词语得到所述正样本词语对应的第一词向量;将所述正样本词语的笔画特征向量输入至所述神经网络模型的全连接层,得到所述神经网络模型输出的第一预测结果,其中,所述第一预测结果用于表示所述神经网络模型预测的所述正样本词语对应的第二词向量;将所述训练数据中的负样本词语的笔画特征向量输入至所述神经网络模型的全连接层,得到所述神经网络模型输出的第二预测结果,其中,所述第二预测结果用于表示所述神经网络模型预测的所述负样本词语对应的第三词向量;基于所述第一词向量、所述第二词向量和所述第三词向量构造所述神经网络模型的损失函数;基于所述损失函数的最小值,得到所述神经网络参数。

可选的,上述处理器还可以执行如下步骤的程序代码:以所述正样本词语为中心向两侧滑动预设数量的词语,得到所述样本词语对应的上下文词语。

可选的,上述处理器还可以执行如下步骤的程序代码:获取所述上下文词语对应的n元笔画;将所述上下文词语对应的n元笔画输入至所述神经网络模型,得到所述神经网络模型的特征层输出的所述第一词向量,其中,所述第一词向量与所述神经网络参数相关。

可选的,上述处理器还可以执行如下步骤的程序代码:获取所述第二词向量与所述第一词向量的第一余弦,所述第三词向量与所述第一词向量的第二余弦;获取所述第一余弦与预设超参数之积的相反数,与所述第二余弦的相反数相加得到的第一和值;获取所述第一和值的指数函数;确定每个负样本词语对应的指数函数之和为第二和值;确定所述第二和值和预设常数相加得到的第三和值为对数参数;确定所述对数参数的对数值为所述损失函数。

可选的,上述处理器还可以执行如下步骤的程序代码:上述述词语为如下任意一种或多种:中文词语、韩文词语和日文词语。

采用本发明实施例,提供了一种词向量的生成方法。通过获取语句中的至少一个词语,提取词语的至少一个笔画的笔画信息,基于笔画的笔画信息,生成词语的笔画特征向量,基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量。上述方案在对词语进行向量化处理时,引入了词语的笔画信息,从而增强了对语言的结构信息提取的能力,进而针对词语的向量化提高了准确程度;尤其是对于在预料不充分的情况下,对于包括生僻字的词语,大幅度提高了词语生成词向量的准确程度。

由此,本申请上述实施例现有技术中生成的词语向量不准确的技术问题。

本领域普通技术人员可以理解,图所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算机终端a还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例5

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的词向量的生成方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取语句中的至少一个词语;提取词语的至少一个笔画的笔画信息;基于笔画的笔画信息,生成词语的笔画特征向量,其中,笔画特征向量表示词语的局部特征信息;基于词语的笔画特征向量,通过词向量生成模型,确定词语的词向量,其中,词向量生成模型用于根据词语的笔画特征向量生成对应的词向量。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1