【发布时间】:2020-12-19 16:35:40
【问题描述】:
我正在处理一项 NLP 任务并加载了 Gensim 提供的 GloVe 向量:
import gensim.downloader
glove_vectors = gensim.downloader.load('glove-twitter-25')
我正在尝试获取句子中每个单词的单词嵌入,但其中一些不在词汇表中。
使用 Gensim API 处理它的最佳方法是什么?
谢谢!
【问题讨论】:
-
Afaik 处理 OOV 单词的常用方法是简单地忽略它们。否则,您将不得不从自己的语料库中训练自己的嵌入。
-
如何有效地忽略它们?那么问题来了,因为我有文本并且必须使用vectors.word_vec(WORD)进行转换,如果WORD不在词汇中,那么我会收到错误。
-
我不熟悉 Gensim,但肯定有一种方法可以检查模型中是否存在单词。我想可能是like this:
if (word in model.wv.key_to_index) ... -
你能使用其他词嵌入(fastText、BERT...),它们也可以表示 OOV 词吗?
-
谢谢,是的,有办法检查它,但运行起来需要很多时间。又名,非常低效(至少到目前为止我一直在做的事情)。其他 WordEmbeddings 的替代方案很有吸引力,但我相信 Gensim 的 KeyedVector 仍然无法从中获利
标签: nlp stanford-nlp gensim word-embedding