UP | HOME |

Un lematizador para español en R

Un lematizador para español en R

Se presenta un diccionario de español y unos lematizadores en R.

O, ¿qué mujer que tiene diez dracmas, si pierde una, no enciende una lámpara y barre la casa y busca cuidadosamente hasta que la encuentra? Y cuando la encuentra, convoca a las amigas y vecinas, y dice: «Alegraos conmigo, porque he hallado la dracma que había perdido.» Del mismo modo, os digo, se produce alegría ante los ángeles de Dios por un solo pecador que se convierta. - Lucas 15, 8 - 10.

Parábola de la moneda perdida, Domenico Fetti.

Un poco de historia

Este trabajo se desarrolló en el año 2011. Por aquella época apenas había nada para lematizar en español. Imagino que después de casi diez años habrá herramientas potentes que realicen esta tarea.

Como labor propia de un enano minero, ha diez años que creé un listado de palabras a partir de documentos bajados del proyecto Gutenberg, del diccionario de espa~nol.dicc Release 1.11 (COES), que cuenta con 63 000 registros, y de contrastarlas con la versión del año 2001 del diccionario de la Real Acadamia de la Lengua Española (DRAE), que a fecha de 2020 cuenta con 93 000 lemas.

Descargue este fichero.

library(data.table)
library(fastmatch)
source("lematizador.R")

head(spmorphemes) # You can modify this list. See http://www.datsi.fi.upm.es/~coes/
head(spdictionary) # You can modify this data.frame with your own words!
head(spcommonwords) # You can modify this data.frame with your own words!

system.time(lematizador("grandullón")) # First time it takes a lot of time (see ?fmatch)
system.time(lematizador("grandullón"))

lematizador( "des" ) # dar
lematizador( "anduve" ) # andar
lematizador( "casitas" ) ## NA : Try  http://www.datanalytics.com/blog/2011/12/13/un-lematizador-para-el-espanol-con-r-¿cutre-¿mejorable/
                         ## Or modify the spdictionary!
lematizador( "comimos" ) # comer
lematizador( "queremos") # querer
lematizador( "patatas" ) # patata

Licencia sobre el lenguaje español

Como todos los años recibo alguna petición o sugerencia sobre este lematizador para R, lo pongo al día. A raíz de una intervención pública en una red social de internet se comentó la necesidad de disponer de un diccionario con las palabras en español en formato libre.

En su momento creé un listado de 55 000 palabras con su correspondiente forma canónica. Identifico como palabra canónica si dicho lema aparece tal cual en el DRAE. Aparecen recogidas en el fichero spdictionary.csv. Este fichero incluye palabras del proyecto Gutenberg, de licencia libre, del diccionario COES, que publicada bajo licencia GNU, pero que a su vez contrastó si las palabras aparecían en el DRAE, e incluye información sobre la clasificación de la palabra. Dado que solo he usado palabras disponibles en documentos de libre acceso, no publico la información adicional de la clasificación, y además, creé y comprobé el listado de palabras canónicas a partir de todas las fuentes de información, creo que no es necesario mantener la licencia GNU, sino que dispongo de la suficiente autoría como para decidir la licencia con que la publico a fecha de hoy: Public Domain.

Respecto a las palabras más frecuentes en español (stop words), el fichero spcommonwords.csv, es de Public Domain, mientras que el spmorphemes.rds, al ser una transformación a R de un fichero del COES, se publica bajo licencia GNU.

Una alternativa es

Un lematizador para el español con R… ¿cutre? ¿mejorable? Carlos J. Gil Bellosta

Agradecimiento

Al muy honrado don J., quien hizo posible la alegría evangélica.