欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Word2Vec中文语料实战

发布时间:2025/3/21 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Word2Vec中文语料实战 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录(?)[-]

  • 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”,竟然是这样的,难道是火星文?瞬间满脸黑线,一脸懵逼。弱弱地问一句,有人能看懂吗,膜拜一下。


            很显然,这是由编解码不一致引起的问题,即写文件时的编码类型和读文件时的解码类型不同。但本人没有安装可以自定义解码方式的文本编辑器,所以只好小米加步枪,直接上代码:

    [python] view plaincopy
  • #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 模型训练

    [python] view plaincopy
  • #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中文语料实战的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。