Snowball es un pequeño lenguaje de programación para el procesamiento de cadenas diseñado para crear algoritmos de lematización para su uso en la recuperación de información . [ 1 ]
El nombre Snowball fue elegido como un homenaje al lenguaje de programación SNOBOL , "con el que comparte el concepto de patrones de cadena que entregan señales que se utilizan para controlar el flujo del programa". [ 2 ] El creador de Snowball, el Dr. Martin Porter , "jugó con la idea de llamarlo 'strippergram'", porque "efectivamente proporciona una 'GRAMÁTICA STRIPPER con sufijo'". [ 1 ]
El compilador Snowball traduce un script de Snowball (un archivo .sbl) a un programa en ANSI C , Java , Ada, C#, Go, JavaScript , Object Pascal , Python o Rust, con seguridad para subprocesos . [ 3 ] [ 4 ] Para ANSI C, cada script de Snowball produce un archivo de programa y un archivo de cabecera correspondiente (con extensiones .c y .h). [ 3 ] El compilador Snowball comprueba la coherencia de su script, y esta comprobación se utilizó para descubrir un error tipográfico en un artículo académico fundamental de Lovins que había permanecido sin detectar durante 30 años. [ 5 ]
Los tipos de datos básicos que maneja Snowball son cadenas de caracteres, enteros con signo y valores booleanos , o simplemente cadenas, enteros y booleanos. Los caracteres de Snowball son de 8 o 16 bits, según el modo de uso. En particular, se admiten tanto ASCII como Unicode de 16 bits . [ 2 ] Al igual que el lenguaje de programación SNOBOL , el flujo de control en Snowball se organiza mediante el uso implícito de señales (cada instrucción devuelve un valor verdadero o falso), en lugar del uso explícito de construcciones como if, then y break que se encuentran en C y muchos otros lenguajes de programación. [ 2 ]
Aunque el sitio web original de Snowball, mantenido por el Dr. Martin Porter y su colega Richard Boulton, cerró en 2014 tras la jubilación del Dr. Porter, [ 1 ] [ 4 ] [ 6 ] el sitio sigue siendo accesible y el lenguaje continúa desarrollándose como un proyecto comunitario en GitHub . [ 1 ] [ 4 ] Además, grandes proyectos como el Natural Language Toolkit (NLTK) para Python emplean Snowball junto con algoritmos de lematización diseñados por el Dr. Porter y otros colaboradores del lenguaje Snowball. [ 7 ] [ 8 ]
Referencias
- 1 2 3 4 "Snowball" , Martin Porter, página web. Consultado el 2 de septiembre de 2014.
- 1 2 3 "Manual de Snowball" , Martin Porter, página web. Consultado el 2 de septiembre de 2014.
- 1 2 Porter, Martin. "Snowball: Introducción rápida" . Recuperado el 4 de mayo de 2025 .
- 1 2 3 "Snowball README" . 27 de marzo de 2025. Consultado el 4 de mayo de 2025 .
- ↑ Martin Porter (diciembre de 2001). "Lovins revisitado" . snowball.tartarus.org . Consultado el 6 de agosto de 2024 .
- ↑ Porter, Martin. "Snowball - Créditos" . Consultado el 4 de mayo de 2025 .
- ↑ "Documentación de nltk.stem.SnowballStemmer" . Natural Language Toolkit . Consultado el 4 de mayo de 2025 .
- ↑ "Código fuente para nltk.stem.snowball" . Natural Language Toolkit . Consultado el 4 de mayo de 2025 .
Enlaces externos
- Sitio web oficial
- Proyecto de lenguaje y algoritmos de Snowball Stemming en GitHub
- Porter Stemmer en Snowball
- Lenguajes de programación experimentales
- Lenguajes de programación orientados a texto
- Familia de lenguajes de programación SNOBOL
- Temas básicos de lenguajes de programación