[go: up one dir, main page]

0% encontró este documento útil (0 votos)
36 vistas11 páginas

1 03 Introduccion Al PLN

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
36 vistas11 páginas

1 03 Introduccion Al PLN

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 11

30 /0 8 /2 0 2 5

Introducción al
Procesamiento del
Lenguaje Natural
Conceptos, bibliotecas y tareas
básicas de preprocesamiento
Jaime Alberto Guzmán Luna, Ph.D

Se revisan los conceptos fundamentales de cómo las máquinas comprenden y


procesan el lenguaje humano a través de la inteligencia artificial y la lingüística
computacional.

Contenido del Curso

Introducción al PLN
Fundamentos, conceptos básicos y relevancia actual

Términos asociados al lenguaje


Conceptos lingüísticos fundamentales

Bibliotecas comunes
Herramientas y frameworks para implementación 1

Tareas básicas de preprocesamiento en PLN


Procesos fundamentales para el análisis de textos
30 /0 8 /2 0 2 5

Fundamentos del Procesamiento del Lenguaje Natural


El procesamiento de lenguaje natural (PLN) estudia la
interacción humano-computador, combinando técnicas de
inteligencia artificial y lingüística.
Se considera "natural" a los idiomas de uso común (español,
inglés, etc.) en contraposición a los lenguajes creados
artificialmente para las máquinas.
El PLN trabaja en distintas fases:
• Identificación y conteo de palabras
• Análisis de relevancia léxica
• Comprensión semántica contextual ML=Machine learning, DL=Deep Learning, NLU=Natural Language
Understanding (lectura de lenguaje), NLG=Natural Language
• Análisis de sentimientos Generation (generación de lenguaje)

• Modelos de Lenguajes
La mayoría de la información mundial se encuentra en datos no estructurados (documentos, manuales,
informes, artículos), difíciles de procesar automáticamente.

Desafíos en el Procesamiento
del Lenguaje Natural
El procesamiento del lenguaje natural, en su forma más simple, busca
que un sistema comprenda el lenguaje humano y lo procese como lo
haría una persona. Sin embargo, presenta diversos desafíos:
Ambigüedad a nivel de palabras Ambigüedad a nivel de oración
Una misma palabra puede tener Una misma estructura sintáctica
múltiples significados según el puede interpretarse de diferentes
contexto. maneras.

Comunicación implícita
En conversaciones normales, mucha información se transmite mediante
señales no verbales o queda implícita, algo que las máquinas no captan 2
fácilmente.
30 /0 8 /2 0 2 5

Conceptos Lingüísticos Fundamentales para el PLN

Sintaxis
Estudio de las relaciones estructurales
Fonética/Fonología entre palabras en una oración.
Estudio de los sonidos lingüísticos y
sus relaciones con las palabras escritas.
Morfología
Estudio de las estructuras internas
de las palabras y su composición.

Semántica Pragmática
Estudio del significado de las Análisis de oraciones y cómo se usan Discurso
palabras y cómo se combinan para en diferentes situaciones. Estudia Examina el significado de la oración en
formar el significado de las oraciones. cómo su significado cambia según el relación a otras oraciones en el texto o
contexto. párrafo del mismo documento (contexto).

Bibliotecas Tradicionales para PLN


NLTK (Natural spaCy Gensim
Language Toolkit) Biblioteca moderna Especializada en modelado
Biblioteca Python diseñada para uso en de temas y análisis
fundamental para el PLN producción y aplicaciones semántico de documentos.
académico y educativo. industriales. Destaca por Ideal para trabajar con
Ofrece herramientas para su velocidad, eficiencia y grandes corpus textuales.
clasificación, tokenización, facilidad de uso. • Implementaciones
stemming, etiquetado, • Rápida y optimizada eficientes de word2vec,
parsing y razonamiento para entornos doc2vec
semántico. profesionales • Optimizada para
• Excelente para • Modelos pre- grandes volúmenes de
aprendizaje y entrenados de alta datos
experimentación calidad 3
• Excelente para
• Amplia documentación • API intuitiva y consistente búsqueda semántica y
y ejemplos
recomendaciones
• Puede ser más lenta
para aplicaciones en
producción

Estas bibliotecas constituyen el núcleo de herramientas para implementar soluciones de PLN en español y otros idiomas.
30 /0 8 /2 0 2 5

Tareas básicas de procesamiento de texto


A continuación se explora las operaciones fundamentales que permiten transformar texto bruto en datos estructurados para su análisis.

Preprocesamiento de Texto
El preprocesamiento es el primer paso crítico para preparar los datos textuales para su análisis.
Consiste en transformar el texto bruto en un formato más adecuado para el procesamiento automático.

Normalización del texto Corrección ortográfica (opcional)


