CN111859945A - 一种词向量训练方法及装置 - Google Patents
一种词向量训练方法及装置 Download PDFInfo
- Publication number
- CN111859945A CN111859945A CN201910309865.9A CN201910309865A CN111859945A CN 111859945 A CN111859945 A CN 111859945A CN 201910309865 A CN201910309865 A CN 201910309865A CN 111859945 A CN111859945 A CN 111859945A
- Authority
- CN
- China
- Prior art keywords
- word
- leaf node
- newly added
- words
- binary tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 104
- 239000013598 vector Substances 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000003062 neural network model Methods 0.000 claims abstract description 44
- 230000011218 segmentation Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 8
- 238000012935 Averaging Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 18
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000003058 natural language processing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 210000002569 neuron Anatomy 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000011514 reflex Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种词向量训练方法及装置,获取待训练语料中的新增词语,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点,将目标叶子节点在当前二叉树中的位置处设置一个非叶子节点,将目标叶子节点以及新增词语的叶子节点作为该新设置的非叶子节点的两个分支,修改词计数,将每个新增词语的叶子节点全部加入到二叉树中。确定二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及新增词语的词向量的初始值,将待训练语料中词语的词向量输入到神经网络模型中,对新增词语进行增量训练,并修正局部网络模型参数,得到输出的对应新增词语的词向量,实现了对新增加语料的实时增量训练。
Description
技术领域
本发明属于人工智能技术领域,尤其涉及一种词向量训练方法及装置。
背景技术
随着基于深度学习技术(Deep Learning,DL)的人工智能技术(ArtificialIntelligence,AI)的迅猛发展,全球越来越多的企业和机构投入巨资和高端人才团队用于AI研发与应用,不少企业巨头已经利用AI技术获得了巨额利润,比如安防行业、金融行业、电商行业、社交行业、广告行业等,利用AI技术极大地提升了用户体验,并获得了巨额回报和极强的市场竞争力。
自然语言处理技术(Natural Language Processing,NLP)是AI的一个子领域,越来越多的互联网平台服务,都将依赖NLP来提升用户体验和企业的核心竞争力,比如各个电商平台,都是采用基于NLP等综合技术的智能推荐与智能搜索,大幅度提升了商品推荐转化率,用户体验大幅度提升,而电商平台和卖家则获得了更多的盈利空间和市场竞争力。
通常对自然语言的处理是将自然语言中的每个词语都采用一个多维向量的数学方式进行表示,且这些向量值的数学关系可以较好地表征词语与词语之间的关联关系,我们称这种词语的向量表示方式为词向量。
所有基于DL的AI技术,都需要训练一个足够成熟的神经网络模型(NeuralNetwork,NN),NN就像人类的大脑,然后,利用这个NN像人一样智能地为我们做事,比如通过进行词向量训练,得到NLP的NN,基于NLP的NN可以根据用户历史时间上和最近时间上,在电视平台上收看影视节目的行为特征,为用户推荐最有可能喜欢的视频节目列表或最有价值的插播广告。
当前最为著名的词向量训练技术是Google于2013年开源的word2vec算法。该算法可以一次性完成整个数据集的从无到有的训练工作,称为“静态全量训练”。
其中,静态全量训练,只能从零开始,把所有的待训练语料训练一遍,得到一个静态全量结果。显然,若新增了待训练语料,则必须全部重新训练,原有的训练结果没有任何可用之处,每次的训练流程是先进行全部待训练语料的训练,再输出训练结果,每次的训练工作量太大,训练时间太长。可见,在训练过程中是无法随时加入新增语料,导致无法实时完成对新增语料的训练。
发明内容
有鉴于此,本发明的目的在于提供一种词向量训练方法及装置,用于解决现有技术中词向量训练方法中无法在训练过程中实时加入新增语料导致不能实时完成对新增语料的训练的问题。
技术方案如下:
本发明提供一种词向量训练方法,基于word2vec算法建立的神经网络模型,包括:
获取待训练语料中的新增词语;
针对每个新增词语,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点;所述目标叶子节点的深度小于或等于二叉树的平均深度;
将所述目标叶子节点与对应该所述新增词语的叶子节点分别作为一个非叶子节点的两个叶子节点,该非叶子节点在当前二叉树中的位置与所述目标叶子节点在原二叉树中的位置相同;
修改所述新增词语所在二叉树分支上包括的每个叶子节点以及每个非叶子节点对应的词计数,直至完成对所有新增词语的操作,得到新的二叉树;
确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值;
将所述待训练语料中词语的词向量输入到所述神经网络模型中,对所述新增词语进行增量训练,并修正局部的网络模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量。
优选地,所述在二叉树中确定目标叶子节点包括:
获取二叉树的平均深度以及二叉树中各个叶子节点的深度;其中,以数组的形式存储该二叉树中所有叶子节点的深度;
遍历所述数组,直至确定出所述数组中深度小于或等于平均深度的深度;
将该小于或等于平均深度的深度对应的叶子节点确定为目标叶子节点。
优选地,所述将所述目标叶子节点与对应该所述新增词语的叶子节点分别作为一个非叶子节点的两个叶子节点,该非叶子节点在当前二叉树中的位置与所述目标叶子节点在原二叉树中的位置相同包括:
在所述目标叶子节点位置处建立非叶子节点,并建立左、右两个叶子节点分别作为该非叶子节点的子节点;
判断所述目标叶子节点对应的词计数是否大于或等于所述新增词语对应叶子节点的词计数;
若判断所述目标叶子节点对应的词计数大于或等于所述新增词语对应叶子节点的词计数,则将所述目标叶子节点作为右叶子节点,将所述新增词语对应的叶子节点作为左叶子节点。
优选地,所述确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值包括:
生成随机数,将生成的随机数作为新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值;
从该待训练语料中以所述新增词语为中心,获取该新增词语上下文的2c个词语,并分别获取该2c个词语的词向量;c为正整数;
对该2c个词语的词向量的和取平均,计算得到该新增词语的初始值。
优选地,所述获取待训练语料中的新增词语包括:
对所述待训练语料进行分词处理,得到组成所述待训练语料的词语;
去除组成所述待训练语料的词语中的停用词,得到对应该待训练语料的词语;
判断词汇表中是否存在与对应该待训练语料的词语相匹配的词语;
若判断词汇表中不存在与对应该待训练语料的词语相匹配的词语,则确定该对应该待训练语料的词语为新增词语。
本发明还提供了一种词向量训练装置,包括:
获取单元,用于获取待训练语料中的新增词语;
第一确定单元,用于针对每个新增词语,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点;所述目标叶子节点的深度小于或等于二叉树的平均深度;
建立单元,用于将所述目标叶子节点与对应该所述新增词语的叶子节点分别作为一个非叶子节点的两个叶子节点,该非叶子节点在当前二叉树中的位置与所述目标叶子节点在原二叉树中的位置相同;
修改单元,用于修改所述新增词语所在二叉树分支上包括的每个叶子节点以及每个非叶子节点对应的词计数,直至完成对所有新增词语的操作,得到新的二叉树;
第二确定单元,用于确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值;
训练单元,用于将所述待训练语料中词语的词向量输入到神经网络模型中,对所述新增词语进行增量训练,并修正局部的网络模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量。
优选地,所述第一确定单元,包括:
第一获取子单元,用于获取二叉树的平均深度以及二叉树中各个叶子节点的深度;其中,以数组的形式存储该二叉树中所有叶子节点的深度;
第一确定子单元,用于遍历所述数组,直至确定出所述数组中深度小于或等于平均深度的深度;将该小于或等于平均深度的深度对应的叶子节点确定为目标叶子节点。
优选地,所述建立单元,包括:
建立子单元,用于在所述目标叶子节点位置处建立非叶子节点,并建立左、右两个叶子节点分别作为该非叶子节点的子节点;
第一判断子单元,用于判断所述目标叶子节点对应的词计数是否大于或等于所述新增词语对应叶子节点的词计数;若判断所述目标叶子节点对应的词计数大于或等于所述新增词语对应叶子节点的词计数,则将所述目标叶子节点作为右叶子节点,将所述新增词语对应的叶子节点作为左叶子节点。
优选地,所述第二确定单元,包括:
生成子单元,用于生成随机数,将生成的随机数作为新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值;
第二获取子单元,用于从该待训练语料中以所述新增词语为中心,获取该新增词语上下文的2c个词语,并分别获取该2c个词语的词向量;c为正整数;
计算子单元,用于对该2c个词语的词向量的和取平均,计算得到该新增词语的初始值。
优选地,所述获取单元包括:
分词单元,用于对所述待训练语料进行分词处理,得到组成所述待训练语料的词语;
去除单元,用于去除组成所述待训练语料的词语中的停用词,得到对应该待训练语料的词语;
第二判断子单元,用于判断词汇表中是否存在与对应该待训练语料的词语相匹配的词语;
第二确定子单元,用于若判断词汇表中不存在与对应该待训练语料的词语相匹配的词语,则确定该对应该待训练语料的词语为新增词语。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
从上述技术方案可知,本申请中获取到待训练语料中的新增词语后,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点,其中目标叶子节点为需要改变的节点,将目标叶子节点在当前二叉树中的位置设置为一个非叶子节点,而目标叶子节点以及对应新增词语的叶子节点分别作为该新设置的非叶子节点的两个分支,由于对应该新增词语的叶子节点添加至二叉树中,因此导致添加了新的叶子节点后的二叉树中部分叶子节点以及非叶子节点的词计数发生变化,从而修改二叉树中叶子节点以及非叶子节点的词计数,完成将对应每个新增词语的叶子节点全部加入到二叉树中,得到新的二叉树。确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值,将所述待训练语料中词语的词向量输入到所述神经网络模型中,对所述新增词语进行增量训练,并修正局部的模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量,实现了对新增加语料的增量训练。由于存在新增词语时,直接在二叉树的基础上继续添加叶子节点,可以实现在训练过程中实时加入新的待训练语料,且由于不需要针对所有词语重新建立哈夫曼树,因此节省了训练所需时长,从而不对系统提供的在线服务产生影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明公开的一种词向量训练方法的流程图;
图2是本发明公开的二叉树的结构示意图;
图3是本发明公开的在二叉树中加入新增词语的节点后生成的新的二叉树结构示意图;
图4是本发明公开的另一种词向量训练方法的流程图;
图5是本发明公开的一种词向量训练装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有在自然语言处理技术领域,通常采用基于word2vec算法建立的神经网络模型对待训练语料进行训练,以能够对用户输入的自然语言进行处理,确定出用户的真实意图,并基于真实意图做出符合用户意图的响应。
但是,基于word2vec算法建立的神经网络模型对待训练语料进行训练的过程中,接收到新增加的待训练语料后,需要重新统计待训练语料中每个词语的词计数(词语出现的次数,也称为词频),并重新建立哈夫曼树,最后基于建立的哈夫曼树,利用基于word2vec算法建立的神经网络模型对待训练语料进行训练,导致训练的过程中无法实时新增加训练语料。
且,在各种用于提供服务功能的系统中,如各个电商平台,应用自然语言处理技术实现智能推荐或智能搜索时,需要能够持续的为用户服务,而基于word2vec算法建立的神经网络模型的自然语言处理技术,在训练过程中需要重构整个哈夫曼树,导致训练时间长,对持续的在线服务产生影响。
针对上述情况,发明人采用在基于word2vec算法的神经网络模型上进行二次开发,改进了存在新增训练语料的情况下,对新增训练语料的增量训练方式,实现了在训练的过程中可以实时增加新的训练语料,而且不对系统的在线服务功能产生影响。
具体地,如图1所示,本发明实施例提供的词向量训练方法可以包括:
S101、获取待训练语料中的新增词语。
本实施例中以电商平台系统为例进行描述。
在实际应用过程中,产生新增加的语料后,将新增加的语料作为待训练语料,基于word2vec算法的神经网络模型进行训练操作。
通常待训练语料为语句,需要先将语句进行分词处理,得到组成该语句的多个词语,并去除多个词语中的停用词,除停用词之外的其他词语为对应该待训练语料的词语。
但是,对应该待训练语料的词语中可能存在之前已经训练得到训练结果的词语,而对于之前已经训练得到训练结果的词语,本实施例中直接获取该词语的训练结果,在此次对待训练语料的训练中并不重新对已经存在训练结果的词语重新进行训练。而只关注之前没有训练过的词语,将之前没有训练过的词语,即不存在训练结果的词语作为新增词语,本次训练是在之前训练结果的基础上,对所有新增词语及其关联词语进行增量训练。
其中,从对应该待训练语料的词语中确定新增词语的方式为:将对应该待训练语料的每个词语依次与词汇表中的词语进行匹配,在词汇表中存在与对应该待训练语料的词语匹配的词语,则说明此对应该待训练语料的词语不是新增词语,在词汇表中不存在与对应该待训练语料的词语匹配的词语,则说明词对应该待训练语料的词语是新增词语。词汇表中存储有经过训练的所有词语。
例如,待训练语料为:武侠小说是中国旧通俗小说的一种重要类型,多以侠客和义士为主人公,描写他们身怀绝技、见义勇为和叛逆造反行为。
经过分词处理以及去除停用词后,得到的对应该待训练语料的词语为:武侠、小说、中国、旧、通俗、小说、一种、重要、类型、多以、侠客、和、义士、主人公、描写、他们、身怀绝技、见义勇为、叛逆、造反、行为。
若词汇表中存储有小说、中国、一种、重要、类型、描写、他们,那么,对应该待训练语料的词语中除小说、中国、一种、重要、类型、描写、他们之外的武侠、旧、通俗、多以、侠客、和、义士、主人公、身怀绝技、见义勇为、叛逆、造反、行为这些词语为新增词语。
在其他实施例中,在获取到新增词语后,还可以将新增词语加入到词汇表中。
S102、针对每个新增词语,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点;所述目标叶子节点的深度小于或等于二叉树的平均深度,所述目标叶子节点为需要改变的节点。
在基于word2vec算法的神经网络模型中,利用哈夫曼树来代替传统神经网络中的隐藏层和输出层的神经元,哈夫曼树的叶子节点与传统神经网络中输出层神经元的作用相同,而哈夫曼树的内部节点(非叶子节点)与传统神经网络中隐藏层神经元的作用相同。其中,叶子节点指的是对应词语的节点,而哈夫曼树中其他节点为非叶子节点。
本实施例中采用如下方法建立得到哈夫曼树:
将词计数分别为(w1,w2,w3,……,wn)的N个词语看作是有N棵树的森林,每个树仅有一个词语,即仅有一个根节点。在森林中选择词计数最小的两棵树进行合并,得到一个新的树,并将合并的两棵树分别作为新树的左右子树,新树的根节点的词计数为左右子树根节点的词计数之和。
将合并的两棵树从森林中删除,并把合并后的新树加入森林,重复执行上述合并操作,直至森林中只有一棵树为止。
为了便于理解,下面举例说明建立得到哈夫曼树的过程:
获取到a,b,c,d,e,f这6个词语,并且确定这6个词语依次对应的词计数为20,4,8,6,16,3。其中,词计数表示的是词语在待训练语料中出现的次数。
先将词计数最小的3对应的f以及词计数4对应的b合并,得到新树根节点的词计数为7,此时森林中有5棵树,5棵树的根节点的词计数依次为20,8,6,16,7。再将词计数最小的6对应的d以及词计数7合并,得到新树根节点的词计数为13,依次类推,直至森林中只有一棵树,得到如图2所示的哈夫曼树。
图2所示的哈夫曼树中,根节点的词计数为57,具有6个叶子节点,分别为c:8,e:16,a:20,d:6,f:3,b:4,字母表示的是该叶子节点对应的词语,数字表示的是该词语的词计数。哈夫曼树中除上述6个叶子节点外的其他节点为非叶子节点,即内部节点。
需要注意的是,只有通过上述方式建立得到的才称为哈夫曼树,这是一种特殊的二叉树,而只要在哈夫曼树的基础上进行了改进,就可能变成了一般的二叉树,不再是哈夫曼树。
在一种实现中,首次使用本实施例提供的词向量训练方法进行增量训练时,二叉树指的是基于word2vec算法训练得到的哈夫曼树,而在使用了本实施例提供的词向量训练方法后,已经对哈夫曼树进行了改进而不再是哈夫曼树,此时的二叉树成为一般的二叉树。
本实施例中,在确定待训练语料中存在新增词语之后,对于每个新增词语,在二叉树中确定目标叶子节点。
其中,目标叶子节点指的是深度小于或等于二叉树的平均深度的叶子节点;或者直接在二叉树中查找深度相对较浅的叶子节点,作为目标叶子节点。
叶子节点的深度与该叶子节点在二叉树中的层数相同,其中,第0层为根节点,每往下一层深度加1。
仍然以图2所示的二叉树为例,对应词语c,e,a,d的叶子节点的深度依次为2,2,2,3;词语f,b的叶子节点的深度依次为4,4。对应词语c,e,a,d的叶子节点的深度相对于对应词语f,b的叶子节点的深度而言,对应词语c,e,a,d的叶子节点的深度相对较浅,从而将对应词语c,e,a,d的叶子节点之中的任意一个叶子节点作为目标叶子节点。
当然,还可以计算得到二叉树的平均深度,以图2所示,二叉树的平均深度的计算公式为:
(8×2+16×2+20×2+6×3+3×4+4×4)/(8+16+20+6+3+4)=2.35
对应词语c,e,a的叶子节点的深度2小于二叉树的平均深度2.35,从而将对应词语c,e,a的叶子节点之中的任意一个叶子节点作为目标叶子节点。
本实施例中以选择词语c对应的叶子节点作为目标叶子节点进行描述。
例如新增词语为g,词计数为2,建立对应新增词语g的叶子节点。
S103、将所述目标叶子节点与对应该所述新增词语的叶子节点分别作为一个非叶子节点的两个叶子节点,该非叶子节点在当前二叉树中的位置与所述目标叶子节点在原二叉树中的位置相同。
如图3所示,目标叶子节点为对应词语c的叶子节点,对应新增词语g建立的叶子节点,分别作为词计数为10的这一非叶子节点的两个叶子节点。其中,词计数为10的非叶子节点在当前二叉树(图3所示二叉树)中的位置与对应词语c的叶子节点在原二叉树(图2所示二叉树)中的位置是相同的。该非叶子节点的词计数为目标叶子节点对应的词语c的词计数8和新增词语g的词计数2的和。
当前二叉树指的是将对应新增词语的叶子节点加入到原二叉树后生成的新的二叉树。如图3所示,为将新增词语g加入到原二叉树后生成的新的二叉树。
S104、修改所述新增词语所在二叉树分支上包括的每个叶子节点以及每个非叶子节点对应的词计数,直至完成对所有新增词语的操作,得到新的二叉树;
将新增词语加入到二叉树中,生成新的二叉树,其中,新增词语所在的二叉树分支上包括的叶子节点以及非叶子节点的词计数会发生改变。依次修改新增词语所在的二叉树分支上包括的叶子节点以及非叶子节点的词计数。
仍然以图3为例,新增词语g所在二叉树的最左侧的分支上,分支总共包括4层,第3层为对应新增词语g的叶子节点以及对应词语c的叶子节点,新增词语g的叶子节点对应的词计数为2,词语c的叶子节点对应的词计数为8。第2层为对应新增词语g的叶子节点以及对应词语c的叶子节点合并后的非叶子节点,该第2层的非叶子节点对应的词计数为新增词语g的词计数2与词语c的词计数8的和值,将第2层的非叶子节点的词计数修改为10。第1层为该第2层的非叶子节点以及二叉树中的一个非叶子节点合并后得到的一个非叶子节点,其中,该第2层的非叶子节点对应的词计数为10,二叉树中的非叶子节点对应的词计数为13,该第1层的非叶子节点对应的词计数为第2层的非叶子节点对应的词计数10与二叉树中的非叶子节点对应的词计数13的和值,将第1层的非叶子节点的词计数修改为23。第0层为该第一层的非叶子节点以及二叉树中的一个非叶子节点合并后得到的一个非叶子节点,该第0层的非叶子节点(根节点)对应的词计数为第1层的非叶子节点对应的词计数23与二叉树中的非叶子节点对应的词计数36的和值,将第0层的非叶子节点的词计数修改为59。至此完成将对应新增词语g的叶子节点加入到二叉树中,生成区别于原二叉树的新的二叉树。
重复执行步骤S102-S104,直接完成将所有新增词语全部加入到二叉树中。
S105、确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值。
以首次使用本实施例提供的词向量训练方法为例,对哈夫曼树进行改进后得到二叉树,其中,二叉树中的叶子节点与传统神经网络模型中的输出层神经元的作用是相同的,二叉树中的非叶子节点与传统神经网络模型中的隐藏层神经元的作用是相同的。
在接收到新增词语之前,已经基于哈夫曼树对之前存在的训练语料进行了训练,并得到了训练后的基于word2vec算法的神经网络模型,从而哈夫曼树中的各个节点对应的神经元的网络模型参数是确定的。
而本实施例中,由于将新增词语加入到了哈夫曼树中,因此,新增加的节点(包括叶子节点以及非叶子节点)对应的神经元的网络模型参数是未知的,从而需要确定出新增加的节点对应的网络模型参数,以建立新的神经网络模型,并执行后续的训练操作。
本实施例中按照预设规则确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值。
可以理解的是,在后续使用本实施例提供的词向量训练方法时,原二叉树中的叶子节点以及非叶子节点对应的网络模型参数都是确定的,而只有新增加到二叉树中的节点(包括叶子节点以及非叶子节点)对应的网络模型参数是未知的,从而需要确定出新增加的节点对应的网络模型参数,以建立新的神经网络模型,并执行后续的训练操作。
本实施例中按照预设规则确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值。
S106、将所述待训练语料中词语的词向量输入到所述神经网络模型中,对所述新增词语进行增量训练,并修正局部的模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量。
本实施例中并没有改变基于word2vec算法的神经网络模型的整体架构,而仅仅是对代表神经网络模型的隐藏层和输出层神经元的哈夫曼树进行改进,从而基于word2vec算法的神经网络模型对待训练语料的训练流程也没有发生变化。
只是本实施例中是对新增词语的增量训练,先设置二叉树中新增加的叶子节点对应的网络模型参数的初始值以及二叉树中新增加的非叶子节点对应的网络模型参数的初始值,构建新的神经网络模型。并确定所有加入到二叉树中的新增词语的词向量的初始值。
将对应该待训练语料的词语的词向量输入到神经网络模型中,通过反向传播算法不断修正所述神经网络模型的网络模型参数,训练得到新的神经网络模型,并输出对新增词语的训练结果,即新增词语的词向量。
通过上述技术方案,本实施例中获取到待训练语料中的新增词语后,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点,其中目标叶子节点为需要改变的节点,将目标叶子节点在当前二叉树中的位置设置为一个非叶子节点,而目标叶子节点以及对应新增词语的叶子节点分别作为该新设置的非叶子节点的两个分支,由于对应该新增词语的叶子节点添加至二叉树中,因此导致添加了新的叶子节点后的二叉树中部分叶子节点以及非叶子节点的词计数发生变化,从而修改二叉树中叶子节点以及非叶子节点的词计数,完成将对应每个新增词语的叶子节点全部加入到二叉树中,得到新的二叉树。确定二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值,将所述待训练语料中词语的词向量输入到所述神经网络模型中,对所述新增词语进行增量训练,并修正局部的模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量,实现了对新增加语料的增量训练。由于存在新增词语时,直接在二叉树的基础上继续添加叶子节点,可以实现在训练过程中实时加入新的待训练语料,且由于不需要针对所有词语重新建立哈夫曼树,因此节省了训练所需时长,从而不对系统提供的在线服务产生影响。
参见图4所示,为本实施例提供的另一种词向量训练方法,该实施例包括以下步骤:
S201、获取待训练语料中的新增词语。
本实施例中步骤S201的实现方式与上一实施例中步骤S101的实现方式类似,此处不再赘述。
S202、针对每个新增词语,建立对应该新增词语的叶子节点,并获取二叉树的平均深度以及二叉树中各个叶子节点的深度;以数组的形式存储该二叉树中所有叶子节点的深度。
二叉树中每个叶子节点以及每个非叶子节点均记录有自身所处二叉树中的深度,用dx表示每个节点的深度。在建立二叉树后,可以计算得到二叉树的平均深度,用da表示二叉树的平均深度,记录da。用一个数组a记录二叉树中每个叶子节点的深度,用dl表示二叉树中每个叶子节点的深度,dl为数组a中的元素,每个元素具有一个对应的下标值i,i为正整数。
仍然以图2所示的二叉树为例,叶子节点包括c:8,e:16,a:20,d:6,f:3,b:4。则数组a为[2,2,2,3,4,4],从数组a中的第一个元素开始,数组a中的元素分别对应的叶子节点为词语c,e,a,d,f,b对应的叶子节点。
通过计算得到二叉树的平均深度da=2.35。
下面以一个新增词语g为例描述。
S203、遍历所述数组,直至确定出所述数组中深度小于或等于平均深度的深度;将该小于或等于平均深度的深度对应的叶子节点确定为目标叶子节点。
从数组a中的第一次元素开始,依次与da进行比较,确定a中的当前元素是否小于或等于da。
如,第一个元素即词语c对应的叶子节点的深度2小于da,则可以将词语c对应的叶子节点确定为目标叶子节点。此时可以停止对数组a中下一元素与da的比较,直接将词语c对应的叶子节点确定为目标叶子节点。还可以继续对数组a中的下一元素与da进行比较,直至完成对数组a中所有元素与da的比较,并从数组a中得到元素小于da的全部元素,从元素小于da的全部元素中任意选择一个元素对应的叶子节点作为目标叶子节点。或,从中选择最小的一个元素对应的叶子节点作为目标叶子节点。
将词语c对应的叶子节点作为目标叶子节点。
S204、在所述目标叶子节点位置处建立非叶子节点,并建立左、右两个叶子节点分别作为该非叶子节点的子节点;
如图2所示,词语c对应的叶子节点在二叉树中的位置为深度2的最左侧位置处,如图3所示,在二叉树中的位置为深度2的最左侧位置处建立了一个非叶子节点,并在该非叶子节点下建立了左右两个叶子节点,其中,左右两个叶子节点中一个为词语c对应的叶子节点,另一个为新增词语g对应的叶子节点。
通过执行步骤S205实现确定左右两个叶子节点中哪一个作为词语c对应的叶子节点,哪一个作为新增词语g对应的叶子节点。
S205、判断所述目标叶子节点对应的词计数是否大于或等于所述新增词语对应叶子节点的词计数;
若判断所述目标叶子节点对应的词计数大于或等于所述新增词语对应叶子节点的词计数,则执行步骤S206;
若判断所述目标叶子节点对应的词计数小于所述新增词语对应叶子节点的词计数,则将所述目标叶子节点作为左叶子节点,将所述新增词语对应的叶子节点作为右叶子节点;
每个节点分别记录自身的词计数,其中,叶子节点的词计数为与该叶子节点对应的词语的词计数,而非叶子节点的词计数为合并的两个叶子节点的词计数之和。
词语c对应的叶子节点的词计数为8,新增词语g对应的叶子节点的词计数为2,判断得到词语c对应的叶子节点的词计数8大于新增词语g对应的叶子节点的词计数2,因此将词语c对应的叶子节点作为右叶子节点,而将新增词语g对应的叶子节点作为左叶子节点。
反之,判断词语c对应的叶子节点的词计数小于或等于新增词语g对应的叶子节点的词计数,则将新增词语g对应的叶子节点作为右叶子节点,而将词语c对应的叶子节点作为左叶子节点。
S206、将所述目标叶子节点作为右叶子节点,将所述新增词语对应的叶子节点作为左叶子节点。
本实施例中,将叶子节点对应的词计数大的作为右叶子节点,叶子节点对应的词计数小的作为左叶子节点。
S207、修改所述新增词语所在二叉树分支上包括的每个叶子节点以及每个非叶子节点对应的词计数,直至完成对所有新增词语的操作,得到新的二叉树;
本实施例中步骤S207的实现方式与上述实施例中步骤S104的实现方式类似,此处不再赘述。
需要注意的是,将新增词语对应的叶子节点加入到二叉树后,除了通过执行步骤S207实现对二叉树中叶子节点以及非叶子节点对应的词计数的修改,生成新的二叉树后,还需要更新二叉树中各个叶子节点以及各个非叶子节点的深度,二叉树的平均深度。其中,对二叉树中各个叶子节点的深度的更新包括对每个叶子节点记录的自身的深度的更新,以及数组a中各个元素的更新,其中,可以将对应新增词语的叶子节点的深度添加到数据a的末尾,作为数组a的最后一个元素。
S208、生成随机数,将生成的随机数作为新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值。
本实施例中采用生成的随机数作为新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值。
S209、从该待训练语料中以所述新增词语为中心,获取该新增词语上下文的2c个词语,并分别获取该2c个词语的词向量;c为正整数。
在步骤S101中已经描述了,对待训练语料进行分词处理以及去除停用词后,得到对应该待训练语料的词语,并且可以通过将对应该待训练语料的词语与词汇表的比较,可以确定出新增词语。
确定出待训练语料中的新增词语后,以该新增词语所在待训练语料中的位置为中心,从位于该新增词语位置之前的词语中获取c个词语,并从位于该新增词语位置之后的词语中获取c个词语,c为正整数。
其中,获取到的2c个词语中可能包括词汇表中有的词语以及新增词语,对于词汇表中有的词语,直接获取这一词语之前的训练结果,训练结果为对应该词语的词向量,而对应新增词语,则获取这一词语按照步骤S208的方式生成的词向量。
例如,对应该待训练语料的词语为:武侠、小说、中国、旧、通俗、小说、一种、重要、类型、多以、侠客、和、义士、主人公、描写、他们、身怀绝技、见义勇为、叛逆、造反、行为。新增词语为武侠、旧、通俗、多以、侠客、和、义士、主人公、身怀绝技、见义勇为、叛逆、造反、行为。
以新增词语为通俗,c=2为例,获取通俗位置之前的2个词语是中国、旧,获取通俗位置之后的2个词语是小说、一种,其中,直接获取之前训练结果中中国、小说、一种这三个词语的词向量,并按照步骤S109的方式生成“旧”的词向量。
S210、对该2c个词语的词向量的和取平均,计算得到该新增词语的初始值。
基于下列公式计算得到该新增词语的初始值:
其中,xw表示新增词语w的词向量的初始值,c为在新增词语的上下文分别获取的词语的个数,xi是新增词语w的上下文中第i个词语的词向量,i的取值范围为从1到2c的正整数。
S211、将所述待训练语料中词语的词向量输入到所述神经网络模型中,对所述新增词语进行增量训练,并修正局部的模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量。
本实施例中步骤S211的实现方式与上一实施例中步骤S106的实现方式类似,此处不再赘述。
通过上述技术方案,本实施例中获取到待训练语料中的新增词语后,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点,其中目标叶子节点为需要改变的节点,将目标叶子节点在当前二叉树中的位置设置为一个非叶子节点,而目标叶子节点以及对应新增词语的叶子节点分别作为该新设置的非叶子节点的两个分支,由于对应该新增词语的叶子节点添加至二叉树中,因此导致添加了新的叶子节点后的二叉树中部分叶子节点以及非叶子节点的词计数发生变化,从而修改二叉树中叶子节点以及非叶子节点的词计数,完成将对应每个新增词语的叶子节点全部加入到二叉树中,得到新的二叉树。确定二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值,将所述待训练语料中词语的词向量输入到所述神经网络模型中,对所述新增词语进行增量训练,并修正局部的模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量,实现了对新增加语料的增量训练。由于存在新增词语时,直接在二叉树的基础上继续添加叶子节点,可以实现在训练过程中实时加入新的待训练语料,且由于不需要针对所有词语重新建立哈夫曼树,因此节省了训练所需时长,从而不对系统提供的在线服务产生影响。
对应上述实施例公开的词向量训练方法,本实施例还提供了一种词向量训练装置,参见图5所示,该词向量训练装置包括:
获取单元501、第一确定单元502、建立单元503、修改单元504、第二确定单元505和训练单元506。
获取单元501,用于获取待训练语料中的新增词语;
第一确定单元502,用于针对每个新增词语,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点;所述目标叶子节点的深度小于或等于二叉树的平均深度;
建立单元503,用于将所述目标叶子节点与对应该所述新增词语的叶子节点分别作为一个非叶子节点的两个叶子节点,该非叶子节点在当前二叉树中的位置与所述目标叶子节点在原二叉树中的位置相同;
修改单元504,用于修改所述新增词语所在二叉树分支上包括的每个叶子节点以及每个非叶子节点对应的词计数,直至完成对所有新增词语的操作,得到新的二叉树;
第二确定单元505,用于确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值;
训练单元506,用于将所述待训练语料中词语的词向量输入到神经网络模型中,对所述新增词语进行增量训练,并修正局部的网络模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量。
通过上述技术方案,本实施例中获取到待训练语料中的新增词语后,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点,其中目标叶子节点为需要改变的节点,将目标叶子节点在当前二叉树中的位置设置为一个非叶子节点,而目标叶子节点以及对应新增词语的叶子节点分别作为该新设置的非叶子节点的两个分支,由于对应该新增词语的叶子节点添加至二叉树中,因此导致添加了新的叶子节点后的二叉树中部分叶子节点以及非叶子节点的词计数发生变化,从而修改二叉树中叶子节点以及非叶子节点的词计数,完成将对应每个新增词语的叶子节点全部加入到二叉树中,得到新的二叉树。确定二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值,将所述待训练语料中词语的词向量输入到所述神经网络模型中,对所述新增词语进行增量训练,并修正局部的模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量,实现了对新增加语料的增量训练。由于存在新增词语时,直接在二叉树的基础上继续添加叶子节点,可以实现在训练过程中实时加入新的待训练语料,且由于不需要针对所有词语重新建立哈夫曼树,因此节省了训练所需时长,从而不对系统提供的在线服务产生影响。
可选地,在其他实施例中,第一确定单元502,包括:
第一获取子单元和第一确定子单元。
所述第一获取子单元,用于获取二叉树的平均深度以及二叉树中各个叶子节点的深度;其中,以数组的形式存储该二叉树中所有叶子节点的深度;
所述第一确定子单元,用于遍历所述数组,直至确定出所述数组中深度小于或等于平均深度的深度;将该小于或等于平均深度的深度对应的叶子节点确定为目标叶子节点。
可选地,在其他实施例中,建立单元503包括:
建立子单元和第一判断子单元。
所述建立子单元,用于在所述目标叶子节点位置处建立非叶子节点,并建立左、右两个叶子节点分别作为该非叶子节点的子节点;
所述第一判断子单元,用于判断所述目标叶子节点对应的词计数是否大于或等于所述新增词语对应叶子节点的词计数;若判断所述目标叶子节点对应的词计数大于或等于所述新增词语对应叶子节点的词计数,则将所述目标叶子节点作为右叶子节点,将所述新增词语对应的叶子节点作为左叶子节点。
可选地,在其他实施例中,第二确定单元505包括:
生成子单元、第二获取子单元和计算子单元。
所述生成子单元,用于生成随机数,将生成的随机数作为新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值;
所述第二获取子单元,用于从该待训练语料中以所述新增词语为中心,获取该新增词语上下文的2c个词语,并分别获取该2c个词语的词向量;c为正整数;
所述计算子单元,用于对该2c个词语的词向量的和取平均,计算得到该新增词语的初始值。
在其他实施例中,本实施例中获取单元501包括:
分词单元、去除单元、第二判断子单元和第二确定子单元;
所述分词单元,用于对所述待训练语料进行分词处理,得到组成所述待训练语料的词语;
所述去除单元,用于去除组成所述待训练语料的词语中的停用词,得到对应该待训练语料的词语;
所述第二判断子单元,用于判断词汇表中是否存在与对应该待训练语料的词语相匹配的词语;
所述第二确定子单元,用于若判断词汇表中不存在与对应该待训练语料的词语相匹配的词语,则确定该对应该待训练语料的词语为新增词语。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种词向量训练方法,其特征在于,基于word2vec算法建立的神经网络模型,包括:
获取待训练语料中的新增词语;
针对每个新增词语,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点;所述目标叶子节点的深度小于或等于二叉树的平均深度;
将所述目标叶子节点与对应该所述新增词语的叶子节点分别作为一个非叶子节点的两个叶子节点,该非叶子节点在当前二叉树中的位置与所述目标叶子节点在原二叉树中的位置相同;
修改所述新增词语所在二叉树分支上包括的每个叶子节点以及每个非叶子节点对应的词计数,直至完成对所有新增词语的操作,得到新的二叉树;
确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值;
将所述待训练语料中词语的词向量输入到所述神经网络模型中,对所述新增词语进行增量训练,并修正局部的网络模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量。
2.根据权利要求1所述的词向量训练方法,其特征在于,所述在二叉树中确定目标叶子节点包括:
获取二叉树的平均深度以及二叉树中各个叶子节点的深度;其中,以数组的形式存储该二叉树中所有叶子节点的深度;
遍历所述数组,直至确定出所述数组中深度小于或等于平均深度的深度;
将该小于或等于平均深度的深度对应的叶子节点确定为目标叶子节点。
3.根据权利要求1所述的词向量训练方法,其特征在于,所述将所述目标叶子节点与对应该所述新增词语的叶子节点分别作为一个非叶子节点的两个叶子节点,该非叶子节点在当前二叉树中的位置与所述目标叶子节点在原二叉树中的位置相同包括:
在所述目标叶子节点位置处建立非叶子节点,并建立左、右两个叶子节点分别作为该非叶子节点的子节点;
判断所述目标叶子节点对应的词计数是否大于或等于所述新增词语对应叶子节点的词计数;
若判断所述目标叶子节点对应的词计数大于或等于所述新增词语对应叶子节点的词计数,则将所述目标叶子节点作为右叶子节点,将所述新增词语对应的叶子节点作为左叶子节点。
4.根据权利要求1所述的词向量训练方法,其特征在于,所述确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值包括:
生成随机数,将生成的随机数作为新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值;
从该待训练语料中以所述新增词语为中心,获取该新增词语上下文的2c个词语,并分别获取该2c个词语的词向量;c为正整数;
对该2c个词语的词向量的和取平均,计算得到该新增词语的初始值。
5.根据权利要求1-4任意一项所述的词向量训练方法,其特征在于,所述获取待训练语料中的新增词语包括:
对所述待训练语料进行分词处理,得到组成所述待训练语料的词语;
去除组成所述待训练语料的词语中的停用词,得到对应该待训练语料的词语;
判断词汇表中是否存在与对应该待训练语料的词语相匹配的词语;
若判断词汇表中不存在与对应该待训练语料的词语相匹配的词语,则确定该对应该待训练语料的词语为新增词语。
6.一种词向量训练装置,其特征在于,包括:
获取单元,用于获取待训练语料中的新增词语;
第一确定单元,用于针对每个新增词语,建立对应该新增词语的叶子节点,并在二叉树中确定目标叶子节点;所述目标叶子节点的深度小于或等于二叉树的平均深度;
建立单元,用于将所述目标叶子节点与对应该所述新增词语的叶子节点分别作为一个非叶子节点的两个叶子节点,该非叶子节点在当前二叉树中的位置与所述目标叶子节点在原二叉树中的位置相同;
修改单元,用于修改所述新增词语所在二叉树分支上包括的每个叶子节点以及每个非叶子节点对应的词计数,直至完成对所有新增词语的操作,得到新的二叉树;
第二确定单元,用于确定新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值,以及所述新增词语的词向量的初始值;
训练单元,用于将所述待训练语料中词语的词向量输入到神经网络模型中,对所述新增词语进行增量训练,并修正局部的网络模型参数,得到所述神经网络模型输出的对应所述新增词语的词向量。
7.根据权利要求6所述的词向量训练装置,其特征在于,所述第一确定单元,包括:
第一获取子单元,用于获取二叉树的平均深度以及二叉树中各个叶子节点的深度;其中,以数组的形式存储该二叉树中所有叶子节点的深度;
第一确定子单元,用于遍历所述数组,直至确定出所述数组中深度小于或等于平均深度的深度;将该小于或等于平均深度的深度对应的叶子节点确定为目标叶子节点。
8.根据权利要求6所述的词向量训练装置,其特征在于,所述建立单元,包括:
建立子单元,用于在所述目标叶子节点位置处建立非叶子节点,并建立左、右两个叶子节点分别作为该非叶子节点的子节点;
第一判断子单元,用于判断所述目标叶子节点对应的词计数是否大于或等于所述新增词语对应叶子节点的词计数;若判断所述目标叶子节点对应的词计数大于或等于所述新增词语对应叶子节点的词计数,则将所述目标叶子节点作为右叶子节点,将所述新增词语对应的叶子节点作为左叶子节点。
9.根据权利要求6所述的词向量训练装置,其特征在于,所述第二确定单元,包括:
生成子单元,用于生成随机数,将生成的随机数作为新的二叉树中新增加的叶子节点以及非叶子节点对应的网络模型参数的初始值;
第二获取子单元,用于从该待训练语料中以所述新增词语为中心,获取该新增词语上下文的2c个词语,并分别获取该2c个词语的词向量;c为正整数;
计算子单元,用于对该2c个词语的词向量的和取平均,计算得到该新增词语的初始值。
10.根据权利要求6-9任意一项所述的词向量训练装置,其特征在于,所述获取单元包括:
分词单元,用于对所述待训练语料进行分词处理,得到组成所述待训练语料的词语;
去除单元,用于去除组成所述待训练语料的词语中的停用词,得到对应该待训练语料的词语;
第二判断子单元,用于判断词汇表中是否存在与对应该待训练语料的词语相匹配的词语;
第二确定子单元,用于若判断词汇表中不存在与对应该待训练语料的词语相匹配的词语,则确定该对应该待训练语料的词语为新增词语。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910309865.9A CN111859945A (zh) | 2019-04-17 | 2019-04-17 | 一种词向量训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910309865.9A CN111859945A (zh) | 2019-04-17 | 2019-04-17 | 一种词向量训练方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111859945A true CN111859945A (zh) | 2020-10-30 |
Family
ID=72951914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910309865.9A Pending CN111859945A (zh) | 2019-04-17 | 2019-04-17 | 一种词向量训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111859945A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860968A (zh) * | 2021-02-02 | 2021-05-28 | 北京三快在线科技有限公司 | 一种异常检测的方法以及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030069652A1 (en) * | 2001-10-05 | 2003-04-10 | Lee Shih-Jong J. | Regulation of hierarchic decisions in intelligent systems |
CN107102981A (zh) * | 2016-02-19 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 词向量生成方法和装置 |
US10185713B1 (en) * | 2015-09-28 | 2019-01-22 | Amazon Technologies, Inc. | Optimized statistical machine translation system with rapid adaptation capability |
-
2019
- 2019-04-17 CN CN201910309865.9A patent/CN111859945A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030069652A1 (en) * | 2001-10-05 | 2003-04-10 | Lee Shih-Jong J. | Regulation of hierarchic decisions in intelligent systems |
US10185713B1 (en) * | 2015-09-28 | 2019-01-22 | Amazon Technologies, Inc. | Optimized statistical machine translation system with rapid adaptation capability |
CN107102981A (zh) * | 2016-02-19 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 词向量生成方法和装置 |
Non-Patent Citations (2)
Title |
---|
周练;: "Word2vec的工作原理及应用探究", 科技情报开发与经济, no. 02, 25 January 2015 (2015-01-25) * |
王飞;谭新;: "一种基于Word2Vec的训练效果优化策略研究", 计算机应用与软件, no. 01, 15 January 2018 (2018-01-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860968A (zh) * | 2021-02-02 | 2021-05-28 | 北京三快在线科技有限公司 | 一种异常检测的方法以及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113962315B (zh) | 模型预训练方法、装置、设备、存储介质以及程序产品 | |
CN111159368B (zh) | 一种个性化对话的回复生成方法 | |
CN104615767B (zh) | 搜索排序模型的训练方法、搜索处理方法及装置 | |
CN109344240B (zh) | 一种数据处理方法、服务器及电子设备 | |
Gašić et al. | On-line policy optimisation of spoken dialogue systems via live interaction with human subjects | |
CN105868317B (zh) | 一种数字教育资源推荐方法及系统 | |
CN107330130A (zh) | 一种向人工客服推荐回复内容的对话机器人的实现方法 | |
CN111914185B (zh) | 一种基于图注意力网络的社交网络中文本情感分析方法 | |
CN108710680A (zh) | 一种利用深度学习进行基于情感分析的电影推荐方法 | |
CN109816438B (zh) | 信息推送方法及装置 | |
CN113435211B (zh) | 一种结合外部知识的文本隐式情感分析方法 | |
CN111506820B (zh) | 推荐模型、方法、装置、设备及存储介质 | |
KR102223382B1 (ko) | 다중타입 엔티티에 기반한 지식 보완 방법 및 장치 | |
CN110428046A (zh) | 神经网络结构的获取方法及装置、存储介质 | |
CN109543112A (zh) | 一种基于循环卷积神经网络的序列推荐方法及装置 | |
CN109992781B (zh) | 文本特征的处理方法、装置和存储介质 | |
CN108509422B (zh) | 一种词向量的增量学习方法、装置和电子设备 | |
CN112733043B (zh) | 评论推荐方法及装置 | |
CN109726402B (zh) | 一种文档主题词自动提取方法 | |
CN109635303B (zh) | 特定领域意义改变词的识别方法 | |
CN112507245A (zh) | 基于图神经网络的社交网络好友推荐方法 | |
CN111324773A (zh) | 一种背景音乐构建方法、装置、电子设备和存储介质 | |
CN111813923A (zh) | 文本摘要方法、电子设备及存储介质 | |
CN113761337B (zh) | 基于事件隐式要素与显式联系的事件预测方法和装置 | |
CN111859945A (zh) | 一种词向量训练方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |