【发布时间】:2020-01-27 01:04:27
【问题描述】:
我有一个预训练的 word2vec 模型,我将其加载到 spacy 以向量化新词。给定新文本,我执行nlp('hi').vector 以获得单词“hi”的向量。
最终,需要对我的预训练模型的词汇表中不存在的新词进行向量化。在这种情况下,spacy 默认为一个用零填充的向量。我希望能够为 OOV 术语设置此默认向量。
例子:
import spacy
path_model= '/home/bionlp/spacy.bio_word2vec.model'
nlp=spacy.load(path_spacy)
print(nlp('abcdef').vector, '\n',nlp('gene').vector)
此代码为单词“gene”输出一个密集向量,为单词“abcdef”输出一个全为 0 的向量(因为它不存在于词汇表中):
我的目标是能够为丢失的单词指定向量,因此您可以获得(例如)一个全为 1 的向量,而不是为单词“abcdef”获取一个全 0 的向量。
【问题讨论】:
-
您想将 all 词汇表外 (OOV) 词的向量指定为您选择的单个新向量吗?或者为每个新的 OOV 设置一个您提供的不同向量?或者想要一种方法来为新的 OOV 词计算一个新的、与模型兼容的向量(可能通过使用子词相关性或一些新的使用示例)?
-
我试图将单个向量应用于所有 OOV 单词