Bonsoir,

J'ai remarqué que vous aviez réponse à tout, donc je vais en profiter pour vous exposer mon petit souci
Je voudrais pouvoir désaccentuer proprement des textes de plusieurs milliers de caractères pour un comptage...
Ca, je l'ai en réalité déjà réussi tant que je fonctionne sous l'IDLE de Python 2.6.2.
Mais dès que j'essaie de "compiler" avec py2exe pour faire fonctionner mon truc en console : il y a certains caractères "spéciaux qui passent à travers, ce qui fausse le comptage et les fréquences...
Donc, je me suis mis en chasse et j'ai trouvé ça qui fonctionne très bien aussi en console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import unicodedata
 
ligne = u"Cet appareil, pourtant inférieur à celui de Wadsworth, éveilla un vif \ 
intérêt dans le petit monde des spécialistes. La couronne extérieure est \ 
divisée en 27 secteurs : les 26 lettres de l'alphabet clair (ordonné) et une \
case servant de séparation de mots. Le disque intérieur porte un alphabet \
désordonné de 26 lettres."
 
ligne =unicodedata.normalize('NFKD', ligne).encode('ascii','ignore')
print ligne
Alors direz-vous ?
Alors, je voudrais pouvoir traiter différents textes enregistrés sur mon disque dur.
Mais là, ça plante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import unicodedata
 
fichier=open(rep+'\\Echantillon'+str(i)+'.txt','r')  
 
for line in fichier:
    line='u'+line.strip('\n','')        
    line=unicodedata.normalize('NFKD', line).encode('ascii','ignore')
 
Traceback (most recent call last):
  File "C:\VRAC_C\frequence_grammes4.py", line 69, in <module>
    line=unicodedata.normalize('NFKD', 'u'+line).encode('ascii','ignore')
TypeError: normalize() argument 2 must be unicode, not str
Je comprends pourquoi, mais je n'arrive pas à faire l'équivalent de ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ligne = u"Cet appareil, pourtant inférieur ..."
avec un nom de chaîne à la place du texte...

Si l'un de vous avait l'extrême bonté de prendre 2 min pour me souffler une solution, ce serait vraiment sympa...

Merci d'avance