分析产品评论时,Doc2Vec 和 Word2Vec 之间应该用什么?

What should be used between Doc2Vec and Word2Vec when analyzing product reviews?

我从不同的用户那里收集了一些对网站的产品评论,我试图通过使用用户使用的词的嵌入来找到产品之间的相似之处。 我将每个产品的每条评论分组,这样我就可以在我的数据框中有不同的评论一个接一个地出现(即:一个产品的不同作者)。此外,我还已经标记了评论(以及所有其他预处理方法)。下面是我所拥有的模型数据框(每个产品的令牌列表实际上非常高,以及产品数量):

Product reviews_tokenized
XGame3000 absolutely amazing simulator feel inaccessible ...
Poliamo production value effect tend cover rather ...
Artemis absolutely fantastic possibly good oil ...
Ratoiin ability simulate emergency operator town ...

但是,我不确定 doc2Vec 和 Word2Vec 之间哪个最有效。我最初会选择 Doc2Vec,因为它能够通过考虑 paragraph/sentence 来找到相似之处,并找到它的主题(我想拥有,因为我试图通过以下方式对产品进行聚类)主题),但我有点担心评论来自不同的作者,因此可能会使嵌入产生偏差?请注意,我对 NLP 和嵌入还很陌生,所以我可能无法理解一些概念。下面是我的 Doc2Vec 代码,它给了我一个很好的剪影分数 (~0.7)。

product_doc = [TaggedDocument(doc.split(' '), [i]) for i, doc in enumerate(df.tokens)]
model3 = Doc2Vec(min_count=1, seed = SEED, ns_exponent = 0.5)
model3.build_vocab(product_doc)
model3.train(product_doc, total_examples=model3.corpus_count, epochs=model3.epochs)
product2vec = [model3.infer_vector((df['tokens'][i].split(' '))) for i in range(0,len(df['tokens']))]
dtv = np.array(product2vec)

您认为解决此问题的最有效方法是什么?如果有什么地方不够清楚,或者其他的,请告诉我。

感谢您的帮助。

编辑:下面是我获得的集群:

无法判断哪种特定的方法组合最适合特定的数据集和特定的最终目标:你真的必须在你自己的可重复使用的管道中相互尝试它们,以便根据你想要的结果对它们进行评分.

看起来您已经将文档剥离为关键字而不是原始的自然文本,这可能会对这些算法造成伤害 - 您可能想尝试两种方法。

根据文本的大小和格式,您可能还想查看句子(或数据的其他小逻辑块)之间的“Word Mover's Distance”(WMD) 比较。一些工作演示了在评论域中找到“相似问题”(即使用不同的措辞)的有趣结果,例如:https://tech.opentable.com/2015/08/11/navigating-themes-in-restaurant-reviews-with-word-movers-distance/

不过请注意,使用较大的文本批量计算大规模杀伤性武器的成本非常高。