首页 > 其他分享 >Gensim库的使用——Word2vec模型

Gensim库的使用——Word2vec模型

时间:2023-10-28 22:11:41浏览次数:32  
标签:zh word 模型 vector embedding Word2vec 语料 Gensim 向量

Word2vec源码     Word2vec论文    Word2Vec原理参考

 

Gensim库的使用——Word2vec模型

pip install gensim

https://ai.tencent.com/ailab/nlp/zh/data/tencent-ailab-embedding-zh-d100-v0.2.0-s.tar.gz

762M tar.gz

tencent-ailab-embedding-zh-d100-v0.2.0-s.txt

1.88GB

 wget https://ai.tencent.com/ailab/nlp/zh/data/tencent-ailab-embedding-zh-d100-v0.2.0-s.tar.gz

tar -xvf tencent-ailab-embedding-zh-d100-v0.2.0-s.tar.gz

head tencent-ailab-embedding-zh-d100-v0.2.0-s.txt

 

import torch ### from  https://blog.csdn.net/quicmous/article/details/130899954
from torch.nn import Embedding

# 载入讯飞词向量文件
word_vector_file = '../Downloads/tencent-ailab-embedding-zh-d100-v0.2.0-s.txt' # 库文件的路径。本程序选择了最小的一个库文件。
word_vectors = {}
with open(word_vector_file, 'r', encoding='utf-8') as f:
    for line in f:
        word, vector_str = line.split(' ', 1)
        vector = torch.FloatTensor([float(x) for x in vector_str.split()])
        word_vectors[word] = vector

# 构建词典和词向量矩阵
words = list(word_vectors.keys())
word_dict = {w: i for i, w in enumerate(words)}
word_vectors_matrix = torch.stack(list(word_vectors.values()))

# 构建Embedding层
embedding = Embedding.from_pretrained(word_vectors_matrix)

# 得到某个单词的词向量
word = "勇敢"
word_idx = word_dict.get(word, None)
if word_idx is not None:
    word_vector = embedding(torch.LongTensor([word_idx]))
else:
    # 如果单词不在词向量文件中,则随机初始化一个词向量
    word_vector = embedding.weight.mean(dim=0, keepdim=True)

 

 

 

转自:

https://www.cnblogs.com/noob-l/p/14659723.html

https://blog.csdn.net/qq_28790663/article/details/115469743

 

 

word2vec 相关的API都在包gensim.models.word2vec中 ,主要参数如下:   

    sentences: 我们要分析的语料,可以是一个列表,或者从文件中遍历读出。后面我们会有从文件读出的例子。
    size: 词向量的维度,默认值是100。这个维度的取值一般与我们的语料的大小相关,如果是不大的语料,比如小于100M的文本语料,则使用默认值一般就可以了。如果是超大的语料,建议增大维度。
    window:即词向量上下文最大距离,这个参数在我们的算法原理篇中标记为cc,window越大,则和某一词较远的词也会产生上下文关系。默认值为5。在实际使用中,可以根据实际的需求来动态调整这个window的大小。如果是小语料则这个值可以设的更小。对于一般的语料这个值推荐在[5,10]之间。
    sg: 即我们的word2vec两个模型的选择了。如果是0, 则是CBOW模型,是1则是Skip-Gram模型,默认是0即CBOW模型。
    hs: 即我们的word2vec两个解法的选择了,如果是0, 则是Negative Sampling,是1的话并且负采样个数negative大于0, 则是Hierarchical Softmax。默认是0即Negative Sampling。
    negative:即使用Negative Sampling时负采样的个数,默认是5。推荐在[3,10]之间。这个参数在我们的算法原理篇中标记为neg。
    cbow_mean: 仅用于CBOW在做投影的时候,为0,则算法中的xwxw为上下文的词向量之和,为1则为上下文的词向量的平均值。在我们的原理篇中,是按照词向量的平均值来描述的。个人比较喜欢用平均值来表示xwxw,默认值也是1,不推荐修改默认值。
    min_count:需要计算词向量的最小词频。这个值可以去掉一些很生僻的低频词,默认是5。如果是小语料,可以调低这个值。
    iter: 随机梯度下降法中迭代的最大次数,默认是5。对于大语料,可以增大这个值。
    alpha: 在随机梯度下降法中迭代的初始步长。算法原理篇中标记为ηη,默认是0.025。
    min_alpha: 由于算法支持在迭代的过程中逐渐减小步长,min_alpha给出了最小的迭代步长值。随机梯度下降中每轮的迭代步长可以由iter,alpha, min_alpha一起得出。这部分由于不是word2vec算法的核心内容,因此在原理篇我们没有提到。对于大语料,需要对alpha, min_alpha,iter一起调参,来选择合适的三个值。
