前言

  本篇主要是基于gensim 库中的 Word2Vec 模型,使用维基百科中文数据训练word2vec 词向量模型,大体步骤如下:

  • 数据预处理
  • 模型的训练
  • 模型的测试

准备条件:

  • Windows10 64位
  • Python3.6,并安装 gensim 库:pip install gensim
  • 数据集:下载地址

注意:

  • 下载 zhwiki-latest-pages-articles-multistream.xml.bz2 此类型的,其中包括:articles 以及后缀为 xml.bz2
  • 尽可能下载大一点的,我下载的是1.7G的,语料库越大,模型的效果会比较好
  • opencc(中文繁体转简体):下载地址

我这里下载的是opencc-1.0.1-win64.7z,下载后解压备用即可,解压后得到文件夹:opencc-1.0.1-win64

本篇所有脚本代码可见:Github

其中提供了脚本文件和 opencc 工具包,由于数据比较大,所以这里我没有上传,可以自行下载训练模型。

一、数据预处理

下载后的数据如下:

1、将下载后的数据转为txt 文本文件

  • 这里只需要使用写好的 python 脚本文件执行即可,此步骤大概需要20分钟左右,根据个人电脑配置。

python 脚本文件可见: process.py

执行语句:

python process.py zhwiki-latest-pages-articles.xml.bz2 wiki_zh.txt
#python 原数据的文件名 转换后数据的文件名
#中间为空格

执行后得到:

2、繁体转简体

打开 wiki_zh.txt 文件看看:

  • 由于文件比较大,所以一般文本编辑器很难打开,我们可以写个 python 脚本来读取部分内容。

python 脚本文件可见: read_file.py

执行语句:

python read_file.py

脚本代码如下:

import codecsf = codecs.open('wiki_zh.txt', 'r', encoding="utf8")  # 这里打开哪个文件就改为哪个文件的文件名
line = f.readline()
print(line)

运行结果如下:

文件中都是繁体中文,所以我们需要将其转换为简体中文,这时候 opencc 就派上用场了

繁体转简体:

  • wiki_zh.txt 文件移到 opencc解压后的文件夹 opencc-1.0.1-win64 下,执行如下语句:
opencc -i wiki_zh.txt -o wiki_zh_jian.txt -c t2s.json

此步骤大概需要几分钟的时间,我的花了大概1分钟

执行后结果为:

查看内容:

  • 同样使用 read_file.py 脚本文件查看,需要修改文件名。

此时我们发现,文本文件中已经都是简体中文了,接下来我们要对该文本进行分词操作

3、jieba 分词

  • 使用写好的 python 脚本文件执行即可

python 脚本文件可见: jieba_cut.py

执行语句:

python jieba_cut.py

此步骤我花了大概十几分钟

执行结果:

查看内容:

  • 同样的方式

此时,我们就已经分好词了,至此我们数据预处理就做好了,下面就开始模型训练了

二、模型的训练

  • 使用写好的 python 脚本文件执行即可

python 脚本文件可见: word2vec_model.py

执行语句:

python word2vec_model.py wiki_zh_jian_cut.txt wiki_zh.model wiki_zh.vector

此步骤我花了一个多小时

执行结果:

模型训练好了,我们可以来试试这个模型怎么样了

三、模型的测试

  • 执行脚本文件 test_model.py

测试代码:

from gensim.models import Word2Vecen_wiki_word2vec_model = Word2Vec.load('wiki.zh.text.model')testwords = ['苹果', '数学', '学术', '白痴', '篮球']
for i in range(5):res = en_wiki_word2vec_model.most_similar(testwords[i])print(testwords[i])print(res)

执行语句:

python test_model.py

运行结果:

从上面的结果看来:

  • 和“数学”词向量比较相近的词还真是,都是和“数学”有关的,其他词也是,说明这个模型还不错,给自己一个赞吧

四、总结

  从上面的试验看来,应用维基百科的中文数据来训练模型还不错,要是我们有更好的语料库,或者更大的语料库,那模型的效果会不会更好呢?理论上是肯定的,我们可以将任何语料库提取、转换、分词后(当然,这些步骤不是每步都是必须的,但是分词是必须的),然后应用 gensim 库中的 Word2vec 模块进行训练。细心的朋友可能发现,现在有很多的分词工具(这里用的jieba,另外还有北大开源的 pkuseg,可参考:链接),那么分词的好坏会不会带来模型效果的提升呢?这也待进一步试验。我想分词结果越好,模型效果也越好吧。

  另外,词向量的构建仅是自然语言处理中的一个强大的工具,我们还需要对构建好的词向量加以应用,用来处理自然语言处理的或许工作,如:词性标注、主题分类等等。

