pytorch从glove词向量源文件中生成embedding并载入

本文介绍了如何在PyTorch中从GloVe的txt源文件加载词向量,根据自定义词典构建id2word映射,并创建对应的embedding矩阵。最终,将embedding作为网络的预训练层进行加载。
摘要由CSDN通过智能技术生成

首先是下载glove文件

格式为txt,每一行开头是单词,后面是100个float类型数,空格隔开,因此我们载入这个文件,并取出每一行

def get_numpy_word_embed(word2ix):
    row = 0
    file = 'zhs_wiki_glove.vectors.100d.txt'
    path = '/home/socialbird/platform/aion-autonlp/Downloads'
    whole = os.path.join(path, file)
    words_embed = {}
    with open(whole, mode='r')as f:
        lines = f.readlines()
        for line in lines:
            # print(line)
            # print(len(line.split()))
            line_list = line.split()
            word = line_list[0]
            embed = line_list[1:]
            embed = [float(num) for num in embed]
            words_embed[word] = embed
            if row > 20000:
                break
            row += 1
    # word2ix = {}
    ix2word = {ix: w for w, ix in word2ix.items()}
    id2emb = {}
    for ix in range(l
PyTorch词向量是用来表示文本的词语的向量化表示。PyTorch提供了多种方法和工具来生成词向量。 首先,可以使用预训练词向量模型,如Word2Vec、GloVe等。这些模型通过在大规模语料库上训练,将词语映射到固定维度的向量空间,使得具有相似语义的词在向量空间距离较近。PyTorch可以加载这些预训练词向量模型,并用它们来初始化模型词向量层。这样做的好处是可以利用预训练的语义信息,提高模型性能。 其次,可以使用PyTorch自带的nn.Embedding层来生成词向量。nn.Embedding层将词汇表的每个词映射到一个固定维度的稠密向量。在模型训练过程词向量会随着梯度的反向传播进行更新。nn.Embedding层可以根据需要设置词向量的维度大小、词汇表的大小等参数。 最后,可以根据自己的需求和数据特点,自定义生成词向量的方法。例如,可以使用词袋模型(Bag of Words)将词语表示成固定长度的向量,或者使用深度学习模型,如循环神经网络(RNN)、长短时记忆网络(LSTM)等,通过模型的隐藏层输出作为词向量。 在文本生成任务词向量生成扮演着重要的角色。通过将文本的每个词语映射成向量表示,可以将文本转化为机器能够处理的数值形式。这样可以实现文本的向量化表示,并利用机器学习或深度学习模型进行文本生成任务,如文本分类、机器翻译、自动对话系统等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值