python et la phonétique

python et la phonétique - Python - Programmation

Marsh Posté le 04-07-2007 à 03:39:28    

Bonjour,
Je cherche en python un moyen d'interpréter les codes des caractères phonétiques.
C'est à dire par exemple je souhaite faire un print de "ə" mais que la console m'affiche sa signification comme sur une page html à savoir ə (e muet)
Je voudrais bien sur faire ça pour un mot entier dc que le code de bouteille "butɛjə" m'affiche butɛjə sur la console python (le bu étant d'afficher ça sur une interface Tkinter)
Si vous avez une idée je suis preneur, si je suis pas assez claire dites le moi, merci.

Reply

Marsh Posté le 04-07-2007 à 03:39:28   

Reply

Marsh Posté le 04-07-2007 à 11:51:57    

J'ai rien compris, tu veux afficher le code d'un caractère ou tu veux afficher le caractère à partir du code?

Message cité 1 fois
Message édité par masklinn le 04-07-2007 à 11:52:02

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-07-2007 à 12:49:06    

masklinn a écrit :

J'ai rien compris, tu veux afficher le code d'un caractère ou tu veux afficher le caractère à partir du code?


 
Je souhaite afficher le caractère à partir du code  :jap:  

Reply

Marsh Posté le 04-07-2007 à 12:59:45    

Et en entrée tu as donc "ə"?
 
Ou bien tu as une autre donnée (genre uniquement "601", ou autre chose)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-07-2007 à 14:19:57    

masklinn a écrit :

Et en entrée tu as donc "ə"?
 
Ou bien tu as une autre donnée (genre uniquement "601", ou autre chose)


 
j'ai  "ə" en entré, un caractère phonétique est codé "&#" suivi de 2 ou 3 chiffre et terminé par un ";" (enfin dans le norme unicode, je travail en utf8)

Reply

Marsh Posté le 04-07-2007 à 14:24:46    

bah easy, tu parses et chr, modulo le bon charset de sortie

Reply

Marsh Posté le 04-07-2007 à 14:34:06    

Taz a écrit :

bah easy, tu parses et chr, modulo le bon charset de sortie


unichr, chr ne fonctionne que sur de l'ASCII ;)

 

Et si il veut le sortir dans une app Tk, normalement Tk prend directement des strings Python unicode en entrée.

kantarou a écrit :

j'ai  "ə" en entré, un caractère phonétique est codé "&#" suivi de 2 ou 3 chiffre et terminé par un ";" (enfin dans le norme unicode, je travail en utf8)


Il faut convertir tes entités en unicode, donc:
1. Extraire la partie numérique de tes entités, avec une re du type

Code :
  1. re.compile(r'&#(\d+);')


2. transformer le chiffre obtenu en un caractère unicode de valeur équivalente

Code :
  1. unichr(int(char_number))


3. puis balancer la chaîne unicode obtenue à Tk

 

Avec un programme complet qui convertit "butɛjə" en "butɛjə" et affiche ce dernier:

 
Code :
  1. import re, Tkinter
  2. m = re.compile(r'&#(\d+);')
  3.  
  4. inpt = "butɛjə"
  5.  
  6. def transform(entities):
  7.    return "".join(unichr(int(code)) for code in m.findall(entities))
  8.  
  9. root = Tkinter.Tk()
  10. w = Tkinter.Label(root, text=transform(inpt))
  11. w.pack()
  12. root.mainloop()


Message édité par masklinn le 04-07-2007 à 14:34:45

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-07-2007 à 14:34:10    

thanks  :jap:


Message édité par kantarou le 04-07-2007 à 14:34:50
Reply

Marsh Posté le 04-07-2007 à 14:35:30    

kantarou a écrit :

j'ai  "ə" en entré, un caractère phonétique est codé "&#" suivi de 2 ou 3 chiffre et terminé par un ";" (enfin dans le norme unicode, je travail en utf8)


Euh... C'est du globiboulga ton truc là :o (ça donne quoi en phonétique ? [:magicbuzz] )
 
&#...; c'est pas du tout la norme phonétique ou unicode ou quoi que ce soit... C'est simplement la norme HTML.
 
& début d'une séquence d'échappement
; fin de la séquence d'échappement
 
# la séquence qui suit est une séquence numérique dans la base 10 représentant le charcode d'un caractère.
 
A va t'afficher un A et qui n'a rien à voir avec la phonétique.
 
En UTF-8, 항 va t'afficher 항 (Syllabe Hangul "hieuh a ieung" ) et c'est encore moins de la phonétique.
 
