latin transliteration

Chema Cortes pych3m4 en gmail.com
Dom Dic 20 03:19:03 CET 2009


El día 19 de diciembre de 2009 21:01, Rolando Espinoza La Fuente
<darkrho en gmail.com> escribió:
> Hola, ¿conocen algún módulo para "transliteration" que funcione correctamente?
>
> He probado todo lo que encontre y ninguno me da el resultado que quiero,
> por ejemplo: "américa" -> "america"
>
> Vean:
>
> In [3]: AsciiDammit.asciiDammit(u'américa'.encode('utf-8'))
> Out[3]: 'amAfArica'
>
> In [9]: unicodedata.normalize('NFKD', u'américa').encode('ASCII', 'ignore')
> Out[9]: 'amArica'
>
> In [10]: unidecode.unidecode(u'américa')
> Out[10]: u'amA(c)rica'


unicode.normalize() requiere un poco más de trabajo:

def slugify(s):
  from unicodedata import normalize
  return ''.join(normalize("NFD",c)[0] for c in s)

slugify(u"América") --> u"America"


+refs:
http://listas.aditel.org/archivos/python-es/2007-March/016813.html
http://listas.aditel.org/archivos/python-es/2007-April/016988.html
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es