• Conversión a minúsculas: • Detectar y corregir errores de
Facilita la comparación y reduce escritura.
la dimensionalidad. • Especialmente útil en textos
• Eliminación de signos de escritos por humanos
puntuación: Evita que afecten el (comentarios, redes sociales).
análisis si no son relevantes.
• Eliminación de caracteres Expresiones Regulares
especiales: Como emojis,
símbolos, etc. • Las expresiones regulares, o "regex", son una herramienta para filtrar y
y ordenar texto cuando se busca encontrar patrones en lugar de uno o
varios strings predefinidos. Útil en tareas de preprocesamiento. 4
Eliminación de números (opcional) • Librería Python: import re
• En algunos contextos analíticos, Importancia: Un preprocesamiento adecuado puede
los números no son relevantes. mejorar significativamente la precisión de los modelos de
• Depende del objetivo del análisis: PLN al reducir el ruido y la variabilidad innecesaria en
crucial para análisis financiero, los datos.
prescindible para análisis literario.
El preprocesamiento debe adaptarse a cada tarea específica
y al idioma de trabajo.
30 /0 8 /2 0 2 5

Preprocesamiento de Texto
El preprocesamiento es el primer paso crítico para preparar los datos textuales para su análisis.
Consiste en transformar el texto bruto en un formato más adecuado para el procesamiento automático.

Normalización del texto Corrección ortográfica (opcional)


• Conversión a minúsculas: • Detectar y corregir errores de
Facilita la comparación y reduce escritura.
la dimensionalidad. • Especialmente útil en textos
• Eliminación de signos de escritos por humanos
puntuación: Evita que afecten el (comentarios, redes sociales).
análisis si no son relevantes.
• Eliminación de caracteres
especiales: Como emojis,
símbolos, etc.
Importancia: Un preprocesamiento adecuado puede
mejorar significativamente la precisión de los modelos de
Eliminación de números (opcional) PLN al reducir el ruido y la variabilidad innecesaria en
los datos.
• En algunos contextos analíticos,
los números no son relevantes.
• Depende del objetivo del análisis: El preprocesamiento debe adaptarse a cada tarea específica
crucial para análisis financiero, y al idioma de trabajo.
prescindible para análisis literario.

Tokenización: Dividiendo el Texto en Unidades


La tokenización consiste en dividir el texto en frases, palabras o En el ejemplo: "La casa es grande
partes más pequeñas llamadas "tokens", que servirán como y bonita", la frase es segmentada
unidades básicas para el análisis posterior. en seis tokens, utilizando el
Métodos de tokenización espacio en blanco como
delimitador.
Tokenización basada en Tokenización basada en reglas
espacios
Utiliza reglas predefinidas,
Divide el texto utilizando los como puntuación y espacios,
espacios en blanco como para segmentar el texto. Este
delimitadores. Es simple y En la tokenización se
método puede ser ajustado
rápida, pero puede ser contabilizan las repeticiones:
para manejar contracciones y
ineficaz para lenguajes sin la palabra "la" que aparece
otros casos especiales. 5
espacios claros entre dos veces se contabiliza en
palabras, como el chino. ambas ocasiones.

Tokenización basada en aprendizaje automático


Utiliza modelos entrenados para identificar los límites de los tokens.
Es más flexible y puede manejar casos complejos, pero requiere
más recursos computacionales.
30 /0 8 /2 0 2 5

Desafíos en la Tokenización
La tokenización puede parecer una tarea sencilla, pero presenta retos significativos en ciertos idiomas y
contextos lingüísticos particulares.
Lenguas aglutinantes
Una lengua aglutinante es aquella en la
que las palabras se forman uniendo
monemas independientes. En estos
idiomas, los espacios en blanco o la
puntuación no son suficientes para una
tokenización efectiva.

Ejemplo en turco:
"Evlerimden" = "ev-ler-im-den" (de mis casas)

Idiomas sin espacios Soluciones avanzadas


Algunos idiomas como el chino o • Tokenizadores específicos por idioma: Diseñados para
japonés no utilizan espacios para manejar las particularidades de cada lengua.
separar palabras, lo que complica • Tokenización subléxica: Divide las palabras en unidades
enormemente la tokenización basada más pequeñas (subpalabras o caracteres).
en espacios. • Tokenización basada en modelos: Utiliza modelos de
aprendizaje profundo para identificar límites de palabras
en contextos complejos.

Tokenización en Acción con NLTK


