• Aucun résultat trouvé

Analyse et indexation des documents et des requêtes

Chapitre 1 : Les Systèmes de Recherche d’Information

3. Analyse et indexation des documents et des requêtes

L'objectif de l'analyse et de l'indexation est de d'abord trouver des concepts les plus importants dans le document, et de créer une représentation interne en utilisant ces concepts (intensions). Pour trouver des concepts, il est nécessaire de procéder une analyse sémantique pour déterminer ce qui est un concept dans un texte. Cette analyse n'est pas disponible pour la RI. Les techniques existantes sont souvent restreintes à un domaine très spécialisé, et l'analyse est très complexe.

Ainsi, en pratique, on cherche plutôt des représentants (instances ou extensions) des concepts. Ces représentants peuvent être de forme différentes: des mots simples, des termes (éventuellement composés), ou des doublets de mots (groupes de deux mots). En fait, le choix de représentants dépend de deux critères essentiellement: la facilité de traitement; la précision de représentation de sens.

Étant donné le grand nombre de documents à traiter, il est nécessaire que le traitement pour la reconnaissance des représentants soit plus faisable. Cependant, les représentants trouvés doivent permettre à décrire le contenu (la sémantique) du document et de la requête de façon assez précise.

L'idée d'utiliser des mots comme des représentants de concepts est assez naturelle. En effet, les mots sont des unités linguistiques qui sont les plus faciles à reconnaître, et qu'elles sont assez porteuses de sens. Ce sont ces unités qu'on utilise le plus souvent dans les systèmes actuels.

Cependant, les mots ne donnent pas une description toujours très précise. Par exemple, le concept de "recherche d'information", une fois représenté par les mots "recherche" et "information", perd beaucoup de sens, car les mots "recherche" et "information" sont très courants en français, et ils sont des sens très imprécis. Ainsi, les chercheurs ont aussi proposé des approches visant à regrouper des mots pour former des termes composés. Ces approches utilisent soit une analyse syntaxique et/ou statistique, soit un dictionnaire de termes composés, soit une terminologie (vocabulaire contrôlé, taxonomies, thésaurus), soit une ontologie (modèle de représentation des connaissances). Nous allons considérer des mots comme des représentants de concept. Ces représentants sont aussi appelés des index, en rapport avec leur rôle qu'ils joueront dans la recherche.

3.1 Approche basée sur la fréquence d'occurrences

L'objectif ici est de trouver les mots qui représentent le mieux le contenu d'un document. On admet généralement qu'un mot qui apparaît souvent dans un texte représente un concept important. Ainsi, la première approche consiste à choisir les mots représentants selon leur

fréquence d'occurrence. La façon la plus simple consiste à définir un seuil sur la fréquence : si la fréquence d'occurrence d'un mot dépasse ce seuil, alors il est considéré important pour le document.

Cependant, les statistiques des occurrences montrent que les mots les plus fréquents sont des mots fonctionnels (ou mots outils, mots vides). En français, les mots "de", "un", "les", etc. sont les plus fréquents. En anglais, ce sont "of", "the", etc. Ce phénomène n'est pas étrange si on connaît la loi de Zipf [Zipf, 1949] qui stipule que :

« Si on classe les mots dans l'ordre décroissant de leur fréquence, et on leur donne un numéro de rang (1, 2, …), alors : Rang * fréquence ≈ constante ».

Voyons un exemple en anglais :

Rang Mot Fréquence Rang* Fréquence

1 the 69 971 69 971 2 of 36 411 72 822 3 and 28 852 86 556 4 to 26 149 104 596 5 a 23 237 116 185 6 in 21 341 128 046 7 that 10 595 76 165

Tableau 1.1 : Exemple de calcul de la fréquence d'occurrences

Il devient évident que nous ne pouvons pas garder tous les mots les plus fréquents comme des index d’un document. En restant dans la même lignée, un autre seuil maximal a été défini. En effet, si la fréquence d'un mot dans le document dépasse ce seuil, alors il n'est pas considéré comme index de ce document.

L'utilisation de ces deux seuils correspond à ce qu'on croit sur l'informativité de mot. L'informativité mesure la quantité de sens qu'un mot porte. Cette notion n'est pas définie très précisément dans la RI. Elle est utilisée seulement de façon intuitive. Cependant, on peut trouver son équivalent dans la théorie de l'information (par exemple, la théorie de Shannon, ou l'entropie)

La correspondance entre l'informativité et la fréquence est illustrée dans la figure 1.2:

Ainsi, en choisissant les mots qui ont des fréquences entre les deux seuils, on espère obtenir les mots dont l'informativité est la plus élevée.

3.2 Approche basée sur la valeur de discrimination

Par "discrimination", on se réfère au fait qu'un terme distingue bien un document des autres documents. C'est-à-dire, un terme qui a une valeur de discrimination élevée doit être apparaître seulement dans un petit nombre de documents. Un terme qui apparaît dans tous les documents n'est pas discriminant.

Le pouvoir de discrimination d'un terme est important dans le choix de termes index qu'on veut garder. L'idée est de garder seulement les termes discriminants, et éliminer ceux qui ne le sont pas.

Le calcul de la valeur de discrimination a été développé dans le modèle vectoriel. Ainsi, nous nous situons dans ce modèle. Une description plus détaillée du modèle sera donnée dans le prochain chapitre.

Dans le modèle vectoriel, chaque document est représenté par un vecteur de poids comme suit:

t1 t2 t3 ... tn

di  <pi1 pi2 pi3 ... pin>, Où pij est le poids du terme tj dans le document di.

Étant donné un corpus (un ensemble de documents), on a donc une matrice. Pour calculer la valeur de discrimination d'un terme, on doit comparer une sorte d'uniformité au sein du corpus avec celle du corpus transformé dans lequel le terme en question a été uniformisé (mis au même poids). L'idée est que, si on uniformisant le poids d'un terme dans tous les documents, on obtient une grande amélioration dans l'uniformité du corpus, ce terme était donc très différent (non uniformément distribué) dans différents documents. Il a donc une grande valeur de discrimination. En revanche, si en uniformisant le poids du terme, on n'obtient pas beaucoup d'amélioration sur l'uniformité, ce terme était donc déjà distribué de façon uniforme, donc peu discriminant.

Le calcul de la valeur de discrimination d'un terme se fait comme suit:

1. On calcule d'abord le vecteur centroïde (ou le vecteur moyen) du corpus comme suit: Pour chaque terme, son poids dans le vecteur centroïde V est le poids moyen de ses poids dans les documents. C'est-à-dire:

pj = ∑i pij / N (1.1) où N est le nombre de documents dans le corpus.

2. On calcule l'uniformité du corpus comme la similarité moyenne des documents avec le centroïde:

U1 = C * ∑j Sim(di, V) (1.2) où C est une constante de normalisation (par exemple 1/N), et Sim(di, V) est la similarité entre le document di et le vecteur centroïde V. Ici, Sim doit être une formule normalisée qui donne une valeur dans [0,1] (voir la description sur le modèle vectoriel dans le chapitre suivant).

3. On uniformise le poids du terme en question à 0, et on répète les deux étapes ci-dessus pour obtenir une nouvelle valeur d'uniformité U2.

V = U2 - U1. (1.3) Dans ce calcul de la discrimination, on ne préoccupe pas beaucoup de la fréquence d'un terme dans un document particulier, mais beaucoup plus à sa distribution dans le corpus. En utilisant la valeur de discrimination, on peut éliminer les mots fonctionnels comme "de", "à", etc. qui apparaissent dans tous les documents en langue française.

3.3 Approche basée sur tf x idf

Le nom tf x idf est très connu dans le milieu de la RI. Cela désigne un ensemble de schémas de pondération (et de sélection) de termes. tf signifie "term frequency" et idf "inverted document frequency". Par tf, on désigne une mesure qui a rapport à l'importance d'un terme pour un document. En général, cette valeur est déterminée par la fréquence du terme dans le document. Par idf, on mesure si le terme est discriminant (ou non-uniformément distribué). Ici, on donne quelques formules de tf et d'idf souvent utilisées.

1. tf = fréquence d'occurrence du terme dans un document f(t, d);

tf = f(t,d) / Max[f(t, d)] où Max[f(t,d)] est la fréquence maximale des termes dans d; tf = log(f(t, d)) ;

tf = log(f(t, d) + 1) ;

2. idf = log(N/n) où N est le nombre de documents dans le corpus, et n ceux qui contient le terme.

3. Finalement, on peut aussi imposer certaine normalisation sur les valeurs calculées. Une formule de tf x idf est donc la multiplication d'une tf par une idf. Par exemple:

tf x idf = [f(t, d) / Max[f(t, d)]] * log(N/n)

Une formule tf x idf combine les deux critères ci-dessus : 1. L'importance du terme pour un document (par tf), 2. Le pouvoir de discrimination de ce terme (par idf).

Ainsi, un terme qui a une valeur de tf x idf élevée doit être à la fois important dans ce document, et aussi il doit apparaître peu dans les autres documents. C'est le cas où un terme correspond à une caractéristique importante et unique d'un document.

Avec une telle formule, on peut donc choisir à garder seulement les termes dont la valeur de tf x idf dépasse certain seuil.

3.4 La pondération de termes

La pondération qu'un terme possède peut aussi être de diverses natures. Elle peut être simplement la fréquence d'occurrence, ou bien une mesure dérivant de cette fréquence (par exemple, normalisée). Elle peut être également une formule de tf x idf. Des comparaisons ont montré qu'en utilisant seulement la fréquence d'occurrence ne donne pas une performance satisfaisante (même si on élimine les mots fonctionnels d'une certaine façon). En général, les formules de tf x idf donnent de meilleures performances.

En réalité, si on utilise la valeur de tf x idf pour filtrer les termes index, on peut utiliser la même valeur de tf x idf comme la pondération de terme. C'est de cette manière qu'on procède généralement. Donc, le filtrage et la pondération ne sont pas deux processus nécessairement séparés.

3.5 Filtrage des mots fonctionnels

Certains mots fonctionnels, comme le mot "auparavant", "ès", etc. n'apparaissent pas très souvent dans des textes. Par le calcul de valeur de discrimination ou par l'utilisation de idf, on n'arrive pas nécessairement à les éliminer. Or, on ne veut pas les garder comme index parce qu'ils sont vides de sens.

Afin d'éliminer ces mots de force, on utilise une liste, appelée stoplist (ou parfois anti-dictionnaire) qui contient tous les mots qu'on ne veut pas garder. Ces mots sont souvent des prépositions (e.g. "de", "à"), prénom ("aucun", "tout", "on"), certains adverbes ("ailleurs", "maintenant"), adjectifs ("certain", "possible"), etc.

Certains mots inclus dans cette liste ne sont pas nécessairement vides de sens (ça dépend du domaine. Ils ne sont pas vides de sens en linguistiques). Mais leur sens importe très peu pour des besoins de RI.

La liste utilisée dans un système peut aussi varier. Cela dépend su domaine d'application. Par exemple, le mot "article" est inclus dans certains systèmes comme mot vide parce qu'on reçoit beaucoup de requête d'utilisateur qui contient le mot "papier", comme "des papier sur l'informatiques". Cependant, ce mot peut être très significatif dans certaines applications (par exemple, pour une base de documents en papeterie).

Le traitement lié à une stoplist est très simple. Quand on rencontre un mot dans un texte, on doit d'abord examiner s'il apparaît dans cette liste. Si oui, on ne le considère pas comme un index.

3.6 Lemmatisation

Nous remarquons que plusieurs mots ont des formes légèrement différentes, mais leur sens restent le même ou très similaire. C'est notamment le cas des mots conjugués. Par exemple, les mots transformer, transforme, transforment, transformation, transformateur, …ont des sens très similaires.

La différence de forme entre ces mots n'est pas utile à considérer pour la RI. Au contraire, on voudrait trouver des documents sur "transformation" à partir d'une requête sur "transformer". Ainsi, il faut éliminer ces différences non-significatices, c'est-à-dire de ramener ces mots à une forme identique.

Ces mots ont la même racine (lemme). Ainsi, on arrive à éliminer les terminaisons de mots, et garder seulement la racine, on a donc une forme identique pour eux. C'est l'idée qui conduit à utiliser la lemmatisation.

Il existe plusieurs façons de lemmatiser des mots.

1. Une première façon consiste à examiner seulement la forme de mot, et selon la forme, on essaie de déduire ce qui est la racine. C'est cette approche que Porter utilise dans [Porter, 1980]. En effet, cet algorithme élimine les terminaisons de mot en anglais en 5 grandes étapes: la première étape essaie de transformer le pluriel en singulier. Les étapes subséquentes essaient d'éliminer au fur et à mesure les dérivations (e.g. -ness qu'on ajoute derrière certains adjectifs (happiness), -able ajouté derrière un verbe (adjustable)).

Cet algorithme transforme parfois deux mots différents en une même forme. Par exemple en anglais, derivate/derive, activate/active. Cependant, pour la plupart, la transformation semble raisonnable.

Porter a comparé son algorithme avec un autre disponible à l'époque qui utilisait un algorithme beaucoup plus compliqué. Il s'est avéré que cet algorithme simple fonctionne mieux pour la RI. Maintenant, cet algorithme est considéré comme un algorithme classique. La plupart de procédures de lemmatisation l'utilise, ou utilise une variante.

2. On peut aussi utiliser un dictionnaire dans la lemmatisation. Pour savoir si une séquence de lettres à la fin correspond à une terminaison d’un mot, il suffit de faire une élimination ou une transformation tentative, et de voir si la forme obtenue existe dans le dictionnaire. Sinon, ce n'est pas une terminaison correcte, et d'autres possibilités sont ensuite envisagées. Par exemple, on peut accepter la règle qui remplace -ation par -er. Par exemple, transform-ation, élimin-ation, etc. Cependant, pour "vocation", si on applique cette règle, on obtiendra "vocer". Ce n'est pas une transformation correcte. Pour éviter cela, on peut vérifier dans le dictionnaire si le mot "vocer" existe. Sinon, on ne le transforme pas. Cette approche a été utilisée pour le français dans [Savoy, 1993].

L'utilisation d'un dictionnaire ajoute certains avantages, mais elle est au prix de disposer d'un dictionnaire. La plupart de systèmes de RI n’en disposent pas, et un tel dictionnaire électronique n’était pas encore peu accessible.

3. Une lemmatisation correcte requièrt souvent une reconnaissance correcte de catégorie grammaticale. Ainsi, on peut penser à utiliser un taggeur (ou un analyseur de catégorie) automatique dans un processus de lemmatisation. Plusieurs méthodes de taggages ont été proposées. Une des approches possibles est de déterminer la catégorie d'un mot de façon probabiliste. Pour cela, il faut d'abord qu'on entraîne un modèle probabiliste en utilisant un ensemble de textes catégorisés manuellement (le corpus d'entraînement). Ce modèle détermine la probabilité d'un mot d'être dans une catégorie selon sa forme, et selon les mots qui l'entourent.

Avec ce mécanisme de reconnaissance de catégorie, on peut se permettre de transformer une forme de mot en une forme standard - la forme de citation (par exemple, nom singulier, adjectif masculin singulier), au lieu de couper simplement la terminaison.

3.7 L'approche basée sur une indexation

Durant l'indexation, on doit transformer les mots (lemmatisation), sélectionner un ensemble d'index et les quantifier. Le résultat d'une indexation est donc un ensemble de termes qui peut être constitué soit d’un mot, soit d’une racine de mot, soit d’un terme composé si on possède un mécanisme pour reconnaître des termes composés.

d { … (ti, pi), … }, où ti est un terme, et pi est son poids.

Cet ensemble de termes pondérés sera utilisé pour constituer une représentation du contenu du document. En fait, l’organisation de ces termes en une représentation dépend du modèle de RI utilisé. Ainsi, dans différents modèles, le même ensemble de termes aura une signification différente.

Une requête peut être maintenant une expression plus complexe, incluant des opérateurs logiques (ET, OU, …) ou d'autres types d'opérateurs. L'évaluation est compositionnelle, c'est-à-dire, on commence par évaluer les éléments de base (par exemple, des mots) dans la requête, obtenant ainsi des listes de documents; ensuite, on combine ces listes selon l'opérateur qui relie ces éléments pour obtenir finalement une seule liste de documents.

En fait, cette approche possède les avantages suivants :

 Elle est plus rapide. En effet, on n'a plus besoin de parcours séquentiel. Avec la structure d'index, on peut directement savoir quels documents contiennent tel ou tel mot.

 L'expression des requêtes peut être très complexe, exprimant des besoins d'information complexes.

Le prix à payer pour ces avantages est le besoin de l'espace de stockage supplémentaire pour la structure d'index. En général, cet espace correspond à 40% à 200% de la taille de collection de documents, selon la complexité de l'indexation. Mais ce besoin d'espace pose de moins en moins de problème maintenant.

Utilisant cette approche, on peut voir les opérations et l'environnement de la RI comme l’indique la figure 1.3 :

Figure 1.3 : Opérations et environnement de la RI

Nous distinguons trois niveaux différents :

(i) Le niveau utilisateur: A ce niveau, l'utilisateur a un besoin d'information dans sa tête, et il

espère obtenir les documents pertinents pour répondre à ce besoin.

La relation entre le besoin d'information et les documents attendus est la relation de pertinence (idéale, absolue, …).

(ii) Le niveau système: A ce niveau, le système répond à la requête formulée par l'utilisateur

par un ensemble de documents trouvés dans la base de documents qu'il possède.

En fait, la requête formulée par l'utilisateur n'est qu'une description partielle de son besoin d'information. Beaucoup d'études ont montré qu'il est très difficile, voire impossible, de formuler une requête qui décrit complètement et précisément un besoin d'information. Du côté de document, il y a aussi un changement entre les deux niveau: les documents qu'on peut retrouver sont seulement les documents inclus dans la base de documents. On ne peut souvent pas trouver des documents parfaitement pertinents à un besoin. Il arrive souvent qu'aucun document pertinent n'existe dans la base.

(iii) Le niveau interne du système: La requête formulée par l'utilisateur (souvent en langue

naturelle) ne peut pas se comparer directement avec des documents en langue naturelle eux aussi. Il faut donc créer des représentations internes pour la requête et pour les documents. Ces représentations doivent être manipulables par l'ordinateur. Le processus de création de ces représentations est appelé l'indexation. Il est aussi à noter que les représentations créées ne reflètent qu'une partie des contenus de la requête et des documents. La technologie de nos jours ne permet pas encore de créer une représentation complète.

Utilisateur Besoin d’information Documents pertinents

Requête Représentation Base de documents Représentation Pertinence de l’utilisateur Pertinence du Système Appariement / Matching

Pour déterminer si la représentation d'un document correspond à celle de la requête, on doit développer un processus d'évaluation. Différentes méthodes d'évaluation ont été développées, en relation avec la représentation de documents et de requête. C'est cet ensemble de représentation et la méthode d'évaluation qu'on appelle un modèle de RI.

Par ailleurs, nous remarquons qu'il y a des différences entre deux niveaux différents. En ce qui concerne le besoin d'information, il est transformé en une requête, puis en une représentation de cette dernière aux niveaux inférieurs. Du côté document, il y a des changements similaires. Les relations que nous pouvons déterminer à chaque niveau ne sont pas pareilles non plus. En fait, l’objectif ultime espèré est qu'un bon système de RI puisse aboutir à une bonne correspondance (Appariement / Matching) qui reflète bien la pertinence

du système, laquelle, correspond bien au jugement de pertinence de l'utilisateur. Cependant,

étant donné la différence entre les niveaux, il y a nécessairement une dégradation. Ainsi, une autre tâche de la RI est d'évaluer un système de RI une fois construit. Cette évaluation du système tente de mesurer l'écart entre les niveaux (surtout entre le niveau système et le niveau interne du système).