LIBRARÍA PARA O MANEXO EFICIENTE DE DICIONARIOS DE GRAN TAMAÑO (LIBNADFA)

Compilación

Para compilar un autómata é necesario:

  1. O ficheiro coa información das palabras.

    Que debe ter o seguinte formato:

    palabra_1[\tinformación_1][\tinformación_2]...\n

    palabra_1[\tinformación_1][\tinformación_2]...\n

    ...

    Donde \t representa unha tabulación, \n un salto de liña e os corchetes opcionalidade.

    Por exemplo, definimos un dicionario con catro palabras no que asociamos o lema (forma canónica) ás palabras (formas), do seguinte modo:

    desestimas\tdesestimar\n

    tres\ttres\n

    violeta\tvioleta\n

    violetas\tvioleta\n

    Neste caso, ademais, a información asociada ás palabras (lemas) non é de tipo numérica, e o que queremos é que eses lemas estean noutro autómata diferente, de maneira que, desde o primeiro dicionaro se referencie ao segundo.

    Polo tanto, no noso caso definimos outro dicionario para os lemas, que non inclúen ningunha información:

    desestimar\n

    tres\n

    violeta\n

  2. O ficheiro de configuración para o compilador.

    Neste caso, un para compilar os lemas:

    <?xml version="1.0" encoding="ISO-8859-1" ?>

    <!DOCTYPE setup SYSTEM "setup_nadfa.dtd">

    <setup path="./" output_binary_file="automata_lemas.bin">

    <key file="lemas.txt" number_mappings="0"/>

    </setup>

    e outro para compilar as formas:

    <?xml version="1.0" encoding="ISO-8859-1" ?>

    <!DOCTYPE setup SYSTEM "setup_nadfa.dtd">

    <setup path="./" output_binary_file="automata_formas.bin">

    <key file="formas.txt" mappings_number="2"/>

    <info name="lema" function="word_to_index" automaton_id="2" type="guint32"/>

    <input_automaton automaton_id="2" file="automata_lemas.bin"/>

    </setup>

    A DTD setup_nadfa.dtd pode verse no directorio src do paquete descargable. Describimos a continuación os atributos que pode incluír cada un dos seus elementos:

    • setup:
      • path: ruta onde se atopan todos os ficheiros necesarios para realizar a compilación.
      • output_binary_file: ficheiro binario onde se almacenará a versión compilada do dicionario.
    • key:
      • file: ficheiro que contén o dicionario orixinal coa lista de palabras xunto a todas as columnas de información.
      • mappings_number: número de táboas de conversión que se van empregar para indexar a información das palabras. En principio debe establecerse a 2 se as palabras teñen algunha información asociada, ou a 0 no caso de que non exista información algunha.
    • info
      • name: nome da columna de información.
      • function: función a aplicar aos datos da columna de información no caso de que non sexan numéricos. De momento só pode conter o valor word_to_index.
      • automaton_id: identificador doutro autómata previamente compilado ao que fai referencia a función definida no atributo anterior.
      • type: tipo de dato da columna de información a almacenar no proceso de compilación. No caso de empregar unha función sería o tipo de dato devolto pola mesma. Actualmente só pode conter os valores guint32 (enteiro de 4 bytes) ou gfloat (número en punto flotante).
    • input_automaton
      • automaton_id: identificador do autómata previamente compilado asociado a unha columna de información.
      • file: ficheiro binario coa versión comprimida do autómata correspondente ao atributo automaton_id.
  3. Executar:

    $nadfac conf_lemas.xml

    $nadfac conf_formas.xml

    Onde conf_lemas.xml e conf_formas.xml son os arquivos de configuración descritos anteriormente para lemas e formas respectivamente.

Acceso:

Para ver como se realiza a carga en memoria e a utilización dos autómatas recomendamos botar un vistazo aos ficheiros libnadfa_bin_print.c e libndfa_bin.h. Este último mostra as funcións que exporta a libraría que xestiona os autómatas compilados.

De momento non dispoñemos dunha descrición completa documentada da API de acceso aos autómatas compilados. Farémolo en canto nos sexa posible.

english | galego | español
XHTML 1.0 Strict Válido CSS Válido!