Instalación de NLTK
import nltk
nltk.download('punkt_tab') pip install -U nltk
nltk.download('punkt')
# Definir un texto y luego tokenizarlo
texto = "No dejaron de ser así. Hasta que el mayor
sintió vehementes deseos de ver á su hermano. Resultados
Entonces ordenó á su visir que partiese y volviese
con él. El visir contestó Escucho y obedezco."
Primera oración:
#Dividir en oraciones
from nltk import sent_tokenize No dejaron de ser así.
frases = sent_tokenize(texto)
print (frases[0])
#Dividir en palabras (tokenizar) Primeros 20 tokens:
from nltk.tokenize import word_tokenize
tokens = word_tokenize(texto) ['No', 'dejaron', 'de', 'ser', 'así', '.', 6
print(tokens[:20]) 'Hasta', 'que', 'el', 'mayor', 'sintió',
'vehementes', 'deseos', 'de', 'ver', 'á',
'su', 'hermano', '.', 'Entonces']

NLTK proporciona herramientas para la tokenización tanto a nivel de oraciones como de palabras,
adaptándose a las particularidades del español y otros idiomas.
30 /0 8 /2 0 2 5

Stopwords: Filtrando Palabras Vacías


Un paso fundamental en el procesamiento de texto es eliminar las Ejemplos en español
palabras vacías o stopwords. Estas palabras dependen de cada
idioma y son aquellas que no aportan un significado importante,
además de ser muy comunes.

¿Por qué eliminar stopwords?


Eliminar las stopwords permite a los algoritmos centrarse en el
análisis de las palabras con mayor carga semántica, mejorando la
Frase original:
eficiencia y precisión.
"El procesamiento del lenguaje
Tipos de stopwords natural es una disciplina fascinante"
En este grupo se incluyen principalmente: Sin stopwords:
• Pronombres: yo, tú, él, nosotros... "procesamiento lenguaje natural
• Artículos: el, la, los, las, un, una... disciplina fascinante"
• Conjunciones: y, o, pero, aunque...
• Preposiciones: a, ante, bajo, con, de... Observe cómo se mantiene el significado
• Verbos auxiliares: he, ha, hemos, han... esencial mientras se reduce la cantidad de
palabras.

Importancia de las Stopwords en el PLN


Reducción de Ruido Eficiencia Computacional Mejora de Resultados
Elimina palabras que no Disminuye el tamaño del corpus Al enfocar el análisis en palabras
contribuyen significativamente al a procesar, lo que mejora la más relevantes, se optimizan
contenido del texto, mejorando la velocidad y reduce los requisitos tareas como la clasificación de
precisión de los algoritmos de de memoria de los algoritmos, documentos, la extracción de
PLN al reducir elementos que especialmente importante en entidades y el análisis de
podrían distorsionar el análisis. grandes volúmenes de datos. sentimientos.

Impacto en aplicaciones prácticas


Clasificación de textos Motores de búsqueda Análisis de sentimientos 7

Aumenta la precisión al reducir el Mejora la relevancia de los Facilita la identificación de palabras


ruido y centrar el análisis en las resultados al ignorar palabras clave emocionales, proporcionando
palabras más discriminativas y comunes que no aportan valor resultados más precisos sobre la
relevantes para cada categoría. informativo a la consulta. polaridad del texto.
30 /0 8 /2 0 2 5

Eliminando Stopwords con NLTK


Usando listas predefinidas

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
nltk.download('punkt')
nltk.download('stopwords')
texto = "El curso de procesamiento de lenguaje
natural es todo un mundo y es útil en muchas
aplicaciones de la vida real."
stop_words = set(stopwords.words('spanish'))
palabras = word_tokenize(texto)
palabras_filtradas = [palabra for palabra in Beneficios de este enfoque
palabras if palabra.lower() not in stop_words]
print(palabras_filtradas) • Utiliza listas curadas de stopwords para el español
• Rápido y fácil de implementar
• Altamente efectivo para la mayoría de aplicaciones
Resultado:
NLTK proporciona listas de stopwords para múltiples
['curso', 'procesamiento', 'lenguaje', 'natural', 'mundo’,
idiomas, incluyendo una lista extensa para el español
'útil', 'muchas', 'aplicaciones', 'vida', 'real', '.']
que contiene artículos, preposiciones, conjunciones y
otros términos de alta frecuencia y bajo valor
semántico.

Eliminación de Stopwords por Frecuencia


Enfoque basado en frecuencia Ventajas del enfoque por frecuencia
Una alternativa a las listas predefinidas es identificar
stopwords mediante análisis de frecuencia, Adaptabilidad
eliminando palabras que aparecen demasiado o muy Se ajusta automáticamente al dominio específico
poco en el corpus. del corpus.
import nltk
from nltk.tokenize import word_tokenize No requiere listas predefinidas
from collections import Counter
texto = "El curso de procesamiento de Funciona en cualquier idioma sin necesidad de
lenguaje natural es todo un mundo y es recursos lingüísticos externos.
útil en muchas aplicaciones de la vida
real."
palabras = word_tokenize(texto) Personalización
frecuencia = Counter(palabras)
palabras_filtradas = [palabra for palabra
Permite ajustar umbrales de frecuencia según las
in palabras if frecuencia[palabra] < 3]
necesidades del proyecto.
8
print(palabras_filtradas)

