Brevet FR2694984A1 — publié le 19940225

r t Procédé d'identification, de récupération et de classement de documents La présente invention a trait à un procédé de récupération de document, et plus particulièrement à un procédé de récupération de document capable de chercher un texte complet sans avoir besoin de mot- clé ou d'information sur le contexte Ce procédé peut être utilisé pour identifier, récupérer et classer des documents par thème ou par langue Ce procédé est également utile pour identifier, récupérer et classer toute forme de communication comme des signaux acoustiques (par exemple, de la parole) et des symboles graphiques (par exemple, des images) qui peuvent être représentés dans un format lisible par machine. Dans "DARDA Eyes Smart Text Sifters", article publié de R Colin Johnson dans "Electronic Engineering Times", 17 février 1992, page 35, il est indiqué que des efforts importants de recherche ont été accomplis pour trouver de meilleures méthodes pour chercher dans des bases de données de texte dans le but de récupérer des documents d'intérêt pour l'utilisateur Il est indiqué que plusieurs problèmes fondamentaux demeurent dans la réalisation de percées significatives. Une technique pour améliorer les recherches est de créer un matériel spécialisé qui peut traiter l'information plus rapidement Le problème avec cette approche est que les améliorations dans la vitesse de traitement ne se sont pas faites au rythme auquel les informations d'une base de données ont augmenté Il est dit qu'une avancée théorique fondamentale est nécessaire pour améliorer la récupération des informations depuis les grandes bases de données. Les systèmes conventionnels pour récupérer l'information sont encore fondés sur l'utilisation de mots-clés ou de parties de phrases avec des opérateurs (c'est-à-dire "et", "ou", "non") pour identifier des documents désirés Le problème de cette technique est que des documents peuvent contenir un synonyme du mot-clé plutôt que le mot-clé lui-même (par exemple voiture pour automobile) ou une forme dérivée du mot-clé (par exemple récupération pour récupérer) De tels systèmes sont particulièrement sensibles à l'orthographe ou à des erreurs de transmission de données en entrée Les opérateurs peuvent également être d'un emploi difficile Des problèmes supplémentaires sont: d'identifier des mots-clés appropriés, d'identifier des synonymes appropriés, et de récupérer des documents soit insuffisants, volumineux et/ou hors sujet Classiquement, une vaste table de synonymes est utilisée pour atténuer ces problèmes Mais cette méthode accroît les besoins en mémoire et ralentit le temps d'exécution. Un autre problème avec les recherches par mot-clé est que la signification du mot-clé dépend généralement du contexte dans lequel il est utilisé. Par conséquent, sans quelques indications sur le contexte désiré du motclé, les chances de récupérer des documents non attendus sont grandes Des approches antérieures à la récupération de documents ont tenté de surmonter ce problème en ajoutant des informations de contexte à la recherche, en utilisant des techniques telles que des vecteurs de contexte, des graphes conceptuels, des réseaux sémantiques et des réseaux d'inférence Ces techniques augmentent elles aussi le besoin en mémoire et ralentissent le temps d'exécution L'ajout d'informations de contexte est également une tâche nécessitant un temps significatif d'une personne formée. Dans "Global Text Matching for Information Retrieval", un article publié de G Salton et C. Buckley, dans "Science", volume 253, 30 août 1991, pages 1012 à 1015, il est indiqué que l'analyse de texte qui utilise des synonymes est volumineuse et que l'analyse de texte qui utilise une approche basée sur les connaissances est complexe Ce même article indique que la compréhension du texte doit se fonder sur le contexte et sur la reconnaissance de parties de texte (c'est-à-dire parties de texte, paragraphes ou phrases). Dans "Developments in Automatic Text Retrieval", un article publié de G Salton, dans "Science", volume 253, 30 août 1991, pages 974 à 980, l'état actuel de la récupération de document est résumé Il est indiqué que l'analyse de texte est un problème en raison de la nécessité de n'extraire que les documents intéressants depuis de grandes bases de données La solution classique à ce problème a été de générer des identificateurs de contenu Cela a été fait parce ce que la signification d'un mot ne peut pas être déterminé correctement en consultant un dictionnaire sans tenir compte du contexte dans lequel ce mot est employé Il est indiqué que les mots dans le texte peuvent aussi être utilisés pour l'identification de contexte De tels systèmes de récupération sont définis comme des systèmes de récupération de texte complet. î ^DOMA Mn A I t 4 = O C 4 DC 4 Dans "N-gram Statistics for Natural Language Understanding and Text processing", un article publié de C Suen dans "IEEE Transactions On Pattern Analysis and Machine Intelligence", vol PAMI-1, NI 2, avril 1979, deux procédés de traitement du langage naturel sont décrits, l'un utilisant des mots-clés et un dictionnaire et l'autre des segments à n caractères Dans l'approche par mot-clé, des mots sont comparés Dans l'approche par segment à n caractères, des chaînes de lettres sont comparées La comparaison des chaînes de lettres est plus rapide et nécessite moins de mémoire qu'un procédé par mot-clé et dictionnaire. Dans le brevet US-A-5 020 019 intitulé "Document Retrieval System" est décrit un système qui cherche des documents en utilisant des mots-clés avec une faculté d'apprentissage qui permet à l'utilisateur d'affecter des poids aux différents mots-clés en réponse aux résultats d'une précédente recherche La présente invention n'utilise pas une approche par mot-clé. Dans le brevet US US-A-4 985 863 intitulé "Document Storage and Retrieval" est décrit un procédé dans lequel les documents sont stockés par parties Des parties de texte, plutôt que des mots- clés, sont alors utilisées pour récupérer des documents similaires La présente invention n'utilise une approche ni par mot-clé, ni par partie. Dans le brevet US-A-4 849 898 intitulé "Method and Apparatus to Identify the Relation of Meanings Between Words in Texte Expression" est décrit un procédé qui utilise une analyse sémantique par lettre des mots- clés et des mots d'un document y 2694984 pour déterminer si ces mots signifient la même chose. Ce procédé est utilisé pour récupérer des documents ou des parties de documents qui traitent du même thème que les mots-clés La présente invention n'utilise pas une analyse sémantique. Dans le brevet US-A- 4 823 306 intitulé "Text Search System" est décrit un procédé qui génère des synonymes de mots-clés Différentes valeurs sont alors affectées à chaque synonyme pour guider la recherche La présente invention ne génère pas de synonymes. Dans le brevet US-A-4 775 956 intitulé "Method and System for Information Storing and Retrieval Using Word Stems and Derivative Pattern Codes Representing Families of Affixes" est décrit un procédé qui utilise un ensemble général d'affixes qui sont utilisés pour modifier chaque radical de mot- clé Ce procédé réduit les besoins en mémoire qui seraient sinon nécessaires pour stocker les synonymes de chaque mot-clé La présente invention ne modifie pas les radicaux des mots-clés. Dans le brevet US-A-4 358 824 intitulé "Office Correspondence Storage and Retrieval System" est décrit un procédé qui réduit des documents à des résumés en enregistrant les mots-clés utilisés dans chaque document Les mots-clés sont alors utilisés pour rechercher les documents désirés La présente invention ne remplace pas le texte de documents mémorisés par des résumés composés de mots-clés. La présente invention vise à rémédier aux inconvénients précités selon la technique antérieure en fournissant un procédé de détermination de la langue dans laquelle un document donné est écrit. A cette fin, un procédé pour déterminer la langue d'un texte donné, comprend les étapes de: (a) analyser ledit corps de texte en une pluralité de segments à N caractères, chaque segment à N caractères comprenant le contenu de n emplacements de caractère/espace consécutifs dudit corps de texte o N a une valeur d'au moins un; (b) comparer chacun desdits segments à n caractères avec une pluralité d'ensembles de segments à N caractères o chaque ensemble de segments à n caractères représente une langue différente; et (c) identifier la langue dudit corps de texte comme étant écrit dans la langue d'un ensemble particulier de segments à N caractères quand le pourcentage d'appariement à l'étape (b) pour un ensemble particulier de segments à N caractères est au moins égal à la valeur prescrite pour cet ensemble de segments à N caractères et plus élevé que le pourcentage d'appariement à l'étape (b) pour les autres ensembles de segments à N caractères. Pour identifier un document, l'invention comprend les étapes de: (a) créer un tableau de référence de segments à N caractères pour chacun d'une pluralité de documents de référence qui sont dans un format lisible par machine, chaque segment à N caractères comprenant au moins un élément consécutif du document; (b) analyser un document non identifié qui est dans un format lisible par machine en une pluralité de segments à N caractères, chaque segment à N caractères comprenant au moins un élément consécutif de document; y (c) affecter un poids à chaque segment à n caractères de l'étape (a); (d) affecter un poids à chaque segment à n caractères de l'étape (b); (e) supprimer le facteur commun parmi ladite pluralité de tableaux de référence; (f) comparer chaque segment à N caractères de document non identifié à chaque segment à n caractères desdits tableaux de référence pour produire une liste de scores qui indiquent le degré de similarité entre ledit document non identifié et chacun desdits tableaux de référence; et (g) identifier ledit document non identifié comme étant similaire à au moins un de ladite pluralité de documents de référence listée à l'étape quand un score à l'étape (f) est au moins égal à une valeur définie par l'utilisateur pour lesdits tableaux de référence. L'étape de créer un tableau de référence de segments à N caractères est effectuée en: (a) listant tous les segments distincts à n caractères qui apparaissent dans le document de référence correspondant; et (b) affectant un poids à chaque segment à n caractères dudit document de référence. L'étape d'affecter un poids à chaque segment à N caractères dudit document de référence est effectuée en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ledit document de référence; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ledit document de référence; et (c) affectant chaque quotient calculé à l'étape (b) au segment à N caractères correspondant comme poids de ce segment à N caractères. L'étape de supprimer ledit facteur commun est effectuée en: (a) faisant une liste des segments distincts à N caractères qui apparaissent dans ladite pluralité de documents de référence; (b) créant un total pour chaque segment à n caractères qui représente la somme des poids de ce segment à N caractères dans ladite pluralité de documents de référence; (c) divisant chaque total de l'étape (b) par le nombre total de documents de référence; et (d) soustrayant ledit quotient de l'étape (c) du poids de son segment à N caractères correspondant dans chacun de ladite pluralité de documents de référence. L'étape d'affecter un poids à chaque segment à N caractères dudit document non identifié est effectué en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ledit document non identifié; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ledit document non identifié; (c) soustrayant de chaque quotient de l'étape (b) le poids de facteur commun du segment à n caractères correspondant; et (d) affectant le résultat de l'étape (c) au segment à N caractères correspondant comme poids de ce segment à N caractères. L'étape de comparer pour produire une liste de scores est effectuée en: (a) multipliant le poids d'un segment à n caractères dans ledit document non identifié par le poids du segment à N caractères correspondant de l'un desdits tableaux de référence; (b) répétant l'étape (a) jusqu'à ce que chaque poids de segment à N caractères dudit document non identifié ait été multiplié par le poids du segment à N caractères correspondant, s'il existe, dans le tableau référence, (c) additionnant les produits des étapes (a) et (b); (d) élevant au carré le poids de chaque segment à N caractères dans ledit document non identifié; (e) additionnant les carrés des poids dudit document non identifié de l'étape (d); (f) élevant au carré le poids de chaque segment à N caractères dans ledit tableau de référence de l'étape (a); (g) additionnant les carrés des poids dudit tableau de référence de l'étape (f); (h) multipliant la somme de l'étape (e) par la somme de l'étape (g); (i) prenant la racine carré du produit de l'étape (h); (j) divisant la somme de l'étape (c) par le nombre calculé à l'étape (i) pour produire un score de similarité entre ledit document non identifié et ledit document de référence de l'étape (a); et (k) répétant les étapes (a) à (j) pour ladite pluralité de documents de référence pour produire un score de similarité pour ledit document non identifié par rapport à ladite pluralité de documents de référence. L'étape d'analyser est effectuée en: (a) limitant les éléments de document possibles à un ensemble défini par l'utilisateur d'éléments de document; (b) remplaçant les chaînes d'éléments de document définis par l'utilisateur comprenant au moins un élément de document par des chaînes d'éléments définies par l'utilisateur comprenant au moins un élément de document; et (c) supprimant les chaînes d'éléments de document définies par l'utilisateur. L'étape de limiter les éléments de document possibles à un ensemble défini par l'utilisateur d'éléments de document est effectuée en limitant les éléments de document possibles à des lettres d'une pluralité de langues. L'étape d'identifier ledit document non identifié entraîne l'identification de la langue dudit document non identifié. L'étape d'identifier ledit document non identifié entraîne l'identification du thème dudit document non identifié. Pour récupérer des documents dans une langue particulière, à partir d'une base de données, par thème, l'invention comprend les étapes de: (a) créer un tableau de référence de segments à N caractères pour chacun d'une pluralité de documents de référence qui sont dans un format lisible par machine, chaque segment à N caractères comprenant au moins un élément consécutif du document; (b) affecter un poids à chaque segment à n caractères de l'étape (a); (c) supprimer le facteur commun parmi ladite pluralité de tableaux de référence de l'étape (a); (d) analyser une question qui est dans un format lisible par machine en une pluralité de segments à N caractères, chaque segment à n caractères comprenant au moins un élément de document consécutif; (e) affecter un poids à chaque segment à n caractères de l'étape (d); (f) comparer chaque segment à N caractères de la question de l'étape (d) aux segments à n caractères de chacun de ladite pluralité de tableaux de référence de l'étape (a) pour produire une liste de scores qui indiquent le degré de similarité entre ladite question et chacun de ladite pluralité de documents de référence; et (g) identifier une pluralité de documents de référence qui sont similaires à ladite question quand un score à l'étape (f) est au moins égal à une valeur définie par l'utilisateur. L'étape de créer un tableau de référence de segments à N caractères est effectuée en: (a) listant tous les segments distincts à n caractères qui apparaissent dans le document de référence correspondant; et (b) affectant un poids à chaque segment à n caractères dudit document de référence. L'étape d'affecter un poids à chaque segment à N caractères dudit document de référence est effectuée en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ledit document de référence; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ledit document de référence; et il (c) affectant chaque quotient calculé à l'étape (b) au segment à N caractères correspondant comme poids de ce segment à N caractères. L'étape de supprimer ledit facteur commun est effectuée en: (a) faisant une liste des segments distincts à N caractères qui apparaissent dans ladite pluralité de documents de référence; (b) créant un total pour chaque segment à n caractères qui représente la somme des poids de ce segment à N caractères dans ladite pluralité de documents de référence; (c) divisant chaque total de l'étape (b) par le nombre total de documents de référence; et (d) soustrayant ledit quotient de l'étape (c) du poids de son segment à N caractères correspondant dans chacun de ladite pluralité de documents de référence. L'étape d'affecter un poids à chaque segment à N caractères de ladite question est effectuée en: (a) comptant le nombre d'occurrences de chaque segment distinct à N caractères dans ladite question; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ladite question; (c) soustrayant de chaque quotient de l'étape (b) le poids de facteur commun du segment à n caractères correspondant; et (d) affectant le résultat de l'étape (c) au segment à N caractères correspondant comme poids de ce segment à N caractères. L'étape de comparer pour produire une liste de score est effectuée en: (a) multipliant le poids d'un segment à n caractères dans ladite question par le poids du segment à N caractères correspondant de l'un desdits tableaux de référence; (b) répétant l'étape (a) jusqu'à ce que tous les poids de segment à N caractères de ladite question ait été multipliés par les poids de segment à N caractères correspondants dans le tableau référence, (c) additionnant les produits des étapes (a) et (b); (d) élevant au carré le poids de chaque segment à N caractères dans ladite question; (e) additionnant les carrés des poids de ladite question de l'étape (d); (f) élevant au carré le poids de chaque segment à N caractères dans ledit tableau de référence de l'étape (a); (g) additionnant les carrés des poids dudit tableau de référence de l'étape (f); (h) multipliant la somme de l'étape (e) par la somme de l'étape (g); (i) prenant la racine carré du produit de l'étape (h); (j) divisant la somme de l'étape (c) par le nombre calculé à l'étape (i) pour produire un score de similarité entre ladite question et ledit document de référence de l'étape (a); et (k) répétant les étapes (a) à (j) pour chacun de ladite pluralité de documents de référence pour produire un score de similarité pour ladite question par rapport à chacun de ladite pluralité de documents de référence. L'étape d'analyser est effectuée en: (a) limitant les éléments de document possibles à un ensemble défini par l'utilisateur d'éléments de document; (b) remplaçant les chaînes d'éléments de document définis par l'utilisateur comprenant au moins un élément de document, par des chaînes d'éléments définis par l'utilisateur comprenant au moins un élément de document; et (c) supprimant les chaînes d'éléments de document définis par l'utilisateur. L'étape de limiter les éléments de document possibles à un ensemble défini par l'utilisateur d'éléments de document est effectuée en limitant les éléments de document possibles à des lettres d'une pluralité de langues. L'étape d'identifier une pluralité desdits documents de référence comme étant similaires à ladite question qui est dans un format lisible par machine est effectuée en identifiant une pluralité desdits documents de référence comme étant similaires à la langue de ladite question. L'étape d'identifier une pluralité desdits documents de référence comme étant similaires à ladite question est effectuée en identifiant une pluralité desdits documents de référence comme étant similaires au thème de ladite question. Pour classer des documents dans une base de données par langue ou par thème, l'invention comprend les étapes de: (a) créer un tableau de référence de segments à N caractères pour chacun d'une pluralité de documents qui sont dans un format lisible par machine, chaque segment à N caractères comprenant au moins un élément consécutif d'information; (b) affecter un poids à chaque segment à n caractères de l'étape (a); (c) supprimer le facteur commun parmi ladite pluralité de tableaux; (d) comparer chaque tableau à tous les autres tableaux pour produire une liste de scores qui indiquent le degré de similarité entre chacun desdits tableaux; et (e) classer lesdits documents en des catégories basées sur les scores à l'étape (d) et une tolérance définissable par l'utilisateur. L'étape de créer un tableau de segments à n caractères est effectuée en: (a) listant tous les segments distincts à n caractères qui apparaissent dans le document correspondant; et (b) affectant un poids à chaque segment à n caractères de l'étape (a). L'étape d'affecter un poids à chaque segment à N caractères dudit tableau est effectuée en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ledit document; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ledit document; et (c) affectant chaque quotient calculé à l'étape (b) au segment à N caractères correspondant comme poids de ce segment à N caractères. L'étape de supprimer ledit facteur commun est effectuée en: (a) faisant une liste des segments distincts à N caractères qui apparaissent dans ladite pluralité de documents; (b) créant un total pour chaque segment à n caractères qui représente la somme des poids de ce segment à N caractères dans ladite pluralité de documents; (c) divisant chaque total par le nombre total de documents; et (d) soustrayant ledit quotient de l'étape (c) du poids de son segment à N caractères correspondant dans chacun de ladite pluralité de documents. L'étape de comparer pour produire une liste de scores est effectuée en: (a) multipliant le poids d'un segment à n caractères dans l'un de ladite pluralité de documents par le poids du segment à N caractères correspondant dans un autre de ladite pluralité de documents; (b) répétant l'étape (a) jusqu'à ce que chaque poids de segment à N caractères du premier document ait été multiplié par le poids du segment à n caractères correspondant dans le second document, (c) additionnant les produits des étapes (a) et (b) i (d) élevant au carré le poids de chaque segment à N caractères dans ledit premier document; (e) additionnant les carrés des poids dudit premier document de l'étape (d); (f) élevant au carré le poids de chaque segment à N caractères dans ledit second document de l'étape (a); (g) additionnant les carrés des poids dudit second document de l'étape (f); (h) multipliant la somme de l'étape (e) par la somme de l'étape (g); (i) prenant la racine carré du produit de l'étape (h); (j) divisant la somme de l'étape (c) par le nombre calculé à l'étape (i) pour produire un score de similarité entre ledit premier document non identifié et ledit second document de l'étape (a); et (k) répétant les étapes (a) à (j) pour chaque document pour produire un score de similarité pour chaque document par rapport à chacun de ladite pluralité de documents. Les divers objectifs de l'invention sont atteints grâce à une nouvelle approche de l'identification, de la récupération et du classement de document Le terme "document" se rapporte à du texte, de la parole ou du graphique lisible par machine La présente invention utilise une technique de reconnaissance de modèle basée sur des comparaisons de segments à N caractères parmi les documents, au lieu de l'approche traditionnelle par mot-clé ou fondée sur le contexte La suppression du facteur commun parmi les documents de la base de données fournit une discrimination sensible parmi les documents, tout en permettant une réduction des besoins en mémoire (par rapport aux procédés avec mots-clés et dictionnaire) et un accroissement de performances L'utilisateur choisit le seuil utilisé pour déterminer si des documents sont similaires. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante de plusieurs réalisations préférées de l'invention, en référence aux dessins annexés correspondants dans lesquels: la figure 1 est un organigramme de l'algorithme d 'identification de langue; la figure 2 est un organigramme de l'algorithme d'identification de langue et de thème; la figure 3 est un tableau relatif à un document de référence prélevé dans la langue groenlandaise montrant tous les segments distincts à deux caractères, le nombre d'occurrence de chacun de ces segments à deux caractères et le poids de chacun des segments à deux caractères; la figure 4 est un tableau relatif à un document de référence prelevé dans la langue hawaïenne, montrant tous les segments distincts à deux caractères, le nombre d'occurrence de chacun de ces segments à deux caractères et le poids de chacun des segments à deux caractères; la figure 5 est un tableau relatif à une liste de tous les segments distincts à deux caractères issue des documents de référence des figures 3 et 4, des poids de chaque segment à deux caractères, et des poids de facteur commun que chaque segment à deux caractères montre dans les deux documents de référence; la figure 6 A est un tableau relatif à une liste des poids diminués du facteur commun pour chaque segment à deux caractères distinct dans le document de référence groenlandais; la figure 6 B est un tableau relatif à une liste des poids diminués du facteur commun pour chaque segment à deux caractères distinct dans le document de référence hawaïen; la figure 7 est un tableau relatif à un échantillon d'une langue non identifiée, montrant tous les segments distincts à deux caractères, le nombre d'occurrence de chaque segment à deux caractères, le poids de chaque segment à deux caractères, et le poids diminué du facteur commun de chaque segment à deux caractères; La figure 8 montre le score du texte non identifié de la figure 7 par rapport au document de référence groenlandais de la figure 3; La figure 9 est un organigramme de l'algorithme de récupération par langue et thème; et La figure 10 est un organigramme de l'algorithme de classement de la base de données par langue et thème. 19 2694984 La présente invention décrit un procédé pour identifier, récupérer et classer des documents Ce procédé est un procédé sensible, rapide et économique pour l'identification de langue, l'identification de thème, la récupération de document et le classement de document Dans toute cette description et l'objet de la présente demande de brevet défini ci-après, le terme document sera utilisé pour désigner un ensemble d'informations, dans un format lisible par machine. Le document peut consister en du texte, de la parole ou des graphiques. Le procédé de la présente invention peut être facilement mis en oeuvre dans n'importe quel langage de programmation ou dans un matériel pour accomplir des tâches aussi difficiles que l'identification de thèmes de documents, même si ces documents sont écrits avec des idéogrammes comme le Japonais Ce procédé peut également être utilisé pour classer des documents dans une base de données en catégories semblables sans besoin d'une identification préalable des catégories ou des documents contenus dans celles- ci. Au lieu de compter sur des mots-clés, des tables de synonymes, ou des informations sur du contexte, les objectifs de la présente invention sont atteints par une technique de reconnaissance de modèle La présente invention est basée sur l'hypothèse que des documents similaires en langue et/ou thème se ressemblent, en ce qu'ils ont tendance à contenir beaucoup de mêmes segments à N caractères (c'est-à- dire de chaînes consécutives à n caractères) Ils se ressemblent non pas simplement par des mots-clés mais par tous les mots employés. Cette hypothèse suggère la conclusion plutôt étonnante que le thème d'un document peut être déduit de manière fiable en énumérant les segments à n caractères contenus dans celui-ci et en comparant le résultat de cette opération avec les segments à n caractères énumérés trouvés dans un autre document ("référence"). Cette réalisation permet des simplifications dans l'algorithme de recherche utilisé pour identifier des documents concernés Ces simplifications ont pour résultat de permettre de classifier des documents indépendamment de la langue dans laquelle ils sont écrits Un taux d'erreur ("altération") élevé dans le texte original est également tolérable Le taux d'erreur tolérable maximum pour des langues dissemblables est plus élevé que le taux d'erreur tolérable maximum pour des langues similaires Par exemple, le taux d'erreur tolérable maximum pour un texte souahéli comparé à un texte suédois peut atteindre 25 % sans provoquer de résultat faux tandis que le taux d'erreur tolérable maximum pour un texte russe comparé à un texte tchèque peut seulement atteindre 15 % sans provoquer de résultat faux. La figure 1 représente un algorithme d'identification de langue La première étape consiste à analyser le texte, qui est écrit dans une langue non identifiée, en segments à N caractères. Les segments à N caractères sont des chaînes consécutives de N caractères o N est un quelconque entier positif plus grand que zéro Des segments à n caractères modérément longs (c'est-à-dire, n> 3) sont typiquement plus porteurs d'information que des segments à N caractères plus courts, en ce qu'ils tendent à incorporer des informations sur les racines des mots présents dans le texte La seconde étape est de comparer le nombre d'occurrence des segments à n caractères dans le texte non identifié avec le nombre d'occurrence de ces mêmes segments à N caractères dans les textes de langues connues Le texte non identifié est alors identifié comme étant écrit dans la langue du texte par rapport auquel le texte non identifié est le plus comparable. Les caractères de segment à N caractères convenables sont définis par l'utilisateur Par exemple, les éléments de segment à N caractères pour une langue particulière peuvent être restreints aux lettres de l'alphabet des langues auxquelles on s'intéresse et à un espace (c'est-à-dire "_") Les lettres minuscules peuvent être converties en lettres majuscules et des espaces multiples peuvent être réduits à un espace simple pour réduire le nombre total de segments à N caractères possibles La ponctuation peut également être ignorée pour minimiser les besoins en mémoire, et accroître la performance Des chaînes de caractères peuvent aussi être éliminées ou remplacées par un caractère ou une chaîne de caractères défini par l'utilisateur. La figure 2 représente un algorithme qui est utile pour identifier la langue ou le thème d'un document Un exemple simple, qui explique les étapes importantes mises en jeu, suit la description de l'algorithme. Des exemples connus de textes en différentes langues et sur différents thèmes sont recueillis en tant que comme documents de référence Il n'y a aucune restriction sur la forme que ces documents de référence peuvent prendre Du texte prélevé à partir de n'importe quelle source peut être utilisé Le nombre de documents de référence et de segments à n caractères contenus dans ces documents doit être statistiquement significatif Il a été déterminé empiriquement que pour l'identification de langue, environ dix documents, ayant chacun environ mille caractères, est une taille d'échantillon statistiquement significative Pour l'identification de thème dans une langue donnée, qui est une distinction plus fine que l'identification de langue, environ cinquante documents, chacun ayant environ mille caractères, est une taille d'échantillon statistiquement significative. Les documents de référence sont analysés en segments à N caractères Ceci est effectué en faisant une liste séparée, pour chaque document de référence, de tous les segments distincts à N caractères qui surviennent dans ce document de référence (o N est typiquement fixé à une certaine valeur qui en pratique telle que n= 5) Le document non identifié est également analysé en une liste de segments distincts à N caractères. Un poids est attribué à chacun des segments à n caractères distinct Le poids est déterminé par le nombre relatif d'occurrence de ce segment à n caractères dans ce document de référence particulier (c'est-à-dire le nombre de fois qu'un segment à n caractères apparaît dans un document particulier de référence, divisé par le nombre total de toutes les occurrences de segments à N caractères dans ce document de référence) Des poids sont attribués à chacun des segments à N caractères dans chaque document de référence et à chacun des segments à n caractères dans le document non identifié. Le facteur commun parmi les documents de référence est alors supprimé des documents de référence comme du document non identifié Ceci est effectué en listant tout d'abord les segments distincts à N caractères parmi les documents de référence En second lieu, un poids de facteur commun est affecté à chaque segment à N caractères distinct de document de référence basé sur son nombre d'occurrence relatif moyen (c'est-à-dire la somme des poids individuels pour ce segment à N caractères dans tous les documents de référence divisée par le nombre total de documents de référence) Le poids de facteur commun de chaque segment à N caractères est alors soustrait du poids de son segment à N caractères correspondant dans chaque document de référence et du poids de son segment à N caractères correspondant dans le document non identifié. Le document non identifié est alors comparé à chacun des documents de référence Ceci est effectué en calculant le score du document non identifié par rapport à chacun des documents de référence Le score du document non identifié en comparaison d'un document de référence indique le dégré de similitude entre les deux documents. Calculer le score du document non identifié conduit tout d'abord, comme il a été mentionné ci- dessus, à soustraire le poids de facteur commun établi à partir des documents de référence, du poids de son segment à N caractères correspondant dans le document non identifié Si un segment à N caractères apparaît dans le document non identifié sans apparaître dans les documents de référence, le poids de facteur commun pour ce segment à N caractères est égal à zéro Chaque poids de segment à N caractères diminué du poids de facteur commun du document non identifié (noté Ui) est alors multiplié par le poids de segment à N caractères diminué du poids de facteur commun de son segment à N caractères correspondant dans un document de référence particulier (noté Ri). Ces produits sont alors additionnés (c'est-à-dire "somme de produits"). n somme de produits: (Ui x Ri) i= O Chaque poids de segment à N caractères diminué du facteur commun issu du document de référence est alors élevé au carré (c'est-à-dire Ri 2) Ces termes au carré sont alors additionnés. Chaque poids de segment à N caractères diminué du facteur commun issu de document non identifié est alors élevé au carré (c'est-à-dire Ui 2) Ces termes au carré sont également sommés Ces deux sommes sont alors multipliées ensemble pour former un "produit de sommes" produit de sommes = Y Ui 2 x X Ri 2 i-=l i=l Finalement, le score du document non identifié en comparaison d'un document de référence particulier est la "somme de produits" divisée par la racine carrée du "produit de sommes": n n Fn N -11/2 score = l(Uix Ri)x lui 2 X 1 Ri 2 i= 1 i=l i= 1 Le document non identifié est noté par son score par rapport à chacun des documents de référence L'utilisateur peut définir le seuil de score désiré pour identifier un document comme étant similaire à un document de référence par rapport à la langue ou au thème Quand un seuil défini par l'utilisateur est employé, il y a une possibilité pour qu'un document non identifié ne puisse être identifié comme étant similaire à aucun des documents de référence L'utilisateur peut éviter d'avoir à choisir ce seuil en permettant que le document non identifié soit identifié avec le document de référence qui produit le score le plus élevé. Les exemples suivants décrivent les étapes numériques mises en jeu avec la présente invention. Ces exemples sont destinés à illustrer les étapes particulières de l'algorithme et ne doivent pas être vus comme des limitations à l'objet de la présente demande de brevet. Le tableau dans la figure 3 montre un document de référence pour la langue groenlandaise (c'est-à-dire: "Nanok nunane issigtune) Aucun prétraitement de l'exemple n'est nécessaire Les segments à deux caractères vont être utilisés dans cet exemple Pour réduire le nombre de segments à deux caractères possibles, les lettres minuscules vont être rendues majuscules et chaque espace multiple va être réduit à un espace simple (c'est-à- dire "_") Le document de référence groenlandais devient donc "NANOKNUNANEISSIGTUNE". Tous les segments distincts à deux caractères distincts pour le document de référence groenlandais sont montrés dans le tableau de la figure 3 Ce sont NA, AN, NO, OK, K_, _N, NU, UN, NE, E_, _I, IS, SS, SI, IG, GT, TU Un poids est affecté à chacun de ces segments à deux caractères Le poids d'un segment à deux caractères est déterminé en divisant le nombre d'occurrence de ce segment à deux caractères particulier par le nombre total de segments à deux caractères (potentiellement non distincts) présents dans la référence (c'est-à-dire le poids du segment à deux caractères NA est 2/21 = 0,095). Le tableau dans la figure 4 montre un document de référence pour la langue hawaïenne (c'est-à-dire: "I hele mai nei au e hai") Tous les documents de référence doivent être analysés en utilisant la même structure de segment à N caractères (par exemple segments à deux caractères) Une fois encore, pour réduire le nombre de segments à deux caractères possibles, les lettres minuscules vont être rendues majuscules et chaque espace multiple va être réduit à un espace simple Le document de référence hawaïen devient alors "I 1 HELEMAINEIAU_E_HAI". Tous les segments distincts à deux caractères pour le document de référence hawaïen sont montrés dans la figure 4 Ce sont I_, _H, HE, EL, LE, E_, _M, MA, AI, _N, NE, EI, _A, AU, U_, _E, HA Un poids est affecté à chaque segment à deux caractères de la même manière que décrit pour le document de référence groenlandais plus haut (par exemple, le poids du segment à deux caractères I_ est 3/22 = 0,136). Il n'y a pas de nécessité que les nombres de segments à N caractères contenus dans les documents de référence soient semblables L'algorithme ne demande pas de prétraitement des documents Même la mise en majuscule et la réduction des espaces multiples à un espace simple ne sont pas nécessaires à la mise en oeuvre convenable de la présente invention Ces étapes sont seulement effectuées dans le but d'accroître les performances et de réduire les besoins en mémoire. Le facteur commun parmi les documents de référence est alors soustrait Ceci est effectué en listant tout d'abord tous les segments distincts à deux caractères dans tous les documents de référence comme montré dans le tableau de la figure 5 (c'est-à- dire: NA, AN, NO, OK, K_, _N, NU, UN, NE, E_, _I, IS, SS, SI, IG, GT, TU, I_, _H, HE, EL, LE, _M, MA, AI, EI, _A, AU, U_, _E, HA) Les poids de facteur commun sont alors déterminés pour chaque segment à deux caractères distinct en divisant la somme des poids relatif à toutes les références pour chaque segment à deux caractères par le nombre total de documents de référence Par exemple, le poids de facteur commun pour le segment à deux caractères NE est ( 0,095 + 0,045)/2 = 0,070 tandis que le poids de facteur commun pour le segment à deux caractères NA est ( 0,095 + 0)/2 = 0,048 Le segment à deux caractères NA a un poids de 0, 095 dans la référence groenlandaise tandis qu'il a un poids de O dans la référence hawaïenne parce qu'il n'apparaît pas dans la référence hawaïenne. Le poids de facteur commun représente la contribution moyenne d'un segment à deux caractères particulier à chacun des documents de référence Ce facteur commun est soustrait à la fois des documents de référence et du document non identifié pour mieux distinguer un document d'un autre Le facteur commun est supprimé du poids d'un segment à deux caractères dans un document en soustrayant le poids de facteur commun du poids du segment à deux caractères correspondant dans ce document Par exemple, le poids diminué du facteur commun du segment à deux caractères NE dans le document de référence groenlandais est: 0,095 0,070 = 0,025 Le poids diminué du facteur commun du segment à deux caractères NE dans le document de référence hawaïen est: 0,045-0,070 = 0,025 L'étape de suppression du facteur commun améliore les performances et simplifie le processus d'identification de documents. Le tableau dans la figure 5 liste également le poids de facteur commun de chaque segment à deux caractères distinct parmi les documents de référence. Ces poids de facteur commun sont alors soustraits des poids des segments à deux caractères correspondants dans chaque document de référence et du document non identifié Le tableau dans la figure 6 A liste les poids diminués du facteur commun pour les segments distincts à deux caractères en Groenlandais tandis que le tableau dans la figure 6 B liste les poids diminués du facteur commun pour les segments distincts à deux caractères en Hawaïen Les poids diminués du facteur commun d'un document de référence particulier sont alors utilisés pour calculer un score de similarité pour le document de référence par rapport à un document non identifié. Le tableau dans la figure 7 montre un exemple d'un texte écrit dans une langue non identifiée (c'est-à-dire: "Martsime nanut") Le texte non identifié doit être analysé par la même structure de segments à N caractères que les documents de référence (c'est-à-dire, des segments à deux caractères) Encore une fois, pour réduire le nombre de segments à deux caractères possibles, les minuscules seront rendues majuscules et les espaces multiples seront réduits à un espace simple Le document non identifié devient alors "MARTSIMENANUT". Tous les segments distincts à deux caractères dans le document non identifié, comme listés dans la figure 7, sont MA, AR, RT, TS, SI, IM, ME, E_, _N, NA, AN, NU, UT Un poids est affecté à chaque segment à deux caractères Encore une fois, le poids d'un segment à deux caractères est déterminé en divisant le nombre d'occurrence de ce segment à deux caractères par le nombre total de segments à deux caractères présents dans le texte non identifié (par exemple le poids de MA dans le texte non identifié est 1/13 = 0, 077) Les poids de facteur commun des documents de référence sont alors soustraits des segments à deux caractères correspondants dans le document non identifié (voir figure 7). Dans la figure 8, un score de similarité est calculé pour le texte non identifié par rapport au document de référence groenlandais L'équation de ce calcul est la suivante n N N -1/2 score R 1 xlX Ri)X 1 Y Ri 2 l score 1 i_ 1 j_ o Ui représente le poids diminué du facteur commun d'un segment à deux caractères dans le texte non identifié et Ri représente le poids diminué du facteur commun du segment à deux caractères correspondant dans le document de référence groenlandais qui est comparé au document non identifié. Chaque poids diminué du facteur commun des segments à deux caractères du texte non identifié est multiplié par son poids diminué du facteur commun correspondant dans le document de référence groenlandais Chaque poids de segment à N caractères diminué du facteur commun dans le document de référence groenlandais est alors élevé au carré Ces termes au carré sont alors additionnés Chaque poids de segment à N caractères diminué du facteur commun dans le document non identifié est alors élevé au carré Ces termes au carré sont alors additionnés. Ces sommes sont multipliées ensemble pour former un "produit de sommes". Finalement, le score du document non identifié par rapport au document de référence groenlandais est la "somme de produits" divisée par la racine carrée du "produit de sommes" Le résultat montré en figure 8 est un score qui indique la similarité entre le texte non identifié et le document de référence groenlandais. Un score de similarité est généré pour chaque document de référence Le document peut soit être identifié comme étant similaire au document de référence qui a généré le score le plus élevé ou similaire au document de référence qui a généré un score qui dépasse un seuil défini par l'utilisateur. Dans la seconde approche, une identification n'est pas forcée (c'està-dire que le document non identifié peut ne pas être identifié comme similaire à l'un des documents de référence) De plus, avec la seconde approche, le document non identifié peut être identifié comme étant similaire à un grand nombre de documents de référence si ces documents de référence génèrent un score qui dépasse le seuil défini par l'utilisateur. Certaines chaînes de texte dans une langue particulière, comme "is", "the", "and", "with", "for", etc, en Anglais, utiles pour l'identification de langue, sont normalement sans intérêt pour l'identification de thème La présente invention résoud le problème de trouver des distinctions parmi des documents par rapport au thème en supprimant le facteur commun parmi les documents. La suppression de facteur commun parmi les documents entraîne le calcul de la moyenne de chaque nombre d'occurrence de segment à N caractères dans tous les documents et puis la soustraction de ces moyennes de chaque nombre correspondant d'occurrence de segment à N caractères dans chaque document La suppression de facteur commun impose l'opération de détermination si un document est similaire à un autre plus simple La sensibilité au thème est atteinte sans intervention humaine, indépendamment de la langue du document L'utilisateur peut encore choisir le seuil de détermination lorsque des documents sont similaires à d'autres par rapport au thème. Cet algorithme fonctionne aussi bien quelle que soit la langue mais l'identification de thème ne fonctionne qu'en comparant des documents écrits dans une langue commune (ou en plusieurs langues très proches) Ceci résulte de ce que le thème est lié au modèle créé par les segments à N caractères Le modèle créé par les segments à N caractères est contrôlé par la langue du document. L'identification de thème peut être faite aussi facilement dans des langues qui ont relativement peu de lettres, comme l'Anglais, que dans des langues qui ont beaucoup de caractères, comme les langues idéographiques (par exemple le Japonais) Bien que ne souhaitant pas relier ceci à la théorie, on croit que les résultats avantageux de la présente invention sont obtenus parce ce que le thème d'un document contraint les segments à n caractères utilisés à débattre du thème. L'identification de thème devient alors une détermination du degré de similitude des documents par rapport aux segments à N caractères utilisés. La figure 9 indique l'algorithme qui est utilisé pour récupérer des documents d'une base de données Les documents peuvent être récupérés par rapport à la langue ou au thème désiré. Une base de données contient typiquement de nombreux documents concernant beaucoup de thèmes qui sont écrits en différentes langues Il n'y a aucune nécessité que ces documents soient sous une quelconque forme particulière Un tableau de segments à N caractères est créé pour chaque document de la base de données Ceci est effectué en faisant une liste, pour chaque document de la base de données, des segments distincts à N caractères qui apparaissent dans ce document Des poids sont affectés à tous les segments distincts à n caractères Le poids est déterminé par le nombre d'occurrence d'un segment à N caractères dans un document particulier (c'est-à-dire, le nombre de fois qu'un segment à N caractères apparaît dans un document particulier divisé par le total de toutes les occurrences de segments à N caractères dans ce document) Des poids sont alors affectés à chaque segment à N caractères dans chaque document de la base de données. Le facteur commun parmi les documents de la base de données est alors supprimé des documents de la base de données et de la question Ceci est accompli en listant tout d'abord tous les segments distincts à N caractères dans tous les documents. Puis un poids de facteur commun est affecté à chaque segment à N caractères distinct basé sur son nombre relatif d'occurrence moyen Le poids de facteur commun pour chaque segment à N caractères est alors soustrait du poids de son segment à N caractères correspondant dans chaque document de la base de données et du poids de son segment à N caractères correspondant dans la question. La question est posée par l'utilisateur La question représente le type de document que l'utilisateur souhaite récupérer dans la base de données (c'est-à-dire des documents avec un thème ou une langue similaire) Il n'y a pas de contrainte sur la forme que doit prendre la question. Il est à noter qu'une question concernant un thème d'intérêt aura pour résultat des documents récupérés sur ce thème et qui sont écrits dans la langue de la question Des documents sur ce thème qui sont écrits dans une langue différente de celle de la 34 2694984 question ne seront normalement pas récupérés Ceci parce que des langues différentes utilisent typiquement des segments à N caractères différents pour représenter le même thème. La question est alors analysée en segment à n caractères Ceci est effectué en faisant une liste de tous les segments distincts à N caractères qui apparaissent dans la question Des poids sont affectés à chaque segment à N caractères distinct de la question Le poids est déterminé par le nombre d'occurrence de chaque segment à N caractères dans la question Les poids de facteur commun sont alors soustraits des segments à N caractères correspondants dans la question La question est alors comparée à chacun des documents de la base de données en calculant le score de la question par rapport à chacun des documents de la base de données. Le score est obtenu en multipliant tout d'abord chaque poids de segment à N caractères de la question diminué du facteur commun (par exemple Qi) par le poids diminué du facteur commun de son segment à N caractères correspondant dans un document particulier de la base de données (par exemple Di). Ces produits sont alors additionnés (c'est-à-dire "somme de produits"). n somme de produits = E (Qi x Di) 1 = 1 Chaque segment à N caractères du document de la base de données est alors élevé au carré (Di 2). Ces termes au carré sont alors additionnés Chaque segment à N caractères de la question est alors élevé au carré (Qi 2) Ces termes au carré sont alors 2694984 additionnés Ces sommes sont ensuite multipliées ensemble pour former "un produit de sommes". n n produit de sommes = z Qi 2 x j Di 2 Finalement, le score du document de la base de données par rapport à la question est la "somme de produits" divisée par la racine carrée du "produit de sommes". score = (Qi x Di) x l Qi 2 x Di 2 l Un score est généré pour chaque document de la base de données par rapport à la question. L'utilisateur définit le score-seuil qui est utilisé pour déterminer si un document de la base de données est similaire à la question par rapport à la langue ou au thème. Les exemples donnés ci-dessus concernant les étapes mises en jeu dans l'identification de langue sont applicables pour décrire les étapes mises en jeu dans cet algorithme pour récupérer des documents depuis une base de données. Les segments à N caractères peuvent aussi être utilisés pour résoudre les problèmes associés au classement de documents d'une base de données en catégories contenant des documents semblables. L'algorithme de la présente invention ne requiert aucune directive de la part de l'utilisateur ni aucun traitement préalable de la base de données au delà de ce qui décrit ci-dessus La base de données peut être classée en catégories de langue ou de thème Des documents peuvent être facilement rattachés à des catégories différentes (ainsi, un document peut être classé dans une catégorie de langue particulière aussi bien que dans une catégorie de thème particulier). La figure 10 décrit l'algorithme utilisé pour classer des documents d'une base de données en catégories Les documents peuvent être classés en fonction d'une langue ou d'un thème Une base de données contient typiquement de nombreux documents. Ces documents peuvent traiter de thèmes différents et peuvent être écrits en des langues différentes Il n'y a aucune nécessité que ces documents soient sous une quelconque forme particulière. Un tableau de segments à N caractères est créé pour chaque document de la base de données Ceci est effectué en faisant une liste séparée, pour chaque document de la base de données, des segments distincts à N caractères qui apparaissent dans ce document Des poids sont affectés à tous les segments distincts à N caractères Le poids est déterminé par le nombre d'occurrence d'un segment à N caractères dans un document particulier Des poids sont alors affectés à chaque segment à N caractères dans chaque document de la base de données. Le facteur commun parmi les documents de la base de données est alors supprimé de chaque document de la base de données Ceci est accompli en listant tout d'abord les segments distincts à N caractères qui apparaissent dans les documents (c'est-à-dire en pensant temporairement aux documents séparés de la base de données, comme à un document étendu, puis en listant les segments distincts à N caractères qui apparaissent dans ledit document étendu) Puis un poids de facteur commun est affecté à chaque segment à N caractères distinct basé sur le nombre d'occurrence (c'est-à-dire le nombre total d'occurrence dans tous les documents de la base de données de segment à N caractères particulier divisé par le nombre total de segments distincts à n caractères dans tous les documents de la base de données) Chaque poids de facteur commun est divisé par le nombre total de documents de la base de données Le poids de facteur commun pour chaque segment à N caractères est alors soustrait du poids de son segment à N caractères correspondant dans chaque document de la base de données. Chaque document de la base de données est alors comparé à chacun des autres documents de la base de données Ceci est accompli en calculant le score de chaque document de la base de données par rapport à chacun des autres documents de la base de données Le score est obtenu en multipliant tout d'abord chaque poids de segment à N caractères diminué du facteur commun d'un document de la base de données (par exemple Dli) par le poids diminué du facteur commun de son segment à N caractères correspondant dans un document de la base de données qui lui est comparé (par exemple D 2 i) Ces produits sont alors additionnés pour former une "somme de produits". n somme de produits = (Dli x D 2 i) 1 = 1 Chaque poids de segment à N caractères diminué du facteur commun du premier document de la 38 2694984 base de données est alors élevé au carré (Dli 2) Ces termes au carré sont alors additionnés Chaque poids de segment à N caractères diminué du facteur commun dans le second document de la base de données qui est comparé au premier document, est alors élevé au carré (par exemple D 2 i 2) Ces termes au carré sont alors additionnés Ces sommes sont ensuite multipliées ensemble pour former "un produit de sommes". produit de sommes = S Dli 2 x D 2 i 2 i= 1 1 = 1 Finalement, le score du premier document de la base de données par rapport au second document de la base de données est la "somme de produits" divisée par la racine carrée du "produit de sommes". n N N -1/2 score (Dli X D 2 i) x Dli 2 x D 2 i 2 l Un score est généré pour chaque document de la base de données par rapport à chacun des autres documents de la base de données L'utilisateur définit le seuil que le score doit atteindre afin que deux documents qui sont comparés soient déclarés similaires Des documents similaires sont alors classés en catégories par rapport à la langue ou au thème. Les exemples donnés ci-dessus concernant les étapes mises en jeu dans l'identification de langue sont applicables pour décrire les étapes mises en jeu dans cet algorithme pour classer des documents d'une *base de données. Les activités de recherche actuelles en traitement de texte se sont concentrées sur une analyse basée sur le contenu (c'est-à- dire linguistique) La présente invention s'est concentrée seulement sur une analyse par reconnaissance de modèle (c'est-à-dire non linguistique) La présente invention ne requiert aucune information additionnelle concernant la synthaxe, la sémantique ou la grammaire Les bénéfices de l'application de l'analyse par segment à N caractères à l'identification de thème n'ont pas encore été totalement appréciés jusqu'à aujourd'hui. Le procédé d'identification de thème de la présente invention fonctionne dans n'importe quelle langue avec une facilité égale (mais dans seulement une langue à la fois) Il peut être mis en oeuvre par une personne ne lisant pas la langue du texte et ne demande pas d'apprentissage spécifique Le procédé est robuste en présence de texte altéré (c'est-à-dire texte qui contient des erreurs) L'utilisateur choisit le seuil pour déterminer si des documents sont similaires Le facteur commun non porteur d'information est automatiquement supprimé des documents. Des changements et modifications dans les réalisations spécifiquement décrites, particulièrement dans le langage de programmation utilisé pour mettre en oeuvre cette invention et la formule spécifique pour le score de similarité établi à partir des poids de segment à N caractères, peuvent être apportés dans le cadre de l'objet de la présente demande de brevet. 2694984 REVENDICATIONS 1 Procédé pour déterminer la langue d'un texte donné, caractérisé par les étapes de: (a) analyser ledit corps de texte en une pluralité de segments à N caractères, chaque segment à N caractères comprenant le contenu de n emplacements de caractère/espace consécutifs dudit corps de texte o N a une valeur d'au moins un; (b) comparer chacun desdits segments à n caractères à une pluralité d'ensembles de segments à n caractères o chaque ensemble de segments à n caractères représente une langue différente; et (c) identifier la langue dudit corps de texte comme étant écrit dans la langue d'un ensemble particulier de segments à N caractères quand le pourcentage d'appariement à l'étape (b) pour un ensemble particulier de segments à N caractères est au moins égal à la valeur prescrite pour cet ensemble de segments à N caractères et plus élevé que le pourcentage d'appariement à l'étape (b) pour les autres ensembles de segments à N caractères. 2 Procédé pour identifier un document caractérisé par les étapes de: (a) créer un tableau de référence de segments à N caractères pour chacun d'une pluralité de documents de référence qui sont dans un format lisible par machine, chaque segment à N caractères comprenant au moins un élément consécutif du document; (b) analyser un document non identifié qui est dans un format lisible par machine en une pluralité de segments à N caractères, chaque segment à N caractères comprenant au moins un élément consécutif de document; - (c) affecter un poids à chaque segment à n caractères de l'étape (a); (d) affecter un poids à chaque segment à n caractères de l'étape (b); (e) supprimer le facteur commun parmi ladite pluralité de tableaux de référence; (f) comparer chaque segment à N caractères de document non identifié à chaque segment à n caractères desdits tableaux de référence pour produire une liste de scores qui indiquent le degré de similarité entre ledit document non identifié et chacun desdits tableaux de référence; et (g) identifier ledit document non identifié comme étant similaire à au moins un de ladite pluralité de documents de référence listée à l'étape (a) quand un score à l'étape (f) est au moins égal à une valeur définie par l'utilisateur pour lesdits tableaux de référence. 3 Procédé selon la revendication 2 dans lequel ladite étape de créer un tableau de référence de segments à N caractères est effectuée en: (a) listant tous les segments distincts à n caractères qui apparaissent dans le document de référence correspondant; et (b) affectant un poids à chaque segment à n caractères dudit document de référence. 4 Procédé selon la revendication 3 dans lequel ladite étape d'affecter un poids à chaque segment à N caractères dudit document de référence est effectuée en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ledit document de référence; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ledit document de référence; et (c) affectant chaque quotient calculé à l'étape (b) au segment à N caractères correspondant comme poids de ce segment à N caractères. Procédé selon la revendication 4 dans lequel l'étape de supprimer ledit facteur commun est effectuée en: (a) faisant une liste des segments distincts à N caractères qui apparaissent dans ladite pluralité de documents de référence; (b) créant un total pour chaque segment à n caractères qui représente la somme des poids de ce segment à N caractères dans ladite pluralité de documents de référence; (c) divisant chaque total de l'étape (b) par le nombre total de documents de référence; et (d) soustrayant ledit quotient de l'étape (c) du poids de son segment à N caractères correspondant dans chacun de ladite pluralité de documents de référence. 6 Procédé selon la revendication 5 dans lequel ladite étape d'affecter un poids à chaque segment à N caractères dudit document non identifié est effectué en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ledit document non identifié; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ledit document non identifié; (c) soustrayant de chaque quotient de l'étape (b) le poids de facteur commun du segment à n caractères correspondant; et (d) affectant le résultat de l'étape (c) au segment à N caractères correspondant comme poids de ce segment à N caractères. 7 Procédé selon la revendication 6 dans lequel ladite étape de comparer pour produire une liste de scores est effectuée en: (a) multipliant le poids d'un segment à n caractères dans ledit document non identifié par le poids du segment à N caractères correspondant de l'un desdits tableaux de référence; (b) répétant l'étape (a) jusqu'à ce que chaque poids de segment à N caractères dudit document non identifié ait été multiplié par le poids du segment à N caractères correspondant, s'il existe, dans le tableau référence, (c) additionnant les produits des étapes (a) et (b); (d) élevant au carré le poids de chaque segment à N caractères dans ledit document non identifié; (e) additionnant les carrés des poids dudit document non identifié de l'étape (d); (f) élevant au carré le poids de chaque segment à N caractères dans ledit tableau de référence de l'étape (a); (g) additionnant les carrés des poids dudit tableau de référence de l'étape (f); (h) multipliant la somme de l'étape (e) par la somme de l'étape (g); (i) prenant la racine carré du produit de l'étape (h); 44 2694984 (j) divisant la somme de l'étape (c) par le nombre calculé à l'étape (i) pour produire un score de similarité entre ledit document non identifié et ledit document de référence de l'étape (a); et (k) répétant les étapes (a) à (j) pour ladite pluralité de documents de référence pour produire un score de similarité pour ledit document non identifié par rapport à ladite pluralité de documents de référence. 8 Procédé selon la revendication 7 dans lequel ladite étape d'analyser est effectuée en (a) limitant les éléments de document possibles à un ensemble défini par l'utilisateur d'éléments de document; (b) remplaçant les chaînes d'éléments de document définis par l'utilisateur comprenant au moins un élément de document par des chaînes d'éléments définies par l'utilisateur comprenant au moins un élément de document; et (c) supprimant les chaînes d'éléments de document définies par l'utilisateur. 9 Procédé selon la revendication 8 dans lequel ladite étape de limiter les éléments de document possibles à un ensemble défini par l'utilisateur d'éléments de document est effectuée en limitant les éléments de document possibles à des lettres d'une pluralité de langues. Procédé selon la revendication 9 dans lequel ladite étape d'identifier ledit document non identifié entraîne l'identification de la langue dudit document non identifié. il Procédé selon la revendication 9 dans lequel ladite étape d'identifier ledit document non identifié entraîne l'identification du thème dudit document non identifié. 12 Procédé de récupération de documents caractérisé par les étapes de: (a) créer un tableau de référence de segments à N caractères pour chacun d'une pluralité de documents de référence qui sont dans un format lisible par machine, chaque segment à N caractères comprenant au moins un élément consécutif du document; (b) affecter un poids à chaque segment à n caractères de l'étape (a); (c) supprimer le facteur commun parmi ladite pluralité de tableaux de référence de l'étape (a); (d) analyser une question qui est dans un format lisible par machine en une pluralité de segments à N caractères, chaque segment à n caractères comprenant au moins un élément de document consécutif; (e) affecter un poids à chaque segment à n caractères de l'étape (d); (f) comparer chaque segment à N caractères de la question de l'étape (d) aux segments à n caractères de chacun de ladite pluralité de tableaux de référence de l'étape (a) pour produire une liste de scores qui indiquent le degré de similarité entre ladite question et chacun de ladite pluralité de documents de référence; et (g) identifier une pluralité de documents de référence qui sont similaires à ladite question quand un score à l'étape (f) est au moins égal à une valeur définie par l'utilisateur. 13 Procédé selon la revendication 12 dans lequel ladite étape de créer un tableau de référence de segments à N caractères est effectuée en: (a) listant tous les segments distincts à n caractères qui apparaissent dans le document de référence correspondant; et (b) affectant un poids à chaque segment à n caractères dudit document de référence. 14 Procédé selon la revendication 13 dans lequel ladite étape d'affecter un poids à chaque segment à N caractères dudit document de référence est effectuée en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ledit document de référence; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ledit document de référence; et (c) affectant chaque quotient calculé à l'étape (b) au segment à N caractères correspondant comme poids de ce segment à N caractères. Procédé selon la revendication 14 dans lequel l'étape de supprimer ledit facteur commun est effectuée en: (a) faisant une liste des segments distincts à N caractères qui apparaissent dans ladite pluralité de documents de référence; (b) créant un total pour chaque segment à n caractères qui représente la somme des poids de ce segment à N caractères dans ladite pluralité de documents de référence; (c) divisant chaque total de l'étape (b) par le nombre total de documents de référence; et 47 2694984 (d) soustrayant ledit quotient de l'étape (c) du poids de son segment à N caractères correspondant dans chacun de ladite pluralité de documents de référence. 16 Procédé selon la revendication 15 dans lequel ladite étape d'affecter un poids à chaque segment à N caractères de ladite question est effectuée en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ladite question; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ladite question; (c) soustrayant de chaque quotient de l'étape (b) le poids de facteur commun du segment à n caractères correspondant; et (d) affectant le résultat de l'étape (c) au segment à N caractères correspondant comme poids de ce segment à N caractères. 17 Procédé selon la revendication 16 dans lequel ladite étape de comparer pour produire une liste de score est effectuée en: (a) multipliant le poids d'un segment à n caractères dans ladite question par le poids du segment à N caractères correspondant de l'un desdits tableaux de référence; (b) répétant l'étape (a) jusqu'à ce que tous les poids de segment à N caractères de ladite question ait été multipliés par les poids de segment à N caractères correspondants dans le tableau référence, (c) additionnant les produits des étapes (a) et (b) i (d) élevant au carré le poids de chaque segment à N caractères dans ladite question; (e) additionnant les carrés des poids de ladite question de l'étape (d); (f) élevant au carré le poids de chaque segment à N caractères dans ledit tableau de référence de l'étape (a); (g) additionnant les carrés des poids dudit tableau de référence de l'étape (f); (h) multipliant la somme de l'étape (e) par la somme de l'étape (g); (i) prenant la racine carré du produit de l'étape (h); (j) divisant la somme de l'étape (c) par le nombre calculé à l'étape (i) pour produire un score de similarité entre ladite question et ledit document de référence de l'étape (a); et (k) répétant les étapes (a) à (j) pour chacun de ladite pluralité de documents de référence pour produire un score de similarité pour ladite question par rapport à chacun de ladite pluralité de documents de référence. 18 Procédé selon la revendication 17 dans lequel ladite étape d'analyser est effectuée en: (a) limitant les éléments de document possibles à un ensemble défini par l'utilisateur d'éléments de document; (b) remplaçant les chaînes d'éléments de document définis par l'utilisateur comprenant au moins un élément de document, par des chaînes d'éléments définis par l'utilisateur comprenant au moins un élément de document; et (c) supprimant les chaînes d'éléments de document définis par l'utilisateur. 19 Procédé selon la revendication 18 dans lequel ladite étape de limiter les éléments de document possibles à un ensemble défini par l'utilisateur d'éléments de document est effectuée en limitant les éléments de document possibles à des lettres d'une pluralité de langues. Procédé selon la revendication 19 dans lequel ladite étape d'identifier une pluralité desdits documents de référence comme étant similaires à ladite question qui est dans un format lisible par machine est effectuée en identifiant une pluralité desdits documents de référence comme étant similaires à la langue de ladite question. 21 Le procédé selon la revendication 19 dans lequel ladite étape d'identifier une pluralité desdits documents de référence comme étant similaires à ladite question est effectuée en identifiant une pluralité desdits documents de référence comme étant similaires au thème de ladite question. 22 Procédé pour classer des documents caractérisé par les étapes de: (a) créer un tableau de référence de segments à N caractères pour chacun d'une pluralité de documents qui sont dans un format lisible par machine, chaque segment à N caractères comprenant au moins un élément consécutif d'information; (b) affecter un poids à chaque segment à n caractères de l'étape (a); (c) supprimer le facteur commun parmi ladite pluralité de tableaux; (d) comparer chaque tableau à tous les autres tableaux pour produire une liste de scores qui indiquent le degré de similarité entre chacun desdits tableaux; et (e) classer lesdits documents en des catégories basées sur les scores à l'étape (d) et une tolérance définissable par l'utilisateur. 23 Procédé selon la revendication 22 dans lequel ladite étape de créer un tableau de segments à n caractères est effectuée en: (a) listant tous les segments distincts à n caractères qui apparaissent dans le document correspondant; et (b) affectant un poids à chaque segment à n caractères de l'étape (a). 24 Procédé selon la revendication 23 dans lequel ladite étape d'affecter un poids à chaque segment à N caractères dudit tableau est effectuée en: (a) comptant le nombre d'occurrences de chaque segment à N caractères distinct dans ledit document; (b) divisant chaque compte de l'étape (a) par le nombre total de segments à N caractères dans ledit document; et (c) affectant chaque quotient calculé à l'étape (b) au segment à N caractères correspondant comme poids de ce segment à N caractères. 25 Procédé selon la revendication 24 dans lequel l'étape de supprimer ledit facteur commun est effectuée en: (a) faisant une liste des segments distincts à N caractères qui apparaissent dans ladite pluralité de documents; 51 2694984 (b) créant un total pour chaque segment à n caractères qui représente la somme des poids de ce segment à N caractères dans ladite pluralité de documents; (c) divisant chaque total par le nombre total de documents; et (d) soustrayant ledit quotient de l'étape (c) du poids de son segment à N caractères correspondant dans chacun de ladite pluralité de documents. 26 Procédé selon la revendication 25 dans lequel ladite étape de comparer pour produire une liste de scores est effectuée en: (a) multipliant le poids d'un segment à n caractères dans l'un de ladite pluralité de documents par le poids du segment à N caractères correspondant dans un autre de ladite pluralité de documents; (b) répétant l'étape (a) jusqu'à ce que chaque poids de segment à N caractères du premier document ait été multiplié par le poids du segment à n caractères correspondant dans le second document, (c) additionnant les produits des étapes (a) et (b); (d) élevant au carré le poids de chaque segment à N caractères dans ledit premier document; (e) additionnant les carrés des poids dudit premier document de l'étape (d); (f) élevant au carré le poids de chaque segment à N caractères dans ledit second document de l'étape (a); (g) additionnant les carrés des poids dudit second document de l'étape (f); (h) multipliant la somme de l'étape (e) par la somme de l'étape (g); (i) prenant la racine carré du produit de l'étape (h); 52 2694984 (j) divisant la somme de l'étape (c) par le nombre calculé à l'étape (i) pour produire un score de similarité entre ledit premier document non identifié et ledit second document de l'étape (a); et (k) répétant les étapes (a) à (j) pour chaque document pour produire un score de similarité pour chaque document par rapport à chacun de ladite pluralité de documents.