12. Recherche d’Information - Travaux Pratiques

Les exercices suivants sont à effectuer pour partie sur feuille et pour partie avec Solr.

Modèles d’indexation textuel

Modèle Booléen

Nous utiliserons ici l’ensemble suivant de documents (défini par un docId) que nous allons résumer par des mots-clés qui les caractérisent. Vous pouvez charger ces documents dans un index Solr pour effectuer cet exercice.

docId terms
1 France, Récession, Ralentie, INSEE
2 USA, Finance, Paulson, Ralentie, Crise
3 Crise, Gouvernement, Ralentie, INSEE
4 PIB, France, Crise, Ralentie
  1. Créer la matrice d’incidence.

  2. Proposer une transformation des requêtes suivantes sous forme de requêtes booléennes :
    • “la crise ralentie”
    • “En France, selon l’Insee, le PIB”
    • “Aux USA, Paulson” mais sans le mot “crise”
  3. Evaluer les requêtes.

Modèle vecteur

  1. Créer, à partir des documents précédents, des fichiers inverses (posting lists).
  2. Evaluer les requêtes précédentes.
  3. Dans quel ordre doit-on choisir les mots de la requête pour l’évaluation ?

Création d’un index

Cet exercice a pour but de créer un index Solr sur quelques textes extraits du web et parlant d’un même sujet. Vous devez effectuer les étapes standard, à savoir:

  • Un peu de réflexion préalable sur le contenu, les mots à supprimer, les traitements divers à effectuer.
  • La création d’un nouvel index (“core”) dans Solr avec ses fichiers de configuration.
  • Un formatage des documents de manière à pouvoir insérer dans l’index
  • L’ajustement de la chaîne de traitement textuelle (tokenisation, normalisation, mots vides) et son application aux documents
  • Des recherches et analyses pour vérifier que tout va bien.
  • docID 1 (66 mots) : On ne parle plus de ralentissement de la croissance, mais de recession véritable. En France, selon l'Insee, le PIB va diminuer de 0,8 points.  Il en est de même au niveau de l'ensemble des pays industrialisés : pour la première fois depuis 1945, leurs PIB diminueront sur toute une année. Quant aux économies du Sud, si elles vont continuer à croître c'est de façon ralentie.
  • docID 2 (68 mots) : Devant ces mauvais chiffres de la croissance, le gouvernement ne mesure pas ce que cela signifie pour des dizaines de millions de Français en terme de difficultés pour vivre. Pas de récession mais une croissance ralentie, disent-ils... Le gouvernement refuse d'engager un plan de relance de l'économie et veut s'en prendre aux déficits publics en réduisant les dépenses. Pour le gouffre des financiers, les sommes elles sont débloquées !
  • docID 3 (97 mots) : Le gouvernement a revu en nette baisse ses prévisions. De son côté, l'INSEE prend acte du fait que "la croissance cale en zone euro" et que la France n'est pas épargnée par la crise. Même si l'INSEE juge pour l'instant prématuré d'employer le terme de "récession", le PIB de la France devrait continuer à diminuer, perdant 0,1 point aux troisième et quatrième trimestres après une baisse de 0,3 point au deuxième trimestre. La récession est le plus souvent définie par au moins deux trimestres consécutifs de recul du PIB.
  • docID 4 (93 mots) : Il n'est pas encore certain que la crise immobilière et financière provoque une récession, c'est-à-dire un recul de la production durant au moins deux semestres consécutifs et pas seulement un ralentissement de sa croissance. Selon le secrétaire d'Etat américain aux finances, Henri Paulson, même si les USA connaissent une récession, celle-ci sera faible dans son ampleur et sa durée, suivie d'une reprise qui ne serait lente que pendant un an ou deux. C'est le temps qu'il faudra pour absorber le choc et réaliser les ajustements nécessaires.

Voici le vocabulaire de ces textes:

On, Il, ils, elles, un, une, ne, parle, plus, pas, Pas, à, de, De, des, du, n', c', C', d', l', s', qu', le, Le, la, ce, ces, ses, son, leurs, en, au, aux, est-à-dire, celle-ci, et, que, qui, mais, si, même, Même, Devant, après, pour, Pour, Quant, sur, depuis, a, est, sera, serait, sont, va, vont, faudra, dans, devrait, encore, durant, pendant, selon, Selon, toute, certain, souvent, moins, seulement, lente, ralentie, ralentissement, croissance, recession, récession, véritable, France, Français, Insee, INSEE, PIB, diminuer, diminueront, point, points, niveau, ensemble, pays, industrialisés, première, fois, an, année, économie, économies, Sud, continuer, croître, façon, mauvais, chiffres, gouvernement, mesure, signifie, dizaines, millions, terme, difficultés, vivre, disent, refuse, engager, plan, relance, veut, prendre, prend, déficits, publics, réduisant, dépenses, gouffre, finances, financiers, sommes, débloquées, revu, nette, baisse, prévisions, côté, acte, fait, cale, zone, euro, épargnée, crise, juge, instant, prématuré, employer, perdant, deux, deuxième, troisième, quatrième, trimestre, trimestres, semestres, définie, consécutifs, recul, immobilière, provoque, production, secrétaire, Etat, américain, Henri, Paulson, USA, connaissent, faible, ampleur, durée, suivie, reprise, temps, absorber, choc, réaliser, ajustements, nécessaires

