对Word2Vec更好的输入是什么?


22

这更像是一般的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)

Answers:


14

这个问题的答案取决于它。主要方法是传递标记化的句子(因此SentenceCorpus在您的示例中),但是根据您的目标是什么,以及您正在查看的语料库,您可能想要使用整篇文章来学习嵌入内容。这可能是您提前可能不知道的-因此您必须考虑如何评估嵌入的质量,并做一些实验以查看哪种“种类”的嵌入对您的任务更有用( s)。


就在现场。我在模型中使用了嵌入,就像您提到的那样,当我使用整篇文章时,模型的预测性能有了很大的提高。因此,在哪种情况下逐句训练会更好。
wacax 2015年

1
您应该查看并查看具有相似向量的单词如何相互关联。关于上下文窗口的大小和上下文类型的一些工作表明,较小的窗口(可能是较小的文档大小,如句子)可能会使单词在功能上相似(例如美国各州),而不是局部相似( (例如美国各州和与政府相关的词语)具有更多相似的向量。我主要是引用Omer Levy和Yoav Goldberg自2014年以来的基于依赖的单词嵌入。虽然我可能会误解,但如果这样的话,我希望得到纠正。
NBartley '16

1

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

使用句子作为输入:

在此处输入图片说明

使用文章作为输入:

在此处输入图片说明


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.