1.词向量训练
采用文本语料库进行词向量训练,获取词向量模型,定义的词向量训练函数w2v_train(corpus_dir,word2vec_path,vec_size)描述如下:
参数:
corpus_dir:训练文本集目录地址。
word2vec_path:词向量模型的存储地址。
vec_size:词向量大小。
返回值:
w2vModel:词向量模型。
采用清华大学自然语言处理与社会人文计算实验室提供的语料库(THUCNews)进行训练,获取词向量模型的过程如下:
(1)获得文本文档集的地址:
(2)词向量模型的存储地址:
(3)调用词向量训练函数w2v_train()进行模型训练,并存储模型,以便下次使用,不需要重复训练。
测试分析:
(1)载入词向量模型
(2)获取两个词的相似度
例如,“产品”和“学校”的相似度计算可采用如下两种方案:
运行结果:
(3)获取某个词的相似词汇
例如,对于词“学校”,我们获取其10个最相似的词描述如下:
结果:
其中每个项表示词与词的相似度,按照相似度从大到小排序。
2.增量训练
训练集的大小会影响训练出来的词向量的效果,如果训练集太小,有部分词并没有包含在词典中,就无法识别这类词。因此,我们需要对原来训练出来的词向量模型进行增量训练,使模型能够识别出新词。(www.xing528.com)
例如,在采用THUCNews训练的词向量模型中,词“护院”并不包含在词模型中,则系统会提示如下信息:
则说明这个词不在原来的训练文本集中出现过。因此,为了增加模型对新文本集中的词的识别能力,可继续采用新的文本语料进行增量训练。定义的增量训练函数update_model(old_model,add_corpus_dir,word2vec_new_path)描述如下:
参数:
old_model:旧模型。
add_corpus_dir:增加语料库路径。
word2vec_new_path:新模型存储路径。
返回值:
old_model:word2vec模型
其中,model.train()描述如下:
参数:
sentences:文本数据集,是一个可迭代对象。
total_examples:参与训练的文本数量。
epochs:在文本数据集上的迭代次数。
对于原来采用清华大学自然语言处理与社会人文计算实验室提供的语料库进行训练获取的词向量模型,继续采用搜狐新闻语料库进行增量训练,测试描述如下:
(1)获取增加语料集路径:
(2)原始向量模型存储路径:
(3)新模型存储路径:
(4)载入原来词向量模型:
(5)增量训练词向量模型:
经过增量训练后的词向量模型,可以识别新的许多未知词。例如获取词“护院”的向量,由于原始训练向量的维度是200维,我们获取了10维的值表示如下:
运行结果:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。