gensim Doc2Vec 是否区分具有正面和负面上下文的相同句子。?

Do gensim Doc2Vec distinguish between same Sentence with positive and negative context.?

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

gensim Doc2Vec能区分正负上下文的同一个Sentence吗?

例如:

句子A:"I love Machine Learning"

句子 B:"I do not love Machine Learning"

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

  1. 模型是否能够区分句子并给出一个非常小于 1 或负的余弦相似度?
  2. 或者该模型是否会表示向量中非常接近的两个句子 space 并给出接近 1 的余弦相似度,因为除否定词外,大多数词都是相同的(不)。

此外,如果我只训练句子 A 并尝试推断句子 B,两个向量是否会在向量 space 中彼此接近?

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

提前致谢!!

本质上,gensim Doc2Vec 背后的 'Paragraph Vector' 算法所做的就是找到一个向量(与神经网络一起)擅长预测文本中出现的单词。所以是的,具有几乎相同单词的文本将具有非常接近的向量。 (没有句法理解,某些词在某些地方有很大的逆转作用。)

然而,即使是这样的向量 也可能 在情感分析中是可行的(虽然不是最先进的)。原始 'Paragraph Vectors' 论文评估矢量可用性的方法之一是估计短片评论的情绪。 (这些比单个句子长 - 成百上千个单词。)在文档向量上训练分类器时,分类器做得很好,并且比其他基线技术更好,估计 negativity/positivity评论。

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

所以你必须尝试一下,使用包含数万个不同文本示例的真实训练语料库(因为这种技术在玩具大小的数据集上效果不佳)和 post-矢量化分类器步骤。

另请注意,在纯 Doc2Vec 中,在训练期间添加已知标签(如 'positive' 或 'negative')(与任何基于唯一文档 ID 的标签一起或代替任何基于文档 ID 的标签)有时可以帮助生成的 vector-space 对您想要的区别更加敏感。并且,'FastText' 或 'StarSpace' 等其他变体技术更直接地将已知标签集成到矢量化中,这可能会有所帮助。

不过,短句的最佳结果可能会考虑到单词的相对顺序和语法分析。您可以在斯坦福 NLP 研究小组的页面上看到这种更高级技术的演示:

http://nlp.stanford.edu:8080/sentiment/rntnDemo.html

尽管在评论中查看它仍在努力解决的各种困难案例的例子。

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

标记句子