Qual é a melhor entrada para o Word2Vec?

22

Isso é mais como uma pergunta geral da PNL. Qual é a entrada apropriada para treinar uma incorporação de palavras, ou seja, Word2Vec? Todas as frases pertencentes a um artigo devem ser um documento separado em um corpus? Ou cada artigo deve ser um documento no referido corpus? Este é apenas um exemplo usando python e gensim.

Corpus dividido por frase:

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."]]

Corpus dividido por artigo:

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."]]

Treinamento do Word2Vec em Python:

from gensim.models import Word2Vec

wikiWord2Vec = Word2Vec(ArticleCorpus)
wacax
fonte

Respostas:

14

A resposta para esta pergunta é que depende . A abordagem principal é passar as frases tokenizadas (como SentenceCorpusno seu exemplo), mas, dependendo de qual é seu objetivo e qual o corpus que você está procurando, você pode usar o artigo inteiro para aprender os embeddings. Isso é algo que você talvez não saiba com antecedência - portanto, você terá que pensar em como deseja avaliar a qualidade dos casamentos e fazer algumas experiências para ver qual 'tipo' de casamentos é mais útil para sua tarefa ( s)

NBartley
fonte
Bem no local. Usei as incorporações em um modelo e, como você mencionou, houve uma grande melhoria no desempenho preditivo do modelo quando usei o artigo inteiro. Portanto, em que caso o treinamento de sentença por sentença seria superior.
Wacax
1
Você deve observar e ver como as palavras que possuem vetores semelhantes se relacionam. Houve algum trabalho realizado sobre o tamanho da janela de contexto e o tipo de contexto que sugere que janelas menores (e talvez tamanhos menores de documentos, como sentenças), podem criar palavras funcionalmente semelhantes (como estados dos EUA), em vez de topicamente similares ( como estados dos EUA e palavras relacionadas ao governo) têm vetores mais semelhantes. Estou citando principalmente Omer Levy e Yoav Goldberg, baseados em dependências de palavras de 2014. Eu poderia estar enganado e gostaria de ser corrigido.
NBartley
1

Como complemento à resposta de @ NBartley. Para alguém se deparar com esta questão. Eu tentei usar o artigo / frase como entrada para word2vec no Spark2.2, resultado da seguinte forma.

use sentença como entrada:

insira a descrição da imagem aqui

use o artigo como entrada:

insira a descrição da imagem aqui

Zachary
fonte
0

Para o primeiro, o gensim tem a classe Word2Vec. Para o último, Doc2Vec.

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


fonte
3
O doc2vec é substancialmente diferente do que executar o word2vec em um corpus de artigos, em vez de frases. O doc2vec aprenderá representações dos próprios artigos, em vez de apenas as palavras.
jamesmf