1. 区分两种写法
- Will always work as long as the namespace is not altered
from gensim.models.word2vec import Word2Vec
- Will work as long as models.init keep it available
from gensim.models import Word2Vec
2. nlp中的词向量对比:
word2vec/glove/fastText/elmo/GPT/bert
3. 笔记
wordevec
图上这句话让我理解词嵌入很有帮助:
这个嵌入矩阵包含训练集中每个词的一个向量。
word2vec模型根据数据集中的每个句子进行训练,并且以一个固定窗口在句子上进行滑动,根据句子的上下文来预测固定窗口中间那个词的向量,然后根据一个损失函数和优化方法,来对这个模型进行训练。
4. word2vec训练中文词向量
5. 独热编码 将单词映射到数字向量https://blog.csdn.net/qq_23944915/article/details/99884177
5. word2vec参数详解:
在gensim中,word2vec相关的API都在gensim.models.word2vec中,与算法相关的参数在 gensim.models.word2vec.Word2Vec中。其具体参数说明如下:
- sentences : 可迭代的对象, 可选的、需要分析的语料。
可迭代的"sentences" 可以是tokens列表集中的一个简单列表,但是对于较大的语料库, - corpus_file : 字符串类型, 可选的
可以使用此参数代替“sentences”从而提高性能。仅需传递“sentences”或“ corpus_file”两个变量中的一个即可(或不传递任何一个,在这种情况下,模型将保持未初始化状态) - size : 整型, 可选
词向量的维数。 - window : 整型, 可选
句子中当前词和预测词之间的最大距离。window越大,则与中心词较远的词也会产生上下文关系。 - min_count : 整型, 可选
最小词频,忽略所有总频率低于此频率的单词。 - workers : 整型, 可选
训练模型所采用的工作线程数量(=使用多核机器进行训练将更快)。 - sg : {0, 1}, 可选
训练模型: 1表示skip-gram; 0表示CBOW. - hs : {0, 1}, 可选
如果为1, 将用hierarchical softmax 训练模型.
如果为0, 并且negative不为0,则将采样负采样训练模型。 - negative : 整型, 可选
如果大于0, 将使用负采样, negative的绝对值决定了"noise words"的个数
应该被设置 (一般情况下取值范围为5-20).
如果设置为0, no negative sampling is used. - ns_exponent : float, optional
"exponent"用于构造负采样分布。
值1.0表示与频率成正比,值0.0表示对所有单词均匀采样,而负值对低频词的采样比对高频词的采样多。- 最初的Word2Vec文件选择了流行的默认值0.75。
- 最近,Caselleles-Dupré,Lesaint和Royo-Letelier在https://arxiv.org/abs/1804.04212中建议,其他值对于"推荐类应用程序"可能会表现更好
- cbow_mean : {0, 1}, optional
如果为0, 在cbow做投影的时候则使用上下文词向量的总和. 如果为1, 则使用平均值, 仅在使用cbow时适用. - alpha : float, optional
在随机梯度下降法中的初始学习率(初始步长). - min_alpha : float, optional
最小的迭代步长值。随着训练的进行,学习率将线性下降到"min_alpha". - seed : int, optional
随机数生成器的种子。
每个单词的初始向量都以单词的级联哈希值+str(seed)作为种子。
请注意,如果需要运行结果完全重现,还必须将模型限制为单个工作线程(“workers = 1”),以消除OS线程调度中的排序抖动。
(在Python3中,解释程序启动之间的可重复性还需要使用PYTHONHASHSEED环境变量来控制哈希随机化)。 - max_vocab_size : int, optional
最大词汇数量,如果设置为None表示不限制
在词汇构造过程中限制RAM;如果许多的独特词,则可以修剪不常用的词。每1000万个字类型需要大约1GB的RAM。 - max_final_vocab : int, optional
通过自动选择一个匹配的min_count将词汇表限制为目标词汇表大小。
如果指定的min_count大于计算的min_count,则将使用指定的min_count。如果设置为None表示不限制。 - sample : float, optional
配置高频词被随机下采样的阈值,比较可靠的范围是(0,1e-5)。 - hashfxn : function, optional
哈希函数用于随机初始化权重,以提高训练的可重复性。 - iter : int, optional
语料库上的迭代次数 - trim_rule : function, optional
词汇修剪规则,指定是否应保留某些单词,对其进行修剪或使用默认值处理(如果单词数<min_count则舍弃)。
可以设置为None(将使用min_count,可以查看〜gensim.utils .keep_vocab_item),
也可以是接受参数(word,count,min_count)并返回以下任意一种的可调用对象:
attr:gensim.utils.RULE_DISCARD,
attr:gensim.utils.RULE_KEEP
attr:gensim.utils.RULE_DEFAULT。
如果给出规则,则该规则仅用于在build_vocab()期间修剪词汇,而不会存储为模型的一部分。
输入参数具有以下类型:
*word(str)-我们正在检查的单词
*count(int)-语料库中单词的频率计数
*min_count(int)-最小计数阈值。 - sorted_vocab:{0,1},可选
如果为1,则在分配单词索引之前,按降序对词汇表进行排序。
参见:〜gensim.models.word2vec.Word2VecVocab.sort_vocab()方法 - batch_words:int,可选
传递给工作线程(以及cython例程)的示例批处理的目标大小(以字为单位)。
(如果单个文本的长度超过10000个单词,则将传递较大的批处理,但是标准cython代码将截断到该最大值)。 - compute_loss:布尔值,可选
如果为True,则计算并存储的损失值可以通过〜gensim.models.word2vec.Word2Vec.get_latest_training_loss方法检索查看。 - callbacks : iterable of :class:
~gensim.models.callbacks.CallbackAny2Vec, optional
在训练过程中的特定阶段执行的回调序列。
例如
现在,训练一个gensim.models.word2vec.Word2Vec模型
import word2vec
from gensim.models.word2vec import LineSentence
sentences = LineSentence('nodup_data222.csv')
model = word2vec.word2vec(sentences,size=100,window=5,min_count = 5,output='new_vecoter')







网友评论