使用gensim训练维基百科中文语料wordvec模型

由于最近在研究旅游评论的极性情感分析,想利用深度学习的方式来训练一个情感分类模型,苦于没有高质量的语料库,训练的模型准确率不高。于是决定自己基于维基百科语料训练一个wordvec2 模型,为下一步的研究工作做准备。

1、语料的下载

下载地址,下载大小大概有1.5G,里面的内容以为xml格式保存。

2、数据的处理

1、去除原始的数据是包含了各种xml标签,使用网上开源处理程序提取文本数据Wikipedia Extractor

#下载程序
git clone https://github.com/attardi/wikiextractor.git wikiextractor
#cd 到程序目录
cd wikiextractor
#安装程序
python setup.py install
#提取文章
python WikiExtractor.py -b 100M -o extracted /Users/yj/Desktop/学习/情感分析/wikiCorpus/wiki/zhwiki-latest-pages-articles.xml.bz2

说明 -b 后面参数为提取文件的大小,我这里设置为100M,不要设置太大不然后面的语料处理时间太长,-o extracted 后面为下载好的语料所在路径,注意替换。
我的电脑跑了一个多小时。


num.png

跑完后就能看到处理好的语料

wikicorpus.png

2、将繁体转为简体
使用开源工具opencc将繁体抓我简体,安装命令

brew install opencc

使用opencc进行转换,转换命令如下

opencc -i wiki_00 -o zh_wiki_00 -c t2s.json

-i后面的参数为原始语料路径,-o后面的参数为输出路径
通过转换后格式如下

<doc id="5323477" url="https://zh.wikipedia.org/wiki?curid=5323477" title="海洋学">
海洋学  海洋学()是研究海洋的自然现象、性质及其变化规律,以及开发****
</doc>

我们需要提取<doc></doc>之间的内容
3、去除一些特殊符号,如(){}

                line = line.replace('(','')
                line = line.replace(')','')
                line = line.replace('{','')
                line = line.replace('}','')
                line = line.replace('[','')
                line = line.replace(']','')
                line = line.replace('《','')
                line = line.replace('》','')
                line = line.replace('「','')
                line = line.replace('」','')
                line = line.replace('『','')
                line = line.replace('』','')
                line = line.replace('“','')
                line = line.replace('”','')
                line = line.replace('(','')
                line = line.replace(')','')

3、使用jieba中文切词工具进行切词

经过处理后的数据如下面的格式

海洋学  海洋学()是研究海洋的自然现象、性质及其变化规律,****

第一个词为维基百科的词条,后面的词为该词条的解释。为了提高对词条切词的准确性,我们对整个词条一空格为分隔符,提取词条如上面的海洋学,使用jiaba动态添加词典的方法jieba.add_word(海洋学),然后对后面的解释进行切词,切词后写入文件。格式如下:

文学 , 在 最 广泛 的 意义 上 , 是 任何 单一 的 书面 作品***

每个词语已空格为进行连接,对998616条维基百科进行切词,并写入文件并作为后面训练word2vec的语料。

4、训练word2vec模型

使用gensim训练刚刚我们处理好的语料,并保存。

from gensim.models.word2vec import Word2Vec,LineSentence
import multiprocessing
 print('开始训练')
    model = Word2Vec(LineSentence('./wikiCorpus_02.txt'),size=300,workers=multiprocessing.cpu_count())
    print('结束')
    model.init_sims(replace=True)
    model.save('./wiki_corpus_02_predict.model')

5、测试训练好的模型

寻找和宝马最相近的十个词语

model =  Word2Vec.load('./wiki_corpus_02_predict.model')

    # 第一个词的向量表示
    # print(model.wv.syn0[0])
    # 词的矩阵
    # print(model.wv.index2word[0])

    # 1.
    print(model.most_similar('宝马'))

得到结果如下:

[('欧宝', 0.7233036756515503), ('捷豹', 0.7231091260910034), ('BMW', 0.7167201638221741), ('雪铁龙', 0.7163304090499878), ('标致', 0.711229681968689), ('沃尔沃', 0.7081398367881775), ('奥迪', 0.7074229717254639), ('保时捷', 0.697162926197052), ('超级跑车', 0.6864667534828186), ('大众汽车', 0.6775105595588684)]
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 193,968评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,682评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,254评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,074评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,964评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,055评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,484评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,170评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,433评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,512评论 2 308
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,296评论 1 325
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,184评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,545评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,150评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,437评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,630评论 2 335

推荐阅读更多精彩内容

  • 常用概念: 自然语言处理(NLP) 数据挖掘 推荐算法 用户画像 知识图谱 信息检索 文本分类 常用技术: 词级别...
    御风之星阅读 9,113评论 1 25
  • 学习内容: 《用户故事与敏捷方法》第9章(发布计划)、第10章(迭代计划)、第11章(测量并监控速率)。 重点摘要...
    Lynn_XL2017阅读 222评论 0 0
  • 开头派的父亲的话点明了这部影片的主旨——信仰。 时隔4年又一次看这部影片,还记得是我大一的时候看的,那时的我感叹这...
    秋秋的第十九号房间阅读 500评论 0 2