作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 http://nlp.stanford.edu/data/glove.twitter.27B.zip 下载了 Glove-twitter 预训练向量
当我在内存中加载向量(使用 glove.twitter.27B.200d.txt)时,我发现 900 个词,其向量为 199 维,而对于其余所有词,其向量为 200 维。 根据我的理解 - 此文件中的每个矢量都应该恰好是 200 维。没有?
我正在使用以下 python 代码得出我的结论
import pickle
import numpy as np
glove_model_path = './glove.twitter.27B.200d.txt'
f = open(glove_model_path,'r')
model = {}
counter = 0
vary_length = 0
anamolies = []
for line in f:
counter += 1
items = line.replace('\r','').replace('\n','').split(' ')
word = items[0]
vect = np.array([float(i) for i in items[1:] if len(i) > 1])
if (len(vect) != 200):
vary_length += 1
anamolies.append(word)
f.close()
print vary_length
Output is : 900
最佳答案
正确,每个向量应该有 200 个元素。
详细来说,我怀疑问题出在您的代码中,具体而言:
items = line.replace('\r','').replace('\n','').split(' ')
你为什么不打印这 900 行中的任何一行,看看它们是什么样子的。根据标记化的完成方式,您可能会遇到\r 或\n 被视为单词的情况,因此您要删除一些元素。不过我觉得很奇怪,默认情况下不会将空格合并在一起。
此外,您可能想检查 API 是否读取这些向量而不是自己滚动。您的代码做出了一些可能不正确的格式假设。
关于python - 斯坦福手套 : Dimension anomaly in glove. twitter.27B.200d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34695225/
我是一名优秀的程序员,十分优秀!