赞
踩
WordW2vec是google在2013年的论文《Efficient Estimation of Word Representations inVector Space》中提出的。顾名思义,是一个词向量模型,也就是将字词转为向量表示。
Word2vec模型包含两种训练词向量的方法:CBOW和skip-gram。其中CBOW的基本思想是通过该关键词的上下文的词语来预测这个关键词:而skip-gram的基本思想与CBOW相反,是通过该关键词来预测上下文的词语。如下图所示:
具体如上图所示:
当损失达到最优则训练结束,便得到了我们需要的权重矩阵,通过这个权重矩阵便可根据输入的独热向量形成词向量。
其实skip-gram就是将CBOW反过来操作,如以上那张CBOW的过程图一样,只不过用上面同样的步骤从右边开始解读。明白的话这部分的训练步骤可以不看。
注意:word2vec有负采样和层次softmax的改进,也是知识点和难点,详细可以产靠这篇博客:http://t.csdn.cn/Nie7O
这里没有弄很详细的代码,就调用了word2vec的一个包,也就是一个简单的使用例子,知道怎么使用就行,具体的模型参数网上都可以查得到,也不多:
- import logging
-
- from gensim.models import Word2Vec
- from gensim.models.word2vec import LineSentence
- from all_model_param import *
-
- logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s',level=logging.INFO)
- model = Word2Vec(
- LineSentence(open('file_path', 'r', encoding='utf8')),
- sg=0,
- epochs=300,
- vector_size=word_vector_size,
- window=5,
- min_count=1,
- workers=8
- )
-
- # 词向量保存
- model.wv.save_word2vec_format('word2vec/data.vector', binary=False)
-
- # 模型保存
- model.save('word2vec/test.model')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。