目录

一、数据获取

二、将xml格式数据转为txt

三、繁体转为简体

方法1---自己使用opencc库手动了1个转换程序,pip install opencc进行安装

方法2---网上有一个exe应用程序进行转换,详情见:https://bintray.com/package/files/byvoid/opencc/OpenCC

四、分词

五、Word2Vec模型训练

六、Word2Vec模型检测


一、数据获取

使用的语料库是wiki百科的中文语料库

下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2

上述地址下载较慢,我分享一个我已经下载好的文件(截止2019年7月11日)

下载地址:https://pan.baidu.com/s/1SAXNFcr4hQSZvcMi914_kQ , 提取码:kt20

二、将xml格式数据转为txt

使用了gensim库中的维基百科处理类WikiCorpus,该类中的get_texts方法原文件中的文章转化为一个数组,其中每一个元素对应着原文件中的一篇文章。然后通过for循环便可以将其中的每一篇文章读出,然后进行保存。

1_process.py

当时的转换过程,大概需要了30分钟吧!

三、繁体转为简体

由于维基内有些内容是繁体内容,需要进行繁体--简体转换。

方法1---自己使用opencc库手动了1个转换程序,pip install opencc进行安装

opencc库的繁简转换​​​​​

但是运行到130000+文章左右时出现了错误:(其实程序是对的,由于txt文件存在格式问题,后面详解!)

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 6598-6599: invalid continuation byte

但是我的所有文本操作都是“encoding="utf8"还是出现上述问题。

方法2---网上有一个exe应用程序进行转换,详情见:https://bintray.com/package/files/byvoid/opencc/OpenCC

进入解压后的opencc的目录(opencc-1.0.1-win32),双击opencc.exe文件。在当前目录打开dos窗口(Shift+鼠标右键->在此处打开命令窗口),输入如下命令行:

opencc -i wiki.zh.txt -o wiki.zh.simp.txt -c t2s.json

(wiki.zh.txt简繁混合文本,wiki.zh.simp.txt转换后的纯简体文本,t2s为繁体转简体,s2t为简体转繁体)

记事本无法打开这么大的txt文件,所以用notepad++打开,或者写几行代码打开:

四、分词

对于中文来说,分词是必须要经过的一步处理,下面就需要进行分词操作。在这里使用了大名鼎鼎的jieba库。调用其中的cut方法即可。顺便使用停用词进行了去除停用词!拿到了分词后的文件,在一般的NLP处理中,会需要去停用词。由于word2vec的算法依赖于上下文,而上下文有可能就是停词。因此对于word2vec,我们可以不用去停词。所以需要依据自己的需求,确定是否进行停用词!

2_jieba_participle.py

但是运行到130000+文章左右时出现了错误:

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 6598-6599: invalid continuation byte

但是我的所有文本操作都是“encoding="utf8"还是出现上述问题!!!好啦,现在就揭晓出错的原因是什么?

由于程序在写入txt文件的时候,存在类似于火星文的符号存在,所以这些符号会导致以'utf-8' 读取文件出现错误!

解决方法:

试了网上n种方法,都不可以,所以劳动人民最伟大!用notepad++打开“wiki.zh.txt”(wiki的txt文件),全选进行复制(或许会有点卡,做好准备!),新建一个txt文本(名字随意!),另存为的时候注意按照下图的方式进行存储!然后就是上面手动的繁简转换程序就可以正常运行了(也可以使用exe应用程序进行!),然后jieba分词就可以完美运行,但是有点心理准备,这个结巴分词的过程非常的缓慢!

分词的结果如下(貌似我的停用词好像不是很好!后续继续改进吧!)

分词结果

五、Word2Vec模型训练

分好词的文档即可进行word2vec词向量模型的训练了,文档较大,训练了应该有1个小时左右!

3_train_word2vec_model.py

代码运行完成后得到如下四个文件,其中wiki.zh.text.model是建好的模型,wiki.zh.text.vector是词向量。

训练结果

六、Word2Vec模型检测

模型训练好后,来测试模型的结果。

4_model_match.py

上述使用了gensim库,gensim是一个python的自然语言处理库,能够将文档根据TF-IDF, LDA, LSI 等模型转化成向量模式,以便进行进一步的处理。此外,gensim还实现了word2vec功能,能够将单词转化为词向量。

相关度计算

计算出给定词汇中最不匹配的一个

计算词语之间相似度​​​​​​

推荐介绍gensim的博客:

https://blog.csdn.net/u014595019/article/details/52218249#commentBox

https://blog.csdn.net/l7h9ja4/article/details/80220939#commentBox

这是对于word2vec方法以及模型训练和检验的第一篇文章,其中关于文本2向量的有关知识进行了回顾,上面介绍gensim库的博客也对相关背景知识在其博客内详细说明了。

以上学习过程和代码,感谢两位博主:

liuwenqiang1202:https://github.com/liuwenqiang1202

AimeeLee77:https://github.com/AimeeLee77

代码及相关资料:

链接:https://pan.baidu.com/s/1JEvadkEflY1FrltWImw3BA  , 提取码:u541

