[Qualipso-a4] Fwd: Re: API... sort of
Jose Gato Luis
jgato en libresoft.es
Vie Dic 4 11:09:36 CET 2009
-------- Mensaje original --------
Asunto: Re: API... sort of
Fecha: Mon, 26 Oct 2009 08:10:48 -0400
De: Javier Pueyo <jpueyo en gsyc.es>
Para: Jose Gato Luis <jgato en libresoft.es>
Hola Jose,
El lun, 26-10-2009 a las 10:23 +0100, Jose Gato Luis escribió:
> tiene muy buena pinta. Necesitaríamos poder acceder al valor de las
> entidades, eso quiere decir, que si encuentro una entidad bug, pueda
> pedirle el valor que ha generado esa entidad. ¿Crees que sería muy
> complicado?
En realidad los elementos de la lista de entidades ya contienen la
información en forma de tripleta: valor/NE/tipo
Ejemplos:
19200/NE/BUGID
issues/NE/BUG
Para simplificar he preferido crear dos entidades, una llamada BUG (que
solo indica que se está hablando sobre bugs) y otra BUGID (cuando se
nombra explícitamente un bugid. En principio solo haría falta parsear la
tripleta para quedarse con el tipo (bugid) y el valor (19200). En el
caso de nombres de archivos la tripleta sería de la forma:
nautilus-directory-async.c/NE/FILE-C
valor: nautilus-directory-async.c
tipo: FILE
subtipo: C
> De todos modos, a ver si podemos hablar más tarde ;) Dejo conectado el
> skype, aunque aun no sé, si estaré por la tarde por aquí (están siendo
> unos días complicados, cerrando los FP7)
Si te parece hablamos mañana martes, que hoy tengo una reunión por la
mañana (salgo en unos minutos) y cuando regrese ya será tarde para ti.
> Por cierto, ¿podrías ir poniendo este HOWTO en el trac?
De acuerdo, esta semana voy subiendo todo.
Un saludo,
Javier
>
> Un saludo,
>
>
> Javier Pueyo escribió:
> > Hola Jose,
> >
> > Hoy tampoco voy a poder hablar :-(
> >
> > Te cuento como he dejado la cosa después de la integración de freeling.
> > En principio (y esto no debería cambiar a nos ser que tú lo veas de otra
> > manera), a la parte "pública" del proceso de NLP se accede de esta
> > manera:
> >
> >
> > from floss_nlp.NLP_Process import NLP_Process
> >
> > NLP = NLP_Process()
> >
> > Las funciones que se necesitan en qualipso serían:
> >
> > # cadena de texto que contiene el item a analizar
> >
> > item0 = '''
> > I saw Richard Stallman and Linus Torvalds filed 30765, which is a GPL_3
> > license bug and report. The file is license.txt.
> > '''
> >
> > # 1) extracción del tópico de un item (sea correo o no, por defecto no
> > se hace diferencia sobre el tipo de item):
> >
> > only_topics = NLP.getItemTopics(item0)
> >
> > # Devuelve una lista de los tópicos del item
> >
> > print str(only_topics)
> >
> > ['issues', 'licenses', ...]
> >
> > # aunque puede especificarse si es un mail o no (la ventaja es que si es
> > un correo lo procesa mejor si sabemos que lo es):
> >
> > only_topics = NLP.getItemTopics(item0, is_mail=True)
> >
> >
> >
> >
> > # 2) extracción de las entidades de un item (sea correo o no, por
> > defecto no se hace diferencia sobre el tipo de item):
> >
> > only_entities = NLP.getItemEntities(item0)
> >
> > # devuelve una lista de tripletas de entidades:
> >
> > print str(only_entities)
> >
> > ['nautilus/NE/FLOSS_Project', 'c/NE/Tech_Lang',
> > 'nautilus-directory-async.c/NE/FILE', ... ]
> >
> >
> > # aunque de nuevo puede especificarse si es un mail o no:
> >
> > only_entities = NLP.getItemEntities(item0, is_mail=True)
> >
> >
> >
> > # 3) un atajo para extraer tópicos y entidades a la vez (devuelve dos
> > listas como las de arriba):
> >
> > (both_topics, both_entities) = NLP.getItemTopicsEntities(item0)
> >
> > # y de nuevo puede especificarse si es un mail o no:
> >
> > (both_topics, both_entities) = NLP.getItemTopicsEntities(item0,
> > is_mail=True)
> >
> >
> >
> > # 4) Toda la información acumulada del item (keywords, lemas, bigramas,
> > etc.)... creo que Quiles quiere usar esta info:
> >
> > (item_words, item_lemmas, item_entities, item_bigrams_words,
> > item_bigrams_lemmas, item_collocates_words, item_collocates_lemmas) =
> > NLP.getItemInfo(item0)
> >
> > # Devuelve un conjunto de listas con esa info:
> >
> > print str((item_words, item_lemmas, item_entities, item_bigrams_words,
> > item_bigrams_lemmas, item_collocates_words, item_collocates_lemmas))
> >
> > (['error', 'compile' ..], [ ... ], ... )
> >
> >
> > # y de nuevo puede indicarse si es un mail
> >
> > # (item_words, item_lemmas, item_entities, item_bigrams_words,
> > item_bigrams_lemmas, item_collocates_words, item_collocates_lemmas) =
> > NLP.getItemInfo(item0, is_mail=True)
> >
> >
> > En fin, que todo el proceso se reduce a estas funciones de la clase
> > NLP_Process:
> >
> > NLP.getItemTopics(item)
> > NLP.getItemEntities(item)
> > NLP.getItemTopicsEntities(item)
> > NLP.getItemInfo(item)
> >
> > todos con el opcional is_mail=True/False
> >
> >
> > ¿Crees que esto es lo que necesitas desde tu perspectiva?
> >
> >
> > Hablamos mañana o el lunes y lo comentamos...
> >
> > Un saludo,
> >
> > Javier
> >
>
> - --
> José Gato Luis | Libre Software Engineering Lab (GSyC)
> Tel: (+34)-914 888 105 | Universidad Rey Juan Carlos
> jgato en libresoft.es | Edif. Departamental II - Despacho 121
> http://libresoft.urjc.es/ | c/Tulipán s/n 28933 Móstoles (Madrid)
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkrlaqAACgkQiIyWFUeBssEW3ACfes50P2+v5SF9qwZd/OD1hClS
> JxEAnj3ww9FODz0tWsG3RwP2rRxPawvJ
> =qrFs
> -----END PGP SIGNATURE-----
More information about the Qualipso-a4
mailing list