title:      Nombre d&#39;occurences d&#39;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&#39;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.
