viernes, marzo 31, 2006

PLAKTON_30 y 31 MARZO

PLANKTON


Es una especie de banco de trabajo. Tenemos una fuente importante de corpus en distintos idiomas en Internet (“especie de” lugar donde tenemos cantidades infinitas de texto). Tratamos de ver si a partir de esos textos una máquina es capaz de entender algo (objetivo final). Pero antes de que entienda algo, ¿qué cosas puede ir creando a partir de esa información que hay en Internet? == un programa que consiga identificar las palabras que hay en un lenguaje y que nos diga qué palabras son sustantivos, cuáles preposiciones, adjetivos…
La idea es generar, partiendo de Internet, una base de datos:

INTERNET ========= BASE DE DATOS
Base de datos de palabras etiquetadas (objetivo)
- categorizarlas después



a partir de estas palabras podemos reconstruir el texto que estamos manejando y conseguir saber qué estructura tiene, etc.

Lo primero que necesitábamos es un módulo (ARAÑA, spider en inglés) que lo que hace es ir recorriendo Internet: recorres Internet y de una pagina web obtiene los enlaces de esa página web y a partir de ellos crea nuevas entradas en la ARAÑA para ir buscando nuevas páginas == especie de gestor de los enlaces. Esto es un módulo que suelen tener los buscadores. Por lo tanto, necesitaríamos un modulo de este tipo.
Estos enlaces o fuente de los enlaces puede ser el propio usuario u obtener enlaces en páginas que visite y que tenga distintos enlaces, y otra fuente de enlaces puede ser el propio sistema el cual puede determinar que es necesario que se visite tal página. Estas son las fuentes de los enlace. Y este sistema debería controlar si ya se ha visitado, si no interesa, si hay que visitarlo otra vez….
A partir de esta ARAÑA que recorre la página web obtenemos documentos web los cuales típicamente serían ficheros (formato HTLM) aunque más adelante podremos procesar otro tipo de ficheros (.doc, txt… u otros formatos). Estos documentos web irían a un módulo que llamamos el CAMALEÓN: se llama así porque está camuflado y trata de analizar si me interesan los documentos o no (digamos que hace una especie de discriminación). El camaleón mira si está en español o no y si me interesa o no. Por ejemplo, el formato si lo puedo procesar o no, y se lo informa a la ARAÑA. A lo mejor es un documento en castellano pero no estructurado y no interesa, por lo que no lo selecciona. Esta información es interesante para conectarla con el sistema de los enlaces para informarle si interesan o no.

Del CAMALEÓN pasamos a un nuevo módulo, una base de datos en el que tendríamos los documentos a procesar (los documentos que el CAMALEÓN ha determinado que interesan).
El módulo COCODRILO (“se come todo”): lo que hace es quitar las etiquetas o formato, lo pasa a un fichero formato TXT (fichero que sólo tiene palabras, no etiquetas) y a partir de los documentos a procesar nos crea nuestra base de datos, la que nos interesaba, que la llamamos KRILL: base de datos donde almacenamos los textos (txt) con otra estructura:

krill(palabra, número texto, número frase, número posición, identificación palabra) == lo que hacemos aquí, es convertir un elemento como por ejemplo: texto 8, frase 1…“Juan se levantó por la mañana”, y lo convertimos en una estructura como la siguiente:
krill(Juan,8,1,1, 8545)
krill(se,8,1,2, 8546)
krill(levantó,8,1,3.8547)
……

información mucho más fácil de manejar de forma automática (por un ordenador)


El módulo PEZ identifica palabras sólo por la morfología (ejemplo: “si termina en “mente” es un adverbio…). Desde este módulo se hace una base de datos a la que le llamo LEXICÓN donde se aporta la información de las palabras: item(id.palabra…..). en el PEZ me encuentro con palabras que identifico y se mandan al lexicón, y otras que no identifico y las mando a otra base de datos que es el DESCONOCIDO.
Luego, tenemos un módulo llamado REMORA (“abusón”) lo que hace es con las palabras desconocidas intenta reconocerlas y para ello usa Internet (utiliza google, diccionario de la RAE…., distintos recursos).
Luego, definimos otro módulo (HORMIGA, “modulo trabajador, incansable”) y se dedica a trabajar otros aspectos relacionados con la sintaxis, semántica…, para identificar otras palabras (misma función que el PEZ pero valiéndose de otros criterios, no morfológicos).
¿cuál sería la estructura de este lexicón? == una estructura más parecida a hechos de prolog que a una base de datos:

palabra(id.palabra,palabra,categoría,id.dentro.categoría).
sustantivo(id.dentro.categoría,gen,num,significado,….).
adjetivo(id.dentro.categoría, _, _ , _..).
preposicion(id.dentro.categoría,_,_,_).
verbo(id.dentrocategoría,modo,tiempo,raíz,persona).

krill(ventana,17,8,2,7548).
krill(ventana,19,1,4,9323). Palabra(7548,ventana,sustantivo,408).

EJEMPLO:

krill(ventana,17,8,2,7548). palabra(7548,ventana,sustantivo,408).
krill(ventana,19,1,4,9323). === palabra(9323,ventana,sustantivo,408)
krill(grande,17,8,3,7549). Palabra(7549,grande,adjetivo,524).


sustantivo(408,femenino,singular….).
adjetivo(524,femenino,singular….).


Con las palabras que pueden pertenecer a más de una categoría, hacer una LISTA con ellas.

preposición(id.palabra)
sustantivo(id.palabra,g.,n.,significado).
conjunción(id.palabra, tipo).
determinante(id.palabra,tipo,genero,numero).
pronombre(id.palabra, tipo, genero, numero, persona).
adverbio(id.palabra,tipo).
adjetivo(id.palabra, genero,numero,grado,significado).
verbo(id.verbo,raiz,regular,significado,auxiliar,reflexivo,transitivo,intransitivo, activo,pasivo,copulativo).

No hay comentarios: