Что является лучшим входом для Word2Vec?

22

Это больше похоже на общий вопрос НЛП. Что является подходящим входом для обучения встраивания слова, а именно 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."]]

Обучение Word2Vec на Python:

from gensim.models import Word2Vec

wikiWord2Vec = Word2Vec(ArticleCorpus)
wacax
источник

Ответы:

14

Ответ на этот вопрос заключается в том, что это зависит . Основной подход заключается в передаче токенизированных предложений (как SentenceCorpusв вашем примере), но в зависимости от того, какова ваша цель и каков корпус, на который вы смотрите, вы можете вместо этого использовать всю статью для изучения вложений. Это то, что вы, возможно, не знаете заранее, поэтому вам придется подумать о том, как вы хотите оценить качество вложений, и провести несколько экспериментов, чтобы увидеть, какой «тип» вложений более полезен для вашей задачи ( с).

NBartley
источник
Прямо на месте. Я использовал вложения в модели, и, как вы упомянули, было значительное улучшение прогнозирующей эффективности модели, когда я использовал всю статью. Так в каком случае обучение предложение за предложением будет лучше.
Wacax
1
Вы должны посмотреть и увидеть, как слова, имеющие похожие векторы, связаны друг с другом. Была проделана некоторая работа над размером контекстного окна и типом контекста, который предполагает, что меньшие окна (и, возможно, меньшие размеры документов, такие как предложения), могут делать слова, которые функционально похожи (как штаты США), а не тематически похожи ( как в штатах США и словах, связанных с правительством) имеют более похожие векторы. Я в основном цитирую Омера Леви и Йоава Голдберга «Вложения в слова на основе зависимостей» 2014 года. Хотя я могу ошибаться и хотел бы быть исправленным, если так.
НБартли
1

В качестве дополнения к ответу @ NBartley. Чтобы кто-нибудь сталкивался с этим вопросом. Я попытался использовать статью / предложение в качестве входных данных для word2vec на Spark2.2, результат следующим образом.

используйте предложение в качестве ввода:

введите описание изображения здесь

использовать статью в качестве входных данных:

введите описание изображения здесь

Zachary
источник
0

Для первого у gensim есть класс Word2Vec. Для последнего, Doc2Vec.

http://rare-technologies.com/doc2vec-tutorial/


источник
3
doc2vec существенно отличается от выполнения word2vec в совокупности статей, а не в предложениях. doc2vec изучит представления самих статей, а не только слова.
jamesmf