Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

article.md 1.8KB

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.