Comment comparer des documents ?

Comparaison de documents, de quoi parle-t-on ?

De nom­breuses appli­ca­tions néces­sitent de pou­voir com­pa­rer des docu­ments entre eux, par exemple pour cor­ri­ger un docu­ment, détec­ter du pla­giat, consti­tuer une mémoire de tra­duc­tion, faire de la recherche d’in­for­ma­tion, lut­ter contre les fake news ou encore éva­luer un logi­ciel de tra­duc­tion.

Les tech­niques employées dif­fèrent selon les besoins et la taille des docu­ments. On trouve par­mi ces tech­niques le cal­cul de la dis­tance d’é­di­tion, les modèles pro­ba­bi­listes et la com­pa­rai­son par espace vectoriel.

La distance d’édition

Il n’est pas rare qu’une erreur typo­gra­phique se glisse dans la requête d’u­ti­li­sa­teur sur un moteur de recherche : carac­tère oublié, incer­ti­tude sur l’or­tho­graphe… La dis­tance d’é­di­tion per­met de retour­ner des résul­tats en com­pa­rant la requête avec les termes effec­ti­ve­ment pré­sents dans l’in­dex du moteur de recherche. Cette dis­tance d’é­di­tion est éga­le­ment uti­li­sée pour des appli­ca­tions telles que la cor­rec­tion ortho­gra­phique ou pour cer­taines mesures de qua­li­té en tra­duc­tion auto­ma­tique, qui consistent à com­pa­rer le docu­ment pro­duit par la machine avec une ver­sion stan­dard rédi­gée par un traducteur. 

Comment calculer une distance d’édition

La dis­tance d’é­di­tion consiste à comp­ter le nombre mini­mum d’o­pé­ra­tions néces­saires et suf­fi­santes pour pas­ser d’une chaîne de carac­tères à une autre. Ces opé­ra­tions sont :

  • l’é­li­sion : un carac­tère est effa­cé (exmple)
  • l’in­ser­tion : un carac­tère est ajou­té (exeemple).
  • la sub­sti­tu­tion : un carac­tère est rem­pla­cé (example).

Ain­si par exemple, la dis­tance d’é­di­tion entre les chaînes mode­la et demo­tal est de 5:

  • inser­tion de deux carac­tères d et e (+ 2) pour pas­ser de mode­la à demo­de­la
  • sub­sti­tu­tion de t à la place de d (+ 1) et de a à a place de e (+ 1) pour pas­ser de demo­de­la à demo­ta­la
  • sup­pres­sion de a (+ 1) pour pas­ser de demo­ta­la à demo­tal

Comparer des textes, la méthode vectorielle

Les méthodes vec­to­rielles consistent à construire un espace vec­to­riel dont chaque mot des textes est un vec­teur, puis de posi­tion­ner le texte dans cet espace afin de cal­cu­ler des dis­tances vec­to­rielles entre textes. On parle ain­si de vec­to­ri­sa­tion des textes.

Ce type de tech­nique est notam­ment uti­li­sé en recherche d’in­for­ma­tion.

Comment construire un espace vectoriel pour la comparaison de textes

Une méthode consiste, dans un pre­mier, à comp­ter les mots dans les dif­fé­rents textes du corpus. 

Le posi­tion­ne­ment des docu­ments dans cet espace vec­to­riel repose sur deux fac­teurs qui tra­duisent quelques intui­tions simples : 

  • plus un terme est fré­quent dans un docu­ment, plus il est pro­bable que ce docu­ment concerne le concept cor­res­pon­dant à ce terme,
  • plus un terme est fré­quent dans l’en­semble du cor­pus, moins il est dis­cri­mi­nant pour la recherche d’information.

Tech­ni­que­ment, ces prin­cipes se tra­duisent par deux facteurs :

  • la fré­quence d’ap­pa­ri­tion du terme dans le docu­ment considéré 
  • la fré­quence d’ap­pa­ri­tion du terme dans l’en­semble du cor­pus.

Afin de mettre en équa­tion, on écrit

  • tf (text fre­quen­cy) pour la fré­quence d’ap­pa­ri­tion dans le docu­ment considéré.
    • tf = fré­quence du terme dans le docu­ment / nombre de mots dans le document
  • IdF (Invert docu­ment fre­quen­cy) pour la fré­quence d’ap­pa­ri­tion dans l’en­semble du corpus
    • Idf = log(nombre de docu­ments / nombre de docu­ments conte­nant le terme au moins une fois)

Le posi­tion­ne­ment d’un docu­ment dans cet espace vec­to­riel consiste à cal­cu­ler tf*idf pour chaque vecteur-mot.

La recherche d’in­for­ma­tion par com­pa­rai­son de docu­ments consiste alors à posi­tion­ner la requête dans cet espace vec­to­riel et de trou­ver les docu­ments les plus proches mathématiquement.