【NLP】维基百科中文数据训练word2vec词向量模型——基于gensim库相关推荐

  1. 维基百科简体中文语料训练word2vec词向量

    步骤: 1.下载维基百科中文语料 2.使用工具从压缩包中抽取正文文本 3.将繁体字转简体字 4.分词 5.训练模型 6.测试模型 1.下载维基百科中文语料 语料下载地址:https://dumps.w ...

  2. NLP 利器 Gensim 来训练 word2vec 词向量模型的参数设置

    使用 Gensim 来训练 word2vec 词向量模型的参数设置 文章目录 一.最小频次 min_count 二.词向量维度 size 三.并行处理核心数 workers 我们可以使用一些参数设置来 ...

  3. wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例

    首先下载wiki中文语料(大约1.7G) https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 ...

  4. 【NLP】word2vec词向量模型训练——基于tensorflow

    前言   维基百科中文数据训练word2vec词向量模型--基于gensim库   上文我们使用了 gensim 库中的 Word2vec 模块训练词向量模型,本篇我们通过 tensorflow 自己 ...

  5. Python Djang 搭建自动词性标注网站(基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU、LSTM、RNN神经网络组成的词性标注模型)

    引言 本文基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU.LSTM.RNN神经网络组成的词性标注模型,并且将模型封装,使用python Django web框架搭建 ...

  6. 【NLP模型笔记】Intro || Word2vec词向量模型

    INTRO 自然语言处理(Natural Language Processing),简称NLP.这个领域是通过统计学.数学模型.机器学习等相关技术研究人类语言的特征,对其进行数学的表示,并基于这种表示 ...

  7. 文本分布式表示(三):用gensim训练word2vec词向量

    今天参考网上的博客,用gensim训练了word2vec词向量.训练的语料是著名科幻小说<三体>,这部小说我一直没有看,所以这次拿来折腾一下. <三体>这本小说里有不少人名和一 ...

  8. Word2Vec词向量模型代码

    Word2Vec也称Word Embedding,中文的叫法是"词向量"或"词嵌入",是一种计算非常高效的,可以从原始语料中学习字词空间向量的预测模型.Word ...

  9. GENSIM官方教程(4.0.0beta最新版)-Word2Vec词向量模型

    GENSIM官方教程(4.0.0beta最新版)-词向量模型 译文目录 回顾:词袋模型 简介:词向量模型 词向量模型训练实例 训练一个你自己的模型 储存和加载模型 训练参数 内存相关的细节 模型评估 ...

最新文章

  1. Spark集群模式概述
  2. JavaScript中九九乘法表制作
  3. 机器学习 —— 浅谈贝叶斯和MCMC
  4. 简单的线程同步问题:两个线程交替执行N次【Synchronized、Lock、ArrayBlockingQueue】...
  5. 重构手册阅读笔记:重构的含义
  6. 使用create-react-app模板模仿12306app
  7. poj1860(spfa判正环)
  8. 【论文写作】SSM超市管理系统如何写可行性分析
  9. GoogLeNet模型
  10. selenium.common.exceptions.WebDriverException:Message: 'chromedriver' executable needs to be in PATH
  11. 死磕 Java8 新特性,17 种日期处理方式!
  12. 使用微软官方方法制作纯净WinPE
  13. Songtaste,酷到不行的音乐网站
  14. 数字孪生 软著登记表 模板
  15. C#+GDAL读取影像(1)
  16. 小程序身份证号码保留前后4位其他用“*”代替
  17. android kotlin扩展添加域名
  18. IT 行业的创新 - 创新的迷思
  19. 搭建一个弹幕新闻网站
  20. Anaconda3 安装教程

热门文章

  1. 【转】探索基础元素---基于WebGL的H5 3D游戏引擎BabylonJS
  2. 把excel转换成html格式的文件,极强PDF转换器将Excel表格转换成HTML网页格式的方法...
  3. 中国二氯甲烷行业研究与投资前景预测报告(2022版)
  4. mac系统-安装虚拟无人机px4及其简单操作教程
  5. 西北乱跑娃 --- python类方法重写
  6. 3.3V与5V系统电平兼容的方法探究
  7. java论坛私信_巡云轻论坛系统 - JAVA轻论坛
  8. 咻商跨境电商:shopee虾皮跨境电商——店铺运营篇
  9. matlab 白平衡,白平衡算法
  10. 市场渐冷,交易所拉锯战愈烈,牛熊无阻,我在乌镇等你