Gensim训练维基百科词向量模型(含代码)
由于平时会用到很多的文本预处理,这里就系统的讲解一下Gensim是如何训练维基百科词向量模型的!!
其中训练好的模型,也就是最终生成的 **.model 文件,可以作为预训练词向量使用。
训练维基百科词向量模型的代码参见我的github:https://github.com/ly987/NLP
首先简单了解一下gensim:
自定义两句话,分词,以分好词的句子作为输入,使用 gensim 的 Word2Vec 训练词向量。
from gensim.models import word2vec
raw_sentences = ["the room is very hot", "the dog is very cute"]
sentences = [s.split() for s in raw_sentences]
print(sentences)
# [['the', 'room', 'is', 'very', 'hot'], ['the', 'dog', 'is', 'very', 'cute']]
model = word2vec.Word2Vec(sentences, min_count=1)print(model.similarity('dog', 'room')) # 0.008617729embedding_dim = model['dog'].shape[0]
# print('词向量的长度为{}'.format(embedding_dim)) # 100print(model['dog']) # 100维度的向量print(model.most_similar(positive=['hot'], topn=10))
# 输出:
# [('room', 0.1527533233165741),
# ('dog', 0.09926721453666687),
# ('the', 0.06792610883712769),
# ('is', 0.03735002875328064),
# ('cute', 0.018039152026176453),
# ('very', -0.1967192143201828)]print(model.most_similar(positive=['dog', 'room'], negative=['cute'], topn=1))
# 输出:
# [('very', 0.1005309671163559)]
下面我们开始训练维基百科数据:
一、下载维基百科数据
下载网址:https://dumps.wikimedia.org/zhwiki/
一般有两个版本,这里我们选用小点的那一个,在实际应用中,我们用1.7G训练的词向量作为预训练词向量。
下载好的文件格式就为 **.bz2
二、将下载好的维基百科文件的文件格式转化为 **.txt格式
使用github中分享的代码:process.py
在cmd中,将路径调至process.py和下载好的 **.bz2 文件目录下,运行:
python process.py zhwiki-latest-pages-articles.xml.bz2 wiki.zh.text
其中wiki.zh.text的名称可以自定义。
三、将 **.txt 文件的繁体字转化为楷体
使用软件:opencc
安装好opencc软件,将 **.txt 文件放置与 opencc.exe 同一目录下,在cmd中,将路径调至opencc的安装目录下,运行:
opencc -i wiki_texts.txt -o test.txt -c t2s.json
其中 test.txt 的名称可以自定义。
四、对 test.txt 分词
使用github中分享的代码:Testjieba.py
在cmd中,将路径调至Testjieba.py和下载好的文件目录下,运行:
python Testjieba.py
五、训练词向量
使用github中分享的代码:word2vec_model.py
在cmd中,将路径调至word2vec_model.py和下载好的文件目录下,运行:
python word2vec_model.py zh.jian.wiki.seg.txt wiki.zh.text.model wiki.zh.text.vector
其中 wiki.zh.text.model 和 wiki.zh.text.vector 的名称可以自定义。wiki.zh.text.model 即为最终训练好的词向量。
六、测试
使用刚刚训练好的 wiki.zh.text.model 来对句子进行词向量转化。
from gensim.models import Word2Vec
en_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)
Gensim训练维基百科词向量模型(含代码)相关推荐
- 使用gensim框架及Word2Vec词向量模型获取相似词
使用gensim框架及Word2Vec词向量模型获取相似词 预备知识 Word2Vec模型下载 加载词向量模型 预备知识 gensim框架 gensim是基于Python的一个框架,它不但将Pytho ...
- 把训练好的词向量模型可视化
意思相近的词语,在向量空间中的距离应该越近.对于一个高维词向量,我们无法直观地观察两个词的距离,于是我们就需要把词向量降维处理,变成二维的,就可以画出来了. 输入是一个训练好的词向量模型.输出是一张图 ...
- gensim训练wiki中文词向量
尝试用gensim来做word2vec,之后还会用glove和fasttext进行比较 获得wiki语料 前往维基百科:资料库下载, 点击中文版的下载,下载这份大的文件 同时安装好需要的gensim包 ...
- 训练自己的词向量模型
from:https://blog.csdn.net/gdh756462786/article/details/79108665/ 一.gensim介绍 gensim是一款强大的自然语言处理工具,里面 ...
- 斯坦福大学已经训练好的词向量模型下载网址
http://nlp.stanford.edu/data/wordvecs/ http://nlp.stanford.edu/projects/glove/
- 【从零开始学习深度学习】48.Pytorch_NLP实战案例:如何使用预训练的词向量模型求近义词和类比词
目录 1. 下载预训练的词向量 2. 应用预训练词向量 2.1 求近义词 2.2 求类比词 本文将介绍如何使用已经在大规模语料上预训练的词向量模型来求近义词和类比词. 1. 下载预训练的词向量 基于P ...
- NLP-分类模型-2016-文本分类:FastText【使用CBOW的模型结构;作用:①文本分类、②训练词向量、③词向量模型迁移(直接拿FastText官方已训练好的词向量来使用)】【基于子词训练】
<原始论文:Bag of Tricks for Efficient Text Classification> <原始论文:Enriching Word Vectors with Su ...
- Ubuntu下GloVe中文词向量模型训练
开启美好的九月 最近在学习textCNN进行文本分类,然后随机生成向量构建embedding网络的分类效果不是很佳,便考虑训练Glove词向量来进行训练,整个过程还是有遇到一些问题,希望懂的旁友能来指 ...
- 从零开始构建基于textcnn的文本分类模型(上),word2vec向量训练,预训练词向量模型加载,pytorch Dataset、collete_fn、Dataloader转换数据集并行加载
伴随着bert.transformer模型的提出,文本预训练模型应用于各项NLP任务.文本分类任务是最基础的NLP任务,本文回顾最先采用CNN用于文本分类之一的textcnn模型,意在巩固分词.词向量 ...
最新文章
- c语言字符串前加l,【C】 30_C语言中的字符串
- 中信国健临床通讯2011年7月期目录
- vs studio 2017/2015 连接mysql报错 You have a usable connection already.
- 关于ssl免费证书设置
- .dll文件存在但是不显示_一招巧妙解决U盘内文件明明存在,打开U盘而内容却不显示的问题...
- python找人_python之找最后一个人
- iOS开发之tableHeaderView的那些坑
- 00048_this关键字
- 分子模拟软件amber_薛定谔 autodock 分子动力学模拟GROMACS软件
- matlab covar,Matlab功率谱估计
- echarts--迁徙图
- Python操作Redis之mset和mget
- 物联网行业如何迎风飞扬
- 网站建设中图片使用方法
- 4.7 电源管理 第五部分 ---- Windows CE设备驱动开发之电源管理
- 【转】如何订机票最划算?
- 如何写一个一天爬取 100 万张网页的爬虫
- snmp v3 参数_snmp v3配置使用
- 从事网络安全,可以考取什么证书?
- 登录163邮箱续费情况怎么查询?163vip邮箱怎么收费?
热门文章
- Oracle--“ORA-28007: the password cannot be reused”解决
- 进程资源和进程状态 TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE
- GitHub 优秀的开源项目学习
- overleaf 插入图片_Overleaf手册(三)--图片
- 《Android Studio 实战》总结一
- ACM投稿版权信息去除问题
- 什么是Resnet50模型?
- 必考题系列--十种常见的运行时异常
- java 工作流 jbpm,J2EE工作流管理系统jBPM详解(一)(4)
- 4.卡尔曼滤波之卡尔曼滤波的基本方程