Análisis Lingüístico

Rubén Rodríguez Abril

Con este artículo buscamos ofrecer una breve introducción a los procedimientos de análisis de texto que son la base sobre la que se construye el Procesamiento Natural del Lenguaje, y que servirán de punto de partida para los artículos venideros.

Análisis Linguístico

Por lo general, en los procedimientos de procesado de lenguaje escrito el primer paso a realizar es el de análisis del texto, que como su propio nombre indica, se encarga de descomponer el texto de entrada en otros elementos más pequeños. Estos elementos sirven a su vez de entrada para las fases posteriores del procedimiento, que son las encargadas de extraer la información. Por ejemplo, en los sistemas de traducción automática basados en el aprendizaje profundo, es común que el texto se rompa en palabras o grupos de palabras. Y que estas palabras sean transformadas a su vez en vectores 1-a-N con los que se alimenta la red.

Este análisis del texto puede ser de tres tipos: léxico, morfológico y sintáctico

Análisis Léxico

El análisis léxico consiste en la división de la cadena de entrada en bloques de caracteres denominadas “lexemas” o “tokens”. La definición de lexema que da la ciencia de la computación es ligeramente diferente a la que proporciona la lingüística. En el primero de los casos, es un simple bloque de caracteres al que se atribuye un determinado valor; en el segundo caso, consiste en la unidad mínima con significado léxico que no presenta morfemas gramaticales (por ejemplo, las raíces de los sustantivos; el ‘gat’ de ‘gato’, ‘gata’, ‘gatera’, etc…).

Por lo general, en Procesamiento Natural del Lenguaje (NLP por sus siglas en inglés) estos lexemas suelen equivaler a palabras individuales, separadas entre sí por espacios y signos de puntuación, pero pueden también venir conformados por grupos de palabras denominados n-gramas (bigrama, trigrama, etc.), donde n hace referencia al número de palabras de cada grupo. Como ejemplo de bigramas podemos citar ‘árboles verdes’ o ‘casas blancas’, y entre los trigramas se encontrarían expresiones como ‘las tejas verdes’ o ‘los caballos rápidos’. Cuando estos grupos de palabras se articulan gramaticalmente en torno a un núcleo sintáctico reciben el nombre de sintagmas.

De texto a vector

La división del texto en palabras es realizada por un programa denominado scanner, cuya potencia computacional es similar a la de un autómata de estado finito. El scanner rompe las cadenas de texto en aquellos puntos donde hay delimitadores, que son caracteres que separan a unas palabras de otras, como espacios, puntos o retornos de carro. El resultado es un array de lexemas, que a su vez pueden ser transformados en vectores 1-a-N (one-hot), cuyos componentes son todos nulos salvo uno de ellos, cuyo valor es la unidad.

Cada combinación de lexemas o tokens está asociado a un vector 1-a-N determinado.

Análisis Morfológico

Es usual que en muchos procedimientos de NLP el análisis léxico venga acompañado de un análisis morfológico, en el que a cada lexema se le asigna un valor, una categoría semántica. Así, en los lenguajes naturales (como el español o el francés), las palabras pueden clasificarse en sustantivos, adjetivos o adverbios, entre otros. En los lenguajes de programación, los lexemas se agrupan en palabras clave (for, if, then..), separadores, ({,}) operadores (+, -, <), y demás categorías. El programa que realiza el análisis morfológico se denomina evaluador (evaluator).

Análisis Sintáctico

Denominamos análisis sintáctico a aquel que describe la estructura gramatical interna de una oración, dando como resultado una estructura arborescente denominada “árbol sintáctico”. En el plano de los lenguajes naturales, las palabras de una oración compleja son agrupadas en sintagmas que a su vez se agrupan en oraciones, que pueden estar subordinadas las unas respecto de las otras (‘el país que está situado en el mar cuya costa es…’). En el ámbito de la computación, el análisis sintáctico es realizado por un programa denominado parser y tiene una extraordinaria importancia a la hora de definir estructuras recursivas como funciones, subrutinas, o bucles anidados.

Análisis sintáctico de una fórmula matemática

Supongamos una fórmula matemática como puede ser:

a×(4+b)-tanh(π)

contiene una serie de tokens como pueden ser 4, , tanh o (. A su vez, estos tokens pueden estructurarse por un parser en un árbol sintáctico como es el siguiente:

Sistemas de Aprendizaje Profundo

En el ámbito del aprendizaje profundo, el análisis sintáctico es realizado de un modo implícito por los propios modelos de redes neuronales artificiales (redes neuronales recurrentes, transformadores, etc…). La red únicamente tiene que ser alimentada con arrays de tokens (palabras o n-gramas), y es el propio modelo el que induce la estructura de la oración y realiza a partir de la misma la tarea que se le tiene encomendada (por ejemplo, la traducción a máquina), tal y como veremos en los próximos artículos.

La Máquina Oráculo utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies