精华内容
下载资源
问答
  • 更多相关内容
  • Pytorch深度学习(5) — 词向量及Glove预训练模型使用1.word2vec的原理和实现2.Glove预训练模型使用2.1 求近义词和类比词2.1.1 使用预训练的词向量2.2.2 应用预训练词向量2.2.2.1 求近义词2.2.2.2 求类比词小结 ...
  • 预先训练的单词向量。 维基百科2014 + Gigaword 5(6B令牌,400K词汇,无章,50d,100d,200d和300d载体):glove.6B.zip
  • glove中文词向量

    2019-09-28 20:58:32
    使用glove训练词向量(1.6GB维基百科语料),维度为300,词汇量约13000,文件大小为41.2MB
  • GloVe训练中文词向量

    2021-02-03 15:38:24
    1.准备语料 准备好自己的语料。保存为txt格式,每行一个句子,分好词,并以空格进行分割(" “.join(seg1)) 2.代码 ...CORPUS=text8 要生成词向量的文本 VOCAB_FILE=vocab.txt 得到的词和词频 COOCC

    1.准备语料
    准备好自己的语料。保存为txt格式,每行一个句子,分好词,并以空格进行分割(" “.join(seg1))
    2.代码
    从GitHub下载代码斯坦福训练Glove
    将corpus.txt放入GloVe的主文件下。
    在这里插入图片描述
    3.修改文件
    (1)将上述demo.sh文件中的"make"下的内容注释掉(源码是下载text8语料文件)
    (2)修改下图中三个地方的内容(300,8)效果要好(据说)
    CORPUS=text8 要生成词向量的文本 VOCAB_FILE=vocab.txt 得到的词和词频 COOCCURRENCE_FILE=cooccurrence.bin COOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin BUILDDIR=build SAVE_FILE=vectors VERBOSE=2 MEMORY=4.0 内存 VOCAB_MIN_COUNT=5 最小词频数 VECTOR_SIZE=50 词向量维度 MAX_ITER=15 训练迭代次数 WINDOW_SIZE=15 上下文窗口数 BINARY=2 保存文件类型(2进制) NUM_THREADS=8 线程数 X_MAX=10
    在这里插入图片描述
    4.训练词向量
    (1)进入主文件下:“make”
    (2)然后”./demo.sh"
    之后会生成vectors.txt和vectors.bin文件
    5.将vectors.txt文件修改成Gensim可以使用的文件
    在文件的额第一行加入vacob_size空格vector_size,这样才能用word2vec的load函数加载成功
    我的数据:178633 50

    参考文章:添加链接描述

    展开全文
  • 中文维基glove词向量(已训练)-part2中文维基glove词向量(已训练)-part2
  • Glove训练词向量

    千次阅读 2019-09-06 16:48:36
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接: https://blog.csdn.net/Totoro1745/article/details/82286483

    开启美好的九月

    最近在学习textCNN进行文本分类,然后随机生成向量构建embedding网络的分类效果不是很佳,便考虑训练Glove词向量来进行训练,整个过程还是有遇到一些问题,希望懂的旁友能来指点下~

    关于GloVe

    GloVe,全称是Global Vectors for Word Representation,是斯坦福大学提出的一种新的词矩阵生成的方法,综合运用词的全局统计信息和局部统计信息来生成语言模型和词的向量化表示。论文提出的方法融合了主流模型的优点:全局矩阵分解(LSA)和局部内容窗口(Word2vec),充分利用统计信息使用词共现矩阵中频率非零的元素来训练模型。
    论文链接http://www.cs.columbia.edu/~blei/seminar/2016_discrete_data/readings/PenningtonSocherManning2014.pdf
    官网讲解http://nlp.stanford.edu/projects/glove/
    PS:官网上有详细的说明,其中包括已经训练好的词向量模型供使用,在这里我主要使用它的github代码训练自己的语料

    词向量训练

    1.下载

    官方的github代码:https://github.com/stanfordnlp/GloVe
    进入上面的连接并下载整个文件,如下:
    ![此处输入图片的描述][1]
    阅读其中的README文件可以对其有一定的理解~
    由于其中的代码是C的版本,所以在运行前务必确保ubuntu下有gcc!

    2.训练词向量模型

    (1)进入当前的文件路径,输入命令

    make
    
       
       
    • 1

    可以看到文件夹中多了一个build的文件夹
    (2)修改demo.sh的内容
    ![此处输入图片的描述][2]
    源代码中是默认是从网上下载一个语料text8,可以将其删除,在语料上修改为自己的路径**(这里需要说明下,中文语料需要先进行分词以空格进行间隔)**
    然后有两个参数需要注意,即向量维度和窗口值
    (根据网上的资料显示vector_size=300和window_size=8时效果最佳)
    PS:不过在我的训练过程中,300维的词向量在转换为embedding时文件大于2G,一直报错:

    ValueError: Cannot create a tensor proto whose content is larger than 2GB.
    
       
       
    • 1

    (请各位大佬来指点下~)
    (3)开始训练,输入命令

    sh demo.sh
    
       
       
    • 1

    如无意外,最后可以得到一个vector.txt的文件
    (4)修改格式
    为了能让gensim调用模型,运行以下代码即可

    import gensim
    import shutil
    from sys import platform
    
    # 计算行数,就是单词数
    def getFileLineNums(filename):
        f = open(filename, 'r')
        count = 0
        for line in f:
            count += 1
        return count
    
    
    # Linux或者Windows下打开词向量文件,在开始增加一行
    def prepend_line(infile, outfile, line):
        with open(infile, 'r') as old:
            with open(outfile, 'w') as new:
                new.write(str(line) + "\n")
                shutil.copyfileobj(old, new)
    
    
    def prepend_slow(infile, outfile, line):
        with open(infile, 'r') as fin:
            with open(outfile, 'w') as fout:
                fout.write(line + "\n")
                for line in fin:
                    fout.write(line)
    
    
    def load(filename):
        num_lines = getFileLineNums(filename)
        gensim_file = 'glove_model.txt'
        gensim_first_line = "{} {}".format(num_lines, 200)
        # Prepends the line.
        if platform == "linux" or platform == "linux2":
            prepend_line(filename, gensim_file, gensim_first_line)
        else:
            prepend_slow(filename, gensim_file, gensim_first_line)
    
        model = gensim.models.KeyedVectors.load_word2vec_format(gensim_file, binary=False)
    
    if __name__ == '__main__':
        load(vec_path)
    
    
    展开全文
  • 文章目录Word2Vec说明环境准备常用的API实践GloVe说明环境准备实践 在处理NLP任务时,首先要解决的就是...目前常用的嵌入(word embedding)训练方法有两种: word2vec; glove; 本文旨在介绍如何使用 word2ve...

    在处理NLP任务时,首先要解决的就是词(或字)在计算机中的表示问题。优秀的词(或字)表示要求能准确的表达出semantic(语义)syntactic(语法)的特征。

    目前常用的词嵌入(word embedding)训练方法有两种:

    1. word2vec;
    2. glove;

    本文旨在介绍如何使用 word2vecglove 算法训练自己的词向量;

    Word2Vec

    说明

    Gensim很好地实现了word2vec算法,可以使用gensim.models.word2vec模块训练自己的词向量(word embedding)。

    环境准备

    1. 搭建python环境,可参考链接
    2. 安装gensimpip install gensim

    常用的API

    官方API

    1. LineSentence:该类是可以遍历包含sentence的文件(一个sentence一行,其中sentence是经过预处理,且用空格进行分词);

    class gensim.models.word2vec.LineSentence(object):
        def __init__(self, source, max_sentence_length=MAX_WORDS_IN_BATCH, limit=None):
    

    重要参数:

    • source: 包含句子的文件;
    • max_sentence_length:句子的最大长度,默认是:10000

    2. Word2Vec:该类实现word2vec算法,可以训练词向量;

    class gensim.models.word2vec.Word2Vec(BaseWordEmbeddingsModel):
        def __init__(self, sentences=None, corpus_file=None, size=100, alpha=0.025, 
                     window=5, min_count=5, max_vocab_size=None, sample=1e-3, seed=1, 
                     workers=3, min_alpha=0.0001, sg=0, hs=0, negative=5, 
                     ns_exponent=0.75, cbow_mean=1, hashfxn=hash, iter=5, null_word=0,
                     trim_rule=None, sorted_vocab=1, batch_words=MAX_WORDS_IN_BATCH,
                     compute_loss=False, callbacks=(),max_final_vocab=None
                    ):
    

    重要参数:

    • sentences:可迭代的sentence,可以是LineSentence对象;
    • size:词向量维度,默认值是:100
    • window:在一个句子中,当前词(current word)和预测词(predicted word)的距离,默认值是:5
    • min_count:小于该数值频率的词不计入词典,默认值是:5
    • workers:线程数量,默认值是:3

    实践

    def train_word_vec():
        hanzi_sentences = LineSentence(file_util.get_project_path() + './data/hanzi.txt')
        hanzi_model = Word2Vec(hanzi_sentences, size=hidden_dims, window=5, min_count=3,
                               workers=multiprocessing.cpu_count())
        hanzi_model.save(file_util.get_project_path() + './data/word2vec_models/hanzi_embedding_{}.model'.format(hidden_dims))
        hanzi_model.wv.save_word2vec_format(file_util.get_project_path() + './data/word2vec_models/hanzi_embedding_{}.txt'.format(hidden_dims))
    

    其中:

    • hanzi_model.save:保存模型,该模型可继续进行训练;
    • hanzi_model.wv.save_word2vec_format:保存训练好的词向量;

    GloVe

    说明

    GloVe是斯坦福大学Jeffrey、Richard等提供的一种词向量表示算法,GloVe的全称是Global Vectors for Word Representation,是一个基于全局词频统计(count-based & overall staticstics)的词表征(word representation)算法。该算法综合了global matrix factorization(全局矩阵分解)local context window(局部上下文窗口) 两种方法的优点。

    环境准备

    目前斯坦福官方提供的glove工具只支持在linux系统下运行,网址

    1. 下载GloVe 源码:git clone http://github.com/stanfordnlp/glove ./
    2. 编译:make,注意:在该过程中会出现一些警告warning,可以忽略;编译完成之后会在当前目录生成build文件夹;

    实践

    Glove训练词向量的脚本是demo.sh脚本,所有的参数都是在该脚本里进行配置。现对脚本做如下注释:

    #!/bin/bash
    set -e
    
    # Makes programs, downloads sample data, trains a GloVe model, and then evaluates it.
    # One optional argument can specify the language used for eval script: matlab, octave or [default] python
    
    make
    # 下载语料库,自己训练时可以注释掉
    if [ ! -e text8 ]; then
      if hash wget 2>/dev/null; then
        wget http://mattmahoney.net/dc/text8.zip
      else
        curl -O http://mattmahoney.net/dc/text8.zip
      fi
      unzip text8.zip
      rm text8.zip
    fi
    # 语料库文件
    CORPUS=text8
    # 训练好的词典文件
    VOCAB_FILE=vocab.txt
    # 共现矩阵二进制文件
    COOCCURRENCE_FILE=cooccurrence.bin
    COOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin
    BUILDDIR=build
    # 词向量文件名 vectors.txt
    SAVE_FILE=vectors
    VERBOSE=2
    MEMORY=4.0
    # 词频小于该值,不计入词典
    VOCAB_MIN_COUNT=5
    # 词向量维度
    VECTOR_SIZE=50
    MAX_ITER=15
    # 训练窗口大小
    WINDOW_SIZE=15
    BINARY=2
    NUM_THREADS=8
    X_MAX=10
    
    echo
    echo "$ $BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE"
    $BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE
    echo "$ $BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE"
    $BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE
    echo "$ $BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE"
    $BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE
    echo "$ $BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE"
    $BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE
    if [ "$CORPUS" = 'text8' ]; then
       if [ "$1" = 'matlab' ]; then
           matlab -nodisplay -nodesktop -nojvm -nosplash < ./eval/matlab/read_and_evaluate.m 1>&2 
       elif [ "$1" = 'octave' ]; then
           octave < ./eval/octave/read_and_evaluate_octave.m 1>&2
       else
           echo "$ python eval/python/evaluate.py"
           python eval/python/evaluate.py
       fi
    fi
    

    配置完成后运行该脚本即可:./demo.sh

    展开全文
  • 训练GloVe中文词向量

    万次阅读 2018-10-18 14:09:04
    准备语料 准备好自己的语料,保存为txt,每行一个句子或一段话,注意要分好词。 准备源码 ...因为demo默认是下载网上的语料来训练的,因此如果要训练自己的语料,需要注释掉 修改参数设置,将CORP...
  • 后续训练命令仅在服务器命令行界面有效,在本机命令行、anaconda prompt命令行、开发环境如vscode等的终端命令行均无效 将下载解压之后的glove文件夹通过xftp传到服务器上,存放于123文件夹中(自己随便命名的...
  • WORD2VEC-使用GLOVE训练中文词向量 准备语料 语料预处理 去停用词 去除所有标点符号 ?!@#$%^&*()~`,./| 重音字 过滤掉频率低的单词 处理数字 每个数字都替换为 #number 单词转小写 如下图: 训练语料 从...
  • Word2Vec——使用GloVe训练中文词向量

    千次阅读 2020-01-21 21:47:20
    准备好中文语料:中文语料库,或者使用Leavingseason准备好的语料进行训练:http://pan.baidu.com/s/1jHZCvvo [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jGxpeUoq-1579614343581)...
  • glove.6B(词向量).zip

    2020-07-29 10:38:08
    官网glove.6B的词向量,里面包含了50d、100d、200d、300d常用英文单词的词向量,来源于wiki百科和Gigaword数据集。
  • 极简使用︱Glove-python词向量训练与使用

    万次阅读 热门讨论 2018-10-12 16:27:34
    glove/word2vec/fasttext目前词向量比较通用的三种方式,其中word2vec来看,在gensim已经可以极快使用(可见:python︱gensim训练word2vec及相关函数与功能理解) 官方glove教程比较啰嗦,可能还得设置一些参数表,...
  • 英文预训练词向量——斯坦福glove预训练的词向量 百度云分享:https://pan.baidu.com/s/1UpZeuqlNMl6XtTB5la53Xw 提取码: afhh 维基百科词向量 sgns.wiki.char.bz2解压后文件后缀名是.char, 可以通过一些方法...
  • Word2Vec、fastText、Glove训练词向量

    千次阅读 2019-05-18 20:28:15
    Word2Vec 环境: ...训练 import logging import os.path import sys import multiprocessing from gensim.corpora import WikiCorpus from gensim.models import Word2Vec from gensim.models.wo...
  • 本文介绍GloVe词向量词向量内部与外部评估方法、类比任务中的词向量训练超参数影响、相关度评估任务中词向量与人工表现差异、基于上下文处理一词多义问题和窗分类。
  • 加载Glove训练词向量到字典

    千次阅读 2019-08-20 17:14:18
    这里感谢一篇论文中的大佬的实现方式,这种将词向量变成字典的写法更加的具体,清晰。考虑的更加的全面。... embedding_file = "./resource/glove.42B.300d.txt" # 把训练好的词向量全都变成字典的形式来进行...
  • 中文维基glove词向量(已训练)-part1,中文维基glove词向量(已训练)-part1
  • 最新GLove词向量训练文件国内服务器下载

    千次阅读 多人点赞 2020-04-15 16:59:23
    试过去斯坦福官方网址(https://nlp.stanford.edu/projects/glove/)下Glove的同学就知道有多痛苦… 真的要多慢有多慢 使用国内服务器几分钟下完 glove.840B.300d.zip(2G)真香!!! 国内服务器地址: 直接...
  • GloVe: Global Vectors for Word Representation nearest neighbors of frog Litoria Leptodactylidae Rana Eleutherodactylus Pictures Comparisons man -> woman city -> zip comparative...
  • Glove模型训练词向量

    千次阅读 2020-06-04 10:56:07
    参考: https://blog.csdn.net/u014665013/article/details/79642083
  • Ubuntu下GloVe中文词向量模型训练

    千次阅读 热门讨论 2018-09-01 13:33:48
    最近在学习textCNN进行文本分类,然后随机生成向量构建embedding网络的分类效果不是很佳,便考虑训练Glove词向量来进行训练,整个过程还是有遇到一些问题,希望懂的旁友能来指点下~ 关于GloVe GloVe,全称...
  • 详解GloVe词向量模型

    万次阅读 多人点赞 2019-08-04 21:26:52
      词向量的表示可以分成两个大类1:基于统计方法例如共现矩阵、奇异值分解SVD;2:基于语言模型例如神经网络语言模型(NNLM)、word2vector(CBOW、skip-gram)、GloVe、ELMo。   word2vector中的skip-gram模型是...
  • 开始 -> 统计共现矩阵 -> 训练词向量 -> 结束 Count-based模型,如GloVe,本质上是对共现矩阵进行降维。 首先,构建一个词汇的共现矩阵,每一行是一个word,每一列是context。 共现矩阵就是计算每个word在每个...
  • 模型输出:每个的表示向量 论文链接:https://aclanthology.org/D14-1162.pdf 基本思想 要讲GloVe模型的思想方法,我们先介绍两个其他方法: 一个是基于奇异值分解(SVD)的LSA算法,该方法对term-document...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,008
精华内容 2,403
关键字:

glove训练词向量