美文网首页论文写作
word2vec的安装与使用(linux python版本)

word2vec的安装与使用(linux python版本)

作者: 空白_J | 来源:发表于2017-11-20 11:25 被阅读1003次

    word2vec介绍

    word2vec是一个将单词转换成向量形式的工具。可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度。
    除了google自己的word2vec工具,感兴趣的牛人们也相继编写了各自不同的版本,下面列举一下目前出现的版本以及相对应的地址,供大家选择。如下表:
    版本 地址:
    C | http://word2vec.googlecode.com/svn/trunk/ |
    python | http://radimrehurek.com/gensim/ |
    Java | https://github.com/ansjsun/Word2VEC_java |
    C++ | https://github.com/jdeng/word2vec |

    word2vec的安装

    本文介绍Ubuntu linux环境下安装python版本的word2vec。
    1.先安装cython:

    sudo pip install Cython

    1. 安装 word2vec: sudo pip install word2vec

    sudo pip install word2vec

    word2vec的使用

    准备python环境,安装pycharm

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
    1官网选择Free,open-source的pycharm的linux版本的安装包下载。
    2.解压

    tar zxvf pycharm-community-2017.2.4.tar.gz


    3.打开bin文件,打开终端,输入./pycharm.sh,回车之后就可以运行该软件了,之后软件会自动在启动器添加快捷方式。
    4.打开pycharm,创建project->word2vec



    5.新建test.py文件



    接着就可以在test.py中编写测试word2vec的相关代码了。

    准备语料库

    http://mattmahoney.net/dc/text8.zip 下载text8.zip文件,并解压到/usr/bin/python2.7/word2vec下面(text8是一个将近100M的文本文件)


    语料库text8内容如下:

    使用word2vec训练词向量

    1.先导入word2vec包

    import word2vec
    word2vec.word2vec('text8','text8.txt',size=100,binary=0,verbose=True)

    训练得到的词向量为:


    word2vec(train, output, size=100, window=5, sample='1e-3', hs=0,
    negative=5, threads=12, iter_=5, min_count=5, alpha=0.025,
    debug=2, binary=1, cbow=1, save_vocab=None, read_vocab=None,
    verbose=False)
    word2vec的常用参数介绍:
    train:要训练的文件;
    output:输出的词向量文件;
    size:词向量维度大小;
    window=5:训练的窗口,训练的窗口为5就是考虑一个词的前5个词和后5个词(实际代码中还有一个随机选窗口的过程,窗口大小<=5) ;
    sample:采样的阈值,如果一个词语在训练样本中出现的频率越大,那么就会被采样;
    hs:如果为1则会采用hierarchica·softmax技巧。如果设置为0,则negative sampling会被使用;
    negative:如果>0,则会采用negativesamp·ing,用于设置多少个noise words;
    min_count:可以对字典做截断. 词频少于min_count次数的单词会被丢弃掉, 默认值为5;
    binary:表示输出的结果文件是否采用二进制存储,0表示不使用(即普通的文本存储,可以打开查看),1表示使用,即vectors.bin的存储类型;
    cbow:是否使用cbow模型,0表示使用skip-gram模型,1表示使用cbow模型,默认情况下是skip-gram模型,cbow模型快一些,skip-gram模型效果好一些 ;
    save_vocab:词汇表保存到文件;
    read_vocab:词汇表从文件中读取,不从训练数据中读取。

    2.下面介绍一些有关word2vec的使用

    word2vec.word2vec('text8','text8.bin',size=100,verbose=True)

    通过训练预料生成bin二进制模型,模型生成后下次执行可以不用再调用该语句,直接用下面的方法加载即可。

    model = word2vec.load("text8.bin")

    查看词向量的大小

    model.vectors.shape


    查看词向量内容

    model.vectors


    查看'dog'的词向量内容

    model['dog'].shape
    model['dog'][:10]


    查找与词'socks'余弦相似度大的词

    indexes, metrics = model.cosine('socks')
    model.generate_response(indexes, metrics)

    其他的使用可参考:
    http://nbviewer.jupyter.org/github/danielfrg/word2vec/blob/master/examples/word2vec.ipynb

    相关文章

      网友评论

        本文标题:word2vec的安装与使用(linux python版本)

        本文链接:https://www.haomeiwen.com/subject/sztvvxtx.html