Supongo que todo el mundo estará enterado de lo que hizo Shannon en 1948: generar texto automático usando cadenas de Markov (el que no, que mire esto).
El que no, que eche un vistazo a esto otro para ver cómo una extensión de la idea original permite simular posibles trayectorias de huracanes.
Hoy, embeddings. Esto va de reducir la dimensionalidad de un espacio generado por palabras (procedentes de textos). Si a cada palabra le asignamos un vector índice (todo ceros y un uno donde le corresponde), la dimensión del espacio de palabras es excesiva.
La ocurrencia de algunos es asociar a cada palabra, $latex W_i$, un vector $latex w_i$ corto (p.e., 100) con entradas $latex w_{ij}$ a determinar de la manera que se explica a continuación.
Inspirado en esto construí
usando como texto el Quijote y como código una versión mucho más simple y limpia que (aunque inspirado en) la del enlace original:
library(stringr) library(plyr) library(ggplot2) raw <- readLines("http://www.gutenberg.org/cache/epub/2000/pg2000.txt") # limpieza de encabezamientos textfile <- raw[-(1:36)] textfile <- text[1:which(text == "Fin")] # en una única cadena textfile <- paste(textfile, collapse= " ") # limpieza textfile <- str_to_lower(textfile) textfile <- str_replace_all(textfile, "[[:punct:]]|[[:digit:]]", " ") # selección de palabras words <- unique(unlist(str_split(textfile, " "))) words <- words[words !
Algunos usuarios del paquete pxR han avisado de un error de implementación. Según las especificaciones del formato de datos PC-Axis, las líneas de ese tipo de ficheros acaban en punto y coma (y no necesariamente en un salto de línea).
Así que era natural leer los ficheros íntegramente, concatenar sus líneas físicas y luego partirlas usando strsplit para obtener las líneas lógicas.
Sin embargo, ciertos ficheros contienen descripciones (entrecomilladas) que contienen puntos y comas.