[MUSIC] A continuación, veremos una evolución de la bolsa de palabras y del modelo TF-IDF. El cual habíamos dicho que el principal problema era que perdía el contexto. Bueno, Word2Vec lo que trata de solucionar es, tomando las ventajas que tenían estos modelos. Solucionar esto que se presentaba en estos modelos. Y la idea central que hay detrás de esto es que el significado de una palabra puede inferirse mediante las palabras que lo rodean. Sería como el análogo al dicho muéstrame a tus amigos y te diré quién eres. Entonces, lo que quiere decir es que si nosotros tomamos las palabras que rodean a una palabra. Y la incluímos en el cálculo que vamos a hacer para asignarle un valor en nuestro vector. Y obtenemos [COUGH] resultados similares. Quiere decir que la palabra que estamos evaluando en distintos contextos, debería ser similar. Por ejemplo, conmocionado, horrorizado y asombrado, generalmente están en contextos similares y representan cosas muy parecidas. Bueno, este es el secreto del Word2Vec, es tomar el contexto, evaluar el contexto, ¿you? No palabras unicas sino contexto, y con eso tratar de entender mejor el texto. Bien, para esto utilizamos de la librería gensim, pipinstall gensim, si no lo tenemos instalado en Word2Vec. Trabajamos con Pandas y el PrettyPrinter y los warnings. Bien, acá lo que tenemos que hacer y lo que nos vamos a enfocar son los parámetros. Que le tenemos que pasar a nuestro método Word2Vec. Bien, al margen de pasar el conjunto de palabras, que es el primer parámetro que le estamos dando. Sentences, que es el texto a procesar. Vamos a tenerle que pasar el size, que es el número de dimensiones o embeddings que vamos a tener. Por defecto es 100 la longitud. Después, ¿cuál es la máxima ventana de palabras que vamos a ver que rodean a cada una de las palabras? ¿Cuál es el conjunto de palabras que vamos a trabajar? En este caso por defecto es cinco, y también acá tenemos cuáles son las palabras que vamos a dejar fuera del documento. Palabras que tienen muy poca inferencia las podemos dejar fuera. Para esto tenemos el min_count, y ese es un valor de cinco. Con lo cual, acá tenemos, cuál es el array máximo que queremos tener. El conjunto, la ventana, o sea cuantas palabras queremos tener alrededor. Y cuáles palabras queremos dejar afuera. Por último, tenemos los workers que es la cantidad de procesos en paralelo con los cuales queremos trabajar. Y seguido a esto, el método del algoritmo a trabajar, bag of word. Continuity bag of word, lo que habíamos visto pero como si fuera algo cíclico, que es el modelo por defecto. Una vez entendido cuáles son los parámetros que se les pasan y para qué sirve cada uno de ellos, vamos a hacer un ejemplo. El ejemplo que vamos a hacer es obtener un catalogador de review de vinos. El documento que hemos trabajado se puede obtener desde esta URL. Una vez abajo, lo vamos a levantar en Pandas, vamos a borrar el ID. De ese documento que no tiene ninguna importancia para nosotros, y vamos a consultar lo que tenemos. Acá tenemos el conjunto de palabras con el cual tenemos que trabajar. [MUSIC] Bien, una vez llegado eso, vamos a empezar a trabajar con este data frame. Para llevarlo a un modelo que pueda ser procesado en nuestro Word2Vec. El primer punto de lo que vamos a hacer y lo que estamos viendo acá en el nuevo data frame. Merge es generando un string que representa todas las columnas que tenemos acá, separado por coma. Seguido a esto, generamos el data frame con una sola columna que es text. Y lo que tenemos acá, es todos los textos que teníamos acá separados por columnas, separados por coma, y que sea un único texto. Bien, a partir de ahora vamos a generar nuestro vector. Generamos el split por la coma, lo que teníamos acá. Y a partir de ahí, generamos ese texto y generamos línea, y hacemos todo nuestro palabra por palabra que tenemos ahí. Una vez que obtenemos esto, generamos cada una de las oraciones y configuramos nuestro Word2Vec. Fíjense que lo que hicimos fue todo nuestro texto generar líneas. Es decir, como veníamos viendo hasta este momento eran las filas, tenemos nuestro array. Word2Vec you lo relacionó, you generó el contexto con la cantidad de palabras que queremos que tenga, tres, longitud del array es 50. La cantidad mínima de palabras, no descartamos ninguna, las pusimos a todas. Y le dimos cinco threads en paralelo con los cuales queríamos trabajar. Una vez resuelto esto, vamos a ver cómo se trabaja con esto. you tenemos nuestro Word2Vec. Ahora lo que vamos a hacer es trabajar y hacer consultas directamente. Podemos ver cuáles son los vinos parecidos. Entonces, le ponemos dos nombres de vinos, y le decimos cuán parecidos son estos dos vinos. Y acá vamos a tener que son similares casi en un 80% de similitud. ¿Qué hizo el Word2Vec? Evaluó esto, generó su modelo, y ahora como tiene contexto al ponerle las palabras de dos vinos. Que son dos vinos totalmente distintos los nombres pero evalúa su contexto, puede sacar cuán similares son esos vinos. Porque al ponerlo todo en una linea continua, estamos viendo que se pueden parecer y vamos a tener las caracteristicas. Propias de cada uno de los vinos. Bueno, esto lo podemos comparar y vemos acá lo que nosotros nos dio en un 0.79 de similitud. Vemos cuán parecido es y si vemos estos dos registros del data frame. Vemos que tienen bastante, bastante similares en sus principales características. Aunque sean vinos de países diferentes. Después podemos hacer otro tipo de consultas. Por ejemplo, ¿cuáles son los vinos más similares? En este caso, los 10 primeros vinos más similares a uno determinado, y acá obtenemos nuestro resultado. Tenemos los vinos, los nombres de los vinos y cuán similares son al anterior. Esto también podemos salvarlo como habíamos visto en el ejemplo anterior. Generar nuestro, pero directamente acá you tiene un método, donde dice salvarlo. Y you entrenamos y salvamos. A partir de ahora, podemos generar, después cargamos y hacerle distintas preguntas. Si hacemos la misma pregunta antes de haberlo salvado. Y después de haberlo salvado y levantarlo de vuelta sobre este vino, nos va a dar el resultado similares. Por lo cuales acá vemos lo poderoso que es el Word2Vec para hacerle consultas a un conjunto de documentos y cuáles son los registros. O en este caso, los vinos que se parecen más, cuáles son más similares, menos similares. Y esta es una primera forma de aproximarnos a modelos sofisticados de ciencia de datos de aprendizaje automático. Con esto, damos por finalizado este ejercicio, muchas gracias. [MUSIC]