Tengo cadenas que son multilingües y consisten en dos idiomas que usan espacios en blanco como separador de palabras (inglés, francés, etc.) e idiomas que no (chino, japonés, coreano).Python: ¿alguna forma de realizar esta división "híbrida"() en cadenas multilingües (por ejemplo, chino e inglés)?
Dada una cadena de caracteres, quiero separar la parte en inglés/francés/etc en palabras usando espacios en blanco como separador, y separar la parte china/japonesa/coreana en caracteres individuales.
Y quiero poner todos esos componentes separados en una lista.
Algunos ejemplos serían, probablemente, dejar esto claro:
Caso 1: Inglés-única cadena. Este caso es fácil:
>>> "I love Python".split()
['I', 'love', 'Python']
Caso 2: sólo china cadena:
>>> list(u"我爱蟒蛇")
[u'\u6211', u'\u7231', u'\u87d2', u'\u86c7']
En este caso puedo convertir la cadena en una lista de los caracteres chinos. Pero dentro de la lista que estoy recibiendo representaciones Unicode:
[u'\u6211', u'\u7231', u'\u87d2', u'\u86c7']
¿Cómo consigo que muestre los caracteres reales en lugar de la Unicode? Algo como:
['我', '爱', '蟒', '蛇']
??
Caso 3: Una mezcla de Inglés & chino:
Quiero convertir una cadena de entrada como
"我爱Python"
y lo convierte en una lista como esta:
['我', '爱', 'Python']
¿Es posible hacer algo como eso?
Por desgracia, hay una misfeature en la corriente de Python 're' módulo que impide' re.split() 'para dividir en las coincidencias de longitud cero: http://stackoverflow.com/questions/2713060/why-doesnt-pythons-re-split-split-on-zero-length - coincidencias - por lo tanto, no puede usar expresiones regulares en Python para esto directamente. –
Coreano usa espacios en blanco para la separación de palabras. – Leovt