Bonsoir,
Une nouvelle question me turlupine.
Voici le code suivant :
Nous avons donc un fichier texte tokenisé (séparé en mots/tokens). La liste de mots obtenue est utilisée par un dictionnaire pour compter le nombre d'occurrences de chaque mot dans le texte.
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 # -*- coding: iso-8859-1 -*- import codecs f=codecs.open('french.txt','r',encoding='iso-8859-1') data=f.read() from nltk.tokenize import WordTokenizer tokenizer=WordTokenizer() words=tokenizer.tokenize(data) dico = {} for word in words: if word in dico: dico[word]+=1 else: dico[word]=1 lst=[(count, word) for word, count in dico.iteritems()] lst.sort(reverse=True)
J'aimerais obtenir la liste des mots revenants 15 fois ou plus dans le texte.
Là actuellement, je sais extraire les données de mon dico dans une liste avec des couples nombre d'occurrences / mot, et je peux classer cette liste de façon à ce que les mots les plus fréquents apparaissent en tête, ou l'inverse.
Mes problèmes:
- Je n'arrive pas à couper cette liste au bon endroit automatiquement (Je peux toujours avoir un résultat en la coupant à la main avec des tranches du genre [0:400] pour faire en sorte de n'avoir plus que les mots qui reviennent plus de 15 fois mais c'est pas vraiment la bonne méthode à mon avis :p).
Je me demande s'il y a un moyen de couper en mettant par exemple une condition : count>= à 15 ? Si oui ça se passe au moment où on extrait les données du dico ou ça se fait plus loin directement sur la liste de couples ?
Peut on directement extraire uniquement les mots du dictionnaire avec cette condition là où faut il passer par deux étapes ?
- Le problème que je rencontre ensuite en ayant coupé ma liste via système D (tranches), c'est que j'aimerais appliquer diverses transformations aux mots de celles cis. Mais pour cela il me faut uniquement des mots et non pas des couples avec les nombres d'occurrences qui persistent toujours :
M'imprime toujours les couples entiers et non pas seulement les mots comme j'aurais pu l'espérer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for word in lst: print word
J'ai lu partout que "Les tuples ne sont pas modifiables." mais est ce que cette 'liste' est vraiment un tuple ?
Bref je patauge dans les différents types et je rame avec cette liste.![]()
Partager