El día 18 de mayo de 2010 02:50, Andreina Mejia <andreiname...@gmail.com> escribió: > > Si imprime bien, pero el problema está en que las palabras que contiene > Diccionario.txt no están en utf-8 por lo que no me corrige las palabras > acentuadas o las q tengan 'ñ'... por eso la salida es del tipo d\xc3\xada. > > Cómo hago para colocar todo el contenido de Diccionario.txt en utf-8?
Abre el fichero con 'codecs.open' import codecs NWORDS = train(words(codecs.open('Diccionario.txt',encoding='latin1').read())) En realidad la pregunta está mal hecha. Debería ser: ¿cómo abrir un fichero codificado en XXX para leerlo como unicode? No es lo mismo hablar de cadenas unicode que de codificaciones utf8. Una vez creados, los objetos unicodes utilizan internamente "codepoints" para su representación; la codificación utf8 es una de las codificaciones que hay para exportar objetos unicodes para su represetación en ficheros y terminales. En cuanto al resto del asunto, cuando se usa unicode en expresiones regulares se generalizan las reglas para detectar palabras. No es necesario (ni conveniente) definir explícitamente el alfabeto a usar puesto que basta con una expresión '\w+' para detectar cualquier palabra. re.findall("\w+",u"Niño y camión son palabras",re.U) Ten en cuenta que con unicode funcionan mejor algunos chequeos que fallaban con las strings normales: >>> 'ñ'.islower() 0: False >>> u'ñ'.islower() 1: True _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/