La taille de ce vocabulaire est de 176 termes (tous les mots sont pris).

La conception de l’index

Sans machine, réflechissez à l’organisation de votre index en vous posant les questions suivantes:

  1. Quelles sont les conséquences de la non prise en compte de la casse et de la suppression des accents et caractères spéciaux ?
  2. Proposer une liste de “stop words” et évaluer la taille du vocabulaire après suppression des mots vides.
  3. Quelles sont les conséquences d’une lemmatisation des mots du vocabulaire ? Donner plusieurs exemples dans les documents proposés.
  4. Estimer la nouvelle taille du vocabulaire après élimination des mots vides et lemmatisation.
  5. Prendre quelques termes et donner leur liste inversée. Vous pouvez par exemple traiter les mots suivants: crise, croissance, finance, france, insee, lent, gouvernement, pib. Vous y associerez les valeurs de TF et DF.

Création du core Solr

Créez l’index Solr, exactement comme nous l’avons fait pour l’index sur le films. Nous vous donnons le fichier de paramétrage du schéma avec une partie des spécifications en commentaires. À vous de décommenter les différentes parties et de vérifier leur impact.

Note

Reportez-vous au chapitre sur Solr pour la manière de recharger un schéma et un index après modifications.

Procédez par étapes, comme suggéré ci-dessous:

  1. Créez un document au format JSON pour chacun des textes. Chaque document doit être au format {"_id":"1", "contenu":"le texte"};

  2. Chargez ces documents dans votre index, soit avec curl, soit directement avec l’interface Web de Solr.

  3. Modifez le fichier de schéma pour ajouter ou supprimer une des étapes du traitement, et vérifiez l’effet de la modification. Pour cela:

    • avec l’analyseur de Solr intégré à l’interface Web, entrez un fragment de texte et regardez comment il est transformé;
    • avec le Schema browser, consulter le champ contenu, et regardez les principaux termes indexés avec Load info.
  4. Maintenant ajoutez la liste des mots-clé. Nous vous fournissons un exemple de fichier mais vous êtes invités à entrer votre propre liste. Vérifiez à nouveau.

Interrogation

Et pour finir, bien sûr, effectuez des interrogations sur l’index avec vos différents réglages. Vérifiez l’impact des majuscules, des accents, de la lemmatisation, de la racinisation, des mots vides, etc. Construire un index plein texte, c’est un réglage délicat destiné à obtenir un comportement intuitif et un bon compromis entre précision et rappel.

Recherche par similarité

Nous reprendrons les listes inverses créées dans la question précédente.

Produit Scalaire

  1. Calculer le produit scalaire de la requête suivante : France Ralentie PIB
  2. Trier le résultat par ordre de pertinence décroissante

Cosinus

  1. Donner le calcul de la norme d’un document et de la requête
  2. Les normes des documents (tout les termes sont pris en compte) sont respectivement : 0.0392, 0.0336, 0.0310, 0.0421. Calculer le cosinus de la requête suivante : France Ralentie PIB.
  3. Trier le résultat par ordre de pertinence décroissante

Précision / Rappel

Nous nous attendions à l’ensemble résultat suivant : \(R_2 : doc_1, doc_4\)

  1. Donner la précision et le rappel du résultat obtenu par similarité cosinus
  2. Donner le précision et le rappel du résultat obtenu par similarité cosinus avec un score supérieur à 0,03

PageRank

Chaîne de Markov

Voici un graphe représentant les hyperliens entre les pages d’un site web :

_images/PageRank1.jpg

Fig. 12.1 Graphe d’hyperliens entre des pages

  1. Rappeler la loi de probabilité correspondant au passage d’une page i à une page j.

  2. Construire la matrice NxN de probabilités de passages d’une page à une autre, avec

    \[\alpha = \frac{1}{2}\]
  3. Calculer le PageRank de la matrice à l’aide du vecteur (1 0 0 0). Vous arrondirez chaque calcul avec 3 chiffres après la virgule.

Pertinence du contenu d’une page Web

  1. En reprenant le résultat de la recherche par cosinus sur les documents : \(doc_1 (site A), doc_2 (site B), doc_3 (site C), doc_4 (site D)\) et en multipliant le score de cosinus par le pageRank du site hébergeant ce texte, donner le classement final de votre recherche.