Nlp

¿Dónde están aquellos caballeros andantes?

Pues precedidos del mi favorito de todos ellos, Felixmarte de Hircania, el del desnudo brazo, en

felixmarte

dentro del texto del Quijote. El código para obtener el gráfico anterior es

library(qdap)

quijote.raw <- readLines("http://www.gutenberg.org/cache/epub/2000/pg2000.txt",
    encoding = "utf8")

# es posible que necesites esto en Windows:
quijote <- iconv(quijote.raw, from = "utf8", to = "latin1")

quijote <- quijote[-(1:36)]
quijote <- quijote[-(37453:length(quijote))]

dispersion_plot(quijote, c("felixmarte", "amadís",
    "leandís", "bencimarte", "palmerín",
    "olivante", "tirante", "belianís",
    "gironcilio", "lisuarte", "esplandián",
    "roldán", "rodamonte", "florimorte", "platir",                            "tablante"))

Tenéis permiso mío para buscar otros términos en otros textos y ver qué pinta tiene la distribución.

"Lengua y Markov" en MartinaCocina este sábado

Hija de la improvisación de hace un ratico, habrá mañana sábado día 4 (de 2014), a las 19:00 una reunión de gente poco cabal en MartinaCocina para discutir asuntos relacionados con el análisis de textos (y en una vertiente más lúdica, la generación de textos) usando cadenas de Markov.

Nos juntaremos, entre otros, los autores del Escritor Exemplar (uno de los cuales es quien suscribe) y el de Markov Desencadenado.

markov_desencadenado

La complejidad de la ley

El otro día publiqué código para bajar el BOE completo. Pero no conté qué me llevó a escribirlo.

El motivo es que, en un tiempo en que andaba menos ocupado que ahora, quise ver si se podía medir la complejidad de la ley. En realidad, la de los textos legales. ¿Debería haber motivo para que estos sean más impenetrables —de serlo— que un manual de Python? En eso consistía ese proyecto en el que acabé no embarcándome.

El escritor exemplar

Nlp, R

El escritor exemplar es un experimento de escritura automática realizado por Molino de Ideas sobre una idea de Mario Tascón y con la colaboración de Carlos J. Gil Bellosta en conmemoración por los 400 años de la publicación de Las Novelas Ejemplares.

Eso reza el pie de página de El escritor exemplar un artilugio que a veces crea frases tales como

escritor_exemplar

que debieran ser aleatorias, no muy distintas en estilo de las Novelas Ejemplares y, con muchísima suerte, inspiradoras.

Palabras y pelas: un ejercicio apenas incoado

Nos encantan las palabras (¡y los mapas, pero esa es otra historia!). En estos días de tanto discurso hay mucho interés por examinar con lupa qué palabras dijo quién y cuándo en una exégesis cuantitativa y (¿tal vez por eso?) falta de calado.

Porque lo que dijo este o aquel, al fin y al cabo, no deja de ser predecible y poco interesante. Rara vez se dice nada que lo sea en horario de máxima audiencia y en fechas tan señaladas.

Mi charla sobre un lematizador probabilístico con R (vídeo y diapositivas)

Nlp, R

Acabo de subir a mi servidor las diapositivas de la charla describiendo un lematizador desambiguado que anuncié el otro día. Gracias a Carlos Ortega y Pedro Concejero, el vídeo de la charla está disponible en Vímeo. Por su parte, las transparencias pueden descargarse aquí.

Quiero agradecer a los asistentes a la charla su interés y, muy particularmente, su participación en el debate que se abrió al final de la sesión. Fue muy enriquecedor.

Charla: un lematizador probabilístico con R

El jueves 16 de mayo hablaré en el Grupo de Interés Local de Madrid de R sobre lematizadores probabilísticos.

Hablaré sobre el proceso de lematizacion y trataré de mostrar su importancia dentro del mundo del llamado procesamiento del lenguaje natural (NLP). La lematización es un proceso humilde dentro del NLP del que apenas nadie habla: su ejercicio solo ha hecho famoso a Martin Porter. Lo eclipsan otras aplicaciones más vistosas, como el siempre sobrevalorado análisis del sentimiento. Sin embargo, es una pieza fundamental que subyace (o debería subyacer) en cualquier aplicación seria que analice textos.

MapReduce con mincedmeat

Hace unos días implementé un proceso MapReduce usando mincedmeat, un pequeño entorno en Python para desarrollar este tipo de procesos distribuidos. El código y los datos pueden descargarse de este enlace.

Los datos de partida están en 249 ficheros de unos 25kb que contienen filas del tipo

journals/algorithmica/HarelS98:::David Harel::Meir Sardas:::An Algorithm for Straight-Line of Planar Graphs

es decir, publicación, autor (o autores) separados por :: y título de la publicación. Los tres campos están separados por :::.

Limpieza de cartera: tres artículos

Estoy limpiando mi cartera y antes de mandar unos cuantos legajos al archivador (o al contenedor de reciclaje) quiero dejar nota de sus contenidos para referencia mía y, quién sabe, si inspiración de otros.

El primer artículo es Tackling the Poor Assumptions of Naive Bayes Text Classifiers. Tiene esencialmente dos partes. La primera analiza críticamente el método de clasificación bayesiano ingenuo (naive Bayes) en el contexto de la minería de textos identificando una serie de deficiencias. En la segunda parte, los autores proponen una serie de modificaciones ad hoc para crear un algoritmo de clasificación mejorado.