Python 词汇A和B的语义相似性:依赖于语料库中A和B的频率?

Python 词汇A和B的语义相似性:依赖于语料库中A和B的频率?,python,nlp,gensim,word2vec,word-embedding,Python,Nlp,Gensim,Word2vec,Word Embedding,背景: 给定一个语料库,我想用word2wec(Gensim)的实现来训练它 想了解两个标记之间的最终相似性是否取决于语料库中A和B的频率(所有上下文都保留),还是不可知 例如: (可能不太理想,但用它来阐述问题陈述) 假设单词“A”在语料库中的3个不同上下文中使用: Context 1 : 1000 times Context 2 : 50000 times Context 3 : 50000 times “B”用于两种不同的上下文: Context 1 : 300 times Conte

背景:

给定一个语料库,我想用word2wec(Gensim)的实现来训练它

想了解两个标记之间的最终相似性是否取决于语料库中A和B的频率(所有上下文都保留),还是不可知

例如: (可能不太理想,但用它来阐述问题陈述)

假设单词“A”在语料库中的3个不同上下文中使用:

Context 1 : 1000 times
Context 2 : 50000 times
Context 3 : 50000 times
“B”用于两种不同的上下文:

Context 1 : 300 times 
Context 5 : 1000 time
问题:

如果我改变了语料库中“A”的频率(确保没有上下文丢失,即“A”在所有上下文中至少仍被使用一次,就像在原始语料库中一样),snd和B之间的相似性会是相同的吗

“A”在上下文中的新分布

 Context 1 : 5 times
 Context 2 : 10 times
 Context 3 : 5000 times
任何被欣赏的线索

我的感觉是(#翻译成直觉,而不是数学):

相似度将根据这两个词彼此接近或在同一上下文中使用的频率来计算

如果你从那里开始:

如果这两个词实际上是相似的,那么它们使用的频率越高=>您拥有的培训数据越多=>模型越好=>它们就越接近

如果使用这两个词时有更多的上下文,那么它们的关系就会更密切

然而,如果它们在语料库中出现的频率较低,但在一起出现的频率较高,它们之间的关系也会更紧密

所以它更多的是一个(频率,相同的上下文)/(频率,整体)。 如果你不改变这一点,我想你应该没事吧?

我的感觉是(#翻译成直觉,而不是数学):

相似度将根据这两个词彼此接近或在同一上下文中使用的频率来计算

如果你从那里开始:

如果这两个词实际上是相似的,那么它们使用的频率越高=>您拥有的培训数据越多=>模型越好=>它们就越接近

如果使用这两个词时有更多的上下文,那么它们的关系就会更密切

然而,如果它们在语料库中出现的频率较低,但在一起出现的频率较高,它们之间的关系也会更紧密

所以它更多的是一个(频率,相同的上下文)/(频率,整体)。
如果你不改变这一点,我想你应该会没事吧?

Gensim实现了两种词向量模型:

  • 跳过克
  • CBOW
  • 两者的区别在于如何使用特性化和标签来训练单词向量模型

    这两个模型都在令牌上下文上进行训练,以便将令牌自动编码到连续的语义向量空间中

    跳过克 训练的输入是上下文窗口n-grams,而预测的标签是第n个标记

    如果我们使用一个bigram上下文窗口,输入向量将使用令牌

    [Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]
    
    要预测的标签是

    Token_n
    
    [Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]
    
    CBOW 训练的输入是上下文窗口n-grams,而预测的标签是第n个标记

    如果我们使用一个bigram上下文窗口,输入向量将使用令牌

    Token_n
    
    要预测的标签是

    Token_n
    
    [Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]
    
    目的是什么? 显然,这是一个严重的过度简化,但它帮助我们问,单词向量模型做什么

    gensim中实现的单词向量模型的目的是什么

    这两个模型对给定标记的语义上下文进行编码

    因此,询问模型中的相似词应该与他们接受培训的上下文成正比

    TL;博士 WV模型在表示中对单词上下文进行编码


    因此,单词的相似性并不与它们的数量成正比,而是与它们出现的上下文成正比。

    Gensim实现了两种单词向量模型:

  • 跳过克
  • CBOW
  • 两者的区别在于如何使用特性化和标签来训练单词向量模型

    这两个模型都在令牌上下文上进行训练,以便将令牌自动编码到连续的语义向量空间中

    跳过克 训练的输入是上下文窗口n-grams,而预测的标签是第n个标记

    如果我们使用一个bigram上下文窗口,输入向量将使用令牌

    [Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]
    
    要预测的标签是

    Token_n
    
    [Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]
    
    CBOW 训练的输入是上下文窗口n-grams,而预测的标签是第n个标记

    如果我们使用一个bigram上下文窗口,输入向量将使用令牌

    Token_n
    
    要预测的标签是

    Token_n
    
    [Token_(n-2), Token_(n-1), Token_(n+1), Token_(n+2)]
    
    目的是什么? 显然,这是一个严重的过度简化,但它帮助我们问,单词向量模型做什么

    gensim中实现的单词向量模型的目的是什么

    这两个模型对给定标记的语义上下文进行编码

    因此,询问模型中的相似词应该与他们接受培训的上下文成正比

    TL;博士 WV模型在表示中对单词上下文进行编码


    因此,单词的相似性并不与它们的数量成正比,而是与它们出现的上下文成正比。

    如果你“减少”了一个单词的示例上下文数量,而不是其他单词的示例上下文数量,那么相似性肯定会改变

    Word2Vec依赖于有许多不同的单词用法示例。培训过程一次只考虑同一事件的单个实例。(在流行的skip-gram模式中,只需单个
    上下文单词->目标单词
    示例)

    训练会反复向神经网络呈现单个上下文,沿着一些有趣的路径子集检查网络的响应,并通过改变网络的内部权重和定义单词向量的“投影权重”,稍微推动网络做得更好

    与其他向量相比,所有这些更新在多次迭代中的聚合效应最终会将每个单词的向量推到一个有用的位置。(这是一场“拔河比赛”,既要改善一些环境,又要改善一些环境。)