Practica 3 de Programación

Transcripción

Practica 3 de Programación
Practica 3: Creación de clases propias
Asignatura de Programación
Licenciatura de Lingüística y Nuevas Tecnologias
Instrucciones de entrega
Entregar la practica por correo electrónico con asunto P3. Los tres programas a
entregar (Morpho.java, Word.java, ProcessText.java) y las impresiones de pantalla
están comprimidos en un fichero con un nombre que es el NIA del estudiante (o
NIA1_NIA2 si son 2 estudiantes). El formato del fichero comprimido es .zip o .rar.
Fecha de entrega: Jueves 15 de Mayo a 23h59.
Imprescindible:
El código tiene que llevar comentarios, especialemente en las partes más algorítmicas.
Objetivo de la practica
El objetivo de esta práctica es la creación de una clase Word para describir el análisis
morfológico de una palabra. Un objeto de tipo Word consiste en un wordForm y una
serie de análisis morfológicos morphoN. Un análisis morfológico está descrito con la
clase Morpho.
Un objeto de tipo Word puede tener como máximo cuatro análisis morfológicos
llamados: morpho1, morpho2, morpho3, morpho4.
Mientras wordForm es un String, morphoN refiere a un objeto de la clase Morpho
que contiene los siguientes datos: lemma, category y others.
Este ultimo contiene todos los otros rasgos del análisis morfológico (menos la
categoría y el lema). Por ejemplo, para el análisis de “posa”:
"<posa>"
"posa" Nom com fem sg N5-FS @Subj @CD
"posar" <S> <o> <Ps> <C> <C_que> <NA> Verb MImp Pres 2pers sg VRR2S-
tenemos la siguiente representación:
Object: (class Morpho)
Object: (class Word)
wordForm: “posa”
morpho1:
lemma:
“posa”
category:
“Nom”
others:
“com...”
morpho2:
Object: (class Morpho)
morpho3:
lemma:
“posar”
category:
“Verb”
others:
MImp...”
morpho4:
Tenemos los esqueletos de las clases Morpho.java, Word.java y
ProcessText.java. Vamos a proceder de forma ascendente:
● Primero construimos la clase Morpho (actividad 1).
● Después construimos la clase Word que utiliza la clase Morpho (actividad 2).
● Finalemente, completamos ProcessText que en vez de trabajar con Strings,
manipula objetos de tipo Morpho y Word (actividad 3).
Actividad 1: clase Morpho
a) Completar el constructor Morpho que asigna sus argumentos de entrada a las
variables de instancia lemma, category y others.
b) Completar el método imprimir que imprime la categoría e el lema del objeto, por
ejemplo de esta forma: posar/Verb
c) Probar la clase Morpho con el main que hay dentro de Morpho, que crea dos
objetos de tipo Morpho y los imprime. Mostrar una impresión de pantalla.
Actividad 2: clase Word
a) Completar el constructor Word que asigna su argumento de entrada a la variable
de instancia wordForm.
b) Completar el método setMorpho que coge un objeto de tipo Morpho y lo asigna a la
primera de las variables morpho1, morpho2, morpho3 o morpho4 que encuentra
disponible.
c) Completar el método imprimir que imprime la palabra, por ejemplo de esta forma
(Nota: el método tiene que llamar al imprimir de Morpho):
posa ( posar/Verb | posar/Verb | posa/Nom)
(nos da igual que haya dos posar/Verb)
d) Probar la clase Word con el main que hay dentro de Word, crea dos objetos de tipo
Word y los imprime. Mostrar una impresión de pantalla.
Actividad 3: clase ProcessText
El objetivo de esta actividad es hacer lo mismo que el ProcessText de P2, es decir
producir un análisis morfológico compacto de un texto:
[P1 [S1 Té (tenir/Verb | tenir/Verb ) això ( això/Pron) . ] ]
[P1 [S1 la ( el/Det ) posa ( posa/Nom | posar/Verb ) . ] ]
Mientras en P2 el método ProcessText manipula cadenas, en este P3 el método
ProcessText manipula objetos de tipo Word y Form.
a) Completar el nuevo método Word setForm(String token), que coge una línea y
devuelve un objeto de tipo Word si la línea es una forma de palabra, null si no.
b) Completar el nuevo método Word setMorpho(String token), que coge una línea y
devuelve un objeto de tipo Morpho si la línea es un análisis morfológico, null si no.
c) Completar el nuevo método processText(String text), que procesa un texto
utilizando objetos de tipo Word y Morpho.

Documentos relacionados