La valeur importante à retenir c'est donc ici 65 et 54637, pas le format &#...; qui est purement HTML.
 
Cherche en Phyton une fonction qui permet donc d'obtenir un caractère unicode à partir de son code... Assure-toi que ta sortie standard est bien en unicode et le tour est joué !
 
(en mode sauce barbecue, ça donne donc unichr() :D)


Message édité par MagicBuzz le 04-07-2007 à 14:36:46
Reply

Marsh Posté le 04-07-2007 à 14:39:44    

(sinon, juste en passant, pour la forme... y'a pas un HTMLDecode() en Phyton ? Parceque logiquement il va te donner direct la string correctement représentée, sans avoir à extraire les codes caractère par caractères...)


Message édité par MagicBuzz le 04-07-2007 à 14:40:05
Reply

Marsh Posté le 04-07-2007 à 14:39:44   

Reply

Marsh Posté le 04-07-2007 à 14:52:10    

Surrement que ça existe, python est génial pour ça mais encore faut-il le trouver (y plein de lib html)
En tout cas merci pour toutes vos réponse

Reply

Marsh Posté le 04-07-2007 à 15:01:14    

http://sebsauvage.net/python/charsets_et_encoding.html
 
Ca m'a l'air intéressant comme article et plus ou moins (complètement ?) en rapport avec ce que tu cherches à faire et les problèmes que tu as/vas rencontrer :D
 
PS : SebSauvage c'est pas un... ah ben nan... c'est quoi que si... c'pas un gars de HFR ça ?

Reply

Marsh Posté le 04-07-2007 à 15:52:44    

En fait mon stage est termniné et j'ai accompli l'objectif que l'on m'avait donné, mais lors de ma soutenance j'ai eu le malheure de parler de ce petit prob que j'avais pas résolu, et je me suis fait incendié par mon prof  :pfff: (ça faisait que l'interface n'était pas au top quoi, mais le rendu finale était parfait).
Dc bref j'ai voulu donner une dernière à mes maitres de stage qui soit plus agréable, car j'avais vraiment envie de baffer (pour être correcte) mon prof

Reply

Marsh Posté le 04-07-2007 à 16:03:38    

kantarou a écrit :

En fait mon stage est termniné et j'ai accompli l'objectif que l'on m'avait donné, mais lors de ma soutenance j'ai eu le malheure de parler de ce petit prob que j'avais pas résolu, et je me suis fait incendié par mon prof  :pfff: (ça faisait que l'interface n'était pas au top quoi, mais le rendu finale était parfait).
Dc bref j'ai voulu donner une dernière à mes maitres de stage qui soit plus agréable, car j'avais vraiment envie de baffer (pour être correcte) mon prof


ça me rappelle la soutenance de mon stage de fin d'IUT.
 
stage à la con où j'avais fait de tout et n'importe quoi (mise en place d'un réseau d'entreprise dans une PME avec mise en place d'un partage de cnx RTC et de disques réseau entre mac et pc... quand t'as pas de serveur et que c'est en 1999 -windows 95, 98, et du mac os 8-, je peux t'assurer que ct pas gagné d'avance :D), création de javascripts bien bouseux sur différents sites, analyse et mise en place d'un gros sote annuaire (genre les pages jaunes) étude et choix d'offres d'hébergement, macros excel... enfin... tout que qu'un gars qui est le seul à savoir différencier une souris et un clavier peut faire quand il arrive dans une PME :D)
 
rapport de stage épais comme l'encyclopédie larousse. 1h30 de soutenance histoire de faire le tour des principaux points. les profs bleuffés par tout ce que j'avais fait (faut dire que gt parti pour pas avoir mon dut, ils s'attendaient pas trop à ça :D), tout ça...
 
et à la fin... "c'est bien joli tout ça... mais vous savez pas écrire, votre rapport est truffé de fautes !" (alors que je m'étais fait chier à pondre 50 pages de tuto PHP, HTML et JavaScript, des trucs qu'on avait jamais vu à l'école... mais aussi des chapitres entiers d'explications quant aux limites rencontrées avec MySQL 1.0 à l'époque -genre il supportait pas les jointures où les filtres de jointure dépassaient 2 champs_, etc.)
 
mais je fû sauvé par le boss de la boîte "euh... excusez-moi, c'est moi qui ai relu son rapport..." du coup j'ai quand même eu un 18 (non mais :o) et mon dut par la même occasion, un 17 n'aurait pas suffit :D


Message édité par MagicBuzz le 04-07-2007 à 16:04:22
Reply

Marsh Posté le 04-07-2007 à 16:25:30    

lol

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed