title: Nombre d'occurences d'un mot dans un texte en Python
slug: nombre-doccurences-dun-mot-dans-un-texte-en-python
date: 2008-12-06 15:19:20
type: thought
vignette:
contextual_title1: La documentation Django en local (html et pdf)
contextual_url1: 20081204-la-documentation-django-en-local-html-et-pdf
contextual_title2: Interfaces et promotion du Web Sémantique
contextual_url2: 20081203-interfaces-et-promotion-du-web-semantique
contextual_title3: 24ways, le calendrier de l'Avent des geeks web
contextual_url3: 20081201-24ways-le-calendrier-de-lavant-des-geeks-web
Juste un petit snippet car j’en ai eu besoin récemment pour faire des statistiques sur des termes recherchés et je pense que ça peut être utile :
from itertools import groupby
def word_frequencies(content, blacklist):
"""
Count the number of words in a content, excluding blacklisted terms.
Return a generator of tuples (count, word) sorted by descending frequency.
Example::
>>> song = 'Ob la di ob la da "rla di da" da "da"'
>>> for count, word in word_frequencies(song, ['di']):
... print "%s %s" % (count, word)
...
4 da
2 la
2 ob
1 rla
"""
sorted_words = sorted(word \
for word in content.lower().replace('"', '').split() \
if word not in blacklist)
return ((len(list(group)), word) for word, group in groupby(sorted_words))
if __name__ == "__main__":
import doctest
doctest.testmod(verbose=True)
À adapter selon votre convenance, si vous avez mieux je suis preneur, comme toujours.