2019独角兽企业重金招聘Python工程师标准>>>

在搜狗实验室里下载相关语料,我下载的是全网新闻: http://www.sogou.com/labs/resource/ca.php

下下来的语料,看到有1.54G的大小: 文件大小

其中里面内容的格式为:

文本格式

刚下下来的语料是用gbk编码的,在mac或linux上都会呈乱码形式,需要将之转换为utf-8编码。而且我们只需要<content>里面的内容。因此先转换编码和获取content内容。这里简单的方法可以通过shell的命令来完成:

cat news_tensite_xml.dat | iconv -f gbk -t utf-8 -c | grep "<content>" > corpus.txt

转换完后的数据如下: 数据语料

这时候全是content中的内容了,虽然还有<content>标签在,不过这个可以在程序中去掉。

下面一个操作就是进行分词,因为是用Python来进行的,使用jieba分词来进行分词操作,生成分词文件corpus_seg.txt:

python word_segment.py corpus.txt corpus_seg.txt

-- coding: utf-8 --

word_segment.py用于语料分词

import logging import os.path import sys import re import jieba

reload(sys) sys.setdefaultencoding( "utf-8" )

先用正则将<content>和</content>去掉

def reTest(content): reContent = re.sub('<content>|</content>','',content) return reContent

if name == 'main': program = os.path.basename(sys.argv[0]) logger = logging.getLogger(program) logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s') logging.root.setLevel(level=logging.INFO) logger.info("running %s" % ' '.join(sys.argv))

check and process input arguments

if len(sys.argv) < 3: print globals()['doc'] % locals() sys.exit(1) inp, outp = sys.argv[1:3] space = " " i = 0

finput = open(inp) foutput = open(outp,'w') for line in finput: line_seg = jieba.cut(reTest(line)) output.write(space.join(line_seg)) i = i + 1 if (i % 1000 == 0): logger.info("Saved " + str(i) + " articles_seg")

finput.close() foutput.close() logger.info("Finished Saved " + str(i) + " articles")

跑起来如下: 运行结果

分完词的样子: 分词完毕,<content></content>也去掉了

接着我们可以用gensim中的word2vec工具训练:

python train_word2vec_model.py corpus_seg.txt corpus.model corpus.vector

-- coding: utf-8 --

train_word2vec_model.py用于训练模型

import logging import os.path import sys import multiprocessing

from gensim.models import Word2Vec from gensim.models.word2vec import LineSentence

if name=='main': program = os.path.basename(sys.argv[0]) logger = logging.getLogger(program)

logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s') logging.root.setLavel(level=logging.INFO) logging.info("running %s" % ' '.join(sys.argv))

if len(sys.argv) < 4: print global()['doc'] % locals() sys.exit(1)

inp,outp,outp2 = sys.argv[1:4]

model = Word2Vec(LineSentence(inp),size=400,window=5,min_count=5,workers=multiprocessing.cup_count())

model.save(outp) model.save_word2vec_format(outp2,binary=false)

运行信息如下: 正在进行中...

完毕后,即训练出了模型,这是可以测试测试模型的效果了,进入ipython:

In [1]: import gensim

In [2]: model = gensim.models.Word2Vec.load('corpus.model')

In [3]: result = model.most_similar(u'警察')

In [4]: for word in result: ...: print word[0],word[1] ...:

警员 0.668260276318 民警 0.566563367844 军警 0.560631096363 便衣警察 0.560409486294 保安 0.559458613396 交警 0.553144752979 协警 0.55225610733 公安人员 0.536189615726 警方 0.535990476608 警务人员 0.5125041008

In [5]: result = model.most_similar(u'妹纸')

In [6]: for word in result: ...: print word[0],word[1] ...:

妹子 0.588376522064 噢 0.559590697289 帅哥 0.550627946854 美眉 0.549147129059 萝莉 0.534497618675 尤物 0.525674104691 小萝莉 0.517127275467 小女生 0.508114397526 妖娆 0.506700277328 美女 0.503593623638

In [7]: result = model.most_similar(u'御姐')

In [8]: for word in result: ...: print word[0],word[1] ...:

冷艳 0.705523848534 萝莉 0.701750993729 侠女 0.645917892456 玉女 0.643954575062 百变 0.634887218475 小萝莉 0.62935769558 丑女 0.613193750381 妖娆 0.61169230938 清纯 0.608936905861 风骚 0.602776527405

In [9]: result = model.most_similar(u'马云')

In [10]: for word in result: ...: print word[0],word[1] ...:

阿里巴巴 0.557115197182 马化腾 0.551600694656 雷军 0.495278447866 李彦宏 0.476020514965 柳传志 0.475475847721 郭台铭 0.462114006281 宋卫平 0.453877806664 阎焱 0.452617198229 周鸿祎 0.44635617733 俞敏洪 0.43476909399

In [11]: model.similarity(u'男人',u'女人') Out[11]: 0.90834058044551369

In [12]: print model.doesnt_match(u"早餐 晚餐 午餐 计算机".split()) 计算机