Vectorisation à l’aide de plongements lexicaux

Il est éga­le­ment pos­sible d’ob­te­nir cette repré­sen­ta­tion vec­to­rielle à par­tir des tech­niques d’ap­pren­tis­sage à base de réseaux de neu­rones. His­to­ri­que­ment, on dis­tingue les « word embed­dings » (en fran­çais plon­ge­ments lexi­caux) qui per­mettent d’as­so­cier un vec­teur à un mot, les vec­teurs ayant pour pro­prié­té d’être d’au­tant plus proches que leur sens est proche. En cumu­lant l’en­semble des vec­teurs, on obtient une repré­sen­ta­tion vec­to­rielle du texte. Des approches plus récentes (comme BERT) per­mettent d’ob­te­nir un vec­teur à par­tir d’une séquence de mots (sou­vent des phrase) et ain­si d’ob­te­nir une mesure de simi­la­ri­té séman­tique entre deux textes, même s’ils n’emploient pas les mêmes mots.

Les mémoires de traduction

Les mémoires de tra­duc­tion fonc­tionne en com­pa­rant le texte à tra­duire avec les textes déjà tra­duits. Cette com­pa­rai­son néces­site la construc­tion d’une base de don­nées issue de l’a­na­lyse des docu­ments tra­duits. Vous trou­ve­rez plus d’in­for­ma­tion sur la page dédiée aux outils de tra­duc­tion.

Par Alain Couillault
PhD Chargé de Mission Innovation APIL

Études de cas associés

Qualifier automatiquement les leads : un gain de temps et de précision

Je suis responsable commercial du service de ventes en ligne pour une entreprise de vente de produits sportifs, et dans le cadre du processus de gestion de nos leads, je souhaite disposer d'une solution pour aider les commerciaux de mon équipe à qualifier automatiquement les leads et à les classer en fonction de leur profil ou de leurs intentions d'achat.

Comment évaluer automatiquement si un CV est pertinent pour un poste ?

Je suis responsable RH et je m'occupe actuellement du recrutement dans le cadre de l'extension de nos équipes. Nous avons identifié, en accord avec la GPEC et les besoins des managers, un certain nombre de postes pour lesquels nous souhaitons embaucher les meilleurs candidats. Après avoir formalisé les missions et compétences requises dans des fiches de postes, rédigé les offres d'emploi et diffusé ces dernières en ligne, mon service a reçu des centaines de candidatures pour chaque poste. Ces candidatures sont stockées dans la base de données de notre SIRH, et pour chaque offre publiée, j'ai accès en un clic à l'ensemble des CVs que j'ai reçus. Pour éviter à mon équipe de lire toutes les candidatures, je souhaite dans un premier temps identifier dans la masse de CVs ceux qui sont pertinents pour chaque poste afin de ne transmettre qu'une poignée de candidatures qualifiées aux managers qui sont demandeurs du recrutement. Comment faire pour évaluer automatiquement si un CV est pertinent pour un poste ?

Repérer et quantifier les effets des traitements ainsi que leur contexte d'apparition

Je suis responsable de la pharmacovigilance au sein d'une structure publique de veille sanitaire. Je souhaite pouvoir exploiter plus largement les sources d'information sur les effets des traitements et garantir une certaine objectivité des analyses à partir des textes libres : l'analyse linguistique automatisée répond-elle à ces objectifs et comment ?

Gare au plagiat : une double préoccupation dans les médias

Comme éditeur ou responsable de médias, je dois traiter le risque de plagiat, c'est à dire : lutter contre l'exploitation abusive du contenu de mes publications, mais aussi me prémunir du risque que mes publications tombent sous le coup d'accusations de plagiat.

Comment identifier la plagiat dans les copies des étudiants de manière simple, rapide et la plus exhaustive possible ?

Enseignant dans l'enseignement supérieur, je dois vérifier que les copies de mes étudiants ne contiennent pas d'extraits traduits d'articles scientifiques disponibles en ligne.

La chasse aux infox, aussi impérieuse que complexe

Je suis directeur de la publication d'un journal d'information généraliste. A l'heure des médias sociaux, tout le monde ou presque peut publier de l'information visible de toute la planète. Cette formidable opportunité est hélas une aubaine pour les rumeurs voire la désinformation délibérée. Ne pas se faire le relais des infox est un devoir des médias désormais inscrit dans la loi. Débusquer et dénoncer la désinformation n'est pas une obligation légale mais un objectif éthique pour les médias.

Quelle solution de fact checking pour mon ONG ?

Je suis responsable de la communication pour une ONG dans un domaine où l'information au public est essentielle et controversée et où le lobbying est très actif. Je dois repérer quotidiennement les informations diffusées et relayées sur les réseaux sociaux et dans la presse afin d'ajuster ma stratégie de communication. Existe-t-il des solutions de fact checking pour lutter contre la diffusion des infox (fake news) ?