zoukankan      html  css  js  c++  java
  • python调用word2vec工具包安装和使用指南

    python调用word2vec工具包安装和使用指南

    word2vec python-toolkit installation and use tutorial

    本文选译自英文版,代码注释均摘自本文,建议先阅读skip-model相关知识再阅读本指南
    github仓库地址

    环境准备

    1. 安装gcc, 安装gcc坑比较多,这里建议使用codeblocks自带的gcc编译器,下载地址,这里注意,一定要点击codeblocks-mingw版本,安装完成后设置环境变量Path, INCLUDE, LIB
    2. 尝试安装:pip install word2vec, 观察报错情况,这里有几种解决方法,我遇到的报错是Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/ 解决方法是下载microsoft vc++下载指南, 还有其他可能的错误,链接如下:报错列表,题外话:安装python工具包时,先查阅pypi,可以避免一些错误

    模型的训练

    ​ 导入模型import word2vec

    1. 同义词合并,例如michael jacson和 michael-jackson

      word2vec.word2phrase('./txt_file/text8', './txt_file/text8-phrases', verbose=True)
      
    2. 训练skip-gram model, 得到word2vec词向量表示,size为向量的维数

      word2vec.word2vec('/Users/drodriguez/Downloads/text8-phrases', '/Users/drodriguez/Downloads/text8.bin', size=100, verbose=True)
      
    3. 输出text8.bin文件,包含二进制形式的词向量组

    4. 词向量的应用:单词聚类,产生text8-clusters.txt包含所有单词的聚类结果, 结果数目小于等于单词表数目

      word2vec.word2clusters('/Users/drodriguez/Downloads/text8', '/Users/drodriguez/Downloads/text8-clusters.txt', 100, verbose=True)
      

    model模型的使用

    1. 导入刚才产生的模型

      model = word2vec.load('/Users/drodriguez/Downloads/text8.bin')
      
    2. model的属性 model.vocab, 得到单词表的numpy.array格式,这里的单词不是词向量形式

    3. model.vectors是模型的矩阵,n为单词数目,m为词向量长度,vectors为n*m维

    4. 可以通过model['dog'].shape或者model['dog'][:10]来访问某一个单词的词向量信息

    5. 计算几个词向量两两之间的距离:model.distance("dog", "cat", "fish")

    6. 得到某一个单词的相似词(基于余弦相似度):indexes, metrics = model.similar("dog"),第一个返回值为相似向量的下标,第二个为相似度,都为tuple格式,得到相应的单词可使用model.vocab[indexes]

    7. 得到相似词的统计信息:(词,相似度)model.generate_response(indexes, metrics),还可以使用model.generate_response(indexes, metrics).tolist()来转换得到python数据类型

    8. 词向量直接加减运算:indexes, metrics = model.analogy(pos=['king', 'woman'], neg=['man']),返回值和generate_response method相同

    cluster模型的使用

    1. 导入cluster模型

      clusters = word2vec.load_clusters('/Users/drodriguez/Downloads/text8-clusters.txt')
      
    2. 得到某一组结果clusters.get_words_on_cluster(90),结果为这一组的所有单词

    cluster和model的结合使用

    1. 将cluster添加到word2vec model中

      model.clusters = clusters
      
    2. 进行类似的加减分析:indexes, metrics = model.analogy(pos=["paris", "germany"], neg=["france"])

    3. 得到结果后,model.generate_response(indexes, metrics).tolist(),得到(单词,相似程度,所属组号)

  • 相关阅读:
    在IIS中为SQL Server 2008配置报表服务
    安装VS2008 SP1
    SQL Server 2008正式发布了,示例数据库安装
    order by居然不能直接在union子句中使用
    如何让TabContainer居左
    公布下SQL Server 2008 RC0英文版下载地址
    BIT类型在SQL Server中的存储大小
    使用Windows照片库修改图片后记得清理原始图片副本
    老赵面试题参考答案(一)
    漂亮的系统后台UI 欣赏
  • 原文地址:https://www.cnblogs.com/dongxiong/p/11705840.html
Copyright © 2011-2022 走看看