1 >Qu e es Adios-Lite 1.0? 2 Ejemplo de uso 3 Detalles

Anuncio
Adios-Lite 1.0
1
>Que es Adios-Lite 1.0?
Es una version demo del software ADIOS que implementa el algoritmo del
mismo nombre. Permite extraer a lo sumo 100 patrones, no es de codigo
abierto y hay versiones para cygwin y linux. Se puede bajar previo consentimiento de licencia (gratuita, para uso academico) de la pagina
http://adios.tau.ac.il/download.html.
El software se centra en un archivo ejecutable: adios.exe que implementa el algoritmo en s y varios shell scripts que utilizan ese programa:
train.sh (el mas importante por ahora), resume.sh, generate.sh,
teacher learner.sh, print.sh y test.sh.
Otros binarios son:
convert grammar.exe:se usa para convertir una CFG a la representacion de
ADIOS
create graph.exe:utilizado dentro de train.sh, a partir de un archivo de
corpus (ver esquema mas abajo) crea dos archivos que contienen la estructura del grafo: project.idx, basicamente el lexico ordenado y project.grp, el
grafo en s.
scrambler.exe:reordena aleatoriamente las oraciones de un corpus.
2
Ejemplo de uso
Basado en el proyecto includo en la demo (TA1):
./train.sh TA1
Esto genera TA1.results.txt que indica que patrones y clases de equivalencia detecto el algoritmo en base al corpus inicial TA1.corpus.txt .
3
Detalles:
3.1 >que hace cada shell script?
train.sh : llama a create graph.exe y a adios.exe con la opcion train
resume.sh : contin
ua la ejecucion del algoritmo si train.sh se interrumpe,
usa la opcion train de adios.exe y los archivos generados por la ejecucion
1
previa de train.sh (o resume.sh): graph.dat (texto plano), patterns.dat (binario), sysparamas.dat (texto plano).
generate.sh : llama a adios.exe con la opcion generate, produciendo nuevas
oraciones en funcion de los patrones detectados por las etapas anteriores.
teacher learner.sh : hace un test de recall/precision en base a una CFG.
test.sh : utilizado por el anterior, solo llama a adios.exe (opcion test)
print.sh : llama a adios.exe con la opcion print, esto genera archivos que
permiten visualizar el arbol de patrones determinados con Matlab
3.2 Opciones del programa adios.exe:
Son muchas y permiten setear todos los parametros que inuyen en la ejecuucion del algoritmo y algunos especcos de la implementacion. La opcion -a
indica en que modo se utiliza el algoritmo (train/test/print/generate). Una
opcion que parece interesante es -v: verbosity level (0 por default -o-, 1
-on).
3.3 Estructura de los archivos:
3.3.1 Archivo de corpus:
Ejemplo: primeras lneas de TA1.corpus.txt:
* Cindy thinks that George thinks that to read is tough #
* Cindy thinks that George thinks that to read is tough #
* that the bird is eager to read bothers the dog #
Como vemos, cada oracion debe ir en una lnea aparte, los smbolos *
y # representan los nodos \start" y \end". Las palabras deben ir siempre
separadas por espacios y las oraciones van sin el \." nal.
3.3.2 Archivo de resultados (TA1.results.txt):
Luego de varias estadsticas y encabezados se muestran los patrones encontrados, algunos ejemplos:
P30 {Cindy, thinks, that, E31}
E31 {Beth, Cindy, George,...}
#una clase de equivalencia
P40 {that, P34, is, E41, to, E39} #un patron que incluye varias
#clases de equivalencia y otro patron P34
2
3.4 Otros archivos cuya estructura no se detalla en la
documentacion:
3.4.1 Archivos .idx y .grp: contienen la informaci
on del grafo
El archivo .idx es el lexico utilizado y mantiene la relacion palabra-vertice
del grafo inicial. Ejemplo: TA1.idx
<EOL> 0
# 1
* 2
Beth 3
Cindy 4
...
worries 29
3.4.2 El archivo .grp
Es el que mantiene la estructura en s del grafo. Ejemplo: TA1.grp
n
m
s
t
a
29 #coincide con el nro. de palabras del lexico
0
1
1
2
4
1000 #hay un arco desde la palabra 2 (*) a la palabra 4
#(Cindy) en la oracion 1, indice de palabra (o arco): 000
a 4
26
1001
a 26
24
1002
...
a 28
0
1010 #fin de la primera oracion, palabra n 11
a 2
4
2000 #comienzo de la seguna oracion
...
a 28
0
500010 #ultima oracion, el corpus tiene 500 lineas
Estructura de un grafo salvado durante la ejecucion del algoritmo (graph.dat):
n
m
s
t
a
200000 #?
1757
#?
1
#?
0
#?
2
38
a 2
(nro. de palabras en el original)
(0 en el original)
(idem original)
(1 en el original)
4000 #un arco hacia un nodo nuevo (clase de equivalencia),
# el 38.
38
5000
3
...
a 4
a 4
...
4
4
0 #arcos hacia el mismo lugar, repetidos
0
3.4.3 Archivo projecto.patterns.log
Parece indicar para cada camino explorado la lista de patrones detectadas y
la elegida. Ejemplo:
Start new search path: (fecha)
176268
1
82104024
2
176268
1 #idem 1ero.
...
-153353458
1
...
# el segundo campo parece ser siempre 1 o 2
List of patterns: #aca viene la lista de patrones que se encontraron
1.01493
(the, E0)
...
1
(that, the)
...
0.99977
(to, read)
NEW P34 (the E0) 0
1
2
268 #Se eligio el patron (the E0)
E0
{bird, cat, cow, dog, horse, rabbit}
Start new search path: (fecha)
...
4
Opcion -v 1
Se modico train.sh para que ejecute adios con la opcion -v 1, esto causa que
adios imprima con mas detalle el progreso del algoritmo:
Scan search-Path: 1
* Cindy thinks that George thinks that to read is tough
Pattern: ID=P30 p-value=0
Sequence=> Cindy thinks that E31
number of patterns: 1
.....................................................................
....
4
86 edges have been rewired, pattern id: 30
Serialize
Scan search-Path: 2 #Notar que este path es el anterior pero reescrito en
#funcion del patron encontrado
* (30) thinks that to read is tough
Pattern: ID=P32 p-value=0
Sequence=> E33 that
number of patterns: 2
.....................................................................
.....................................................................
.....................................................................
.....................................................................
.....................................................................
.....................................................................
....................................
749 edges have been rewired, pattern id: 32
Serialize
Scan search-Path: 3
* that the bird is eager to read bothers the dog
5
Descargar