Está en la página 1de 13

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL

CUSCO

FACULTAD DE INGENIERIA ELÉCTRICA, ELECTRÓNICA,


INFORMÁTICA Y MECÁNICA

Escuela Profesional de Ingeniería de Informática y de


Sistemas

INFORME DE TRABAJO N° 01
“ALGORITMO DE PORTER, ALGORITMO DE
BRILL”

Curso: Procesamiento del Lenguaje Natural


Docente: Ing. Julio César Carbajal Luna

Jordán Díaz, Linford Vitali Aron (121454)

Cusco – Perú
2018
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

INDICE GENERAL

INDICE DE FIGURAS ................................................................................................... ii

I. INFORMACIÓN GENERAL .......................................................................................3


- Objetivos: ......................................................................................................................... 3
- Equipos, materiales, programas y recursos utilizados: ............................................ 3
II. MARCO TEORICO ....................................................................................................3
1. Porter Stemming ............................................................................................................. 3
2. Brill .................................................................................................................................... 5
III. PROCEDIMIENTO .................................................................................................7
IV. ANALISIS E INTERPRETACION DE RESULTADOS........................................ 10
V. CUESTIONARIO ...................................................................................................... 10
CONCLUSIONES............................................................................................................ 12
RECOMENDACIONES ................................................................................................... 12
BIBLIOGRAFIA ............................................................................................................... 12
WEBGRAFIA................................................................................................................... 12

pág. 1
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

INDICE DE FIGURAS
Figura 1.1 Algoritmo de Porter ………………………………………................................ 4
Figura 1.2 Reglas que aplica Porter …………………………………………………………….... Página
4
Figura 1.3 Tipos de palabras con las que trabaja Porter ……………………………….. 5
Figura 1.4 Análisis morfológico de Porter ……………………………………………………… 5
Figura 2.1 Etiquetador Léxico ……………………………………………............................. 6
Figura 2.2 Etiquetador de palabras desconocidos …………………………………………. 6
Figura 2.3 Plantilla genérica de transformaciones léxicas ……………………………… 6
Figura 2.4 Ejemplos de Transformaciones …………………………………………………….. 7
Figura 2.5 Etiquetador contextual …………………………………………………………………. 7

pág. 2
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

INFORME DEL TRABAJO


TEMA: DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

I. INFORMACIÓN GENERAL
- Objetivos:
Conocer los fundamentos teóricos y el funcionamiento de los Algoritmos de
Porter y de Brill utilizando Python.

- Equipos, materiales, programas y recursos utilizados:


- Sistema Operativo W indows XP, Vista, W indows 7, W indows 8/8.1,
Windows 10 de 32 o 64 bits.
- Python 3.x
- Anaconda3-5.1.0
- NLTK 3.3

II. MARCO TEORICO


1. Porter Stemming
- Objetivo
Eliminar las terminaciones morfológicas e inflexiones más comunes de las
palabras en inglés

- Aplicación:
Su aplicación principal es como parte de un proceso de normalización de
términos que generalmente se realiza al configurar los sistemas de
recuperación de información.

- Definición
La lematización de corpus textuales (sobre todo en inglés) ha tenido un
avance considerable a partir de la implementación del Algoritmo de Porter.
Martin Porter desarrollo un algoritmo que, automáticamente, permite
identificar asociar la raíz (o stemmer) de un conjunto de palabras similares.
El algoritmo de derivación de Porter es un proceso para eliminar sufijos de
las palabras. Eliminar sufijos automáticamente es una operación que es
especialmente útil en el campo de la recuperación de información. En un
típico entorno IR (Recuperación de Información), un documento está
representado por un vector de palabras o términos. Los términos con una
raíz común tienen generalmente significados similares, por ejemplo:

CONECTAR
CONECTADO
CONECTANDO
CONEXIÓN
CONEXIONES

Con frecuencia, el rendimiento de un sistema de IR mejorará si los grupos


de términos como este se combinan en un solo término. Esto se puede hacer
eliminando los distintos sufijos –ED, -ING, -ION, IONS para salir de solo el
término CONNECT. Además, el proceso de eliminación de sufijos reducirá
la cantidad total de términos en el Sistema IR, y por lo tanto reducir el tamaño
y la complejidad de los datos en el sistema, que siempre es ventajoso.

Por lo general, se desea que solo se eliminen los morfemas flexivos (los
correspondientes a las declinaciones, conjugaciones, etc.), no también
morfemas derivativos (que corresponden a diferentes partes del habla). El

pág. 3
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

algoritmo de Porter no cumple esto. Uno puede hacer su propio conjunto de


reglas (para cualquier idioma). Su ventaja es su simplicidad y velocidad.

El algoritmo de Porter se hizo suponiendo que no tenemos un diccionario


raíz y que el propósito de la tarea es mejorar el rendimiento IR (no como un
ejercicio lingüístico). El programa recibe una lista explícita de sufijos, y, con
cada sufijo, el criterio bajo el cual se puede eliminar de una palabra para
dejar una raíz válida.

Tal vez el mejor criterio para eliminar sufijos de dos palabras W1 y W2 para
producir un único tallo S, es decir que lo hacemos sí parece que no hay
diferencia entre las dos declaraciones.

La tasa de éxito para la eliminación de sufijos será significativamente menor


al 100%, independientemente de cómo el proceso es evaluado, por ejemplo,
si SANDER y SANDER se fusionan, lo más probable es que WAND y
WANDER. El error aquí es que el -ER de WANDER ha sido tratado como un
sufijo cuando en realidad es parte del tallo.

- Algoritmo
El algoritmo de Porter se presenta de la siguiente manera:

Imagen 1.1: Algoritmo de Porter

Las reglas que aplica Porter son las siguientes:

Imagen 1.2: Reglas que aplica Porter

pág. 4
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

El algoritmo permite trabajar con palabras que tengan flexión regular o


irregular:

Imagen 1.3: Tipos de Palabras con las que trabaja Porter

Finalmente, este algoritmo nos permite hacer un análisis morfológico


bastante eficaz, incluso adaptándolo a otras lenguas.

Figura 1.4: Análisis morfológico de Porter

En español, ya se han hecho buenas adaptaciones del algoritmo de Porter.


El mismo forma parte de un proyecto llamado Snowball, el cual brinda
acceso a su algoritmo para su uso (incluido también la modificación de
este)

2. Brill
- Objetivo:
Asociar etiquetas a formas de palabras, basado en transformaciones
basadas en errores.

- Aplicación:
Este algoritmo se aplica al Etiquetado de voz parcial, que es el proceso de
asociación de cada palabra en un texto de un discurso de categoría y
posiblemente un conjunto de característica morfosintáctico. Esta información
está representada por etiquetas de voz parcial.

- Definición:
Otro algoritmo útil en esta clase de procesamiento al nivel de palabra es el
que desarrolló Eric Brill, el cual reconoce formas de palabras, asociándolas
posteriormente a una etiqueta sintáctica.

pág. 5
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

En el proceso de transformación, si se conoce la palabra, primero asigna la


etiqueta más frecuente, o si la palabra es desconocida, ingenuamente le
asigna la etiqueta "sustantivo”. Aplicando una y otra vez estas reglas,
cambiando las etiquetas incorrectas, se logra una precisión bastante
alta. Este enfoque asegura que la información valiosa, como la construcción
morfosintáctica de las palabras se emplee en un proceso de etiquetado
automático.

- Algoritmo:
El algoritmo de Brill se fundamenta en el aprendizaje basado en
transformaciones y dirigido por el error. Este algoritmo consta de los
siguientes módulos:

 Etiquetador léxico.
 Etiquetador de palabras desconocidas
 Etiquetador contextual

i. El etiquetador léxico funciona del siguiente modo:

Imagen 2.1: Etiquetador léxico

ii. Por su parte, el etiquetador de palabras desconocidas intenta adivinar


una etiqueta para una palabra desconocida en función de sus afijos
(sufijos o prefijos), y de otras propiedades relevantes similares.

Imagen 2.2: Etiquetador de palabras desconocidas

iii. El algoritmo de Brill cuenta también con una plantilla genérica de


transformaciones léxicas, esto es:

Imagen 2.3: Plantilla genérica de transformaciones léxicas

pág. 6
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

Un ejemplo de transformaciones:

Imagen 2.4: Ejemplo de Transformaciones

iv. El etiquetador contextual actúa justo después del etiquetador de


palabras desconocidas. Aplica en orden una secuencia de reglas
contextuales que han sido aprendidas de manera automática a partir del
corpus de entrenamiento

Imagen 2.5: Etiquetador contextual

