当前位置:
首页 >
[Pytorch系列-57]:循环神经网络 - gensim.models.word2vec参数详解与构建词向量模型
发布时间:2023/12/16
40
豆豆
生活随笔
收集整理的这篇文章主要介绍了
[Pytorch系列-57]:循环神经网络 - gensim.models.word2vec参数详解与构建词向量模型
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121723021
目录
第1章 gensim概述
第2章 gensim.models.word2vec参数详解
第3章 使用gensim.models.word2vec构建向量模型
3.0 前提
3.1 语料库
3.2 创建并训练模型
3.3 对相识度单词进行预测
第1章 gensim概述
Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。
Word2Vec模型是Gensi库的词向量模型。
第2章 gensim.models.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_exponent=0.75, cbow_mean=1, hashfxn=<built-in function hash>, iter=5, null_word=0, trim_rule=None,sorted_vocab=1, batch_words=10000, compute_loss=False, callbacks=(), max_final_vocab=None)参数说明:
- sentences (iterable of iterables, optional) – 供训练的句子,可以使用简单的列表,但是对于大语料库,建议直接从磁盘/网络流迭代传输句子。参阅word2vec模块中的BrownCorpus,Text8Corpus或LineSentence。
- corpus_file (str, optional) – LineSentence格式的语料库文件路径。
- vector_size (int, optional) – 词向量的维度。通常为300.
- window (int, optional) – 一个句子中当前单词和被预测单词的最大距离。滑动窗口的大小。
- min_count (int, optional) – 忽略词频小于此值的单词。该参数可以过滤掉,偶尔出现的单词。
- workers (int, optional) – 训练模型时使用的线程数。在实例化模型时,自动完成模型的训练。
- sg ({0, 1}, optional) – 模型的训练算法: 1: skip-gram; 0: CBOW.
- hs ({0, 1}, optional) – 1: 采用hierarchical softmax训练模型; 0: 使用负采样。
- negative (int, optional) – > 0: 指定使用负采样的数目,设置多个负采样(通常在5-20之间)。
- ns_exponent (float, optional) – 负采样分布指数。1.0样本值与频率成正比,0.0样本所有单词均等,负值更多地采样低频词。
- cbow_mean ({0, 1}, optional) – 0: 使用上下文单词向量的总和; 1: 使用均值,适用于使用CBOW。
- alpha (float, optional) – 初始学习率。在实例化模型时,自动完成模型的训练。
- min_alpha (float, optional) – 最小学习率,随着训练的进行,学习率线性下降到min_alpha,
- seed (int, optional) – 随机数发生器种子。
- max_vocab_size (int, optional) – 词汇构建期间RAM的限制; 如果有更多的独特单词,则修剪不常见的单词。 每1000万个类型的字需要大约1GB的RAM。支持的最大单词数目。
- max_final_vocab (int, optional) – 自动选择匹配的min_count将词汇限制为目标词汇大小。
- sample (float, optional) – 高频词随机下采样的配置阈值,范围是(0,1e-5)。
- hashfxn (function, optional) – 哈希函数用于随机初始化权重,以提高训练的可重复性。
- iter (int, optional) – 自动模型训练时的迭代次数。
- trim_rule (function, optional) – 词汇修剪规则,指定某些词语是否应保留在词汇表中,修剪掉或使用默认值处理。
- sorted_vocab ({0, 1}, optional) – 如果为1,则在分配单词索引前按降序对词汇表进行排序。
- batch_words (int, optional) – 每一个batch传递给线程单词的数量。
- compute_loss (bool, optional) – 如果为True,则计算并存储可使用get_latest_training_loss()检索的损失值。
- callbacks (iterable of CallbackAny2Vec, optional) – 在训练中特定阶段执行回调序列。
第3章 使用gensim.models.word2vec构建向量模型
3.0 前提
import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optimfrom gensim.models import Word2Vecimport matplotlib.pyplot as plt3.1 语料库
raw_text = """We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.""".lower().split()3.2 创建并训练模型
model = Word2Vec([raw_text], window=5, min_count=0, vector_size=100)3.3 对相识度单词进行预测
(1)获取某个单词的词向量
model.wv.get_vector("we") array([-8.2371626e-03, 9.3018124e-03, -2.0378912e-04, -1.9672457e-03,4.6009533e-03, -4.1048718e-03, 2.7483397e-03, 6.9529405e-03,6.0647726e-03, -7.5193373e-03, 9.3864016e-03, 4.6757250e-03,3.9595906e-03, -6.2362696e-03, 8.4568849e-03, -2.1459276e-03,8.8368189e-03, -5.3625666e-03, -8.1349388e-03, 6.8205344e-03,1.6731464e-03, -2.1995250e-03, 9.5159588e-03, 9.4903978e-03,-9.7708460e-03, 2.5059620e-03, 6.1574611e-03, 3.8693496e-03,2.0194747e-03, 4.3256412e-04, 6.8311812e-04, -3.8289619e-03,-7.1381810e-03, -2.1045576e-03, 3.9239591e-03, 8.8271257e-03,9.2626950e-03, -5.9751221e-03, -9.4050728e-03, 9.7564282e-03,3.4208333e-03, 5.1657772e-03, 6.2864725e-03, -2.8053685e-03,7.3280791e-03, 2.8254921e-03, 2.8643315e-03, -2.3794267e-03,-3.1234692e-03, -2.3632357e-03, 4.2710570e-03, 8.2289553e-05,-9.5984712e-03, -9.6682198e-03, -6.1445762e-03, -1.2618728e-04,1.9983812e-03, 9.4273640e-03, 5.5828230e-03, -4.2890343e-03,2.7802799e-04, 4.9645198e-03, 7.7032396e-03, -1.1378536e-03,4.3263095e-03, -5.8062747e-03, -8.0820709e-04, 8.1010396e-03,-2.3662101e-03, -9.6660787e-03, 5.7865614e-03, -3.9302218e-03,-1.2270809e-03, 9.9810772e-03, -2.2439670e-03, -4.7674584e-03,-5.3300112e-03, 6.9841221e-03, -5.7071578e-03, 2.1063576e-03,-5.2589145e-03, 6.1209816e-03, 4.3569636e-03, 2.6094934e-03,-1.4887219e-03, -2.7490708e-03, 8.9987572e-03, 5.2161841e-03,-2.1613305e-03, -9.4713038e-03, -7.4321763e-03, -1.0670737e-03,-7.8357977e-04, -2.5633539e-03, 9.6833659e-03, -4.6015202e-04,5.8634020e-03, -7.4515464e-03, -2.5067476e-03, -5.5492264e-03],dtype=float32)(2)获取与某个单词的关联性最高的几个词
model.wv.similar_by_word("processes", topn=5) [('study', 0.1669149100780487),('effect,', 0.16261565685272217),('abstract', 0.1388479620218277),('we', 0.1315048635005951),('directed', 0.11603082716464996)]备注:
由于输入的文本太小,因此关联度不明显。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121723021
总结
以上是生活随笔为你收集整理的[Pytorch系列-57]:循环神经网络 - gensim.models.word2vec参数详解与构建词向量模型的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 处理 JS中 undefined 的7个
- 下一篇: 机器人学习-matlab四足机器人控制仿