这篇作为完整的词向量模型训练过程记录~~~
一、数据获取
wiki中文:wiki中文
wiki英文:wiki英文
中文文件大小约1.3G,英文文件大小约13.8G。
二、将xml文件转换为text格式,使用gensim.corpora中的WikiCorpus函数来处理维基百科的数据,具体方法是get_texts().
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 将xml的wiki数据转换为text格式
import logging
import os.path
import sys
import warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim') # 忽略警告
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()['__doc__'] % locals())
sys.exit(1)
inp, outp = sys.argv[1:3]
space = " "
i = 0
output = open(outp, 'w', encoding='utf-8')
wiki =WikiCorpus(inp, lemmatize=False, dictionary=[]) # gensim里的维基百科处理类WikiCorpus
for text in wiki.get_texts(): # 通过get_texts将维基里的每篇文章转换位1行text文本,并且去掉了标点符号等内容
output.write(space.join(text) + "\n")
i = i+1
if (i % 10000 == 0):
logger.info("Saved "+str(i)+" articles.")
output.close()
logger.info("Finished Saved "+str(i)+" articles.")
英文数据处理大约2个小时,中