首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spacy实体链接-单词向量

spacy实体链接-单词向量
EN

Stack Overflow用户
提问于 2020-01-23 23:32:10
回答 1查看 2.1K关注 0票数 5

我对词向量是如何工作的感到非常困惑,特别是关于spacy的实体链接(https://spacy.io/usage/training#entity-linker)。

将实体添加到知识库时,其中一个参数是entity_vector。你是怎么得到这个的?我试着去做

代码语言:javascript
复制
nlp = spacy.load('en_core_web_sm')
kb = KnowledgeBase(vocab = nlp.vocab, entity_vector_length = 96)
for n in m_yentities:
    kb.add_entity(entity = n, freq = ___, entity_vector = **nlp(n).vector**)

**代码给了我长度为96的向量,这就是我在entity_vector_length中使用的,尽管在这个例子中他们使用了3。我只是想知道我的方法是不是可以,但我对此感到有点困惑。

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 01:59:39

我们必须更好地记录这一点,但让我试着解释一下: KnowledgeBase存储预训练的实体向量。这些向量是实体描述的压缩版本。虽然这样的描述可以是一个或多个单词(长度可变),但它的向量应该始终具有固定的大小。长度为3是不现实的,像64或96这样的长度更有意义。如果我们有这样的描述,每个实体描述都被映射到96D空间中,这样我们就可以在进一步的下游神经网络中使用这些描述。

如您所链接的example中所示,您可以使用EntityEncoder创建从多个单词描述到96D向量的映射,并且可以调整嵌入的长度。更大的嵌入意味着您可以捕获更多信息,但也需要更多存储空间。

实体描述的这些嵌入向量的创建是在创建KnowledgeBase时作为离线步骤完成的。然后,当您实际想要训练神经网络进行实体链接时,该网络的大小将取决于您为描述嵌入选择的大小。

直观地说,“实体嵌入”是实体描述中所有单词的词向量的一种平均、压缩版本。

另外,我不知道你是否看过这个,但是如果你正在寻找一种运行实体链接的更实际的方法,你可以查看处理维基百科和维基数据here的脚本。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59882071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档