Word2Vec 的更好输入是什么?

数据挖掘 nlp 词嵌入
2021-09-16 22:11:31

这更像是一个一般的 NLP 问题。什么是合适的输入来训练词嵌入,即 Word2Vec?属于一篇文章的所有句子都应该是语料库中的一个单独文档吗?还是每篇文章都应该是所述语料库中的文档?这只是一个使用 python 和 gensim 的例子。

语料库按句子拆分:

SentenceCorpus = [["first", "sentence", "of", "the", "first", "article."],
                  ["second", "sentence", "of", "the", "first", "article."],
                  ["first", "sentence", "of", "the", "second", "article."],
                  ["second", "sentence", "of", "the", "second", "article."]]

语料库按文章划分:

ArticleCorpus = [["first", "sentence", "of", "the", "first", "article.",
                  "second", "sentence", "of", "the", "first", "article."],
                 ["first", "sentence", "of", "the", "second", "article.",
                  "second", "sentence", "of", "the", "second", "article."]]

在 Python 中训练 Word2Vec:

from gensim.models import Word2Vec

wikiWord2Vec = Word2Vec(ArticleCorpus)
3个回答

这个问题的答案是视情况而定主要方法是传入标记化的句子(SentenceCorpus在您的示例中如此),但根据您的目标和您正在查看的语料库,您可能希望改为使用整篇文章来学习嵌入。这是您可能提前不知道的事情——因此您必须考虑如何评估嵌入的质量,并进行一些实验以查看哪种“类型”的嵌入对您的任务更有用( s)。

作为@NBartley 回答的补充。对于任何遇到这个问题的人。我曾尝试在 Spark2.2 上使用文章/句子作为 word2vec 的输入,结果如下。

使用句子作为输入:

在此处输入图像描述

使用文章作为输入:

在此处输入图像描述

对于前者,gensim 有 Word2Vec 类。对于后者,Doc2Vec