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(),得到(单词,相似程度,所属组号)

    python调用word2vec工具包安装和使用指南word2vec pythin-toolkit installation and use tutorial本文选译自英文版,代码注释均摘自本文,建议先阅读skip-model相关知识再阅读本指南github仓库地址环境准备安装gcc, 安装gcc坑比较多,这里建议使用codeblocks自带的gcc编译器,下载地址,这里注意,一定要点...
    这次的分享主要是对Word2Vec模型的两篇英文文档的翻译、理解和整合,这两篇英文文档都是介绍Word2Vec中的Skip-Gram模型。下一篇专栏文章将会用TensorFlow实现基础版Word2Vec的skip-gram模型,所以本篇文章先做一个理论铺垫。 原文英文文档请参考链接: - Word2Vec Tutorial - The Skip-G...
    一开始看到word2vec环境的安装还挺复杂的,安了半天Cygwin也没太搞懂。后来突然发现,我为什么要去安c语言版本的呢,我应该去用python版本的,然后就发现了gensim,安装个gensim的包就可以用word2vec了,不过gensim只实现了word2vec里面的skip-gram模型。若要用到其他模型,就需要去研究其他语言的word2vec了。 二、语料准备 class gensim.models.word2vec.Word2Vec(sentences=None, corpus_file=None, size=100, alpha=0.025, window=5, min_count=5, max_vocab_size=None, sample=0.001, seed=1, workers=3, min_alpha=0.0001, sg=0, hs=0, negative=5, ns_expo... 经过俩天的数据处理,现在勉强得到了1k+条事故描述-事故原因这种格式的数据,剩下的未处理的数据同组的小伙伴们还在加班加点的做,为了不浪费时间,今天就先搭个壳子出来,看看初步效果。 二、数据预处理 和之前俩篇文章一样,采取去停用词、分词、句子向量化等操作。 import numpy as n...
    Word2Vec是一种自然语言处理的算法,用于将文本数据转换为向量表示。Python语言中,可通过gensim中的Word2Vec模块来实现该算法。 情感分析是一种自然语言处理的技术,其目的是从文本中识别出内容的情感倾向。一般而言,情感分析通常被应用于社交媒体、评论系统、新闻报道等场合,并以文本分类或情感极性计算的形式呈现。 在Python中,可以将Word2Vec算法与情感分析技术结合起来,从而识别出文本中存在的情感类别。具体而言,Word2Vec算法可以按照词汇的相似性将文本分组,进而识别出文本中某些关键词出现的频率。通过对这些关键词进行情感分析,就能够得出文本的情感倾向,并且将这些文本划分到积极、消极等不同的情感类别中。 使用python进行情感分析解析时,需要注意几个关键组件,包括数据预处理、文本向量化、情感分析模型等。在数据预处理阶段,需要对文本数据进行清洗、分词等处理,以适应算法的分析要求。在文本向量化阶段,需要通过Word2Vec模块将文本数据转换成向量表示,便于计算机处理。在情感分析模型的运用中,需要结合具体的算法模型,以实现精准的文本分类和情感分类。 总之,python word2vector_python使用word2vec进行情感分析解析,是一种先进而有效的自然语言处理技术,可为社交媒体、企业品牌管理、舆情监测等领域提供有力支持。