基于word2vec使用wiki中文语料库实现词向量训练模型--2019最新
目录
一、数据获取
二、将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循环便可以将其中的每一篇文章读出,然后进行保存。
当时的转换过程,大概需要了30分钟吧!
三、繁体转为简体
由于维基内有些内容是繁体内容,需要进行繁体--简体转换。
方法1---自己使用opencc库手动了1个转换程序,pip install 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,我们可以不用去停词。所以需要依据自己的需求,确定是否进行停用词!
但是运行到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个小时左右!
代码运行完成后得到如下四个文件,其中wiki.zh.text.model是建好的模型,wiki.zh.text.vector是词向量。
六、Word2Vec模型检测
模型训练好后,来测试模型的结果。
上述使用了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最新相关推荐
- 使用wiki百科的中文语料库训练词向量
使用wiki的中文语料库训练词向量 直接用下面链接中的代码处理!!!后面的不用看 一.zhwiki语料库.处理器 1.选择recombine的xml.bz2下载 2.Github wiki extra ...
- NLP之word2vec:利用 Wikipedia Text(中文维基百科)语料+Word2vec工具来训练简体中文词向量
NLP之word2vec:利用 Wikipedia Text(中文维基百科)语料+Word2vec工具来训练简体中文词向量 目录 输出结果 设计思路 1.Wikipedia Text语料来源 2.维基 ...
- 利用Python构建Wiki中文语料词向量模型
利用Python构建Wiki中文语料词向量模型试验 完整代码下载地址:利用Python构建Wiki中文语料词向量模型 本实例主要介绍的是选取wiki中文语料,并使用python完成Word2vec模型 ...
- Python Word2vec训练医学短文本字/词向量实例实现,Word2vec训练字向量,Word2vec训练词向量,Word2vec训练保存与加载模型,Word2vec基础知识
一.Word2vec概念 (1)Word2vec,是一群用来产生词向量的相关模型.这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本.网络以词表现,并且需猜测相邻位置的输入词,在word2 ...
- 【词向量】从Word2Vec到Bert,聊聊词向量的前世今生(一)
机器学习算法与自然语言处理推荐 来源:https://zhuanlan.zhihu.com/p/58425003 作者:小川Ryan [机器学习算法与自然语言处理导读]BERT并不是凭空而来,如何 ...
- 使用Google word2vec训练我们自己的词向量模型
主要内容 这篇文章主要内容是介绍从初始语料(文本)到生成词向量模型的过程. 词向量模型 词向量模型是一种表征词在整个文档中定位的模型.它的基本内容是词以及它们的向量表示,即将词映射为对应的向量,这样就 ...
- 基于深度学习的Wiki中文语料词word2vec向量模型
资源下载地址:https://download.csdn.net/download/sheziqiong/85820613 资源下载地址:https://download.csdn.net/downl ...
- Python Djang 搭建自动词性标注网站(基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU、LSTM、RNN神经网络组成的词性标注模型)
引言 本文基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU.LSTM.RNN神经网络组成的词性标注模型,并且将模型封装,使用python Django web框架搭建 ...
- 从零开始构建基于textcnn的文本分类模型(上),word2vec向量训练,预训练词向量模型加载,pytorch Dataset、collete_fn、Dataloader转换数据集并行加载
伴随着bert.transformer模型的提出,文本预训练模型应用于各项NLP任务.文本分类任务是最基础的NLP任务,本文回顾最先采用CNN用于文本分类之一的textcnn模型,意在巩固分词.词向量 ...
- 基于wiki中文语料库的gensim模型使用方法以及R语言的调用方式
基于wiki中文语料库的gensim模型使用方法以及R语言的调用方式 近期想要整理下硬盘里的东西,看到本科毕设做情感倾向分析相关的数据,想起当时使用gensim训练词向量模型训练了超级久,决定将训练好 ...
最新文章
- Python 办公自动化:让你的工作效率翻番
- 项目管理:项目管理为什么难?
- lambda ::_您无法从这里到达那里:Netlify Lambda和Firebase如何使我陷入无服务器的死胡同
- 普通人为什么要学习Python
- python怎么筛选excel数据_Python操作三个excel并过滤数据,python,筛选,其中
- delete函数的动态解析
- 苹果开发者中心宕机8天终于回归
- 你能给我的手机推荐一款安全软件吗?
- 对外汉语语料库有哪些_汉语国际教育之语料库分享
- Source must not be null\n\tat org.springframework.util.Assert.notNull(Assert.java:101)
- RTT Nano学习笔记 8 - 信号量
- java smb删除指定文件,java 利用SMB向远道机器写文件
- 加拿大海运专线操作流程详解
- SVN的分支是做什么的?
- NANK南卡无线蓝牙耳机体验:身材虽大,续航却格外长
- 亚马逊SP-API对接实践
- 快速了解矢量量化Vector-Quantized(VQ)及相应代码
- POJ 2942 圆桌骑士
- java怎么逐行读取一个文件内容,并把每行顺序打乱存入另外一个文件中
- 利用“秋天的第一杯奶茶”热点,日引流加粉50+,复盘如何背靠支付宝借花献佛
热门文章
- SQL 注入的资料,快速查表大全
- 关于百度SDK的返回错误-PERMISSION UNFINISHED
- make[1]: *** Waiting for unfinished jobs....
- mirna富集分析_miRNA芯片数据挖掘文章套路
- Spring使用纯注解配置事务管理并实现简单的增删查改以及模拟转账功能
- emv交易流程介绍_EMV交易指标简介
- 模拟夜间灯光-科目三-灯光口令(9选5)
- Qt中的矩阵计算库eigen
- python定义一个复数类complex_定义一个复数类Complex,使得下面的代码能够工作
- Taro3 React hook怎么使用Taro-prase显示markdown文件?