当前位置:   article > 正文

Glove 词向量_glove.glove输入参数

glove.glove输入参数

1 目的和思想

Glove模型的目的:求出能表示出词与词之间的关系的词向量
Glove的整体思想:词 k 在词 i 和词 j 中的的出现概率 有着特殊规律
模型出自论文: Glove: Global Vectors for Word Representation

2 模型原理

模型实现:

  1. 共现矩阵(对称矩阵)
  2. SVD处理成三角矩阵
  3. 拟合计算词向量

2.1 共现矩阵

以窗口的大小,出现在同一个窗口中的词计数

例:

  1. I love you.
  2. you love me.
  3. you like me?
Iloveyoumelike.?
I0110010
love1021020
you1102121
me0120111
like0011001
.1221000
?0011100

2.2 SVD奇异值分解

将共现矩阵转换成三角矩阵 Σ Σ Σ,目的为了降维和减少计算量

A = U Σ V T A=UΣV^T A=UΣVT

2.3 拟合

通过设计的函数,将词向量和共现概率比值进行计算,使loss函数越小

  • 设计的函数如下,是通过共现词频率比值的规律来设计的:
    在这里插入图片描述
    f(x):权重,为了不让相关度太高,保持相对高就行
    f(x)

3 Glove 总结

Glove 模型主要是利用了共现频率比值,这个特殊的规律,以这个规律来设计 loss 函数进行训练,得到的效果比部分模型的效果好

3.1 Glove 优缺点

3.1.1 优点

  1. 和 word2vec 相比,word2vec 是周围范围内的词训练,glove 是以统计的词,更全面

4 Glove 函数使用

4.1 输入

sentense = [['I', 'love', 'you', '.'],
             ['you', 'love', 'me','.'],
             ['you', 'like', 'me','?']]
  • 1
  • 2
  • 3

4.2 函数及参数

from glove import Glove
from glove import Corpus  # 语料库

# 生成共现矩阵,再SVD降维
corpus_model = Corpus()
corpus_model.fit(sentense, 
                 window=10)  # 窗口大小 (用于统计同一窗口的词,生成共现矩阵)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

得到三角矩阵 Σ Σ Σ 作为 glove 输入 :
在这里插入图片描述

glove = Glove(no_components=10,   # 词向量维度
              learning_rate=0.05) # 学习率
glove.fit(corpus_model.matrix,
          epochs=10,              # 迭代次数
          no_threads=1,           # 计算线程数
          verbose=False)           # 打印epochs进度
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.3 输出及应用

# most_similar函数需要使用dictionary
glove.add_dictionary(corpus_model.dictionary)

print(glove.dictionary)
print(glove.word_vectors)
print(glove.most_similar('love', number=4))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

词向量有 7 种词,每个词的维度为 10:
在这里插入图片描述在这里插入图片描述
和 love 相近的词 top3 :
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/663056
推荐阅读
相关标签
  

闽ICP备14008679号