Resultado:
['El', 'curso', 'procesamiento', 'lenguaje', 'natural', En este ejemplo, solo se eliminan palabras que
'es', 'todo', 'un', 'mundo', 'y', 'es', 'útil', 'en', aparecen 3 o más veces, lo que resulta en menos
'muchas', 'aplicaciones', 'la', 'vida', 'real', '.'] palabras filtradas que con la lista predefinida.
30 /0 8 /2 0 2 5

Stemming y Lematización: Reduciendo a la


Forma Base
El stemming y la lematización son técnicas fundamentales en el PLN para reducir las palabras a sus formas base o
raíz, normalizando el texto y mejorando la precisión de los análisis.

Stemming (Derivación) Lematización


Técnica que corta los sufijos de las palabras para Proceso que consiste en encontrar el lema (forma
reducirlas a su raíz morfológica, que puede NO ser una base) a partir de una palabra flexionada (gerundio,
palabra verdadera en el lenguaje. plural, femenino, conjugación, etc.), resultando siempre
en una palabra real del diccionario.
Ejemplo: las palabras "perros", "perrito", "perrote" El lema es la forma que por convenio se acepta como
tienen como raíz "perr" (que no es una palabra real) representante de todas las formas flexionadas de una
misma palabra. Es decir, es la palabra que se
El stemming puede generar ambigüedades al encuentra en el diccionario o enciclopedia.
reducir palabras distintas a la misma raíz. Ejemplos:
• El lema de "hablamos" es "hablar"
• El lema de "peones" es "peón"
• El lema del verbo inglés "flying" es "fly"

La lematización es lingüísticamente más precisa


pero computacionalmente más costosa.

Algoritmos de Stemming y Lematización


Algoritmos de Stemming Lematización con WordNet
Utiliza el diccionario de WordNet para realizar la lematización,
Algoritmo de Porter especialmente efectivo en inglés.
Uno de los más utilizados, desarrollado por Martin
Porter en 1980. Aplica reglas secuenciales para import nltk
eliminar sufijos y obtener la raíz. from nltk.stem import WordNetLemmatizer
from nltk.corpus import wordnet
from nltk.stem import PorterStemmer nltk.download('wordnet')
nltk.download('omw-1.4')
ps = PorterStemmer()
palabras = ["perros", "perrito", "perrote" ] lemmatizer = WordNetLemmatizer()
for palabra in palabras: palabras =
print(ps.stem(palabra)) ["program","programming","programer","programs","programmed"]
for palabra in palabras:
print(lemmatizer.lemmatize(palabra, pos=wordnet.VERB))
Resultado: perro, perrito, perrot
Algoritmo de Snowball Resultado: program, program, programer, program, program
Versión mejorada del algoritmo de Porter que
soporta múltiples idiomas, incluido el español. 9
Las palabras no encontradas en WordNet no se
from nltk.stem import SnowballStemmer
modificarán. Es importante proporcionar el contexto
mediante el parámetro "pos" (part of speech).
ss = SnowballStemmer("spanish") Observe que el lematizador no redujo la palabra
palabras = ["corriendo", "corre", "corrí"] "programer" a "program": esto se debe a que le dijimos al
for palabra in palabras:
print(ss.stem(palabra)) lematizador que sólo redujera la raíz de los verbos.

Resultado: corr, corr, corr


30 /0 8 /2 0 2 5

¡A codificar! Python para el PLN

Python para el Taréas Básicas para Procesamiento de Texto


Librerías

Preguntas

10
30 /0 8 /2 0 2 5

Referencias Bibliográficas
Esta presentación ha sido elaborada a partir de las siguientes fuentes académicas:

Libros de texto fundamentales Recursos complementarios Recursos en español


• Goyal, P., Pandey, S., & Jain,
recomendados • García Díaz, J.A. (2020).
K. (2018). Deep Learning for • Jurafsky, D. & Martin, J.H. Procesamiento del Lenguaje
Natural Language (2021). Speech and Natural para el Español.
Processing: Creating Neural Language Processing. Universidad de Murcia.
Networks with Python. Stanford University. • Valero, M. & Rodríguez, H.
Chapter 1: Introduction to • Manning, C. & Schütze, H. (2018). Procesamiento del
Natural Language Processing (1999). Foundations of Lenguaje Natural:
and Deep Learning. Statistical Natural Language Fundamentos y Aplicaciones.
• Rao, D. & McMahan, B. Processing. MIT Press. Universidad Politécnica de
(2019). Natural Language • Documentación oficial de Cataluña.
Processing with PyTorch: NLTK, spaCy y otras
Build Intelligent Language bibliotecas mencionadas.
Applications Using Deep
Learning. Chapter 2: A Quick
Tour of Traditional NLP.

11

También podría gustarte