Lab05 INF513
Lab05 INF513
Lab05 INF513
Laboratorio 5.
Título: Procesamiento de Lenguaje Natural
Integrantes:
-Eva Gutiérrez, 8-957-1252
-Rodolfo Quintero, 8-954-1902
-Jazmín Sánchez, 8-972-1072
-Jonathan Sánchez, 2-744-554
OBJETIVOS
● Comprender las características del procesamiento y análisis de texto
● Evaluar los parámetros asociados al análisis morfológico y semántico
● Comparar las diferencias de los resultados que se obtienen para el análisis
morfológico y semántico
INTRODUCCIÓN
El Procesamiento del Lenguaje Natural (PLN) es una rama de la Inteligencia Artificial que
se enfoca en la interacción entre las computadoras y el lenguaje humano. Su objetivo es
permitir a las máquinas entender, interpretar y generar texto o discurso de manera similar
a cómo lo haría un ser humano.
Página 1 de 22
identificación de las partes de la oración, como sujeto, verbo, objeto, así como la
construcción de árboles sintácticos para representar la estructura gramatical.
3. Nivel Semántico: El análisis semántico se enfoca en el significado de las palabras y las
oraciones. Busca comprender el sentido de las palabras y cómo se combinan para formar
significados más complejos. Esto implica el uso de diccionarios y recursos léxicos para
establecer relaciones semánticas entre las palabras, como sinónimos, antónimos,
hiperónimos e hipónimos.
4. Nivel Pragmático: El análisis pragmático se refiere al estudio del uso del lenguaje en un
contexto específico. Se ocupa de la interpretación de las intenciones y el significado
implícito en el discurso. Esto implica comprender los aspectos contextuales, la inferencia
de información implícita y el análisis de la coherencia y cohesión del texto.
El análisis semántico se ocupa del significado de las palabras y las oraciones en un texto.
Busca comprender el sentido y la interpretación de las palabras y cómo se combinan para
formar significados más complejos. Utiliza recursos léxicos como diccionarios y tesauros
para establecer relaciones semánticas entre las palabras, como sinónimos, antónimos,
hiperónimos e hipónimos. El análisis semántico es fundamental para la comprensión y
generación de texto con significado.
En el contexto del Procesamiento del Lenguaje Natural, tanto el análisis morfológico como
el análisis semántico son componentes esenciales para comprender y trabajar con el
lenguaje humano. Estos niveles de procesamiento nos permiten descomponer y
comprender la estructura de las palabras, así como asignar significado a las mismas y
establecer relaciones semánticas entre ellas.
Página 2 de 22
Figura 1. Integración conceptual de NLTK con NLP.
Para abordar los problemas relacionados con el Procesamiento del Lenguaje Natural
Python proporciona las siguientes librerías:
Dentro del contexto de NLP o para el desarrollo de modelos que sean utilizado con ese
fin, se requieren estructuras lingüísticas que brinden información adecuada de los
elementos gramaticales o las representaciones simbólicas que permitan tomar las
decisiones adecuadas. Este tipo de datos se obtienen a través de lo que se conoce como
un corpus lingüístico, el cual contiene un conjunto de datos lo suficientemente grande
como para representar la estructura, variedad y complejidad de una lengua concreta. Uno
de los corpus más populares para realizar procesos de entrenamiento es el de Wikipedia.
MATERIALES
● Computador personal o teléfono móvil
● Conexión a internet de banda ancha
EXPERIENCIA
import nltk
from nltk.tokenize import word_tokenize
from nltk.corpus import wordnet
Página 3 de 22
nltk.download('averaged_perceptron_tagger') # Descargar el
etiquetador morfológico
nltk.download('wordnet') # Descargar WordNet para el procesamiento
semántico
return tagged
if synsets:
hypernyms = synsets[0].hypernyms() # Obtener los hiperónimos
del primer synset
hyponyms = synsets[0].hyponyms() # Obtener los hipónimos del
primer synset
return hypernyms, hyponyms
else:
return None
word = "dog"
hypernyms, hyponyms = semantic_processing(word)
if hypernyms and hyponyms:
print("Hypernyms of Example 3", word + ":", hypernyms)
print("Hyponyms of Example 3", word + ":", hyponyms)
else:
print("No synsets found for Example 3", word)
Página 4 de 22
2. Ejecute el script con los parámetros básicos establecidos y los criterios de análisis.
Evalúe los resultados que se obtienen por cada ejemplo con los datos requeridos.
Al ejecutar el script con los parámetros básicos establecidos y los criterios de análisis,
los resultados obtenidos son los siguientes:
Salida:
Página 5 de 22
Synset('pooch.n.01'), Synset('poodle.n.01'), Synset('pug.n.01'),
Synset('puppy.n.01'), Synset('spitz.n.01'), Synset('toy_dog.n.01'),
Synset('working_dog.n.01')]
● En este ejemplo, se realiza el etiquetado morfológico del texto y se realiza el
procesamiento semántico de la palabra "dog". Se obtienen los synsets asociados,
los hiperónimos y los hipónimos.
● Resultado esperado: El texto se tokeniza y se etiqueta morfológicamente. Luego
se encuentran los hiperónimos y los hipónimos de la palabra "dog" en WordNet.
4. Modifique el script con los siguientes hipónimos y explique si los hiperónimos que se
obtienen coinciden con las relaciones establecidas:
Hypernym: Animal
Hyponyms: Dog, Cat, Elephant, Lion, Horse
Hypernym: Fruit
Hyponyms: Apple, Banana, Orange, Grape, Pear
Hypernym: Vehicle
Hyponyms: Automobile, Motorcycle, Bicycle, Truck, Bus
Hypernym: Country
Hyponyms: United States, Canada, Mexico, France, China
Página 6 de 22
Hyponyms: Piano, Guitar, Violin, Flute, Drums
Este ejemplo muestra el etiquetado morfológico de las palabras en la oración "The cat
is sitting on the mat.". Cada palabra se muestra junto con su etiqueta POS
(Part-Of-Speech).
Ejemplo 2:
En este ejemplo, se utiliza la palabra "cat" (gato). La salida muestra que el hiperónimo
(hipernym) encontrado para "cat" es "feline" (félido) en la forma de
Synset('feline.n.01'). Además, se encuentran dos hipónimos (hyponyms) para "cat":
"domestic_cat" (gato doméstico) y "wildcat" (gato salvaje).
Ejemplo 3:
En este ejemplo, se utiliza la palabra "dog" (perro). La salida muestra que los
hiperónimos encontrados para "dog" son "canine" (canino) y "domestic_animal"
(animal doméstico). Además, se encuentran varios hipónimos para "dog", como
"basenji", "corgi", "dalmatian", etc.
Ejemplo 4:
Página 7 de 22
En este ejemplo, se utiliza la palabra "apple" (manzana). La salida muestra que los
hiperónimos encontrados para "apple" son "edible_fruit" (fruta comestible) y "pome"
(pomo). Además, se encuentran algunos hipónimos para "apple", como
"cooking_apple" (manzana de cocina), "crab_apple" (manzana silvestre), etc.
Ejemplo 5:
Ejemplo 6:
Ejemplo 7:
En este ejemplo, se utiliza la palabra "piano". La salida muestra que los hiperónimos
encontrados para "piano" son "keyboard_instrument" (instrumento de teclado),
"percussion_instrument" (instrumento de percusión) y "stringed_instrument"
(instrumento de cuerda). Además, se encuentran algunos hipónimos para "piano",
como "grand_piano" (piano de cola), "upright" (piano vertical), etc.
5. Explique de manera detallada cómo funciona el script y analice la forma como se hace
el análisis morfológico y semántico del contenido de referencia. Brinde al menos 2
alternativas (conceptualmente) cómo se podría realizar la misma función para ampliar
la capacidad de análisis del script
Página 8 de 22
palabra en función de su función en la
oración
Página 9 de 22
print("Tagged words Example 1:", etiqueta gramatical.
tagged_words)
Las 2 alternativas para ampliar la capacidad de análisis del script serían las siguientes:
● En lugar de solo etiquetar las palabras, podemos analizar cómo las palabras se
conectan entre sí en una oración. Esto nos ayudaría a entender mejor cómo se
organizan y dependen unas de otras.
● También se puede agregar una función para determinar si un texto o palabras
tienen una connotación positiva, negativa o neutra. Sería como detectar si alguien
está expresando algo bueno, malo o neutral.
Estas alternativas mejorarían bastante el script , ya que ayudaría a que pueda hacer más
cosas en el procesamiento de lenguaje natural. Por un lado, podría entender mejor cómo
las palabras se relacionan y se conectan en una oración, lo que nos daría una idea más
clara de la estructura de la oración. Por otro lado, también podría identificar las emociones
expresadas en el texto, como si es positivo, negativo o neutral. Así, el script sería más
completo y versátil al analizar diferentes aspectos del lenguaje.
Página 10 de 22
6. Explique qué cambios serían necesarios para realizar el mismo tipo de análisis que se
hace con el script actual en inglés para el español. Pruebe las modificaciones
sugeridas e intente repetir el paso 4 usando las palabras en español. Compare los
resultados que se obtuvieron con relación a los que con los datos en inglés se dieron
previamente.
Para realizar el mismo tipo de análisis que se hace con el script actual en inglés para el
español, se necesitaría hacer los siguientes cambios:
Se debe hacer un cambio de la importación de NLTK para que incluya los recursos
específicos para el español. En lugar de import nltk, se puede usar import
nltk.corpus.reader.wordnet as wn para importar el módulo de WordNet en español.
Se debe asegurar de que los nombres de las funciones y las variables sean apropiados
para el análisis en español. Por ejemplo, en lugar de usar morphological_processing, se
podría utilizar procesamiento_morfologico, y así una vez tras otra.
En resumen, para adaptar el script actual al análisis en español, se necesitará cambiar las
importaciones, descargar los recursos adecuados, utilizar tokenizadores y etiquetadores
específicos para el español, y encontrar recursos semánticos en español si están
disponibles.
Página 11 de 22
Página 12 de 22
Salida:
import spacy
Página 13 de 22
texto2 = 'Hoy en día, el procesamiento del lenguaje natural es
ampliamente utilizado en diversas aplicaciones.'
texto3 = 'El libro "Cien años de soledad" fue escrito por Gabriel
García Márquez.'
8. Ejecute el script considerando los valores descritos en el paso 4 solo que en español y
compare los resultados que se obtienen
Página 14 de 22
Página 15 de 22
la salida a este código es:
Página 16 de 22
Página 17 de 22
Para hacer la comparación se puede decir que el código adaptado (problema 8) utiliza
la biblioteca SpaCy para realizar el procesamiento morfológico y semántico de los
textos en español. Identifica entidades específicas como animales, frutas, vehículos,
países e instrumentos musicales.
Mientras que el código del problema 4 utiliza NLTK y WordNet para realizar el
etiquetado morfológico y obtener hiperónimos e hipónimos de las palabras. No
identifica entidades específicas como en el código adaptado.
Página 18 de 22
El avance de la supercomputación y la analítica de datos en campos tan dispares
como las redes sociales o la atención al cliente está fomentando que una parte de la
inteligencia artificial (IA) se enfoque en desarrollar algoritmos capaces de procesar y
generar un lenguaje natural.
Para poder llevar a cabo esta tarea en un contexto como el actual, tener acceso a un
heterogéneo listado de bibliotecas de procesamiento de lenguaje natural es clave para
diseñar soluciones IA eficaces y funcionales de forma ágil. Estos archivos de código
fuente, que se utilizan para desarrollar software, facilitan la programación al
proporcionar funcionalidades comunes, resueltas previamente por otros
desarrolladores, evitando duplicidades y minimizando los errores.
10. Investigue la información que brinda el análisis morfológico y semántico dentro del
marco de procesamiento de lenguaje natural y la importancia que tiene dentro del
proceso global
El análisis morfológico y semántico son fundamentales en el procesamiento del
lenguaje natural (NLP). El análisis morfológico se enfoca en la estructura de las
palabras, mientras que el análisis semántico se centra en su significado.
Página 19 de 22
El análisis morfológico resulta importante en NLP, ya que permite a las computadoras
comprender la estructura de las palabras. Esto es especialmente útil en tareas como
la traducción automática, la generación de texto y el reconocimiento del habla. Por
ejemplo, al analizar la morfología de la palabra "walk", un sistema de traducción
automática puede determinar si se trata de un verbo o un sustantivo, y así lograr una
traducción adecuada en otro idioma.
11. Investigue y proponga (en concepto), qué cambios deberían realizarse para analizar la
similitud entre palabras, frases o documentos como parte del análisis morfológico y
semántico
El análisis de la similitud entre palabras, frases o documentos es una tarea importante
en el procesamiento del lenguaje natural (NLP). Esto permite medir la proximidad o la
relación semántica entre unidades lingüísticas y es útil en aplicaciones como la
búsqueda de información, la agrupación de textos y la detección de plagio.
● Utilizar una base de datos de palabras y sus significados: Esto permitiría a los
sistemas de NLP identificar la similitud entre palabras, incluso si tienen diferentes
ortografías. Por ejemplo, se podría reconocer que "walk" y "walked" son similares,
a pesar de su ortografía distinta.
● Utilizar una red neuronal: El uso de redes neuronales permitiría a los sistemas de
NLP aprender de los datos y mejorar su precisión con el tiempo. Por ejemplo,
podrían aprender a identificar la similitud entre palabras que no están relacionadas
en una base de datos de palabras y sus significados.
https://colab.research.google.com/drive/1--q8UBTFJ0m6KxIFg__aYwI_cTnGgQWu?usp=s
haring
Página 20 de 22
Conclusiones
Eva Gutiérrez:
Para mi fue muy interesante ver cómo se obtuvieron resultados que incluyen el
procesamiento morfológico y semántico de textos. Pude comprender como las librerías
como NLTK y Spacy brindan herramientas para el análisis morfológico y semántico en el
procesamiento de lenguaje natural. Pude investigar cómo estas técnicas son importantes
para comprender la estructura gramatical y el significado de las palabras en un texto. Para
analizar la similitud entre palabras, frases o documentos, se pueden utilizar técnicas como
la comparación de vectores de palabras o modelos de lenguaje pre-entrenados. Esto
permite realizar tareas como la clasificación de textos o la recuperación de información.
Jazmín Sánchez:
Este laboratorio fue de mucha enseñanza, primeramente gracias al script que se
proporcionó pude entender como es el análisis morfológico y semántico, si bien es cierto
estos dos análisis pueden ser algo confuso con los ejemplos pude entenderlos muy bien,
puede ver como tanto el análisis morfológico como el semántico son fundamentales en el
procesamiento del lenguaje natural, y nos permiten comprender y extraer el significado del
texto.
También pudimos ver que para llevar a cabo todo lo anterior es necesario el uso de
bibliotecas y herramientas adecuadas que nos ayuden a llevar a cabo nuestros objetivos.
A primera vez todo se puede ver algo complicado ya que es primera vez que tratamos
este tema, pero gracia a este laboratorio te puso entender de manera fácil como es el
funcionamiento del análisis morfológico y semántico en el procesamiento de lenguaje
natural.
Jonathan Sánchez
En este laboratorio pude ver que existen diversas librerías como Spacy, TextBlob entre
otras que brindan herramientas de procesamiento morfológico semántico de un texto.
Pude comprender que el análisis morfológico se refiere a la estructura de las palabras y el
semántico se refiere a su significado y permite determinar su contexto, estos dos resultan
sumamente importantes en el procesamiento del lenguaje natural. Por otra parte, para
mejorar la similitud entre palabras, frases o documentos se pueden implementar ciertas
herramientas como base de datos de palabras, un modelo de lenguaje o utilizar una red
neuronal lo cual ayudaría a determinar de mejor manera el contexto y estructura de las
palabras.
Rodolfo Quintero:
En este laboratorio pude observar y comprender las diferentes características que posee
tanto el procesamiento y el análisis de texto, como a su vez, los análisis morfológico y
semántico con sus diferentes conceptos, análisis y definiciones de diferentes scripts en
diferentes idiomas para su funcionalidad y formación de aprendizaje y por último, la
importancia y beneficios que presenta el procesamiento del lenguaje natural como por
ejemplo, la interacción humana y máquina de un forma más optimizada, extracción de
información y sus diferentes aplicaciones en diferentes campos como, reconocimiento de
voz, corrección gramatical y búsquedas específicas en internet.
Página 21 de 22
Bibliografía
Leiva, I. G. (1996). El procesamiento del lenguaje natural aplicado al análisis del contenido
de los documentos. Dialnet. https://dialnet.unirioja.es/servlet/articulo?codigo=169971
Página 22 de 22