【问题标题】:Word2Vec: Is it possible to train with respect to weight in NLP?Word2Vec:是否可以在 NLP 中进行权重训练?
【发布时间】:2017-08-27 04:53:20
【问题描述】:

我使用GensimWord2Vec 来训练最相似的单词。

我的数据集是我大学社区网站上的所有帖子。

每个数据集的组成如下:

(title) + (contents) + (all comments)  // String

例如,

data[0] => "This is title. Contents is funny. What so funny?. Not funny for me"

所以,我有大约 400,000 个上述数据,并将它们作为向量并尝试通过 Word2Vec 训练这些数据。

我想知道是否可以让Word2Vec 考虑 WEIGHT,这意味着,如果我给某个数据向量赋予权重,Word2Vec 以这种数据向量中的每个单词都有更强的方式训练这个数据关系(相似性)。

例如,如果我给数据集 I like Pizza, Chicken 赋予权重 5,则词 PizzaChicken(或 likePizza 等)比其他数据向量的词具有更强的关系。

这可能吗?

很抱歉解释不佳,但我不是以英语为母语的人。如果需要更详细的信息,请发表评论。

【问题讨论】:

    标签: nlp gensim word2vec


    【解决方案1】:

    在 word2vec 算法的定义或 gensim 实现中没有这种可配置的权重。

    您可以尝试重复那些您希望产生更大影响的文本示例。 (理想情况下,这样的重复不会是背靠背的,而是在整个数据集中随机排列。)

    因此,这些示例将更频繁地影响基础模型的训练,占总训练时间的更大比例——与重复次数较少的示例相比,所涉及的单词的相对位置发生了变化。 可能有你正在寻找的最终结果。

    【讨论】:

    • 谢谢,我也是这么想的!这是我正在尝试做的伪代码:if weighted: data[0] = ("This is title. Contents is funny. What so funny?. Not funny for me") * 3。我认为它也有效.. 但你说这是back-to-back,对吧?为什么你说它不起作用?
    • 这会产生一些影响,并且可能会朝着您想要的方向发展。但是(1)你已经创建了新的训练上下文,而不是在原始数据中,围绕接缝(“……对我来说这是……”); (2) 在迭代训练中,所有相乘的上下文紧接着发生。 SGD 的部分“魔力”来自所有示例,交错、在不同方向相互拉扯。将相似的例子聚集在一起通常比让它们随机/均匀分布更糟糕。 (它甚至可以帮助一点,但不是绝对必要的,在训练过程之间重新洗牌。)
    猜你喜欢
    • 2020-01-12
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多