一、准备语料库
首先下载wiki中文语料(大约1.7G)
https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2
下载的文件名为“zhwiki-latest-pages-articles.xml.bz2”
开源语料库
https://github.com/brightmart/nlp_chinese_corpus
https://github.com/crownpku/Awesome-Chinese-NLP
维基中文语料库地址
https://dumps.wikimedia.org/zhwiki/latest/
wike百科语料
https://dumps.wikimedia.org/zhwiki/
二、代码
1.词向量的训练及词语相似度
本文训练词向量的步骤是:
- 运行data_pre_process.py脚本对原始中文语料库进行预处理,该脚本执行完毕后会产生reduce_zhiwiki.txt这个文档。
- 运行training.py脚本,执行完该脚本后会得到zhiwiki_news系列的四个文件,训练好的词向量就存在这几个文件里。
data_pre_process.py
文本预处理,jieba分词,繁转简
# -*- coding: utf-8 -*-
from gensim.corpora import WikiCorpus
import jieba
from langconv import *
def my_function():
space = ' '
i = 0
l = []
zhwiki_name = './data/zhwiki-latest-pages-articles.xml.bz2'
f = open('./data/reduce_zhiwiki.txt', 'w')
wiki = WikiCorpus(zhwiki_name, lemmatize=False, dictionary={
})
for text in wiki.get_texts():
for temp_sentence in text:
temp_sentence = Converter('zh-hans').convert(temp_sentence)
seg_list = list(jieba.cut(temp_sentence))
for temp_term in seg_list:
l.append(temp_term)
f.write(space.join(l) + '\n')
l = []
i = i + 1
if(i % 200 == 0):
print('Saved ' + str(i) + ' articles')
f.close()
if __name__ == '__main__':
my_function()
training.py
word2vec文本转向量
# -*- coding: utf-8 -*-
from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence
import logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.</