================================================================ MOTS Mining-Oriented Text Statistics ---------------------------------------------------------------- Librairie d'outils d'indexation et d'analyse de textes conçue pour la classification et la fouille de données ================================================================ Pascal Vaillant, Université des Antilles-Guyane. décembre 2003 - février 2008 ================================================================ **************************************************************** 1. Installation (version courte) **************************************************************** Dans le répertoire principal de MOTS, taper : ./configure puis : make **************************************************************** 2. Dépendances **************************************************************** L'installation des fonctions de classification de ce système nécessite l'installation préalable des pré-requis suivants : - LAPACK - BLAS (recommandé : ATLAS) - g77 - GNUPlot N.B. Normalement, l'utilisation de "configure" avant "make" devrait déterminer si votre système possède oui ou non ces pré-requis, et trouver automatiquement leurs chemins d'accès. Explication et utilisation : - LAPACK (Linear Algebra PACKage) est une librairie de fonctions évoluées d'algèbre linéaire, contenant notamment des fonctions sur les matrices (résolution d'équations d'algèbre matriciel, analyse spectrale). Elle a été implémentée dans le langage FORTRAN, par une équipe internationale, autour d'un noyau basé à l'université du Tennessee. LAPACK est utilisée par certaines fonctions de SCHIZO (les fonctions faisant appel à des calculs matriciels). Cette librairie est disponible en libre accès sur la Toile à partir de l'adresse : http://www.netlib.org/lapack/ Si vous souhaitez l'installer sur votre système, il sera probablement nécessaire de la compiler : il faut donc disposer d'un compilateur FORTRAN (compilateur GNU : g77 --- cf. infra). - BLAS (Basic Linear Algebra Subprograms) est la spécification (et non pas une implémentation particulière) d'une librairie de fonctions de base d'algèbre linéaire (opérations simples sur les vecteurs et les matrices). Ces fonctions sont utilisées par LAPACK. LAPACK inclut une implémentation de référence, en FORTRAN, des fonctions définies dans le BLAS. Toutefois, les opérations élémentaires du BLAS étant utilisées très souvent, et étant potentiellement très coûteuses en temps de calcul (surtout sur des vecteurs et matrices de grande dimension), il est préférable d'utiliser une version optimisée de ces fonctions. ATLAS (Automatically Tuned Linear Algebra Software) est un système logiciel libre et ouvert fournissant une implantation optimisée, pour chaque système informatique particulier, des fonctions définies dans le BLAS (et d'une petite partie des fonctions de LAPACK). Au moment de l'installation, ATLAS teste les caractéristiques particulières du système, tant matérielles que logicielles (processeur, mémoire, librairies utilisées ...), et engendre automatiquement l'implémentation des fonctions BLAS la plus adaptée, en termes d'efficacité, à ces caractéristiques. ATLAS fournit ainsi, quel que soit le système, une implantation presque optimale du BLAS. Les fonctions BLAS sont alors disponibles pour des programmes en langage C ; les en-têtes de fonctions suivent la norme d'interface CBLAS (qui définit le nombre et le type des variables de la fonction). ATLAS est disponible à partir de l'URL : http://math-atlas.sourceforge.net/ Il existe dans certains cas des implantations encore plus efficaces du BLAS, qui sont réellement optimales ; ce sont les implantations spécifiques réalisées pour un processeur particulier. Intel propose ainsi une implémentation spécifique pour les processeurs Pentium. Cette librairie est disponible sur le site d'Intel (mais elle est propriétaire, et payante). Dans cette mise en oeuvre du système, nous avons utilisé ATLAS. Le chemin d'accès aux fichiers contenant les en-têtes de fonction ATLAS doit être spécifié dans le "Makefile" à la ligne définissant la liste des chemins d'inclusion INCDIR. - Compilateur FORTRAN : g77. Un compilateur FORTRAN est nécessaire pour la compilation des fonctions de LAPACK (qui sont nativement en FORTRAN). Par ailleurs, il est nécessaire, même lorsqu'il n'y a pas de recompilation des librairies objet incluant des fonctions FORTRAN, de pouvoir effectuer l'édition des liens (pour la production d'un exécutable) entre des fichiers objet C et des fichiers objet FORTRAN. Il faut donc un éditeur de liens supportant les deux formats. Le compilateur FORTRAN de GNU, g77, joue ces deux rôles. C'est donc à lui qu'il est fait appel pour l'édition de liens incluant les fonctions LAPACK. Il est défini comme valeur de la variable LD dans le "Makefile". - Génération de graphiques : GNUPlot GNUPlot est un logiciel qui crée des graphiques pour visualiser des ensembles de données. Il est utilisé pour présenter sous forme de graphiques, engendrés dans des fichiers au format postscript (*.ps), certaines des données calculées par les fonctions de classification de la librairie MOTS. Si GNUPlot est installé sur votre système, MOTS l'utilise en faisant simplement appel (en mode "batch") à l'exécutable. Il suffit de spécifier le chemin de cet exécutable dans la ligne correspondante du fichier "Makefile". ****************************************************************** EN RÉSUMÉ : ------------------------------------------------------------------ - Si vous voulez seulement utiliser les fonctions d'indexation et de recherche : + Il suffit d'avoir un système Unix avec le compilateur GCC. + Vous pouvez installer et utiliser MOTS sans autre modification. ------------------------------------------------------------------ - Si vous comptez utiliser les fonctions de classification : + Vérifiez que vous avez installé le compilateur FORTRAN (en plus du compilateur C) de GNU : g77. + Téléchargez et installez : ATLAS : http://math-atlas.sourceforge.net/ LAPACK : http://www.netlib.org/lapack/ GNUPlot : http://sourceforge.net/projects/gnuplot/ + Puis pour faire fonctionner "MOTS" avec ces pré-requis, tapez "./configure" dans le répertoire de base de "MOTS"; ceci engendrera automatiquement un "Makefile" et un fichier d'en-têtes "config.h" adaptés à votre installation. + Si "configure" ne fonctionne pas pour une raison ou une autre (incompatibilité des shells, chemin d'accès non-standard pour l'une des librairies ...), vous pouvez aussi faire vous-même des modifications à la main dans le fichier "Makefile" : · Changer la ligne où est définie la variable ATLASDIR, et y insérer le chemin d'accès exact du répertoire source ATLAS tel que vous l'avez installé sur votre système ; · Changer la ligne où est définie la variable INCDIR, pour y inclure le chemin d'accès aux fichiers d'en-tête d'ATLAS (a priori, en ajoutant " -I${ATLASDIR}/include" à la fin de la ligne) · Changer la ligne où est définie la variable GNUPLOT_PATH et y insérer le bon chemin d'accès, si cela n'a pas été fait automatiquement. ****************************************************************** 2. Petits utilitaires ****************************************************************** La librairie MOTS définit diverses petites fonctions simples qu'il est parfois utile de pouvoir appeler indépendamment, depuis le système d'exploitation, sous la forme de petits programmes exécutables. Des fichiers source C conçus pour engendrer de tels petits programmes utilitaires sont contenus dans le sous-répertoire "src/utils". Chacun d'entre eux contient une fonction "main" (qui engendre un programme exécutable indépendant) qui répond à un besoin spécifique. Pour chaque programme dans la liste ci-dessous, le nom donné correspond au nom de l'exécutable engendré. Les exécutables sont rangés dans le répertoire "bin/utils". Pour lancer leur compilation ou leur mise à jour, il suffit de taper "make" (dans le répertoire principal) suivi du nom du programme. ------------------------------------------------------------------ - sha1 Donne la clé de hachage 160 bits (calculée avec l'algorithme SHA1) d'un fichier donné (réponse en représentation hexadécimale, et en représentation encodée en BASE32). Deux fichiers distincts ayant des chances quasi-nulles d'avoir la même clé de hachage SHA1, cette clé sert à identifier de manière unique un fichier donné. Exemple : $ bin/utils/sha1 ../exemples/multilingues/cendrillon.txt Hex: 06A0A42E2B6DAEE9841FBD6137D136C153601C3D Base32: A2QKILRLNWXOTBA7XVQTPUJWYFJWAHB5 ------------------------------------------------------------------ - base64 Encode un fichier en base64. Il s'agit d'un système d'encodage conçu pour être plus « passe-partout » que la représentation native des données, car seuls des caractères ASCII très universels sont utilisés, à savoir les lettres majuscules et minuscules, les chiffres, et les caractères "+", "/" et "=" : il passe donc à travers toutes les plates-formes et tous les protocoles (SMTP sur 7bits ...) La spécification de l'encodage base64 est définie dans la RFC 1521 définissant les extensions MIME du protocole SMTP. Cet encodage est obtenu en répartissant les bits significatifs non plus par 8, mais par 6. Ainsi, alors que dans la chaîne d'origine chacun des 8 bits de chaque octet est significatif, dans la chaîne encodée seuls 6 de ces 8 bits sont pris en compte, pour sélectionner l'un des 64 caractères possibles. Cet encodage dilate le fichier d'un facteur 8/6, soit 33% en plus (à peu près, sans compter les sauts de ligne qu'on peut y rajouter pour la lisibilité, et qui sont transparents). Si aucun fichier n'est donné en argument, cet utilitaire travaille sur le flot d'entrée stdin. ------------------------------------------------------------------ - unbase64 Opération inverse de base64. ------------------------------------------------------------------ - base32 Encode un fichier en base32. Le système d'encodage base32 n'utilise que 32 caractères dans la chaîne encodée, au lieu de 64 pour l'encodage base64. Il a été conçu pour une application de base plus spécifique : fournir des chaînes encodées courtes qui puissent être transmises entre humains (en les recopiant sur un papier, en les dictant au téléphone ...) en minimisant les possibilités d'erreur de transmission. Il est utilisé notamment pour fournir une version lisible des empreintes SHA1 de fichiers, dans les réseaux peer-to-peer. En base32, seuls les lettres majuscules et les chiffres de 2 à 7 sont utilisés (les chiffres 0 et 1 ont été écartés à cause du risque de confusion, en écriture manuscrite, avec les letres O et I). L'encodage base32 est obtenu en répartissant les bits significatifs non plus par 8, mais par 5. Ainsi, alors que dans la chaîne d'origine chacun des 8 bits de chaque octet est significatif, dans la chaîne encodée seuls 5 de ces 8 bits sont pris en compte, pour sélectionner l'un des 32 caractères possibles. Cet encodage dilate le fichier d'un facteur 8/5, soit 60% en plus (à peu près, sans compter les sauts de ligne qu'on peut y rajouter pour la lisibilité, et qui sont transparents). Si aucun fichier n'est donné en argument, cet utilitaire travaille sur le flot d'entrée stdin. ------------------------------------------------------------------ - unbase32 Opération inverse de base32. ------------------------------------------------------------------ - qp Encode un fichier en quoted-printable : codage fait pour passer à travers les filtres de relais SMTP assez anciens, ne transmettant sans déformations que les caractères ASCII purs et les lignes de moins de 80 caractères. En « quoted-printable », tous les octets non-ASCII sont transformés en une séquence d'échappement construite à partir du caractère « = » (égal) et de leur code hexadécimal. Par exemple, « é » devient « =E9 ». Le caractère égal lui-même devient « =3D ». Toute ligne de plus de 76 caractères est tronquée, et l'on marque la fin de ses segments par des signes « égal » en dernier caractère de ligne. N.B. Comme base64, l'encodage « quoted-printable » est défini dans la RFC 1521. ------------------------------------------------------------------ - unqp Opération inverse de qp. ------------------------------------------------------------------ - utf8lat1 Prend un fichier constitué de caractères du répertoire ASCII + Latin-1 (Caractères de code 0x00 à 0xFF dans Unicode), et encodé en UTF-8, et le transforme pour le mettre dans l'encodage classique ISO-8859-1 (1 caractère par octet). Si aucun fichier n'est donné en argument, cet utilitaire travaille sur le flot d'entrée stdin. Si ce qu'on lui donne à manger n'est pas de l'UTF-8, il supprime les caractères non transposables (il les remplace par des octets de synchronisation). ------------------------------------------------------------------ - lat1utf8 Opération inverse de utf8lat1 : prend un fichier qui est supposé être constitué de caractères du répertoire ASCII + Latin-1, et encodé en ISO-8859-1, et le réencode en UTF-8. Au contraire de l'opération précédente, tout octet est toujours transposable. ------------------------------------------------------------------ - debalise Prend en entrée un fichier encodé en XML ou HTML et supprime toutes les balises, pour ne laisser apparaître que le texte proprement dit (destiné à être visualisé). ****************************************************************** 3. Programmes d'indexation et de recherche ****************************************************************** La librairie MOTS définit un ensemble de fonctions utilisées pour indexer les fichiers, et chercher des informations dedans. Certaines de ces fonctions sont accessibles sous la forme de petits exécutables, destinés à être utilisés soit sur la ligne de commande d'un terminal shell, soit à travers une interface web (comme CGI), ce qui permet un accès indépendant de la plate-forme de l'utilisateur. Ces programmes sont dans le répertoire "bin/utils". ------------------------------------------------------------------ Répertoire temporaire pour MOTS ------------------------------- Des résultats sont stockés dans un répertoire temporaire qui a dû être déterminé automatiquement par le script "configure". Il s'agit souvent par défaut d'un sous-répertoire du répertoire temporaire de l'utilisateur : ~/tmp/mots/. On peut s'assurer de l'emplacement exact de ce répertoire temporaire en regardant dans le fichier Makefile, et en cherchant la ligne qui le définit ; par exemple : MOTS_TMP = /home/pascal/tmp/mots N.B. Si pour une raison ou une autre le script "configure" a été incapable de définir correctement le répertoire (cette ligne ne contient rien après "="), ou plus généralement si vous avez envie de le changer, vous pouvez modifier à la main le Makefile. Si vous voulez que ce changement survive à des reconfigurations ultérieures, vous pouvez fixer le répertoire que vous souhaitez sous la forme d'une variable d'environnement MOTS_TMP_DIR (fixée par une ligne dans .tcshrc ou .bashrc, par exemple). Le script "configure" vérifiera sa présence et en tiendra compte au moment d'engendrer le Makefile. Le répertoire temporaire contiendra toutes les informations recueillies sur les fichiers indexés (cf. description de la fonction indexe ci-dessous). ------------------------------------------------------------------ Description des programmes -------------------------- ------------------------------------------------------------------ - indexe Syntaxe : indexe [options] Indexe un fichier au format texte seul, ou dans un langage de balises type SGML (HTML, XML). Afin de garder une trace unique du fichier qui identifie son contenu, indépendamment de ses éventuelles différentes copies, une clé de hachage SHA1 est calculée. Elle sert ensuite d'identifiant de référence unique du fichier - dans l'état de son contenu tel qu'il a été présenté à ce moment-là à la fonction indexe - sous la forme encodée en base32 (qui consiste donc en 32 caractères de l'ensemble [234567ABCDEFGHIJKLMNOPQRSTUVWXYZ]). Une table des correspondances entre SHA1 et nom de fichier est gardée pour référence dans le répertoire temporaire, sous le nom index_sha1.lst. Les options sont les suivantes : -a : (Alpha) Exclut les tokens composés d'autre chose que de caractères alphabétiques (nombres, signes de ponctuation ...) N.B. Ce n'est pas le cas par défaut. -c : (Circulaire) Se comporte comme si le texte était circulaire (le dernier mot est considéré comme le mot précédent du premier mot, et ce dernier est considéré comme le mot suivant le dernier mot). N.B. Le comportement inverse (par défaut) consiste à prendre en compte une occurrence d'un mot virtuel correspondant aux limbes du fichier (début/fin) -v : (Verbeux) Donne des informations sur le déroulement de l'indexation. Le programme indexe "peuple" le répertoire temporaire avec les fichiers suivants (dans l'exemple suivant, l'empreinte SHA1 du fichier d'entrée est : NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6). NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6.utf8 Texte ré-encodé en UTF-8 au cas où cela n'ait pas été son encodage d'origine (par exemple, s'il était à l'origine codé dans une norme à 1 caractère par octet, type ISO-8859-1 ou Windows CP-1252). NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6.ts Texte ré-encodé en UTF-8, et en plus débalisé (les balises XML/HTML ne sont plus là). Le suffixe ".ts" signifie : texte seul. NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6.effc Table d'indexation complète du texte au format EFFICACE (voir pour la documentation de ce format le fichier "doc/specifs.txt", et la figure contenue dans le fichier "doc/EFF1CACE.pdf"). NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6.mots Liste des mots du texte triés et numérotés par ordre alphabétique. NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6.freq Liste des mots du texte triés par ordre de fréquence (décroissante). La première colonne indique la mesure de la quantité d'information du mot (logarithme binaire de l'inverse de la fréquence) : plus le mot est rare, et plus ce nombre est élevé. Les deux colonnes suivantes indiquent respectivement le nombre d'occurrences du mot dans le présent texte (numérateur de la fréquence), et le nombre total d'occurrences, tous mots confondus, dans le présent texte (dénominateur de la fréquence). La quatrième colonne contient le mot lui-même. NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6.ngrm Liste des n-grammes du texte triés par ordre de fréquence décroissante. NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6.frco Liste des co-occurrences entre mots du texte (paires de mots dont l'information mutuelle est significative). On considère deux mots comme étant en co-occurrence lorsqu'ils apparaissent ensemble dans un voisinage syntagmatique de taille maximale VOISINAGE_MAX (paramètre défini dans matrices.h). Le fichier ne contient que les paires qui ont plus de 3 co-occurrences observées. NDKLCQASCFUWZYCV2DN6VR6OQAE3GZC6.mctx Fichier contenant les matrices de contexte des mots du texte indexé, sous la forme de listes de coefficients non-nuls. La matrice de contexte d'indice k indique le nombre de fois où chaque mot j apparaît exactement k positions derrière le mot i (pour k=1, on retrouve le voisinage immédiat à droite). N.B. Les coefficients non-nuls sont trop minoritaires dans ce type de matrices pour qu'il soit rentable de stocker celles-ci sous forme de n lignes de n coefficients ; on stocke donc pour chacune d'entre elles m lignes (m = nombre de coefficients non-nuls ; m< ou : cherche -s [options] ou : cherche [options] Cherche les occurrences d'une chaîne dans un texte. Si le texte dans lequel il faut chercher a déjà été indexé, le programme retrouve automatiquement sa table d'index et donne la réponse plus rapidement. Les options sont les suivantes : -f : (fichier) Le deuxième argument est un nom de fichier. -s : (SHA1) Le deuxième argument n'est pas un nom de fichier, mais une empreinte SHA1 encodée en base32, à rechercher directement dans la base des fichiers déjà indexés. Si aucune des deux n'est spécifiée, le défaut est "-s". -t : (Terminal) Renvoie une réponse minimale, sans formatage, pour le cas où le programme est exécuté en mode texte dans un terminal. -w : (Web) Renvoie la réponse en HTTP/HTML pour utilisation CGI dans une interface Web. Si rien n'est spécifié, le défaut est "-w". -d : Cette option prend un argument obligatoire qui doit être un nombre entier. Il représente la distance maximale tolérée, en cas de recherche floue, entre les occurrences recueillies dans le fichier et la chaîne présentée comme modèle (en termes de distance d'édition, ou de Damerau-Levenshtein ; mais ce choix est paramétrable). Dans l'implantation actuelle, une différence de diacritique (accent aigü, accent grave ...) ne compte que comme 1/4 d'une différence de caractères. -v : (Verbeux) Donne des informations sur le déroulement de l'indexation (défaut : non). Exemples d'utilisation : $ bin/utils/cherche -t -f père ../exemples/multilingues/cendrillon.txt Chaîne trouvée en 6 occurrences. $ bin/utils/cherche -t -s père A2QKILRLNWXOTBA7XVQTPUJWYFJWAHB5 Chaîne trouvée en 6 occurrences. $ bin/utils/cherche -t père A2QKILRLNWXOTBA7XVQTPUJWYFJWAHB5 Chaîne trouvée en 6 occurrences. $ bin/utils/cherche p%C3%A8re A2QKILRLNWXOTBA7XVQTPUJWYFJWAHB5 (réponse en HTML ...) $ bin/utils/cherche -t -d 1.0 père A2QKILRLNWXOTBA7XVQTPUJWYFJWAHB5 Chaîne trouvée en 2 approximations. 0.00000 : "père" 1.00000 : "mère" $ bin/utils/cherche -t -d 1.5 père A2QKILRLNWXOTBA7XVQTPUJWYFJWAHB5 Chaîne trouvée en 5 approximations. 0.00000 : "père" 1.00000 : "mère" 1.25000 : "were" 1.25000 : "pero" 1.25000 : "here" ------------------------------------------------------------------ - contextes Syntaxe : contextes -f [options] ou : contextes -s [options] ou : contextes [options] Affiche les contextes d'occurrence d'une chaîne dans un texte. Si le texte dans lequel il faut chercher a déjà été indexé, le programme retrouve automatiquement sa table d'index et donne la réponse plus rapidement. Les options sont les suivantes : -f : (fichier) Le deuxième argument est un nom de fichier. -s : (SHA1) Le deuxième argument n'est pas un nom de fichier, mais une empreinte SHA1 encodée en base32, à rechercher directement dans la base des fichiers déjà indexés. Si aucune des deux n'est spécifiée, le défaut est "-s". -t : (Terminal) Renvoie une réponse conçue pour le cas où le programme est exécuté en mode texte dans un terminal. -w : (Web) Renvoie la réponse en HTTP/HTML pour utilisation CGI dans une interface Web. Les différences impliquées par le choix de -t ou de -w se manifestent au niveau de l'entrée comme à celui de la sortie de la fonction : (1) Au niveau de l'entrée : le choix de l'option -t implique que la chaîne passée sur la ligne de commande est interprétée comme du texte alphabétique codé nativement en 8 bits (ex. en ISO-8859-1). Le mot « père », par exemple, peut être saisi directement au clavier sous la forme « père » (ce qui ne fait que quatre frappes ... sur un clavier français !). En revanche, le choix de l'option -w, conçue pour les interfaces Web, implique que la chaîne est considérée par le programme comme étant de l'UTF-8 encodé en « encodage pourcent ». Le mot « père », par exemple, doit apparaître sous la forme « p%C3%A8re ». (2) Au niveau de la sortie : lorsque l'option -t est choisie, le programme affiche un contexte par ligne, en texte non-formaté. Seule la chaîne recherchée est mise en valeur, dans l'affichage, par un formatage basique défini par les capacités graphiques du terminal (termcap ou terminfo, basé sur la norme ANSI 3.64 aka ECMA-048) : elle est affichée en caractères gras. Lorsque c'est l'option -w qui est choisie, la sortie est formatée en HTML avec un en-tête HTTP : elle est destinée à être rendue à l'écran par un programme de navigation Web. Si aucune des deux options -t ou -w n'est sélectionnée, le programme se comporte par défaut comme avec l'option -w. -g : (Gauche) Afficher mots de contexte à gauche de la chaîne recherchée -d : (Droit) Afficher mots de contexte à droite de la chaîne recherchée Ces deux options définissent la taille de la fenêtre contextuelle affichée, et son centrage par rapport à la chaîne de référence. et doivent être des entiers naturels (supérieur ou égal à zéro). -o : (Ordre) Choisit un mode de tri des contextes. L'ordre retenu pour classer les contextes peut être de trois types : C (chronologique : les occurrences sont présentées dans l'ordre où elles apparaissent dans le texte), A (Alphabétique), ou F (par ordre de Fréquence décroissante). Le paramètre , que l'on fournit derrière l'option -o, doit contenir une lettre qui représente ce type d'ordre (C, A, ou F). En outre, une lettre supplémentaire permet de préciser si l'on souhaite que le classement s'effectue sur le mot situé à gauche de la chaîne de référence, ou sur le mot situé à droite de la chaîne de référence. Pour donner cette précision, on doit rajouter la lettre "g" ou "d" derrière la lettre principale qui reflète le type de classement (si cette précision est omise, c'est par défaut sur le mot de droite que se fait le classement). Les combinaisons suivantes sont donc possibles : -o C : classement par ordre chronologique. L'ajout de la précision "g" ou "d" ne cause aucun changement ; -o Ag : classement par ordre alphabétique du mot situé à gauche du mot recherché ; -o Ad : classement par ordre alphabétique du mot situé à droite du mot recherché ; -o A : équivalent à -o Ad -o Fg : classement par ordre de fréquence décroissante du mot situé à gauche du mot recherché ; -o Fd : classement par ordre de fréquence décroissante du mot situé à droite du mot recherché ; -o F : équivalent à -o Fd -v : (Verbeux) Donne des informations sur le déroulement de l'indexation (défaut : non). N.B. Il n'y a pas (à l'heure actuelle) d'option de recherche approximative intégrée à cette fonction. Pour faire afficher les contextes de toutes les chaînes VOISINES de la chaîne indiquée (et pas seulement les occurrences exactes), il faut d'abord utiliser la fonction "cherche" (cf. ci-dessus) pour trouver les différentes formes approximatives présentes dans le texte, puis utiliser ensuite la fonction "contextes" avec chacune de ces formes. Exemples d'utilisation (le gras est remplacé par des majuscules) : $ bin/utils/contextes -t -f -g 4 -d 6 chypre ../exemples/francais/victor_hugo.txt Résultats trouvés : 6 contextes d'occurrence du mot "chypre" : d ' or de CHYPRE ; bonnes têtes flamandes après tout leurs cris barbares troublaient CHYPRE et délos ! que sont donc bassora , trébizonde , CHYPRE où de vieux noms sont gravés tout le vin de CHYPRE aux chrétiens ; ma dague d égale pholoé . comme CHYPRE la beauce est blonde . larifla lavallière boiteuse ils donnaient CHYPRE et paphos ; et leur phrase $ bin/utils/contextes -t -f -g 4 -d 6 -o Ad chypre ../exemples/francais/victor_hugo.txt Résultats trouvés : 6 contextes d'occurrence du mot "chypre" : d ' or de CHYPRE ; bonnes têtes flamandes après tout tout le vin de CHYPRE aux chrétiens ; ma dague d leurs cris barbares troublaient CHYPRE et délos ! que sont donc lavallière boiteuse ils donnaient CHYPRE et paphos ; et leur phrase égale pholoé . comme CHYPRE la beauce est blonde . larifla bassora , trébizonde , CHYPRE où de vieux noms sont gravés $ bin/utils/contextes -t -f -g 4 -d 6 -o Fd chypre ../exemples/francais/victor_hugo.txt Résultats trouvés : 6 contextes d'occurrence du mot "chypre" : leurs cris barbares troublaient CHYPRE et délos ! que sont donc lavallière boiteuse ils donnaient CHYPRE et paphos ; et leur phrase d ' or de CHYPRE ; bonnes têtes flamandes après tout bassora , trébizonde , CHYPRE où de vieux noms sont gravés tout le vin de CHYPRE aux chrétiens ; ma dague d égale pholoé . comme CHYPRE la beauce est blonde . larifla ****************************************************************** 4. Programmes de classification ****************************************************************** Ces programmes sont dans le répertoire "bin". Leur compilation et leur utilisation nécessite l'installation de la librairie de fonctions LAPACK (cf. ci-dessus, § 2 : « dépendances »). ------------------------------------------------------------------ - composantes Syntaxe : composantes [options] Ce programme fait une analyse spectrale d'une matrice calculée à partir des données du texte passé en argument. Il donne en sortie, dans le répertoire temporaire (le même que celui utilisé par l'utilitaire « indexe », documenté plus haut): + Un fichier montrant le texte recolorisé en donnant à chaque mot un code couleur dont les composantes RVB correspondent à ses coordonnées sur 3 axes propres de la matrice : A2QKILRLNWXOTBA7XVQTPUJWYFJWAHB5.html (Ce fichier est encodé en HTML, et visualisable à travers n'importe quel navigateur ; la partie principale du nom de fichier correspond à la clé SHA1 du fichier analysé, selon une convention déjà utilisée) ; + un fichier graphique (au format FIG) montrant les mots les plus fréquents du texte comme points dans un diagramme à deux dimensions, selon deux axes propres sélectionnés : A2QKILRLNWXOTBA7XVQTPUJWYFJWAHB5_2-3.fig (La partie du nom de fichier figurant après le caractère "_" correspond au numéro des axes propres choisis pour définir le plan de représentation). Ce dernier type de représentation requiert la présence d'un exécutable GNUPLOT sur le système (le script de configuration doit en principe le détecter automatiquement, s'il est présent). Les options d'appel du programme sont de deux catégories : (1) Options identiques à celle du programme « indexe » : -a : (Alpha) Exclut les tokens composés d'autre chose que de caractères alphabétiques (nombres, signes de ponctuation ...) N.B. Ce n'est pas le cas par défaut. -c : (Circulaire) Se comporte comme si le texte était circu- laire (le dernier mot est considéré comme le mot précédent du premier mot, et ce dernier est considéré comme le mot suivant le dernier mot). N.B. Le comportement inverse (par défaut) consiste à prendre en compte une occurrence d'un mot virtuel correspondant aux limbes du fichier (début/fin) -v : (Verbeux) Donne des informations sur le déroulement. (2) Options spécifiques à ce programme de classification : -m : (Matrice) Utilise un certain type de matrice dérivé des informations du texte pour calculer les axes propres qui serviront à classer les unités. peut valoir : T pour la matrice de probabilité de transition V pour la matrice de probabilité de voisinage C pour la matrice de distance contextuelle Si aucune valeur n'est fournie, la valeur utilisée par défaut est C. -p : (Plot) Nombre de mots à visualiser sur le graphique GNUPLOT ****************************************************************** X. Documentation ****************************************************************** La documentation concernant la librairie MOTS mériterait d'être réécrite soigneusement, unifiée, et mise en forme. Pour l'instant, elle consiste en un ensemble de petits fichiers de référence tenus à jour au fil du développement des outils, et stockés dans le répertoire « doc ». ******************************************************************