使用word2vec训练wiki中文语料

实验环境:Ubuntu + eclipse + python3.5


首先(1)下载最新中文wiki语料库:

wget https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2


(2)由于下载之后,语料库上的编码格式会有不同,因此需要进行处理一下:借鉴了这篇文章。

http://www.crifan.com/summary_python_string_encoding_decoding_difference_and_comparation_python_2_x_str_unicode_vs_python_3_x_bytes_str/

这样处理后打开wiki.cn.text看有大部分的繁体字和少量英文,所以还需进一步处理

(3) 然后将繁体改为简体,本次实验采用了opencc工具。安装:

sudo apt-get install opencc

安装完后执行opencc -i wiki.cn.text -o wiki.cns.text -czht2zhs.ini即实现了繁体转简体并保存在wiki.cns.text中。

(4)接下来对文本分词处理,这里使用的是jieba分词,安装用命令sudo pip3 install jieba

然后运行:

python3 separate_words.py wiki.cns.textwiki.cns.text.sep

(5)接下来去除文本中的一些英文和其他非中文。对remove_words.py做类似的修改。其实为了方便该代码和运行,可以直接使用eclipse软件,使用Run as ->Run configurations , 然后再(x)=Arguments一栏里输入参数,也可以运行。

运行后打开发现还是有许多多余的空格,虽然对后面实验没影响,但是我觉得有必要把多余空格去掉,于是,改写原正则表达式 为:'[\u4e00-\u9fa5]+\s+?|\n'意即匹配所有汉字及后面的一个空格(非贪心匹配)以及所有换行符’\n。得到的分词结果大致如下:



其次,进入正式的训练,训练的结果如下:



最后,测试模型:

使用ipython notebook

Sudo pip3 install ipython

Sudo pip3 isntall notebook

终端输入Ipython notebook打开notebook。新建notebook并测试,结果如下:




可以看到效果还是不错的。当然最经典的国王-男人=女王-女人肯定也在情理之中。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
训练中文词向量,可以使用word2vec模型进行训练,具体步骤如下: 1. 准备语料库:从中文维基百科、新闻语料库、微博等网站上下载语料,可以使用jieba等中文分词工具进行分词。得到的文本应该去除停用词、标点符号等干扰项。 2. 安装Python模块:gensim是Python中的一个自然语言处理库,它包含了Word2Vec模型的实现,安装gensim模块即可进行中文词向量训练。 3. 读入语料:利用gensim中的LineSentence读入语料库。 4. 训练模型:创建Word2Vec对象,配置参数,使用模型进行训练。 5. 保存模型:将训练好的模型保存起来,方便后续使用。 具体代码如下: ```python from gensim.models import Word2Vec from gensim.models.word2vec import LineSentence # 读入语料库 sentences = LineSentence('corpus.txt') # 配置参数,训练模型 model = Word2Vec(sentences, size=300, window=5, min_count=5, workers=4) # 保存模型 model.save('word2vec.model') ``` 在训练模型时,需要对参数进行配置,包括: - size:词向量的维度,默认值是100,但对于中文词向量,建议增加到300或更高。 - window:词向量训练时的上下文窗口大小,默认值是5,可以根据具体情况进行调整。 - min_count:指定词频阈值,小于该值的单词将被忽略,默认值为5。 - workers:训练模型时使用的线程数。 通过以上步骤,就可以训练中文词向量,用于自然语言处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值