本申请涉及计算机技术领域,更具体地说,涉及一种文本处理方法、装置、存储介质和电子设备。
背景技术:
在人机交互过程中,为了使电子设备能够理解人类的自然语言,以更好地服务用户,需要对自然语言进行数字化处理。文本向量化指将自然语言文本转化为机器可以理解的数字化向量的过程,是自然语言处理和机器理解自然语言的主要方式。
词向量化是将自然语言中的词语转化为词向量,是文本向量化过程中的一个重要步骤。现有的词向量化方法包括独热码表示法(one-hotrepresentation)和分布式表示法(distributedrepresentation)。独热码表示法通过创建一个词表库,并对词表库中的每个词进行顺序编号来赋予每个词一个向量。分布式表示法的基本思想是利用神经网络算法,基于训练词向量语料库,通过训练神经网络将每个词映射成一个固定长度的k维实数短向量,最终得到每个词的词向量。
现有的词向量方法均是将给定词语编码为唯一的向量进行表示,对于不同语义的同一个词或同一个字会表征为同一个向量,不能区分文本中的一词多义或一字多义现象,因此,无法准确地进行文本语义识别。
技术实现要素:
为解决现有存在的技术问题,本申请实施例提供一种文本处理方法、装置、存储介质和电子设备,可以更精准地对文本进行向量化,提高文本语义识别的准确性。
为达到上述目的,本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种文本处理方法,包括:
基于目标文本中的每个目标字所属的目标词语,获取所述每个目标字对应的解释信息;
对于目标文本中的每个目标字,根据所述目标字对应的解释信息,以及所述目标字与所述目标字所在的上下文中其它目标字的相关向量,确定所述目标字对应的字向量;其中,所述目标字与其它目标字的相关向量是由所述目标字对应的解释信息和其他目标字对应的解释信息确定的;
根据每个目标字对应的字向量,获得所述目标文本中由目标字组成的各个目标词语对应的词向量;
基于各个目标词语对应的词向量,将所述目标文本转化为目标文本向量;
输出所述目标文本向量对应的关联文本。
第二方面,本申请实施例提供一种文本处理装置,包括:
信息获取单元,用于基于目标文本中的每个目标字所属的目标词语,获取所述每个目标字对应的解释信息;
文本表示单元,用于对于目标文本中的每个目标字,根据所述目标字对应的解释信息,以及所述目标字与所述目标字所在的上下文中其它目标字的相关向量,确定所述目标字对应的字向量;其中,所述目标字与其它目标字的相关向量是由所述目标字对应的解释信息和其他目标字对应的解释信息确定的;根据每个目标字对应的字向量,获得所述目标文本中由目标字组成的各个目标词语对应的词向量;基于各个目标词语对应的词向量,将所述目标文本转化为目标文本向量;
信息推荐单元,用于输出所述目标文本向量对应的关联文本。
在一种可选的实施例中,所述信息获取单元,还用于:
对所述目标文本进行分词处理,得到多个词语;
去除所述多个词语中的停用词,得到多个目标词语;
将包含多个字的目标词语拆分为单个目标字,并记录每个目标字所属的目标词语;
基于每个目标字所属的目标词语,获取每个目标字对应的解释信息。
在一种可选的实施例中,所述文本表示单元,还用于:
根据所述目标字的解释信息,确定所述目标字的结构向量;
从所述目标文本的除所述目标字之外的其它目标字中选取任意一个作为节点字,通过上下文相关网络模型,根据所述目标字的解释信息和节点字的解释信息,确定所述目标字相对于节点字的相关向量;
将所述目标字对应的结构向量及所述目标字相对于每个节点字的相关向量组合为所述目标字对应的字向量。
在一种可选的实施例中,所述上下文相关网络模型包括卷积层、注意力矩阵、池化层和逻辑回归层;所述文本表示单元,还用于:
通过所述卷积层,分别对所述目标字的解释信息和节点字的解释信息进行卷积,得到所述目标字的文本特征矩阵和节点字的文本特征矩阵;
通过注意力矩阵,对所述目标字的文本特征矩阵和节点字的文本特征矩阵进行相关处理,得到所述目标字与节点字的相关矩阵;
通过所述池化层和逻辑回归层,对所述目标字与节点字的相关矩阵进行池化和回归处理,得到所述目标字相对于节点字的相关向量。
在一种可选的实施例中,所述文本表示单元,还用于:
将所述相关矩阵中的每一行数据和每一列数据分别输入池化层,得到每一行数据对应的行向量和每一列数据对应的列向量;
将得到的行向量和列向量输入逻辑回归层进行回归处理,得到所述目标字相对于节点字的相关向量。
在一种可选的实施例中,所述文本表示单元,还用于:
对于所述目标文本中的每个目标词语,将所述目标词语包含的每个目标字对应的字向量均输入递归神经网络模型,得到所述递归神经网络模型输出的所述目标词语对应的词向量。
在一种可选的实施例中,所述文本表示单元,还用于:
对于所述目标文本中的每个目标词语,将与该目标词语相邻的预设数量的其它目标词语对应的词向量输入文本识别模型,得到所述文本识别模型输出的该目标词语对应的重组词向量;
根据各个目标词语对应的重组词向量,将所述目标文本转化为目标文本向量。
在一种可选的实施例中,所述信息推荐单元,具体用于:
查找与所述目标文本向量相匹配的语义向量;
将与查找到的语义向量相对应的关联文本作为所述目标文本向量对应的关联文本;
输出所述关联文本。
第三方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的文本处理方法。
第四方面,本申请实施例还提供一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现第一方面的文本处理方法。
本申请实施例的文本处理方法、装置、存储介质和电子设备,基于目标文本中的每个目标字所属的目标词语,获取每个目标字对应的解释信息;对于目标文本中的每个目标字,通过该目标字对应的解释信息和目标字所在的上下文中其他目标字对应的解释信息,确定目标字与其它目标字的相关向量;根据该目标字对应的解释信息,以及目标字与目标字所在的上下文中其它目标字的相关向量,确定该目标字对应的字向量;对于语义不同的同一字,可以根据不同的上下文表示为不同的字向量,因此可以解决一字多义的问题。然后,根据每个目标字对应的字向量,获得目标文本中由目标字组成的各个目标词语对应的词向量,基于各个目标词语对应的词向量,将目标文本转化为目标文本向量,根据目标文本向量,确定目标文本对应的关联文本,准确地输出目标文本对应的关联文本。由于语义不同的同一字对应不同的字向量,因此语义不同的同一词语对应的词向量将由不同的字向量得到,语义不同的同一词语对应的词向量也不同,可以解决一词多义的问题,更精准地对文本进行向量化表示,提高文本语义识别的准确性。同时,由于新词基本来自于常见字之间的组合,上述基于字向量构建词向量的方法有助于对新词的语义进行预测。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种文本处理方法的应用场景示意图;
图2为本申请实施例提供的一种文本处理方法的流程示意图;
图3为图2中步骤s202的流程示意图;
图4为本申请实施例提供的一种上下文相关网络模型的结构示意图;
图5为本申请实施例提供的一种基于字向量生成词向量的示意图;
图6为本申请实施例提供的一种文本识别模型的结构示意图;
图7为本申请实施例提供的一种文本处理场景的界面示意图;
图8为本申请实施例提供的一种文本处理装置的结构框图;
图9为本申请实施例提供的另一种文本处理装置的结构框图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请的文件中涉及的术语“包括”和“具有”以及它们的变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)字向量:也可以称为embedding(嵌入)特征或字向量特征,用于描述自然语言文本所包括的字之间的语义关系,其中,字可以理解为自然语言中组成词语的文字。字向量通常是指对自然语言表示的单个字进行向量转换得到的机器能够理解的稠密向量(densevector)。
(2)词向量:也可以称为词向量特征,用于描述自然语言文本所包括的词语之间的语义关系,通常是指对自然语言表示的词语进行向量转换得到的机器能够理解的稠密向量或矩阵形式,词向量是自然语言文本在机器中数值化的体现。
(3)word2vec模型:google的开源词向量工具,其可以利用词语间的语义关系将词语转化为词向量,还可以利用词向量之间的语义距离关系识别出词语。
下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例涉及人工智能(artificialintelligence,ai)和机器学习技术,基于人工智能中的自然语言处理(naturallanguageprocessing,nlp)技术和机器学习(machinelearning,ml)而设计。
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术主要包括计算机视觉技术、自然语言处理技术、以及机器学习/深度学习等几大方向。
随着人工智能技术研究和进步,人工智能在多个领域展开研究和应用,例如常见的智能家居、智能客服、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、机器人、智能医疗等,相信随着技术的发展,人工智能将在更多的领域得到应用,并发挥越来越重要的价值。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
自然语言处理技术,是计算机科学领域与人工智能领域中的一个重要方向。其研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
文本处理是自然语言处理技术中的主要过程,可以广泛应用于多种应用场景,例如,在电商的智能客服应用场景中,通过对用户发送的自然语言文本进行处理,将自然语言文本转换为机器可以理解的数字化向量,根据得到的数字化向量自动回复用户;在情感分析等应用场景中,通过对用户发送的自然语言文本进行处理,将自然语言文本转换为机器可以理解的数字化向量,根据得到的数字化向量对用户的情感进行分类。在网络论坛等词条构建领域,通过识别文本的语义可以构建与其相关的词条。文本向量化是文本处理过程的必要步骤,文本向量化包括字向量化和词向量化。现有的词向量化方法包括独热码表示法和分布式表示法。
独热码表示法通过创建一个词表库,并对词表库中的每个词进行顺序编号来赋予每个词一个向量,向量的分量只有一个1,其他全为0。独热码表示法有两个严重的缺点,一方面,表示词语的向量的维数与词表库中的词语数量相同,很容易产生维数灾难,即词表库中的词语数量很多时,词语的向量的维数很高,容易导致计算量急剧增加等问题;另一方面,该表示法不能很好地刻画词与词之间的相似度,容易造成词语之间的语义鸿沟。
分布式表示法的基本思想是通过训练将每个词映射成一个固定长度的k维实数短向量,然后将所有向量映射到向量空间,每个词表示成一个浮点向量,每个向量对应空间上的一个点,在空间上计算向量与向量之间的距离,就可以判断词与词之间的相似度。分布式表示法的一种生成词向量的方式是利用神经网络算法,该方法通过训练神经网络语言模型(neuralnetworklanguagemodel)最终得到词向量和语言模型。分布式表示法虽然解决了维度问题和语义鸿沟问题,但是由于基于训练词向量语料库进行词向量训练和表示,所以无法解决超出给定训练词库外的新词预测表示的问题。
上述现有的词向量方法均是将给定词语编码为唯一的向量进行表示,对于不同语义的同一个词或同一个字会表征为同一个向量,不能区分文本中的一词多义或一字多义现象。
鉴于以上现有技术存在的问题,本申请实施例提出了一种文本处理方法、装置、存储介质和电子设备,可以提高文本语义识别的准确性。其中,文本处理方法基于目标文本中的每个目标字所属的目标词语,获取每个目标字对应的解释信息;对于目标文本中的每个目标字,通过该目标字对应的解释信息和目标字所在的上下文中其他目标字对应的解释信息,确定目标字与其它目标字的相关向量;根据该目标字对应的解释信息,以及目标字与目标字所在的上下文中其它目标字的相关向量,确定该目标字对应的字向量;对于语义不同的同一字,可以根据不同的上下文表示为不同的字向量,因此可以解决一字多义的问题。然后,根据每个目标字对应的字向量,获得目标文本中由目标字组成的各个目标词语对应的词向量,基于各个目标词语对应的词向量,将目标文本转化为目标文本向量。由于语义不同的同一字对应不同的字向量,因此语义不同的同一词语对应的词向量将由不同的字向量得到,语义不同的同一词语对应的词向量也不同,可以解决一词多义的问题,更精准地对文本进行向量化表示。同时,由于新词基本来自于常见字之间的组合,上述基于字向量构建词向量的方法有助于对新词的语义进行预测。
本申请实施例在文本处理过程中,采用基于机器学习或深度学习的上下文相关网络模型,根据同一字所在的上下文的不同语义环境,将同一字表示为不同字向量,采用基于机器学习或深度学习的递归神经网络模型,基于字向量构建词向量,以及采用基于机器学习或深度学习的文本识别模型,根据得到的词向量对文本进行向量化表示,可以解决一字多义、一词多义及新词预测的问题,更准确地对文本进行识别。
为更好地理解本申请实施例提供的技术方案,下面对本申请实施例提供的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
图1示出了本申请实施例提供的文本处理方法的一种应用场景,参见图1所示,该应用场景中包括终端设备11和数据处理服务器12。终端设备11与数据处理服务器12之间可以通过有线连接方式或无线连接方式进行连接并传输数据。例如,终端设备11与数据处理服务器12可以通过数据线连接或者通过有线网络连接;终端设备11与数据处理服务器12也可以通过射频模块、蓝牙模块或者无线网络连接。
其中,终端设备11可以是手机、掌上电脑(personaldigitalassistant,pda)、计算机、笔记本、平板电脑、智能穿戴式设备(例如智能手表和智能头盔)等。终端设备11上安装有电子购物应用,用户在购物过程中遇到问题或者想发表自己的看法,可以在电子购物应用提供的智能客服平台编辑文本并上传至数据处理服务器12。例如,用户在终端设备11上编辑“刚买的苹果手机恐怕是个水货”的提问文本上传至数据处理服务器12。用户编辑文本的方式可以是手动输入文字,也可以是语音输入,本申请实施例对此不作限制。
数据处理服务器12上预存有大量与不同提问文本相对应的回复文本。数据处理服务器12接收到终端设备11发送的提问文本,采用本申请实施例提供的文本处理方法,对该提问文本进行向量化表示,生成该提问文本对应的文本向量,并基于生成的文本向量确定与其相对应的回复文本,并将回复文本发送至终端设备11。数据处理服务器12可以是一台服务器或由若干台服务器组成的服务器集群或云计算中心,或者是一个虚拟化平台,也可以是个人计算机、大中型计算机或计算机集群等。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并行执行。
图2示出了本申请实施例提供的一种文本处理方法,该方法可以由图1中的数据处理服务器12执行,也可以由终端设备或其它电子设备执行。示例性地,下文以数据处理服务器12作为执行主体,说明文本处理方法的具体实现过程。如图2所示,该文本处理方法包括如下步骤:
步骤s201,基于目标文本中的每个目标字所属的目标词语,获取每个目标字对应的解释信息。
其中,目标文本可以是用户通过终端设备上传的或者通过其它方式获取的自然语言文本。
获取目标文本之后,可以先对目标文本进行分词处理,得到多个词语,例如,可以采用jieba分词方法或其它通用分词方法对目标文本进行分词处理,得到目标文本所包括的多个词语,其中一些词语可以由单个字组成,另一些词语可以由多个字组成。例如,以第一目标文本“这个苹果的水分充足”为例,经分词处理后得到“这个”、“苹果”、“的”、“水分”、“充足”5个词语。以第二目标文本“刚买的苹果手机恐怕是个水货”为例,经分词处理后得到“刚”、“买的”、“苹果”、“手机”、“恐怕”、“是个”、“水货”7个词语。
经分词处理后得到的词语中可能既包括具有实际意义的实词,如名词、动词、形容词等,也包括没有实际意义的虚词,如介词、连词、语气词、助词、叹词等。例如,上述分词得到的词语“的”并没有实际意义,为虚词,在计算机领域,这些虚词被称为停用词,忽略这些停用词后,整个文本的语义并不会受到影响。因此,在一些实施例中,可以去除经分词得到的多个词语中的停用词,将剩余的具有实际意义的词语作为目标词语,目标词语中包含的字称为目标字。需要说明的是,在另一些实施例中,也可以不剔除停用词,将分词得到的所有词语均作为目标词语;或者,一些目标文本中可能并不包含停用词,因此也将分词得到的所有词语均作为目标词语。
将包含多个字的目标词语拆分为单个目标字,并记录每个目标字所属的目标词语。例如,以第一目标文本为例,最终拆分得到的单个目标字可以表示为“这|个苹|果的水|分充|足”,或者表示为“这|个苹|果水|分充|足”。以第二目标文本为例,最终拆分得到的单个目标字可以表示为“刚买|的苹|果手|机恐|怕是|个水|货”。
基于每个目标字所属的目标词语,获取每个目标字对应的解释信息。在一些实施例中,对于不属于目标词语的字,即没有实际意义的字,可以不获取其对应的解释信息。例如,对于第一目标文本的“水分”中的“水”字,可以获取词语“水分”的解释信息,将词语“水分”的解释信息作为“水”字的解释信息。对于第二目标文本的“水货”中的“水”字,可以获取词语“水货”的解释信息,将词语“水货”的解释信息作为“水”字的解释信息。词语的解释信息可以理解为描述该词语的句子,可以通过网络爬虫技术从网络中搜集词语的解释信息,例如,获取词语在网络中的词条描述文本或者相同文章主题下包含该词语的一个或多个句子作为该词语的解释信息;或者,可以从预存的词语解释信息库中获取词语的解释信息。如果没有搜集到某些词语的解释信息,可以用缺省的文本unknown来表示。
基于目标文本中的每个目标字所属的目标词语,获取每个目标字对应的解释信息,有利于将语义不同的同一字表示为不同的字向量。
步骤s202,对于目标文本中的每个目标字,根据该目标字对应的解释信息,以及该目标字与该目标字所在的上下文中其它目标字的相关向量,确定该目标字对应的字向量。
其中,该目标字与其它目标字的相关向量是由该目标字对应的解释信息和其他目标字对应的解释信息确定的。
根据该目标字对应的解释信息,以及目标字与目标字所在的上下文中其它目标字的相关向量,确定该目标字对应的字向量,对于语义不同的同一字,可以根据不同的上下文表示为不同的字向量,因此可以解决一字多义的问题。例如,对于第二目标文本中的“苹”字和“果”字,由于其上下文中包括“手机”、“水货”等,与“苹”字和“果”字在第一目标文本中所处的上下文环境不同,因此,最终得到的第一目标文本中的“苹”字与第二目标文本中的“苹”字对应的字向量不同,第一目标文本中的“果”字与第二目标文本中的“果”字对应的字向量也不同。
步骤s203,根据每个目标字对应的字向量,获得目标文本中由目标字组成的各个目标词语对应的词向量。
由于语义不同的同一字对应不同的字向量,因此语义不同的同一词语对应的词向量将由不同的字向量得到,语义不同的同一词语对应的词向量也不同,可以解决一词多义的问题。同时,由于新词基本来自于常见字之间的组合,上述基于字向量构建词向量的方法有助于对新词的语义进行预测。
步骤s204,基于各个目标词语对应的词向量,将目标文本转化为目标文本向量。
步骤s205,输出目标文本向量对应的关联文本。
在一种实施例中,数据处理服务器上可以预存有与不同文本对应的关联文本,关联文本可以与语义向量对应进行存储。示例性地,一种语义向量可以对应一个关联文本。数据处理服务器得到目标文本的目标文本向量后,查找与目标文本向量相匹配的语义向量,将与查找到的语义向量相对应的关联文本作为目标文本向量(也可以说目标文本)对应的关联文本,输出关联文本。
例如,在智能客服应用场景中,数据处理服务器上可以预存大量与不同提问文本相对应的关联回复文本。数据处理服务器接收到用户发送的提问文本,采用上述文本处理方法,对该提问文本进行向量化表示,生成该提问文本对应的目标文本向量,并基于生成的目标文本向量确定与其相对应的关联回复文本,并将关联回复文本反馈给用户。
本申请实施例提供的文本处理方法,可以更精准地对文本进行向量化表示,提高文本语义识别的准确性。
在一些实施例的步骤s202中,对于目标文本中的每个目标字,可以通过图3所示的方法确定该目标字对应的字向量,包括:
步骤s2021,根据该目标字的解释信息,确定该目标字的结构向量。
将从目标文本中选取的任意一个目标字作为顶点字,可以先通过卷积神经网络(convolutionalneuralnetworks,cnn)获取该顶点字的结构向量。具体地,可以将该顶点字的解释信息输入卷积神经网络,得到卷积神经网络输出的该顶点字的结构向量。例如,对于目标文本中的某一个目标字u,其解释信息为文本序列su。将u作为顶点字,根据顶点字u的解释信息su,得到顶点字u的结构向量为us。
步骤s2022,从目标文本的除该目标字之外的其它目标字中选取任意一个作为节点字,通过上下文相关网络模型,根据目标字的解释信息和节点字的解释信息,确定该目标字相对于节点字的相关向量。
上下文相关网络模型的结构可以如图4所示,包括卷积层、注意力矩阵、池化层和逻辑回归层。卷积层用于对该目标字(即顶点字)的解释信息和节点字的解释信息进行卷积运算,得到顶点字的文本特征矩阵和节点字的文本特征矩阵。注意力矩阵用于对顶点字的文本特征矩阵和节点字的文本特征矩阵进行相关处理,得到顶点字与节点字的相关矩阵。池化层和逻辑回归层用于对顶点字与节点字的相关矩阵进行池化和回归处理,得到顶点字相对于节点字的相关向量。
例如,对于顶点字u,将从除顶点字u之外的其它目标字中选取任意一个目标字作为节点字,标记为v,u的解释信息为文本序列su,v的解释信息为文本序列sv。
通过卷积层,分别对顶点字u的解释信息和节点字v的解释信息进行卷积,得到顶点字u的文本特征矩阵p和节点字v的文本特征矩阵q,其中,
通过注意力矩阵
通过池化层和逻辑回归层,对顶点字u与节点字v的相关矩阵进行池化和回归处理,得到顶点字u相对于节点字v的相关向量。具体地说,将相关矩阵f中的每一行数据和每一列数据分别输入池化层,执行pooling(池化)操作,得到每一行数据对应的行向量和每一列数据对应的列向量。每一行数据对应的行向量称为行池,每一列数据对应的列向量为列池。示例性地,可以利用mean-pooling(均值池化)来生成行池和列池,可以表示为
将得到的行向量和列向量输入逻辑回归层进行回归处理,得到所述目标字相对于节点字的相关向量。逻辑回归层可以采用softmax分类器实现,softmax分类器将输入的行向量和列向量分别转换为注意力向量ap和aq。例如,ap中的第i个元素可以表示为:
步骤s2023,将目标字对应的结构向量及目标字相对于每个节点字的相关向量组合为目标字对应的字向量。
上述方法中,先根据顶点字的解释信息,确定该顶点字的结构向量,该结构向量为顶点字的一个context-freeembedding(与上下文无关的嵌入特征)。然后,通过顶点字与上下文中其它节点字的mutualattention(相互注意力机制),即在上下文相关网络模型中引入注意力矩阵,得到顶点字相对于其它节点字的context-awareembedding(与上下文相关的嵌入特征)。注意力机制实质上是从大量信息中筛选出高价值信息的手段,在大量信息中,不同信息对于结果的重要性是不同的,这种重要性可以通过赋予不同大小的注意力权值来体现,换言之,注意力机制可以理解成对多个来源进行合成时分配权重的一种规则。最终,顶点字的字向量由上述两个embedding(嵌入特征)结合得到。
例如,对于顶点字u,顶点字u对应的结构向量为us。通过上下文相关网络模型,确定的顶点字u相对于每个节点字的相关向量可以表示为ut(vi)=paip。其中,vi∈v,v表示目标文本中所有目标字的集合。目标字u对应的字向量可以表示为:
得到目标文本中每个目标字对应的字向量之后,可以基于对目标文本进行分词得到的目标词语,根据各个目标词语中包含的每个目标字对应的字向量,获得各个目标词语对应的词向量。
在一种实施例中,对于目标文本中的每个目标词语,可以将目标词语包含的每个目标字对应的字向量均输入递归神经网络模型(recurrentneuralnetwork,rnn),得到递归神经网络模型输出的目标词语对应的词向量。
例如,如图5所示,将“水”字对应的字向量和“分”字对应的字向量输入递归神经网络模型,可以得到递归神经网络模型输出的目标词语“水分”对应的词向量。
可选地,递归神经网络模型由输入层、循环层和输出层构成,可能还包括全连接神经网络中的全连接层。递归神经网络模型具有记忆功能,可以记住网络在上一时刻运行时产生的状态值,并将该值用于当前时刻输出值的生成。递归神经网络模型的输入为向量序列,每个时刻接收一个输入,网络会产生一个输出,而这个输出是由之前时刻的输入序列共同决定的。在本申请实施例中递归神经网络模型以多个字向量组成的字向量序列为输入,词向量为输出,从而建立字向量和词向量之间的关系。
在一些实施例中,递归神经网络模型可以采用单向的循环神经网络实现。在另一些实施例中,考虑到语义识别任务不仅需要序列过去时刻的信息,还需要未来时刻的信息。因此,递归神经网络模型可以采用双向的循环神经网络实现。双向的循环神经网络可以用两个不同的循环层分别从正向和反向对数据进行扫描,从而准确地理解该词语的实际含义。
假设上述步骤s202中得到的字向量的维度均为n,要用两个字向量tf和tl作为子节点输入递归神经网络模型,经递归神经网络模型复合后,构成对应的词向量x即父节点输出,复合过程的计算公式如下:
其中,
由于新词经常由常见汉字构成,因此从字向量构建词向量有助于对预测新词和对新词进行表征学习。
在一种可选的实施例中,得到目标文本中各个目标词语对应的词向量之后,可以直接将各个目标词语对应的词向量组合为目标文本对应的目标文本向量,或者,将各个目标词语对应的词向量进行均值化,得到目标文本对应的目标文本向量。
在另一种可选的实施例中,为了更准确地对目标文本进行识别,考虑到词语与上下文相邻词语之间的相关关系,可以设置词窗,词窗内包括与当前词相邻的预设数量的词语,预设数量可以是3个、5个,也可以更多。用词窗内的词序列上下文预测当前词,确定当前词的词向量。即对于目标文本中的每个目标词语,将与该目标词语相邻的预设数量的其它目标词语对应的词向量输入文本识别模型,得到文本识别模型输出的该目标词语对应的重组词向量,将各个目标词语对应的重组词向量组合为目标文本对应的目标文本向量,或者,将各个目标词语对应的重组词向量进行均值化,得到目标文本对应的目标文本向量。
可选地,文本识别模型的网络结构可以如图6所示,包括输入层、隐藏层和输出层。例如,词窗内包括2n个词,d1w=1词向量分别为
可选地,文本识别模型可以采用word2vec模型或word2vec的模型中的cbow模型(continuousbag-of-wordsmodel)实现,cbow模型是根据当前词上下文的2n个词来预测当前词,其输入是周围词向量之和,输出是当前词的词向量。
在一种应用场景中,数据处理服务器还可以根据得到的目标文本向量进行文本关联,例如智能客服应用场景中,数据处理服务器中保存有与不同文本向量对应的关联文本,得到目标文本向量之后,数据处理服务器可以获取与目标文本向量对应的关联文本,并输出关联文本,如将该关联文本反馈给用户。例如,如图7所示,用户在浏览手机购物界面时,需要了解一些信息,于是用户提出自己的问题,用户通过终端设备11向数据处理服务器12发送“xx型号的手机是xx运行商专用型号吗”,数据处理服务器12将其作为目标文本,通过本申请实施例提供的文本处理方法,得到目标文本向量,在关联数据库中查找到与该目标文本向量相对应的关联文本“不是,这个型号的手机可以适用于各个运行商”,将该关联文本发送至终端设备11,作为对用户提出的问题的回答。由于通过本申请实施例得到的目标文本向量的准确性提高,所以基于该目标文本向量得到的关联文本的准确性和有效性也可以提高。
除以上应用场景外,该申请实施例也适用于自然语言处理中词向量化构建及文本语义识别的其它相关应用场景,如文本表征、问答系统、情感分析等,本申请实施例对应用场景不作具体限定。
在一种实施例中,上下文相关网络模型可以单独进行训练。上下文相关网络模型的训练过程,包括如下步骤:
步骤一、获取训练文本以及训练文本中每个字对应的解释信息;
步骤二、对于训练文本中的每两个字,分别将第一个字和第二个字对应的解释信息输入待训练的上下文相关网络模型,得到由第一相关向量和第二相关向量组成的一组相关向量。
其中,第一相关向量为第一个字相对于第二个字的相关向量,第二相关向量为第二个字相对于第一个字的相关向量。
步骤三、根据得到的每组相关向量,确定目标损失函数。
具体地,可以将训练文本中各个字之间的相关关系理解为一个相关关系网络,可以表示为
相关关系网络中的所有边表示为:
每条边的学习目标为:
基于结构的嵌入可以表示为:
基于文本的嵌入计算为:
其中,ut为节点字u相对于节点字v的相关向量,vt为节点字v相对于节点字u的相关向量。两个节点字之间的相关向量即为两个字之间的相关向量,可以体现两个字在相关关系网络中的距离。
根据上下文相关网络模型输出的每两个字之间的相关向量,确定目标损失函数为:
步骤四、对待训练的上下文相关网络模型的参数进行优化,直至目标损失函数收敛为止,得到已训练的上下文相关网络模型。
在训练过程中,不断地对上下文相关网络模型的参数进行优化,然后进行下一轮训练,直至目标损失函数收敛,即目标损失函数的损失值小于或等于预设的期望值为止,或者,目标损失函数的损失值的变化幅度小于或等于预设的期望值为止,得到已训练的上下文相关网络模型。
在另一种实施例中,卷积神经网络、上下文相关网络模型、递归神经网络模型和文本识别模型可以共同进行训练。训练过程包括如下步骤:
步骤1,获取训练文本。
步骤2,根据训练文本中的每个字所属的词语,获取训练文本中每个字对应的解释信息。
步骤3,对于训练文本中的每个字,将该字作为顶点字,通过如下步骤确定该字对应的字向量:
从训练文本的除顶点字之外的其它字中选取任意一个作为节点字;将顶点字和节点字对应的解释信息输入上下文相关网络模型,得到顶点字相对于节点字的相关向量;根据顶点字的解释信息,通过卷积神经网络确定顶点字的结构向量;将顶点字对应的结构向量及顶点字相对于每个节点字的相关向量组合为顶点字对应的字向量。
步骤4,对于训练文本中的每个训练词语,将训练词语包含的每个字对应的字向量均输入递归神经网络模型,得到递归神经网络模型输出的训练词语对应的词向量。
步骤5,从训练文本中选取一个目标训练词语,将与目标训练词语相邻的预设数量的训练词语对应的词向量输入文本识别模型,得到文本识别模型输出的目标训练词语对应的重组词向量;
步骤6,根据得到的各个重组词向量之间的相关关系,确定目标损失函数。
步骤7,对卷积神经网络、上下文相关网络模型、递归神经网络模型和文本识别模型的参数不断进行调整,直至目标损失函数收敛为止,得到已训练的上下文相关网络模型、递归神经网络模型和文本识别模型。
在训练过程中,不断地对上述卷积神经网络、上下文相关网络模型、递归神经网络模型和文本识别模型的参数进行优化,然后进行下一轮训练,直至目标损失函数收敛,即目标损失函数的损失值小于或等于预设的期望值为止,或者,目标损失函数的损失值的变化幅度小于或等于预设的期望值为止,得到已训练的卷积神经网络、上下文相关网络模型、递归神经网络模型和文本识别模型。
在上述实施例中,如果上下文相关网络模型已经是训练好的上下文相关网络模型,则在调整各个模型的参数时,可以不调整上下文相关网络模型的参数,仅调整其余几个网络模型的参数。
本申请实施例提供的文本处理方法。与现有方法相比,基于上下文相关信息表示文本中每个字的字向量,然后基于字向量构建词向量,能够更好地解决新词预测以及一词多义或一字多义的问题。
具体地说,本申请实施例通过上下文相关网络模型,基于上下文相关的节点字信息表示文本中各个节点字的字向量,每个节点字的字向量表示根据连接邻居的不同而不同,因此同一个字元素在不同的上下文会用不同的字向量表示,从而可以解决一字多义的问题。例如,“喝水”和“水货”都包含“水”这个字,如果基于现有的word2vec模型训练,两个“水”将被表征为一个向量。而实际上该字元素表示不同的语义,通过本申请实施例提供的方法,两个“水”字可以表示为不同的向量。
本申请实施例通过递归神经网络模型学习从字向量到词向量的表示,能有效地利用词语的内部结构信息,同个词得到词向量的初始化表示是不同的,因此在后面的语言模型训练中不同的初始化目标训练得到不同的词向量表示,该方法很好的解决了一词多义的问题。同时,由于新词基本来自于常见字之间的组合,所以基于字向量构建词向量的方法有助于对新词语义的预测和表征学习,可以解决现有技术中word2vec等方法基于词库构建难以泛化新词的问题。
本申请实施例提供的文本处理方法,可以获得更精准的文本向量表示信息,在后续应用的各项机器学习任务中都能起到更好的效果,助于各个场景模型的能力提升。该方法可以广泛应用于各种字向量和词向量构建和表征学习的应用场景,例如电子商务的智能客服应用场景中,通过本申请实施例提供的词向量构建方法进行词语语义消歧,能够提高问答系统的准确度;在情感分析等技术应用场景中,通过多义词识别和新词预测,能够提高文本向量表征的精确性,从而提高分类效果。在通用词条构建领域,通过识别语义更好地构建其相关的词条,防止出现错误的语义现象。
与上述文本处理方法的实施例相对应地,本申请实施例还提供了一种文本处理装置。图8为本申请实施例的提供的文本处理装置的结构示意图;如图8所示,该文本处理装置包括信息获取单元81、文本表示单元82和信息推荐单元83。
其中,信息获取单元81,用于基于目标文本中的每个目标字所属的目标词语,获取所述每个目标字对应的解释信息;
文本表示单元82,用于对于目标文本中的每个目标字,根据所述目标字对应的解释信息,以及所述目标字与所述目标字所在的上下文中其它目标字的相关向量,确定所述目标字对应的字向量;其中,所述目标字与其它目标字的相关向量是由所述目标字对应的解释信息和其他目标字对应的解释信息确定的;根据每个目标字对应的字向量,获得所述目标文本中由目标字组成的各个目标词语对应的词向量;基于各个目标词语对应的词向量,将所述目标文本转化为目标文本向量;
信息推荐单元83,用于输出目标文本向量对应的关联文本。
在一种可选的实施例中,信息获取单元81,还可以用于:
对所述目标文本进行分词处理,得到多个词语;
去除所述多个词语中的停用词,得到多个目标词语;
将包含多个字的目标词语拆分为单个目标字,并记录每个目标字所属的目标词语;
基于每个目标字所属的目标词语,获取每个目标字对应的解释信息。
在一种可选的实施例中,文本表示单元82,还可以用于:
根据所述目标字的解释信息,确定所述目标字的结构向量;
从所述目标文本的除所述目标字之外的其它目标字中选取任意一个作为节点字,通过上下文相关网络模型,根据所述目标字的解释信息和节点字的解释信息,确定所述目标字相对于节点字的相关向量;
将所述目标字对应的结构向量及所述目标字相对于每个节点字的相关向量组合为所述目标字对应的字向量。
在一种可选的实施例中,所述上下文相关网络模型包括卷积层、注意力矩阵、池化层和逻辑回归层,文本表示单元82,具体可以用于:
通过所述卷积层,分别对所述目标字的解释信息和节点字的解释信息进行卷积,得到所述目标字的文本特征矩阵和节点字的文本特征矩阵;
通过注意力矩阵,对所述目标字的文本特征矩阵和节点字的文本特征矩阵进行相关处理,得到所述目标字与节点字的相关矩阵;
通过所述池化层和逻辑回归层,对所述目标字与节点字的相关矩阵进行池化和回归处理,得到所述目标字相对于节点字的相关向量。
在一种可选的实施例中,文本表示单元82,具体可以用于:
将所述相关矩阵中的每一行数据和每一列数据分别输入池化层,得到每一行数据对应的行向量和每一列数据对应的列向量;
将得到的行向量和列向量输入逻辑回归层进行回归处理,得到所述目标字相对于节点字的相关向量。
在一种可选的实施例中,文本表示单元82,具体可以用于:
对于所述目标文本中的每个目标词语,将所述目标词语包含的每个目标字对应的字向量均输入递归神经网络模型,得到所述递归神经网络模型输出的所述目标词语对应的词向量。
在一种可选的实施例中,文本表示单元82,具体可以用于:
对于所述目标文本中的每个目标词语,将与该目标词语相邻的预设数量的其它目标词语对应的词向量输入文本识别模型,得到所述文本识别模型输出的该目标词语对应的重组词向量;
根据各个目标词语对应的重组词向量,将所述目标文本转化为目标文本向量。
在一种可选的实施例中,信息推荐单元83,具体可以用于:
查找与目标文本向量相匹配的语义向量;
将与查找到的语义向量相对应的关联文本作为目标文本向量对应的关联文本;
输出关联文本。
在一种可选的实施例中,如图9所示,上述文本处理装置还可以包括模型训练单元91,用于基于获取的训练文本对所述上下文相关网络模型进行训练。
模型训练单元91,具体可以用于:获取训练文本以及训练文本中每个字对应的解释信息;对于训练文本中的每两个字,分别将第一个字和第二个字对应的解释信息输入待训练的上下文相关网络模型,得到由第一相关向量和第二相关向量组成的一组相关向量;其中,第一相关向量为第一个字相对于第二个字的相关向量,第二相关向量为第二个字相对于第一个字的相关向量;根据得到的每组相关向量,确定目标损失函数;对待训练的上下文相关网络模型的参数进行优化,直至目标损失函数收敛为止,得到已训练的上下文相关网络模型。
在一种可选的实施例中,模型训练单元91,还可以用于对卷积神经网络、上下文相关网络模型、递归神经网络模型和文本识别模型进行训练。
本申请实施例的文本处理装置,基于目标文本中的每个目标字所属的目标词语,获取每个目标字对应的解释信息;对于目标文本中的每个目标字,通过该目标字对应的解释信息和目标字所在的上下文中其他目标字对应的解释信息,确定目标字与其它目标字的相关向量;根据该目标字对应的解释信息,以及目标字与目标字所在的上下文中其它目标字的相关向量,确定该目标字对应的字向量;对于语义不同的同一字,可以根据不同的上下文表示为不同的字向量,因此可以解决一字多义的问题。然后,根据每个目标字对应的字向量,获得目标文本中由目标字组成的各个目标词语对应的词向量,基于各个目标词语对应的词向量,将目标文本转化为目标文本向量。由于语义不同的同一字对应不同的字向量,因此语义不同的同一词语对应的词向量将由不同的字向量得到,语义不同的同一词语对应的词向量也不同,可以解决一词多义的问题,更精准地对文本进行向量化表示,提高文本语义识别的准确性。同时,由于新词基本来自于常见字之间的组合,上述基于字向量构建词向量的方法有助于对新词的语义进行预测。
与上述方法实施例相对应地,本申请实施例还提供了一种电子设备。该电子设备可以是服务器,如图1中所示的数据处理服务器12,也可以是移动终端或计算机等终端设备,该电子设备至少包括用于存储数据的存储器和用于数据处理的处理器。其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、cpu、gpu(graphicsprocessingunit,图形处理单元)、dsp或fpga实现。对于存储器来说,存储器中存储有操作指令,该操作指令可以为计算机可执行代码,通过该操作指令来实现上述本申请实施例的文本处理方法的流程中的各个步骤。
图10为本申请实施例提供的一种电子设备的结构示意图;如图10所示,本申请实施例中该电子设备100包括:处理器101、显示器102、存储器103、输入设备106、总线105和通讯模块104;该处理器101、存储器103、输入设备106、显示器102和通讯模块104均通过总线105连接,该总线105用于该处理器101、存储器103、显示器102、通讯模块104和输入设备106之间传输数据。
其中,存储器103可用于存储软件程序以及模块,如本申请实施例中的文本处理方法对应的程序指令/模块,处理器101通过运行存储在存储器103中的软件程序以及模块,从而执行电子设备100的各种功能应用以及数据处理,如本申请实施例提供的文本处理方法。存储器103可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个应用的应用程序等;存储数据区可存储根据电子设备100的使用所创建的数据(比如文本的解释信息、及训练好的各个网络模型等相关数据)等。此外,存储器103可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器101是电子设备100的控制中心,利用总线105以及各种接口和线路连接整个电子设备100的各个部分,通过运行或执行存储在存储器103内的软件程序和/或模块,以及调用存储在存储器103内的数据,执行电子设备100的各种功能和处理数据。可选的,处理器101可包括一个或多个处理单元,如cpu、gpu、数字处理单元等。
处理器101可以将目标文本的处理结果通过显示器102展示给用户。
处理器101还可以通过通讯模块104连接网络,获取待处理的目标文本等。
输入设备106主要用于获得用户的输入操作,当该电子设备不同时,该输入设备106也可能不同。例如,当该电子设备为计算机时,该输入设备106可以为鼠标、键盘等输入设备;当该电子设备为智能手机、平板电脑等便携设备时,该输入设备106可以为触控屏。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机可执行指令,该计算机可执行指令用于实现本申请任一实施例所记载的文本处理方法。
在一些可能的实施方式中,本申请提供的文本处理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的文本处理方法的步骤,例如,所述计算机设备可以执行如图2所示的步骤s201~s204的文本处理方法的流程。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。