In [13]: model.n_similarity([u'御姐',u'萝莉'],[u'计算机',u'编程']) Out[13]: -0.054454374940044653

通过测试,看起来效果还蛮不错的。

作者:七号萝卜 链接:https://www.jianshu.com/p/6d542ff65b1e 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://my.oschina.net/u/3726752/blog/1612784

转()word2vec训练搜狗新闻语料相关推荐

  1. word2vec训练维基中文语料

    前期准备 1.语料: 维基中文语料 (下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.b ...

  2. word2vec 训练中文wiki语料

    前面一篇写了 用gensim 训练word2vec 和glove各自的语料训练方式, 现在给出用word2vec来训练wiki中文语料的code 首先从wiki上下载wiki中文语料 下载地址是htt ...

  3. 【NLP】3000篇搜狐新闻语料数据预处理器的python实现

    3000篇搜狐新闻语料数据预处理器的python实现 白宁超 2017年5月5日17:20:04 摘要: 关于自然语言处理模型训练亦或是数据挖掘.文本处理等等,均离不开数据清洗,数据预处理的工作.这里 ...

  4. Tensorflow和Gensim里word2vec训练

    Tensorflow里word2vec训练 # -*- coding:utf-8 -*- import tensorflow as tf import numpy as np import math ...

  5. Windows下基于python3使用word2vec训练中文维基百科语料资料汇总

    Windows下基于python3使用word2vec训练中文维基百科语料(一):https://www.cnblogs.com/gaofighting/p/9055674.html Windows下 ...

  6. word2vec训练中文词向量

    词向量作为文本的基本结构--词的模型.良好的词向量可以达到语义相近的词在词向量空间里聚集在一起,这对后续的文本分类,文本聚类等等操作提供了便利,这里简单介绍词向量的训练,主要是记录学习模型和词向量的保 ...

  7. word2vec训练中文模型—wiki百科中文库

    ps:整理电脑文档,将之前的做的word2vec训练的中文模型实验记录做下poko,欢迎交流学习. 1.准备数据与预处理 注意事项:请将内存最好选择8g及以上的电脑,否则可能卡顿,并在开始时候安装好p ...

  8. 自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧

    自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧 NLP中进行词义消歧的一个非常方便且简单的方法就是训练词向量,通过词向量计算余弦值,来推断某个词在句子中的含义.python中的 ...

  9. 基于word2vec的虚假新闻检测系统

    文章目录 前言 一,数据处理 二,模型训练 三,调参 四,结果预测 前言 当时也没有发现什么问题,后面老师给我们说了这个检测的目的性不明确,就像有的新闻并不是虚假的,但是文辞过于偏激就很容易判断错误, ...

  10. NLP入门竞赛,搜狗新闻文本分类!拿几十万奖金!

    该数据集来自若干新闻站点2012年6月-7月期间国内,国际,体育,社会,娱乐等18个频道的新闻数据. 根据新闻正文内容分析新闻的类别数据集官网链接: http://www.sogou.com/labs ...

最新文章

  1. linux centos7 设置 grub2
  2. 刀模图是什么意思_“吃鸡”光子公布神秘图,海岛图上有44个坐标,暗示信号值取消?...
  3. DOM4j读取XML文件(SAXReader)
  4. docker 启动mysql root用户_Docker-Compose搭建Wordpress博客系统
  5. Druid Spring JDBC Servlet 实现登录功能
  6. 如果你跟夕小瑶恋爱了...(上)
  7. linux操作系统桌面应用与管理第2版,linux操作系统桌面应用与管理(62页)-原创力文档...
  8. 7.PHP核心技术与最佳实践 --- PHP 扩展开发
  9. 世界500强面试题(经典)
  10. 清华大学朱小燕教授做客雷锋网沙龙,分享 NLP 和人工智能的那些事儿| AAAI 2017...
  11. 2021 大学生电子设计竞赛 G题 无人机 识别部分
  12. 水滴的“创益矩阵”:“万物”皆可连接公益
  13. 用狼的处世哲学做SOHO(一)
  14. 记录一下之前写的文章--测试之不可承受之轻
  15. 软件测试工程师自我介绍范文_软件测试面试自我介绍
  16. 数字证书及其简单数字签名的实现(java实现)
  17. python读取oracle数据库中文乱码_PL/SQL连接Oracle数据库,中文乱码,显示问号
  18. Python哪些基础知识必学?
  19. [php-代码审计]百家cms4.14
  20. 我的世界红石音乐高级教程 python辅助制作工具

热门文章

  1. 数据分析岗位求职经验分享
  2. Google离去,百度就能制衡?
  3. 3分钟阿里云商标智能注册申请及申请流程图文详解
  4. Python数据分析-二手车数据用于机器学习二手车价格预测
  5. java 时区 mysql 时区:时区在程序和数据库中的作用及其机制
  6. 这些 Google 高级搜索技巧,你都知道么?
  7. 基于Python的指数基金量化投资 - 通过指数估值榜进行指数投资
  8. kubernetes 创建pod /merged/dev/shm: invalid argument
  9. 贪心算法之猴子吃香蕉(Monkeys and Bananas)
  10. Far away from home