¿Cuál es una mejor entrada para Word2Vec?

22

Esto es más como una pregunta general de PNL. ¿Cuál es la entrada adecuada para entrenar una incrustación de palabras, a saber, Word2Vec? ¿Deberían todas las oraciones que pertenecen a un artículo ser un documento separado en un corpus? ¿O debería cada artículo ser un documento en dicho corpus? Este es solo un ejemplo usando Python y Gensim.

Corpus dividido por oración:

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 artículo:

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

Entrenamiento Word2Vec en Python:

from gensim.models import Word2Vec

wikiWord2Vec = Word2Vec(ArticleCorpus)
wacax
fuente

Respuestas:

14

La respuesta a esta pregunta es que depende . El enfoque principal es pasar las oraciones simbólicas (así SentenceCorpusen su ejemplo), pero dependiendo de cuál sea su objetivo y cuál es el corpus que está viendo, es posible que desee utilizar el artículo completo para aprender las incrustaciones. Esto es algo que quizás no sepa con anticipación, por lo que tendrá que pensar en cómo desea evaluar la calidad de las incrustaciones y realizar algunos experimentos para ver qué 'tipo' de incrustaciones son más útiles para su tarea ( s)

NBartley
fuente
Justo en el lugar. Utilicé las incrustaciones en un modelo y, tal como mencionaste, hubo una gran mejora en el rendimiento predictivo del modelo cuando utilicé todo el artículo. Entonces, en qué caso el entrenamiento oración por oración sería superior.
wacax
1
Debería observar y ver cómo las palabras que tienen vectores similares están relacionadas entre sí. Se ha realizado un trabajo sobre el tamaño de la ventana de contexto y el tipo de contexto que sugiere que las ventanas más pequeñas (y tal vez los tamaños de documentos más pequeños, como las oraciones), pueden hacer que las palabras sean funcionalmente similares (como los Estados Unidos) en lugar de ser tópicamente similares ( como los estados de EE. UU. y las palabras relacionadas con el gobierno) tienen vectores más similares. Estoy citando principalmente las incrustaciones de palabras basadas en la dependencia de Omer Levy y Yoav Goldberg de 2014. Sin embargo, podría estar equivocado y me gustaría que me corrigieran si es así.
NBartley
1

Como complemento de la respuesta de @ NBartley. Para cualquiera que se encuentre con esta pregunta. Intenté usar el artículo / oración como entrada para word2vec en Spark2.2, resultado como sigue.

usa la oración como entrada:

ingrese la descripción de la imagen aquí

use el artículo como entrada:

ingrese la descripción de la imagen aquí

Zachary
fuente
0

Para el primero, gensim tiene la clase Word2Vec. Para este último, Doc2Vec.

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


fuente
3
doc2vec es sustancialmente diferente de realizar word2vec en un corpus de artículos en lugar de oraciones. doc2vec aprenderá representaciones de los propios artículos, en lugar de solo las palabras.
jamesmf