Las respuestas de Trideep y Sujit ya lo cubren, agregando algunos detalles.
El enlace de Trideep tiene vectores word2vec previamente entrenados. Uno de los archivos bin (CBOW) en su enlace tiene 3,625,364 millones de vectores únicos en el archivo bin.
Entonces, ¿tal vez estás buscando generar vectores para un corpus que tienes?
- ¿Cómo deberíamos comenzar con los conceptos básicos del aprendizaje automático para construir un sistema de recomendación utilizando Python?
- ¿Cómo entrenamos redes neuronales en imágenes en lugar de datos numéricos?
- ¿Qué es mejor para mí como estudiante? ¿Debería codificar los modelos de aprendizaje automático (donde pueda) o debería usar la biblioteca tanto como pueda?
- Cómo aprender machine learning para construir startups
- ¿Qué tan útil es un trabajo cuantitativo en Goldman Sachs para un doctorado posterior en Machine Learning?
Si es así, aquí hay un enlace de github para las fuentes de word2vec ( el enlace original de Google está roto por alguna razón ). Github word2vec
Si desea generar frases, simplemente ejecute una frase word2 en corpus tantas veces como desee que sea la longitud de las frases, cada ejecución duplica la longitud máxima de la frase, el parámetro umbral controla el límite de generación de frases. Asegúrese de combinar la salida del corpus de cada ejecución para que se conserve la monotonicidad de los recuentos ( si no lo hacemos, suponiendo que “nuevo” siempre ocurra con “york” en el corpus, la generación de frases lo convertirá a “new_york” con 0 ocurrencias para las palabras ” nuevo “y” york “ )
Un ejemplo ejecutado para generar un archivo vectorial
word2vec -train -output w2v_vector.bin -cbow 0 -size 300 -window 5 -hs 0 -sample 1e-3 -threads 40 -iter 5 -min-count 5 -save-vocab vocab.txt -binary 1
Parámetros clave anteriores
- cbow – 0 skipgram en lugar de una bolsa continua de palabras. Skipgram puede ser una mejor opción por las razones mencionadas en el documento
- tamaño 300 – dimensiones que desee
- tamaño de ventana – 5. Aumentar esto hará que el vecindario sea más semántico, pero el tiempo de capacitación necesariamente aumenta
- hs – 0 Esto usará muestreo negativo (en lugar de jerárquico como pretendía en cuestión ).
- la muestra – 1e-3 submuestreo de palabras frecuentes como “the” ( esencialmente omite al azar palabras de entrenamiento como “the” ) – reduce nuestro tiempo de entrenamiento. Pero tendrá un impacto significativo en la calidad del vector si se submuestrea mucho (por ejemplo, 1e-7 y menos). El papel cita el uso de 1e-5 para grandes corpus. He descubierto que 1e-5 funciona bastante bien y limita el tiempo de entrenamiento cuando el corpus está en miles de millones y el vocabulario excede los 50 millones (las frases pueden inflar el vocabulario a estos tamaños ).
- subprocesos: el recuento de subprocesos se basa, por supuesto, en la cantidad de núcleos que tenemos en la máquina.
- iter: aumente esto si el tamaño del cuerpo es pequeño. Típicamente, si encontramos vectores de vecindad, la distancia del coseno es menor que .8 / .9 incluso para palabras semánticamente cercanas, entonces significa que el entrenamiento fue insuficiente, solo aumente la iteración.
- Recuento mínimo: podemos decidir cuál es el recuento mínimo de una palabra para calificar para la generación en función del tamaño del corpus. Por lo general, es mejor evitar las palabras de menos de 5, ya que casi no son arrastradas por otras palabras y los vecindarios, ya que estas palabras no son geniales de todos modos ( sin embargo, lo contrario no es cierto, una palabra muy común que tenga esto en el vecindario podría ser valiosa: aguja en el escenario de pajar ) . Pero el tiempo de entrenamiento aumentará significativamente si preservamos las palabras menos de 5 para una corpus grande (alcanzaríamos el límite superior de incluso ejecutar esto en una máquina con 256 GB ( manteniendo el espacio de intercambio bajo ), que es aproximadamente alrededor de 80 millones de vectores únicos )
- Binario: genera un archivo vectorial en binario en lugar de texto ( preferiblemente para evitar la pérdida de conversión de coma flotante al leerlo de nuevo en la memoria )
Si el corpus que estamos generando vectores para nosotros es pequeño (<200K vocabulario), entonces vale la pena agregar wiki francés, por ejemplo, como un corpus adicional en el entrenamiento: la calidad del vector sería mejor.
Por último, una opción diferente a considerar especialmente si las palabras en francés tienen mucha estructura interna que word2vec no capturará, o su corpus tiene palabras raras (el entrenamiento de word2vec puede no tener suficiente contexto para generar buenos vectores, ya que Fastext genera palabras a partir de caracteres n gramos) es probable que las palabras raras obtengan mejores vectores de palabras) es usar Fasttext. Es muy similar en los parámetros de entrenamiento a word2vec ( de hecho, es exactamente word2vec en el caso límite de la elección de un hiperparámetro – min-count == Vocab ). La semana pasada ( 6 de marzo de 2017 ) se lanzó un archivo vectorial pre-entrenado con 1.152.449 palabras únicas. facebookresearch / fastText. Vale la pena considerarlo como una opción. Enriquecimiento de vectores de palabras con información de subpalabras