Gensim:手动生成(目标、上下文、标签)的训练元组

Gensim: Manual generation of training tuples of (target, context, label)

我问这个问题是作为一个懒惰的研究人员,他只想快速尝试随机的疯狂想法,而不是花费大量时间重新发明轮子。我完全理解这些不是预期的用例。

为了检验一些假设,我很乐意

比如我可以得到一个句子的parse tree,利用父子关系生成元组,这是一个非线性的window(NLP研究界已经有人试过了,hand-编码的...)。除了随机样本之外,我还可以获得一个反义词词典来查找和生成更多的负样本(不确定,可能有助于加快收敛速度​​)。

是否有一些私有成员函数(以 _XX 开头的东西)我可以重写以实现这些?

不幸的是,要更改(上下文->词)training-examples 或 negative-example 采样并不容易 extension-points。

当然,完整的源代码是可用的,因此任何东西都可以作为补丁,或者将现有代码用作 starting-point。然而,实际上,关于这些步骤的关键 loops/decisions 只能从优化的 Cython 训练例程中有效地 运行 —— 这有点难 read/adapt/test/deploy。

(有 an open issue #1623 to re-factor the code to make such related variants of Word2Vec easier to implement. But the project's prior effort to ostensibly meet this need, PR #1777,有点像灾难,在新的 类 中添加了更多的间接层和分散键操作,而没有提供真正需要的 extension-points .)