Word2Vec中文语料实战
目录(?)[-]
Word2Vec中文语料实战
虽然Word2Vec在NLP领域很火,但网上关于Word2Vec中文语料训练的入门级资料比较少,所以本人整理了一份,希望对感兴趣的朋友有所帮助!本文使用的语料由作者亲自收集,代码由作者亲自编写,亲测有效!
如有问题可联系作者:QQ:771966081 微信:Bryce_cvprml
1、环境配置
本人使用的是MacBook + Python2.7.11
首先,安装NLP工具包gensim,这里包含了今天的主角:Word2Vec
pip install --upgrade gensim
其次,安装中文分词工具包jieba
pip install jieba
2、语料库说明
从网上下载TXT版的《倚天屠龙记》,作为基本语料,还需要作进一步处理
3、详细实验步骤
3.1 文件编解码(非必需)
满心欢喜地打开“倚天屠龙记.txt”,竟然是这样的,难道是火星文?瞬间满脸黑线,一脸懵逼。弱弱地问一句,有人能看懂吗,膜拜一下。
很显然,这是由编解码不一致引起的问题,即写文件时的编码类型和读文件时的解码类型不同。但本人没有安装可以自定义解码方式的文本编辑器,所以只好小米加步枪,直接上代码:
- #coding:utf8
- #读取倚天屠龙记文本,转码后存在新的文件里
- fin = open('倚天屠龙记.txt', 'r')
- fou = open('倚天屠龙记_uft8.txt', 'w')
- line = fin.readline()
- while line:
- newline = line.decode('GB18030').encode('utf-8') #用GBK、GB2312都会出错
- print newline,
- print >> fou, newline,
- line = fin.readline()
- fin.close()
- fou.close()
其实很简单,从原始文件“倚天屠龙记.txt”里逐行读取文本内容,先解码再编码,然后输出到新的文件“倚天屠龙记_uft8.txt”里。新的文件长这个样子,是不是一下子能看懂了,很开心有木有^_^
3.2 中文分词
接下来,还要分词、去掉标点符号。废话不多说,直接上代码。其实也很简单,从“倚天屠龙记_uft8.txt”里逐行读取文本,先分词,再去掉标点符号,最后保存到文件“倚天屠龙记_segmented.txt”。分词用到了jieba,本文删除标点符号的方式有点粗暴,不许笑出声来!(细心的读者可能会问,为什么这里不直接给出代码而只是代码截图呢,哈哈。。。因为这里直接贴上代码格式会很乱,为了使代码看起来清晰,只好这样了)
分词后的结果如下,内心里一阵狂喜对不对?!
3.3 模型训练
- #coding:utf8
- import gensim.models.word2vec as w2v
- model_file_name = '倚天屠龙记_model.txt'
- #模型训练,生成词向量
- sentences = w2v.LineSentence('倚天屠龙记_segmented.txt')
- model = w2v.Word2Vec(sentences, size=20, window=5, min_count=5, workers=4)
- model.save(model_file_name)
3.4 模型测试
到了最激动人心的时刻,这里打印出了测试代码和结果,看起来还真有点意思啊!赵敏和自己的相似度为1;赵敏和周芷若的相似度0.98277,比较接近;赵敏和韦一笑的相似度为0.80652,远不如赵敏和周芷若相似;最后,查找与张三丰最相似的词,直觉上来看,排前6的都有一定道理,灭绝师太和他都是一代掌门,也是宗师,最相似;排到2到6的都是他的徒弟和徒孙。
4、参考文献
1)中文分词工具包jieba:http://www.oschina.net/p/jieba/?fromerr=s7MN6pKB
2)NLP工具包gensim:https://radimrehurek.com/gensim/models/word2vec.html
Word2Vec中文语料实战相关推荐
- windows10 训练word2vec 中文语料
windows10 环境 训练word2vec 中文语料 参考这篇文章,但有自己体会 概述 本人是NLP中的菜鸟,喜欢这个领域,自己论文打算做这方面,训练word2vec是每一项NLP工作的基础内容. ...
- 【python gensim使用】word2vec词向量处理中文语料
word2vec介绍 word2vec官网:https://code.google.com/p/word2vec/ word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间 ...
- word2vec python 代码实现_python gensim使用word2vec词向量处理中文语料的方法
word2vec介绍 word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离. 它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出 ...
- wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例
首先下载wiki中文语料(大约1.7G) https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 ...
- 【用户行为分析】 用wiki百科中文语料训练word2vec模型
本文地址: http://blog.csdn.net/hereiskxm/article/details/49664845 前言 最近在调研基于内容的用户行为分析,在过程中发现了word2vec这个 ...
- gensim 中文语料训练 word2vec
gensim 的word2vec api参见: https://radimrehurek.com/gensim/models/word2vec.html 本文说一下中文语料的使用,很简单. 1 wor ...
- wiki中文语料的word2vec模型构建
一.利用wiki中文语料进行word2vec模型构建 1)数据获取 到wiki官网下载中文语料,下载完成后会得到命名为zhwiki-latest-pages-articles.xml.bz2的文件,里 ...
- 使用gensim训练中文语料word2vec
使用gensim训练中文语料word2vec 目录 使用gensim训练中文语料word2vec 1.项目目录结构 1.1 文件说明: 1.2 项目下载地址 2.使用jieba中文切词工具进行切词 2 ...
- word2vec训练维基中文语料
前期准备 1.语料: 维基中文语料 (下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.b ...
最新文章
- SPOJ 1812 LCS2 - Longest Common Substring II (后缀自动机)【两种做法】
- 手把手教你pyqt中.qrc图片文件的编写和使用
- php 对象转换成数组,PHP把对象转换为数组的问题
- 开到朝鲜的国产十元店,一年如何卖出190亿?
- solr 英文模拟mysql like查询xml_Solr实现类似MySQL的LIKE查询功能
- 数据创建表 修改列 新增列
- shell日期加减及数组循环
- 用 js 写的 WebSocketHeartBeat,心跳检测,断线重连
- eclipse 语言包下载 中文汉化
- matlab用于试验设计回归分析实验结果的例子
- 计算机程序漏洞用英语怎么说,网络用语bug是什么意思,中文翻译是虫子(指电脑程序漏洞)...
- 互联网金融学习总结(7)——2019年线下大额现金贷产品设计和风控手段
- sqlserver运行超大sql文件
- upyun java_又拍云Java SDK使用
- python - 模块解析
- Vue如何将baes64格式的图片转成普通格式
- python计算电费
- “高调做事,高调做人”?----关于排名和排序
- 《测试驱动开发实用指南(影印版)》读书笔记1
- 1664_MIT 6.828 JOS页管理的相关行为实现
热门文章
- 用Nginx+Lua(OpenResty)开发高性能Web应用
- go get安装第三方包的前提条件和步骤
- 从零开始的 React 组件开发之路 (一):表格篇
- 11.C++: cin、cin.get()、cin.getline()、getline()、gets()
- 腐烂国度2巨霸版计算机学知识,《腐烂国度2巨霸版》新手攻略 新手入门玩法技巧大全...
- ios 后台唤醒应用_手机应用后台不断唤醒,耗电大,荣耀手机只需简单几步就可以解决...
- 通过设计绿色数据中心寻求循环经济
- 5G是很快,但也别忘了网络安全问题!
- 数据中心液体冷却技术的“机架经济学”
- ML之FE:特征工程中常用的五大数据集划分方法(特殊类型数据分割,如时间序列数据分割法)讲解及其代码