Mathématiques, Cinéma, Informatique

Activité XV – Variables aléatoires

On considère un texte donné.
Le but de cette activité est de créer un programme qui donne la fréquence d’apparition dans ce texte de chaque lettre de l’alphabet.

I. Fonctions annexes

  1. Créer une fonction somme prenant une liste de nombres en paramètre et retournant la somme de ces nombres.
  2. Créer une fonction frequence prenant une liste de nombres en paramètre et retournant une liste composée du quotient de chaque nombre par la somme des nombres.
  3. Créer la fonction qui enlève les accents en écrivant:

    import unicodedata
    def enleveAccents(texte):
        texteFinal = ''.join((c for c in unicodedata.normalize('NFD', texte) if unicodedata.category(c) != 'Mn'))
        return texteFinal   
  4. Créer une fonction occurenceLettre qui prend en paramètre une chaîne de caractères texte et un caractère caract. Cette fonction retourne le nombre d’occurence de ce caractère dans la chaîne de caractères.

II. La fonction principale

  1. Créer une fonction nommée frequenceTexte ayant pour paramètre une chaîne de caractères texte.
  2. Dans cette fonction, créer une liste alphabet des caractères représentant les lettres de l’alphabet écrites en minuscules.
  3. Créer la variable minuscule dont la valeur est le texte écrit en minuscules.
  4. Créer la variable texte_a_etudier dont la valeur est le texte écrit en minuscules et sans accents.
  5. Créer une variable listeOccurences dont la valeur est la liste des 26 nombres d’occurences dans le texte correspondant au 26 lettres de l’alphabet.
  6. Créer la variable res dont la valeur est la liste des 26 fréquences d’apparition dans le texte des lettres de l’alphabet.
  7. Finir la fonction.

III. Fonction affichage

Créer la fonction d’affichage des fréquences en tapant:

def affichage(texte):
    alphabet=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
              "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y" ,"z"]
    freq=frequenceTexte(texte)
    for i in range(len(alphabet)):
        print("La fréquence d'apparition de la lettre "+alphabet[i]+" est "+str(freq[i])+".")

IV. Tests

  1. Tester avec le texte du corbeau et le renard de Jean de la Fontaine.
  2. Tester avec le début du livre Lord of the rings: the fellowship of the ring de J. R. R. Tolkien. (ici)
  3. Tester avec le début du livre Don Quijote de la mancha de Miguel de Cervantes(ici)