III. PROCEDIMIENTO
- Algoritmo de Porter:
i. Buscar y analizar la librería “Porter.py” en la ubicación “C:\Users\Linford
JD\AppData\Local\Programs\Python\Python36-32\Lib\site-
packages\nltk\stem”

pág. 7
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

ii. Buscar la función que necesitamos “stem”

iii. Invocamos a “Porter.py”

iv. Probamos con Ejemplos

- Algoritmo de Brill:
i. Buscar y analizar la librería “Porter.py” en la ubicación “C:\Users\Linford
JD\AppData\Local\Programs\Python\Python36-32\Lib\site-
packages\nltk\tag” y también buscamos y analizamos “_init_.py” que
utiliza “brill.py” y que finalmente tiene la función que desarrolla el
algoritmo.

pág. 8
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

ii. Buscar la función que necesitamos de “brill.py” de nombre “tag”

Y buscamos en el Script “_init_.py” la función “_pos_tag” que usa “tag” y


la función “pos_tag” para desarrollar el algoritmo de Brill

iii. Invocamos las librerías necesarias de NLTK

iv. Probamos los ejemplos

pág. 9
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

IV. ANALISIS E INTERPRETACION DE RESULTADOS


1. Algoritmo de Porter
- ¿Qué indican los resultados?

Los resultados indican que se encontró la raíz satisfactoriamente

- ¿Que se ha encontrado?

Las raíces de las palabras, ejemplo: De la palabra “Tokenization” la raíz


vendría a ser “Token”

2. Algoritmo de Brill
- ¿Qué indican los resultados?

Los resultados indican de qué tipo de es cada palabra del texto

- ¿Que se ha encontrado?

Etiquetas que muestran los tipos de cada palabra, ejemplo: la palabra


“world” es un sustantivo y se le asigna la etiqueta “NN”, en cambio la
palabra “the” es un artículo y se le asigna la etiqueta “DT”

V. CUESTIONARIO
1. Probar el Algoritmo de Porter con un texto. Mostrar los resultados

Resultado:

2. ¿El resultado es el esperado?

3. Probar el Algoritmo de Porter con archivo de texto y mostrar los resultados

4. Probar el Algoritmo de Porter con texto en otro idioma, mostrar los resultados,
¿A qué conclusión llego?

pág. 10
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

5. Probar el Algoritmo de Brill con un texto. Mostrar los resultados

Resultado

6. ¿El resultado es el esperado?

7. Probar el Algoritmo de Brill con archivo de texto y mostrar los resultados

8. Probar el Algoritmo de Brill con texto en otro idioma, mostrar los resultados, ¿A
qué conclusión llego?

pág. 11
INFORME DE TRABAJO N° 01 – DESARROLLO DE LOS ALGORITMOS DE PORTER Y DE BRILL

CONCLUSIONES
Se desarrolló los Conceptos teóricos para entender el funcionamiento de los algoritmos de Porter
y de Brill, así como también se desarrolló la aplicación de ambos para comprobar su
funcionamiento utilizando las librerías que nos brinda NLTK, observándose que los resultados
coinciden con lo que se presentó en la teoría.

RECOMENDACIONES
Antes de empezar analizar las librerías que podríamos utilizar para para desarrollar la practica
satisfactoriamente y comparar resultados con los ejemplos que tengamos de las clases teóricas.

BIBLIOGRAFIA
Lovins, J. B. (1968). Development of a stemming algoritm. Mechanical Translation and
Computational Linquistics.

Maria Larsson and M˚ans Norelius. Part-of-Speech Tagging Using the Brill Method. Lund Institute
of Technology Lund, Sweden.

WEBGRAFIA
César Antonio Aguilar Facultad de Lenguas y Letras (2012). Curso de Procesamiento del
lenguaje natural. Recuperado de
http://cesaraguilar.weebly.com/uploads/2/7/7/5/2775690/pln_uc_08.pdf

Porter Stemmer. Recuperado de https://translate.googleusercontent.com/translate_f

Miguel A. Alonso, Jorge Graña, Jesús Vilares. Aprendizaje de etiquetas basado en


transformaciones: “El etiquetador de Brill”. Departamento de Computación, Facultad de
Informática, Universidad de la Coruña. Recuperado de
http://coleweb.dc.fi.udc.es/docencia/ln/biblioteca/traspas_brill.pdf

pág. 12