基于word2vec使用wiki中文语料库实现词向量训练模型--2019最新相关推荐

  1. 使用wiki百科的中文语料库训练词向量

    使用wiki的中文语料库训练词向量 直接用下面链接中的代码处理!!!后面的不用看 一.zhwiki语料库.处理器 1.选择recombine的xml.bz2下载 2.Github wiki extra ...

  2. NLP之word2vec:利用 Wikipedia Text(中文维基百科)语料+Word2vec工具来训练简体中文词向量

    NLP之word2vec:利用 Wikipedia Text(中文维基百科)语料+Word2vec工具来训练简体中文词向量 目录 输出结果 设计思路 1.Wikipedia Text语料来源 2.维基 ...

  3. 利用Python构建Wiki中文语料词向量模型

    利用Python构建Wiki中文语料词向量模型试验 完整代码下载地址:利用Python构建Wiki中文语料词向量模型 本实例主要介绍的是选取wiki中文语料,并使用python完成Word2vec模型 ...

  4. Python Word2vec训练医学短文本字/词向量实例实现,Word2vec训练字向量,Word2vec训练词向量,Word2vec训练保存与加载模型,Word2vec基础知识

    一.Word2vec概念 (1)Word2vec,是一群用来产生词向量的相关模型.这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本.网络以词表现,并且需猜测相邻位置的输入词,在word2 ...

  5. 【词向量】从Word2Vec到Bert,聊聊词向量的前世今生(一)

     机器学习算法与自然语言处理推荐  来源:https://zhuanlan.zhihu.com/p/58425003 作者:小川Ryan [机器学习算法与自然语言处理导读]BERT并不是凭空而来,如何 ...

  6. 使用Google word2vec训练我们自己的词向量模型

    主要内容 这篇文章主要内容是介绍从初始语料(文本)到生成词向量模型的过程. 词向量模型 词向量模型是一种表征词在整个文档中定位的模型.它的基本内容是词以及它们的向量表示,即将词映射为对应的向量,这样就 ...

  7. 基于深度学习的Wiki中文语料词word2vec向量模型

    资源下载地址:https://download.csdn.net/download/sheziqiong/85820613 资源下载地址:https://download.csdn.net/downl ...

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

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

  9. 从零开始构建基于textcnn的文本分类模型(上),word2vec向量训练,预训练词向量模型加载,pytorch Dataset、collete_fn、Dataloader转换数据集并行加载

    伴随着bert.transformer模型的提出,文本预训练模型应用于各项NLP任务.文本分类任务是最基础的NLP任务,本文回顾最先采用CNN用于文本分类之一的textcnn模型,意在巩固分词.词向量 ...

  10. 基于wiki中文语料库的gensim模型使用方法以及R语言的调用方式

    基于wiki中文语料库的gensim模型使用方法以及R语言的调用方式 近期想要整理下硬盘里的东西,看到本科毕设做情感倾向分析相关的数据,想起当时使用gensim训练词向量模型训练了超级久,决定将训练好 ...

最新文章

  1. Python 办公自动化:让你的工作效率翻番
  2. 项目管理:项目管理为什么难?
  3. lambda ::_您无法从这里到达那里:Netlify Lambda和Firebase如何使我陷入无服务器的死胡同
  4. 普通人为什么要学习Python
  5. python怎么筛选excel数据_Python操作三个excel并过滤数据,python,筛选,其中
  6. delete函数的动态解析
  7. 苹果开发者中心宕机8天终于回归
  8. 你能给我的手机推荐一款安全软件吗?
  9. 对外汉语语料库有哪些_汉语国际教育之语料库分享
  10. Source must not be null\n\tat org.springframework.util.Assert.notNull(Assert.java:101)
  11. RTT Nano学习笔记 8 - 信号量
  12. java smb删除指定文件,java 利用SMB向远道机器写文件
  13. 加拿大海运专线操作流程详解
  14. SVN的分支是做什么的?
  15. NANK南卡无线蓝牙耳机体验:身材虽大,续航却格外长
  16. 亚马逊SP-API对接实践
  17. 快速了解矢量量化Vector-Quantized(VQ)及相应代码
  18. POJ 2942 圆桌骑士
  19. java怎么逐行读取一个文件内容,并把每行顺序打乱存入另外一个文件中
  20. 利用“秋天的第一杯奶茶”热点,日引流加粉50+,复盘如何背靠支付宝借花献佛

热门文章

  1. SQL 注入的资料,快速查表大全
  2. 关于百度SDK的返回错误-PERMISSION UNFINISHED
  3. make[1]: *** Waiting for unfinished jobs....
  4. mirna富集分析_miRNA芯片数据挖掘文章套路
  5. Spring使用纯注解配置事务管理并实现简单的增删查改以及模拟转账功能
  6. emv交易流程介绍_EMV交易指标简介
  7. 模拟夜间灯光-科目三-灯光口令(9选5)
  8. Qt中的矩阵计算库eigen
  9. python定义一个复数类complex_定义一个复数类Complex,使得下面的代码能够工作
  10. Taro3 React hook怎么使用Taro-prase显示markdown文件?