我想从预先训练的手套嵌入中提取特征。但我遇到了某些单词的 Keyerror。这是单词标记的列表。
words1=['nuclear','described', 'according', 'called','physics', 'account','interesting','holes','theoretical','like','space','radiation','property','impulsed','darkfield']
我从“冲动”、“暗场”单词中得到了 Keyerror,因为这些单词可能是看不见的。我怎样才能避免这个错误? 。
这是我的完整代码:
gloveFile = "glove.6B.50d.txt"
import numpy as np
def loadGloveModel(gloveFile):
print ("Loading Glove Model")
with open(gloveFile, encoding="utf8" ) as f:
content = f.readlines()
model = {}
for line in content:
splitLine = line.split()
word = splitLine[0]
embedding = np.array([float(val) for val in splitLine[1:]])
model[word] = embedding
print ("Done.",len(model)," words loaded!")
return model
model = loadGloveModel(gloveFile)
words1=['nuclear','described', 'according', 'called','physics', 'account','interesting','holes','theoretical','like','space','radiation','property','impulsed','darkfield']
import numpy as np
vector_2 = np.mean([model[word] for word in words1],axis=0) ## Got error message
“冲动”一词的错误消息
有什么办法可以跳过这些看不见的单词吗?
最佳答案
我建议如下
- 将所有缺失的单词分配给某个唯一向量(例如全零)
- 找到与其相似的单词并使用它们的嵌入:
- 尝试单词的 ngram(前缀或后缀)并检查它是否在词汇中
- 词干并检查它是否在词汇中
- 最简单的解决方案:使用 FastText。它从子词 n 元语法中组装词向量,使其能够处理词汇表之外的单词。
关于python - 如何处理预训练 Glove 词嵌入中看不见的单词以避免按键错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56286510/