[Qualipso-a4] instalación y pruebas de las herramientas de NLP

Jose Gato Luis jgato en libresoft.es
Mie Dic 9 00:47:50 CET 2009



El 08/12/09 18:53, Javier Pueyo escribió:
>> >  He vuelto a esa versión, pero me sigue dando problemas :(
> Vaya, siento que esto te esté dando tantos problemas. El caso es que a
> mí no me salen esos warnings y estoy en la versión de NLTK:

Tranquilo, para eso tenemos las pruebas y la integración, además, tengo 
mi parte de culpa por no haber tenido tiempo de probar esto antes ;)

>
>>>> >>>  import nltk
>>>> >>>  nltk.__version__
> '0.9.9b1'
>
> De todas formas ya veo que el problema es que yo estaba mezclando las
> salidas STDOUT y STDERR de los scripts y de ahí venían los líos. Ya he
> corregido en SVN este bug (que estaba en NLP_Process.py) y ahora STDERR
> no se mezcla con STDOUT.

Genial!!!! Arreglando este problema, he empezado a tener nuevos mensajes 
de error, muy constructivos, que me indicaban módulos de perl que no 
tengo instalados. Antes, estos mensajes se estarían perdiendo. Son 
módulos relativos al análisis de correo, por eso tenía tantos problemas 
integrando el extractor de correos ;)

Estoy analizando cientos de correos, y no estoy teniendo problemas.

>
> En cualquier caso he añadido a todos los scripts de python lo siguiente
> (en SVN):
>
> import warnings
> warnings.filterwarnings('ignore')
>
> Es cierto que debería controlar las excepciones (otro TODO), pero el
> caso es que los problemas los estábamos teniendo con los warnings de
> Deprecation de funciones de NLTK y no con excepciones.

Tenemos que ver, como capturar warnings y excepciones. Ahora mismo, he 
encontrado un problema, cuando no encuentra entidades, suelta la 
siguiente excepción:

Traceback (most recent call last):
   File 
"/home/jgato/proyectos/Qualipso/A4/svn/qualipso/private/work/A4/3rdIteration/src/jpueyo/floss_nlp/NLP_POST/floss_item_classifier.py", 
line 216, in <module>
     (topics, extracted_entities_clean) = classify_item(doc_item)
   File 
"/home/jgato/proyectos/Qualipso/A4/svn/qualipso/private/work/A4/3rdIteration/src/jpueyo/floss_nlp/NLP_POST/floss_item_classifier.py", 
line 210, in classify_item
     topic = classifier.classify(item_features(item_info,dictionary_info))
   File "/usr/lib/python2.5/site-packages/nltk/classify/naivebayes.py", 
line 89, in classify
     return self.prob_classify(featureset).max()
   File "/usr/lib/python2.5/site-packages/nltk/classify/naivebayes.py", 
line 122, in prob_classify
     return DictionaryProbDist(logprob, normalize=True, log=True)
   File "/usr/lib/python2.5/site-packages/nltk/probability.py", line 
623, in __init__
     value_sum = sum_logs(self._prob_dict.values())
   File "/usr/lib/python2.5/site-packages/nltk/probability.py", line 
1776, in sum_logs
     return reduce(add_logs, logs[1:], logs[0])
AttributeError: 'module' object has no attribute 'reduce'


Habrá que detectar el momento, en el que no se detectan entidades, para 
que no ocurra. De todos modos, he hecho un "apaño", en la función 
str_to_list, compruebo si la cadena es vacía y devuelvo [], he subido el 
cambio al svn. Aunque esta soltando esta excepción, el programa no se 
detiene, y estoy haciendo las primeras pruebas serias, con buenos 
resultados.

Javier, vamos muy bien, muchas gracias ;)

-- 
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)


More information about the Qualipso-a4 mailing list