Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口。

1、实现类

class gensim.models.Word2Vec(sentences=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, cbow_mean=1, hashfxn=<built-in function hash>, iter=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000)

2、方法:

(1)gensim.models.Word2Vec.similarity(ws1,ws2):计算两个单词之间的余弦相似度。

>>> trained_model.similarity('woman', 'man')
0.73723527 >>> trained_model.similarity('woman', 'woman')
1.0

(2)gensim.models.Word2Vec.n_similarity(ws1,ws2):计算两组单词之间的余弦相似度。

>>> trained_model.n_similarity(['sushi', 'shop'], ['japanese', 'restaurant'])
0.61540466561049689 >>> trained_model.n_similarity(['restaurant', 'japanese'], ['japanese', 'restaurant'])
1.0000000000000004 >>> trained_model.n_similarity(['sushi'], ['restaurant']) == trained_model.similarity('sushi', 'restaurant')
True

(3)gensim.models.Word2Vec.most_similar([positive,negative,topn,...]):找到前N个最相似的单词。

>>> trained_model.most_similar(positive=['woman', 'king'], negative=['man'])
[('queen', 0.50882536), ...]

(4)gensim.models.Word2Vec.similar_by_wordword [,topn,restrict_vocab]):找到前N个最相似的单词。

>>> trained_model.similar_by_word('graph')
[('user', 0.9999163150787354), ...]

(5)gensim.models.Word2Vec.similar_by_vector(vector [,topn,restrict_vocab]):通过向量找到前N个最相似的单词。

>>> trained_model.similar_by_vector([1,2])
[('survey', 0.9942699074745178), ...]

具体使用请阅读其博客内的它文章。

附、参数说明:

sentences: 可以是一个list,对于大语料集,建议使用BrownCorpus,Text8Corpus或lineSentence构建。
size: 是指特征向量的维度,默认为100。大的size需要更多的训练数据,但是效果会更好。推荐值为几十到几百。
alpha: 学习速率
window: 表示当前词与预测词在一个句子中的最大距离是多少。5表示每个词考虑前5个词与后5个词。
min_count: 可以对字典做截断。词频少于min_count次数的单词会被丢弃掉,默认值为5。
max_vocab_size: 设置词向量构建期间的RAM限制。如果所有独立单词个数超过这个,则就消除掉其中最不频繁的一个。每一千万个单词需要大约1GB的RAM。设置成None则没有限制。
sample: 高频词汇的随机降采样的配置阈值,默认为1e-3,范围是(0,1e-5)
seed: 用于随机数发生器。与初始化词向量有关。
workers: 参数控制训练的并行数。
sg: 用于设置训练算法,默认为0,对应CBOW算法;sg=1则采用skip-gram算法。
hs: 如果为1则会采用hierarchica·softmax技巧。如果设置为0(default),则negative sampling会被使用。
negative: 如果>0,则会采用negativesamping,用于设置多少个noise words。
cbow_mean: 如果为0,则采用上下文词向量的和,如果为1(default)则采用均值。只有使用CBOW的时候才起作用。
hashfxn: hash函数来初始化权重。默认使用python的hash函数。
iter: 迭代次数,默认为5。
trim_rule: 用于设置词汇表的整理规则,指定那些单词要留下,哪些要被删除。可以设置为None(min_count会被使用)或者一个接受()并返回RULE_DISCARD,utils。RULE_KEEP或者utils。RULE_DEFAULT的函数。
sorted_vocab: 如果为1(default),则在分配word index 的时候会先对单词基于频率降序排序。
batch_words: 每一批的传递给线程的单词的数量,默认为10000
min_alpha:  

NLP:Gensim库之word2vec的更多相关文章

  1. python Gensim库建立word2vec参数说明

    from gensim.models import word2vec model = word2vec.Word2Vec(sentences, size=80, window=10,workers=6 ...

  2. Python gensim库word2vec 基本用法

    ip install gensim安装好库后,即可导入使用: 1.训练模型定义 from gensim.models import Word2Vec   model = Word2Vec(senten ...

  3. 使用Gensim库对文本进行词袋、TF-IDF和n-gram方法向量化处理

    Gensim库简介 机器学习算法需要使用向量化后的数据进行预测,对于文本数据来说,因为算法执行的是关于矩形的数学运算,这意味着我们必须将字符串转换为向量.从数学的角度看,向量是具有大小和方向的几何对象 ...

  4. 利用Tensorflow进行自然语言处理(NLP)系列之一Word2Vec

    同步笔者CSDN博客(https://blog.csdn.net/qq_37608890/article/details/81513882). 一.概述 本文将要讨论NLP的一个重要话题:Word2V ...

  5. 【NLP】大白话讲解word2vec到底在做些什么

    转载自:http://blog.csdn.net/mylove0414/article/details/61616617 词向量 word2vec也叫word embeddings,中文名“词向量”, ...

  6. gensim加载word2vec训练结果(bin文件)并进行相似度实验

    # -*- coding: utf-8 -*- import gensim # 导入模型 model = gensim.models.KeyedVectors.load_word2vec_format ...

  7. 用gensim学习word2vec

    在word2vec原理篇中,我们对word2vec的两种模型CBOW和Skip-Gram,以及两种解法Hierarchical Softmax和Negative Sampling做了总结.这里我们就从 ...

  8. 6个顶级Python NLP库的比较!

    6个顶级Python NLP库的比较! http://blog.itpub.net/31509949/viewspace-2212320/ 自然语言处理(NLP)如今越来越流行,在深度学习开发的背景下 ...

  9. 利用python中的gensim模块训练和测试word2vec

    word2vec的基础知识介绍参考上一篇博客和列举的参考资料. 首先利用安装gensim模块,相关依赖如下,注意版本要一致: Python >= 2.7 (tested with version ...

随机推荐

  1. 通过JS页面唤醒app(安卓+ios)

    var browser = { versions: function () { var u = navigator.userAgent, app = navigator.appVersion; ret ...

  2. 01Spark的TopN问题

    和hadoop的目的一样,给你数据,然后取TopN.数据如下: 取出数据在排名前十的数据. 代码如下: package com.test.book; import java.util.ArrayLis ...

  3. 释放锁标记只有在Synchronized代码结束或者调用wait()。

    释放锁标记只有在Synchronized代码结束或者调用wait(). 注意锁标记是自己不会自动释放,必须有通知. 注意在程序中判定一个条件是否成立时要注意使用WHILE要比使用IF要严密. WHIL ...

  4. featureCounts 软件说明

    featuresCounts 软件用于定量,不仅可以支持gene的定量,也支持exon, gene bodies, genomic bins, chromsomal locations的定量: 官网 ...

  5. Win2008R2+Apache+PHP+Tomcat配置

    一.VC运行库 对于Apache和PHP,在Windows上运行的话都需要对应VC运行库的支持,即Apache.PHP和VC运行库这三者的版本必须相对应,这就会带来很多问题,比如下了较新的Apache ...

  6. 安装Oracle Database 11g 找不到文件“WFMLRSVCApp.ear” .

    在64位Windows 7 系统下安装Oracle Database 11g 的过程中,出现提示:“未找到文件D:\app\Administrator\product\11.2.0\dbhome_1\ ...

  7. Fiddler 会话过滤功能

    我们访问任何网址都会被 Fiddler 捕获,但有时我们只想捕获某个地址,可以使用 Fiddler 的会话过滤,如下我们只过滤出百度的域名 如下,切换到 Filters --- 把 Use Filte ...

  8. 【Zookeeper系列】Zookeeper简单介绍(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技 ...

  9. Python Pandas 时间序列双轴折线图

    时间序列pv-gmv双轴折线图 import numpy as np import pandas as pd import matplotlib.pyplot as plt n = 12 date_s ...

  10. arch 将 普通用户添加到 docker 组

    如果还没有 docker group 就添加一个: sudo groupadd docker 如果你想用你的使用者帳戶(非root帳戶)來使用Docker,把你的帳戶加到Docker的群組中 sudo ...