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.