analizador léxico - ph.d. kryscia ramirez lexico.pdf · se muestra un pequeño ejemplo donde se...

22
Analizador Léxico UCR – ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides

Upload: doque

Post on 06-Jun-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • Analizador Lxico

    UCR ECCICI-2414 Recuperacin de InformacinProf. M.Sc. Kryscia Daviana Ramrez Benavides

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Aspectos GeneralesUn analizador lxico es la especificacin y el diseo de programas que ejecuten las acciones activadas por patrones dentro de las cadenas.La principal funcin es leer los caracteres de entrada y elaborar como salida una secuencia de componentes lxicos que se utilizaran.Convierte una cadena de caracteres en una cadena de palabras.Una forma sencilla de crear un analizador lxico consiste en la elaboracin de un diagrama que muestre la estructura de los componentes lxicos del archivo fuente, y despus hacer la traduccin a mano del diagrama a un programa para encontrar los componentes lxicos.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Aspectos Generales (cont.)Una herramienta de software que automatiza la construccin de analizadores lxicos, permite que personas con diferentes conocimientos utilicen la concordancia de patrones en sus propias reas de aplicacin.La gran ventaja de un generador de analizadores lxicos es que puede utilizar los algoritmos ms conocidos de concordancia de patrones, con lo cual crea analizadores lxicos eficientes para los no especialistas en dichas tcnicas.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Algunas Reglas en RIDgitos. En general nmeros no son buenos candidatos de palabras claves. Sin embargo, la normalizacin de ciertos nmeros en el contexto de ciertas palabras pueden ser relevantes para la recuperacin de informacin.Guiones. Puede que sea o no sea relevante la eliminacin de guiones. En general, se adopta una regla y se agregan excepciones.Tildes y caracteres especiales. Puede que sea o no sea relevante la eliminacin de tildes y caracteres especiales. En general, se adopta una regla y se agregan excepciones.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Algunas Reglas en RI (cont.)Las etiquetas HTML por lo general son removidas.Los signos de puntuacin son generalmente removidos.Generalmente el texto es transformado a mayscula o minscula.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Algunas Reglas en RI (cont.)Dgitos:

    Generalmente son palabras poco especficas.Hay casos en que si son importantes:

    Vitamina B12Efecto 2000

    No hay una solucin general pues depende del dominio.En colecciones generales se consideran los que empiezan por letra:

    2000 NOB12 SI

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Algunas Reglas en RI (cont.)Guiones:

    Al final de palabra se puede eliminar y juntar los dos trozos.Separador:

    Es bueno que siga junto: F-16.Son dos palabras: Jean-Claude.

    En un dominio especfico tenemos otros elementos de juicio.En dominios generales podemos usar:

    F no es trmino y 16 no es trmino. Por tanto F-16 es trmino.Jean es trmino y Claude es trmino. Por tanto es un separador.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Algunas Reglas en RI (cont.)Otros signos:

    Puntuacin, barras, etc.En la mayora de los casos son separadores.Aunque no siempre:

    Ej.: OS/2

    Maysculas/Minsculas:Normalmente da lo mismo.Se suelen poner todo en maysculas o todo en minsculas.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Algunas Reglas en RI (cont.)Palabra:

    Regla general (coleccin genrica):Palabra: Toda cadena de caracteres alfanumricos o numricos en que el primer carcter es una letra. Todos los caracteres se pasan a maysculas (o minsculas) y todos los dems son separadores.

    En dominios especficos se tiene una lista de trminos candidatos.Ej.: B12 no lo separes

    En las preguntas se suele hacer el mismo anlisis lxico:Ej.: Quiero documentos que tengan 13 animales de pelo verde y rojo.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Componentes Lxicos, Patrones y Lexemas Se dice que hay un conjunto de cadenas en la entrada para el cual se produce como salida el mismo componente lxico. Este conjunto de cadenas se describe mediante una regla llamada patrn al componente lxico. Se dice que el patrn concuerda con cada cadena del conjunto.Un lexema es una secuencia de caracteres en el archivo fuente, el cual debe concordar con el patrn para un componente lxico.Los componentes lxicos se tratan como smbolos terminales de la gramtica del archivo fuente. Los lexemas para el componente lxico que concuerden con el patrn representan cadenas de caracteres en el archivo fuente.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Componentes Lxicos, Patrones y Lexemas (cont.)

    Un patrn es una regla, la cual describe el conjunto de lexemas que pueden representar a un determinado componente lxico en los archivos fuentes.Cuando concuerda un lexema con un patrn, el analizador lxico, proporcionara informacin adicional sobre el lexema concreto que concord.Las expresiones regulares son una notacin importante para especificar patrones. Cada patrn concuerda con una serie de cadenas, de modo que las expresiones regulares sirvan como nombres para conjuntos de cadenas.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Componentes Lxicos, Patrones y Lexemas (cont.)

    Alfabeto o clase de carcter denota cualquier conjunto finito de smbolos.Cadena es una secuencia finita de smbolos tomados de un alfabeto.Los trminos frase o palabra a menudo se utilizan como sinnimos del termino cadena.

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlexJFlex es un generador de analizadores lxicos para Java y est escrito en Java.Instalacin:

    Unzip los archivos zip del JFlex y Java_Cup en el directorio que gusteCrear las variables de ambiente:

    JAVA_HOME = C:\j2sdk1.4.2_05JFLEX_HOME = C:\jflex-1.4JAVACUP_HOME = C:\javacup

    Agregar a la variable de ambiente PATH %JAVA_HOME%\bin;%JFLEX_HOME%\bin

    Agregar a la variable de ambiente CLASSPATH %JFLEX_HOME%\lib\JFlex.jar%JAVACUP_HOME%\java_cup.jar

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlex (cont.)Para correr JFlex ejecute la siguiente instruccin:

    java JFlex.Main

    Un archivo JFlex est organizado en tres secciones, separado por directivas de porcentaje (%%).Una especificacin de JFlex apropiada tiene el siguiente formato:

    Cdigo del usuario %% Directivas JFlex %% Reglas de expresiones regulares

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlex (cont.)Las directivas "%%" distinguen las secciones del archivo y van al principio de la lnea. El resto de la lnea contenida en "%%" pueden desecharse y no deben usarse para alojar declaraciones adicionales o cdigo.La seccin del cdigo del usuario es copiada directamente en el archivo resultante. Este rea de la especificacin provee espacio para la implementacin de clases o tipos retornados. La seccin de directivas JFlex es donde se dan las definiciones de los macros y se declaran nombres de estado. La tercer seccin contiene las reglas del analizador lxico, cada una consiste en tres partes: una lista de estados optativa, una expresin regular y una accin. El formato es el siguiente:[] { }

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlex (cont.)Se muestra un pequeo ejemplo donde se utiliza JFlex y Java CUP. Este ejemplo requiere la versin de JFlex 1.2.5 o mayor y la versin de Java Cup 0.10.El ejemplo es una simple calculadora, solamente suma y multiplica; recibe de entrada diferentes chars.Para compilar y construir el ejemplo se ejecutan las siguientes instrucciones:

    java JFlex.Main minimal.lexjava java_cup.Main < minimal.cupjavac -d . parser.java sym.java Yylex.java

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlex (cont.)

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlex (cont.)

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlex (cont.)

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlex (cont.)

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Analizador Lxico JFlex (cont.)Para correrlo se realiza lo siguiente:

    java -classpath %CLASSPATH%;. Example.parser

  • UCR-ECCI CI-2414 Recuperacin de InformacinAnalizador Lxico

    Referencias BibliogrficasLa informacin fue tomada de:

    Libro de texto del curso.http://www.gedlc.ulpgc.es/docencia/seminarios/rit/.

    http://www.gedlc.ulpgc.es/docencia/seminarios/rit/

    Analizador LxicoAspectos GeneralesAspectos Generales (cont.)Algunas Reglas en RIAlgunas Reglas en RI (cont.)Algunas Reglas en RI (cont.)Algunas Reglas en RI (cont.)Algunas Reglas en RI (cont.)Algunas Reglas en RI (cont.)Componentes Lxicos, Patrones y Lexemas Componentes Lxicos, Patrones y Lexemas (cont.)Componentes Lxicos, Patrones y Lexemas (cont.)Analizador Lxico JFlexAnalizador Lxico JFlex (cont.)Analizador Lxico JFlex (cont.)Analizador Lxico JFlex (cont.)Analizador Lxico JFlex (cont.)Analizador Lxico JFlex (cont.)Analizador Lxico JFlex (cont.)Analizador Lxico JFlex (cont.)Analizador Lxico JFlex (cont.)Referencias Bibliogrficas