环境:Win10
语言与版本:python 3.7
一、word2vec简介
word2vec是一个能够产生词嵌入的模型,即可以根据文本产生一系列向量或向量空间。是一个强大的,无监督的词嵌入技术。
word2vec有两个不同的版本,区别在于算法不同:CBOW(连续词袋)与 Skip-Gram。
CBOW中,目标词的上下文环境由其周边的的多个词来表示。 Skip-Gram则与之相反,通过目标词来预测上下文词。
二、前期准备
1、语料:维基中文语料 (下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2)
其他选择:搜狗实验室语料 (下载地址:http://www.sogou.com/labs/resource/ca.php)
等等......
2、所用工具:
(1)python版gensim安装(pip install gensim 或者 conda install gensim)
(2)Opencc (链接:https://pan.baidu.com/s/1Rg759i1IDigZw9QcqZTXHg 提取码:2jp5 )
(3)结巴分词 (pip install jieba 或者 前往https://pypi.org/project/jieba/#files 手动下载安装)
三、实验过程
1、语料预处理(传入参数为 “处理预料文件路径名字” + “空格” + “处理后的路径文件名”)
利用下面的程序将下载好的语料转换为txt文件保存下来,其中每一行为一篇文章
import logging
import os.path
import sys
from gensim.corpora import WikiCorpus
if __name__ == '__main__':
#建立日志
program = os.path.basename(sys.argv[0])
logger = logging.getLogger(program)
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s')
logging.root.setLevel(level=logging.INFO)
logger.info("running %s"% ' '.join(sys.argv))
#参数长度不应该超过三
if len(sys.argv) > 3:
print(globals()