Tokenización en NLP
La tokenización, es uno de los primeros procesos necesarios en cualquier tarea de Procesamiento de Lenguaje Natural y consiste en la generación de tokens, o entidades individuales, para su análisis posterior. En general los tokenizadores para los lenguajes occidentales utilizan 2 tipos de separadores: espacios y puntuación.
Existen diferentes reglas para tokenizar, dependiendo de lo que queremos hacer, por ejemplo una tokenización sencilla es separar las palabras y que no importe la puntuación.
\s+
Para tener la puntuación aparte podemos utilizar otras expresiones como:
\w+|\S+
Podedmos hacer uno que separe incluso los dígitos cuando encuentre cualquier tipo de símbolo:
\w+|[^\w\s]+
Existen otros tipos de tokenizadores que sirven para aplicaciones específicas, con énfasis en fechas, monedas, palabras con apóstrofes, palabras con guiones, existen entidades que son una sola unidad como “Los Angeles” o expresiones de uso común como “coup d’état”
En general para este tipo de aplicaciones, lo usual es tener diccionarios que preprocesen el texto o generar bibliotecas de expresiones regulares que de alguna manera generen entidades (por ejemplo con guiones) previo a tokenizar.
Bibliografía relevante
- Jurafsky, Dan. Speech and Language Processing, 2nd Edition. NJ: Pearson, 2009. Book.
- Jackson, Peter. Natural Language Processing for Online Applications. PHL: John Benjamins Publishing Company, 2007. Book.
- Mitkov, Ruslan. The Oxford Handbook of Computational Linguistics. Oxford University Press, 2009. Book.
- Webster, Jonathan., Kit, Chunyu. 1992. Tokenization as the initial phase in NLP. City Polytechnic of Hong Kong.
- The Curse of “Intelligent” Tokenization. LingPipe Blog. 26 June 2008.