Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python gensim Doc2Vec是否区分具有积极和消极上下文的同一句子。?_Python_Nlp_Gensim_Doc2vec - Fatal编程技术网

Python gensim Doc2Vec是否区分具有积极和消极上下文的同一句子。?

Python gensim Doc2Vec是否区分具有积极和消极上下文的同一句子。?,python,nlp,gensim,doc2vec,Python,Nlp,Gensim,Doc2vec,在学习Doc2Vec库时,我遇到了以下问题 gensim Doc2Vec是否区分同一句子中的肯定和否定上下文? 例如: 句子A:“我喜欢机器学习” B句:“我不喜欢机器学习” 如果我用doc2vec训练句子A和B,并找出它们向量之间的余弦相似性: 该模型是否能够区分句子,并给出非常小于1的余弦相似度或负的余弦相似度 或者,该模型会在向量空间中非常接近地表示这两个句子,并给出接近1的余弦相似度,因为除了否定词外,大多数单词都是相同的(不要) 另外,如果我只训练句子A,并尝试推断句子B,两个向量在向

在学习Doc2Vec库时,我遇到了以下问题

gensim Doc2Vec是否区分同一句子中的肯定和否定上下文?

例如:

句子A:“我喜欢机器学习”

B句:“我不喜欢机器学习”

如果我用doc2vec训练句子A和B,并找出它们向量之间的余弦相似性:

  • 该模型是否能够区分句子,并给出非常小于1的余弦相似度或负的余弦相似度
  • 或者,该模型会在向量空间中非常接近地表示这两个句子,并给出接近1的余弦相似度,因为除了否定词外,大多数单词都是相同的(不要)
  • 另外,如果我只训练句子A,并尝试推断句子B,两个向量在向量空间中是否会彼此接近

    我请求NLP社区和Doc2Vec专家帮助我理解这一点


    提前谢谢

    本质上,gensim
    Doc2Vec
    背后的“段落向量”算法所做的就是找到一个向量(与神经网络一起)能够很好地预测文本中出现的单词。是的,几乎相同单词的文本会有非常接近的向量。(没有语法上的理解,某些单词,在某些地方,有很大的反转效应。)

    然而,即使这样的向量在情绪分析中也可以(尽管不是最先进的)。最初的“段落向量”论文评估向量可用性的方法之一是评估短片评论的情绪。(这比一句话要长——数百个单词。)在对文档向量分类器进行培训时,分类器在评估评论的负面/正面方面做得相当好,并且比其他基线技术更好

    你的单句、小句、做作的句子可能更难——它们很短,只有几个单词的差异,所以向量会非常接近。但这些不同的词(尤其是
    “not”
    )通常非常能代表情绪——因此微小的差异可能足以将向量从“积极”区域转移到“消极”区域

    因此,您必须尝试它,使用由成千上万个不同文本示例组成的真实训练语料库(因为这种技术在玩具大小的数据集上效果不佳)和后向量化分类器步骤

    还请注意,在纯
    Doc2Vec
    中,在培训期间添加已知标签(如“肯定”或“否定”)(与任何基于文档ID的唯一标签一起或代替它们)有时可以帮助生成的向量空间对所需的区别更加敏感。此外,“快速文本”或“星际空间”等其他变体技术更直接地将已知标签以一种可能有帮助的方式集成到矢量化中

    不过,短句的最佳效果可能要考虑单词的相对顺序和语法分析。你可以在斯坦福大学NLP研究小组的网页上看到这种更先进技术的演示:


    尽管在评论中寻找各种它仍然难以处理的疑难案例。

    使用textblob并为每个句子设置情绪和极性。使用nlp标记句子

    谢谢@gojomo的解释。因此,我最终的理解是,无论两个文档中向量的接近程度如何,它们仍然可以分为单独的类。
    Doc2Vec
    本身并不分类文本,因此,划分正负示例的“边界”的形状/分辨率将取决于您选择在输出文档向量上训练的下游分类器。但是,是的,两个具有任意紧密向量的文本可能正好落在您选择的任何分类技术的任何一边。