gensim - gensim vocab index 是对应的 1-hot-vector 中的索引吗?
问题描述
我正在做需要直接操作和嵌入单热向量的研究,我正在尝试使用 gensim 来为此加载预训练的 word2vec 模型。
问题是他们似乎没有直接使用 1-hot-vectors 的 api。我正在寻找解决方法。
所以我想知道是否有人知道这样做的方法?或者更具体地说,如果这些词汇索引(定义非常模糊)。可以是相应的 1-hot-vectors 的索引吗?
我发现的上下文:
- 似乎这个问题是相关的,但我尝试通过model.syn0(来自答案中的链接)访问“输入嵌入”(假设它们是单热表示),但我得到了一个非稀疏矩阵......
- 他们似乎也将单词索引称为“doctags”(搜索 Doctag/index)。
- 这是另一个问题,为索引提供了一些背景信息(尽管没有完全回答我的问题)。
- 这是官方文档:
##############################################
class gensim.models.keyedvectors.Vocab(**kwargs) 基础:对象
单个词汇项目,在内部用于收集每个词的频率/采样信息,并用于构建二叉树(包括词叶和内部节点)。
##############################################
解决方案
是的,您可以将index
gensim 的Word2Vec
词向量的(位置)视为一个维度1.0
- 与所有其他 V 维度一起,其中 V 是唯一词的计数,是0.0
。
该实现实际上并没有创建单热向量,作为稀疏或显式表示。它只是使用单词的索引作为其密集向量的查找 - 遵循word2vec.c
gensim 实现最初基于的 Google 代码路径。
(术语 'doctags' 仅与Doc2Vec
- aka 'Paragraph Vector' - 实现相关。它是用于查找文档向量的不同标记/整数的名称,使用与文档内单词不同的命名空间. 也就是说,Doc2Vec
您可以将'doc_007'
其用作 doc-vector 名称,也称为“doctag”,即使字符串标记'doc_007'
也作为单词出现在文档中,doctag-key'doc_007'
和 word-vector 引用的 doc-vector由 word-key 引用的'doc_007'
内部向量将不同。)
推荐阅读
- sql - 返回具有特定十六进制的行的查询
- rpm - RPM 无法在 RHEL 上安装
- javascript - 如何获得反应返回元素的长度?
- javascript - chrome.runtime.onMessage 不存在
- javascript - 在 promise.then 中使用 async/await
- angular - 无法启动事件 onCreateConfirm 和 onEditConfirm
- wallet - Apple 钱包通行证类型 ID
- sql-server - 根据 where 子句,字符转换为日期失败
- c# - C# 比较两个 XML 文件并替换值
- java - 使用 mockito 测试 if 条件