Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
U : 2020/2021
PROBLEME 2
La quantité d’informations disponible en ligne s’est considérablement accrue. Notons par
exemple la numérisation de nombreux ouvrages, le développement exponentiel du web, etc.
Un problème clé lié à ce volume de données est l'efficacité de la recherche d'informations.
Dans un moteur de recherche internet par exemple, un facteur d’importance d’une page pour
une requête donnée est l’appartenance des mots recherchés à la page ainsi que leur nombre
d’apparitions (occurrences). Ces informations peuvent être obtenues en mettant en œuvre des
algorithmes de recherche comme nous le verrons dans la suite.
Un texte donné est une suite de n lettres minuscules stockées dans une liste d’entiers où
l’élément d’indice 0 stocke la taille du texte et le reste sont des entiers (compris entre 1 et 26)
représentants les lettres minuscule du texte suivant l'ordre lexicographique (voir tableau
suivant).
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Il est à noter que les espaces, les fins de lignes et les caractères de ponctuation présents dans
le texte ne sont pas représentés dans la liste.
Un mot, composé d’une ou de plusieurs lettres, est un texte.
Exemple :
Le texte "quelbonbonbon" est représenté par la liste L où l’élément d’indice 0 stocke le
nombre de lettres dans le texte et le reste des éléments sont les ordres lexicographique des
lettres minuscules du texte.
Texte : q u e l b o n b o n b o n
L : 13 , 17 , 21 , 5 , 12 , 2 , 15 , 14 , 2 , 15 , 14 , 2 , 15 , 14
Travail demandé :
N.B : Dans la suite, les fonctions demandées seront écrites en langage Python, en utilisant
impérativement la nomenclature donnée par le tableau suivant.
1. Ecrire une fonction, nommée Taille, qui saisit et retourne un entier compris entre 1 et
NMAX. Cette fonction a pour entête :
2. Ecrire une fonction, nommée SaisiText, qui saisit dans une liste L les n entiers
représentants les lettres d’un texte donné. Cette fonction a pour entête :
def SaisiText(n):
3. Ecrire une fonction, nommée VerifMot, qui retourne True si un mot identifié par
mot apparaît à une position k d’un texte représenté par une liste L et False sinon.
Cette fonction a pour entête :
Exemple : La
première apparition du mot "bonbon" dans le texte
"quelbonbonbon" est à l’indice 5.
5. Ecrire une fonction, nommée ListOccur, qui détermine dans une liste occ les
occurrences d’un mot identifié par mot apparaissant dans un texte représenté par une
liste L. La case d’indice 0 de occ stocke le nombre d’occurrences. La suite des cases
stocke les indices des occurrences si le mot apparaît dans le texte. Cette focntion a
pour entête :
occ : 2 , 5 , 8
6. Ecrire une fonction, nommée MotRecouv, qui à partir, d'un mot identifié par mot et
d’une liste d’occurrence occ, retourne True si certaines occurrences du mot identifié
par mot se recouvrent dans le texte (comme le cas du mot "bonbon" dans le texte
"quelbonbonbon"), et False sinon. Cette fonction a pour entête :
8. Ecrire une fonction, LettresPlusFreq, qui détermine dans une liste LF les lettres
ayant la fréquence maximale dans le texte représenté par L. L’élément d’indice 0 de
LF stocke la fréquence maximale et la suite contient l’ordre lexicographique des
lettres ayant toutes cette même fréquence maximale.
2ème Année MP/PC/PT Page 2