转自:https://blog.csdn.net/asialee_bird/article/details/100124565

标签:zh,word,模型,vector,embedding,Word2vec,语料,Gensim,向量
From: https://www.cnblogs.com/emanlee/p/17794635.html

相关文章

  • (一)模型/视图介绍
    模型/视图介绍Qt包含了一组itemview类,它们使用模型/视图架构来管理数据之间的关系以及呈现给用户的方式。该体系结构引入的功能分离,为开发人员提供了更大的灵活性来定制项目的表示,并提供了一个标准的模型接口,以允许广泛的数据源与现有项目视图一起使用。模型/视图结构模型-视图-控......
  • (三)模型类
    1.基本概念在模型/视图架构中,模型提供了一个标准接口,用于视图和委托访问数据。在Qt中,标准接口由QAbstractItemModel类定义。无论数据项如何存储在任何底层数据结构中,QAbstractItemModel的所有子类都将数据表示为包含项目表的层次结构。视图使用这种约定来访问模型中的数据项,但它们......
  • AI大模型技术与应用路线图
    跟进AI科技的发展,思考最新AI技术在应用中的场景、机会和范式;跟大家分享下AI大模型与应用路线图。 整个思考导图分两个部分:围绕GPT等通用大语言模型,讲解典型应用场景,应用范式,开发范式这几个层面的思考逻辑; 围绕多模态AI模型,列举一些典型的多模态路径,多模态学习中目前......
  • 深度学习(统计模型参数量)
    统计模型参数量,方便判断不同模型大小:importtorchimporttorch.nnasnn#自定义AlexNet模型classAlexNet(nn.Module):def__init__(self):super(AlexNet,self).__init__()self.conv1=nn.Conv2d(1,96,kernel_size=11,stride=4)self.......
  • OSG开发笔记(二十九):OSG加载模型文件、加载3DMax三维型文件Demo
    前言  Osg深入之后需要打开模型文件,这些模型文件是已有的模型文件,加载入osg之后可以在常见中展示模型文件,该节点可以操作,多个逼真的模型的节点就实现了基本的场景构建。<br>Demo  <br>说明  三维模型文件一般是由专业的三维建模人员完成,可以去buy通用模型,但是定制模型......
  • blender模型展uv3.6
    有时候uv贴图直接按U展开效果不理想,不同的模型适合的展开方式也会有一定的差异。以下是几种模型的展开方式,可做参考。在展uv前可以打开uv选区同步,以便更好控制所有网格位置。人物角色面部展开在后面选中中间的那根线一直到发际线标记缝合边。然后A全选U键选择“展开”......
  • 大语言模型Fine-tuning踩坑经验之谈
    前言 由于ChatGPT和GPT4兴起,如何让人人都用上这种大模型,是目前AI领域最活跃的事情。当下开源的LLM(Largelanguagemodel)非常多,可谓是百模大战。面对诸多开源本地模型,根据自己的需求,选择适合自己的基座模型和参数量很重要。选择完后需要对训练数据进行预处理,往往这一步就难......
  • 行行AI公开课:飞书无代码平台AI技术负责人邓范鑫——从第一性原理看大模型Agent技术
    当我们进入智能时代,开始思考:什么将会成为这个时代的核心载体?是App?是网站?还是Agent?也许几年后的现实才能给出答案,但历史告诉我们一个新鲜事物的演进总会找到一个稳定的术语来概括这个载体,而今天我们看到Agent最具有这个潜力。几个月前,OpenAI在内部就开始高度关注智能体(Agent)领......
  • Django和Vue.js是两种不同的框架,它们各自有自己的特点和用途¹。 **Django**¹: - Dja
    Django和Vue.js是两种不同的框架,它们各自有自己的特点和用途¹。**Django**¹:-Django是一个开放源代码的PythonWeb应用框架¹。-它采用了MTV(模型,视图,模板)的软件设计模式¹。-Django可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序¹。-Django还包含许多功能......
  • 如何设置模型的粗糙质感?
    1、粗糙贴图的原理粗糙贴图(RoughnessMap)是一种用于模拟物体表面粗糙程度的贴图技术。它通过控制光线在物体表面的散射程度来实现不同粗糙度的效果。粗糙贴图通常使用灰度图像来表示不同部分的粗糙度,白色表示较光滑的表面,黑色表示较粗糙的表面。粗糙贴图的原理可以简单地描述为......