Comment comparer des documents ?
Sommaire
Comparaison de documents, de quoi parle-t-on ?
De nombreuses applications nécessitent de pouvoir comparer des documents entre eux, par exemple pour corriger un document, détecter du plagiat, constituer une mémoire de traduction, faire de la recherche d’information, lutter contre les fake news ou encore évaluer un logiciel de traduction.
Les techniques employées diffèrent selon les besoins et la taille des documents. On trouve parmi ces techniques le calcul de la distance d’édition, les modèles probabilistes et la comparaison par espace vectoriel.
La distance d’édition
Il n’est pas rare qu’une erreur typographique se glisse dans la requête d’utilisateur sur un moteur de recherche : caractère oublié, incertitude sur l’orthographe… La distance d’édition permet de retourner des résultats en comparant la requête avec les termes effectivement présents dans l’index du moteur de recherche. Cette distance d’édition est également utilisée pour des applications telles que la correction orthographique ou pour certaines mesures de qualité en traduction automatique, qui consistent à comparer le document produit par la machine avec une version standard rédigée par un traducteur.
Comment calculer une distance d’édition
La distance d’édition consiste à compter le nombre minimum d’opérations nécessaires et suffisantes pour passer d’une chaîne de caractères à une autre. Ces opérations sont :
- l’élision : un caractère est effacé (exmple)
- l’insertion : un caractère est ajouté (exeemple).
- la substitution : un caractère est remplacé (example).
Ainsi par exemple, la distance d’édition entre les chaînes modela et demotal est de 5:
- insertion de deux caractères d et e (+ 2) pour passer de modela à demodela
- substitution de t à la place de d (+ 1) et de a à a place de e (+ 1) pour passer de demodela à demotala
- suppression de a (+ 1) pour passer de demotala à demotal
Comparer des textes, la méthode vectorielle
Les méthodes vectorielles consistent à construire un espace vectoriel dont chaque mot des textes est un vecteur, puis de positionner le texte dans cet espace afin de calculer des distances vectorielles entre textes. On parle ainsi de vectorisation des textes.
Ce type de technique est notamment utilisé en recherche d’information.
Comment construire un espace vectoriel pour la comparaison de textes
Une méthode consiste, dans un premier, à compter les mots dans les différents textes du corpus.
Le positionnement des documents dans cet espace vectoriel repose sur deux facteurs qui traduisent quelques intuitions simples :
- plus un terme est fréquent dans un document, plus il est probable que ce document concerne le concept correspondant à ce terme,
- plus un terme est fréquent dans l’ensemble du corpus, moins il est discriminant pour la recherche d’information.
Techniquement, ces principes se traduisent par deux facteurs :
- la fréquence d’apparition du terme dans le document considéré
- la fréquence d’apparition du terme dans l’ensemble du corpus.
Afin de mettre en équation, on écrit
- tf (text frequency) pour la fréquence d’apparition dans le document considéré.
- tf = fréquence du terme dans le document / nombre de mots dans le document
- IdF (Invert document frequency) pour la fréquence d’apparition dans l’ensemble du corpus
- Idf = log(nombre de documents / nombre de documents contenant le terme au moins une fois)
Le positionnement d’un document dans cet espace vectoriel consiste à calculer tf*idf pour chaque vecteur-mot.
La recherche d’information par comparaison de documents consiste alors à positionner la requête dans cet espace vectoriel et de trouver les documents les plus proches mathématiquement.
Vectorisation à l’aide de plongements lexicaux
Il est également possible d’obtenir cette représentation vectorielle à partir des techniques d’apprentissage à base de réseaux de neurones. Historiquement, on distingue les « word embeddings » (en français plongements lexicaux) qui permettent d’associer un vecteur à un mot, les vecteurs ayant pour propriété d’être d’autant plus proches que leur sens est proche. En cumulant l’ensemble des vecteurs, on obtient une représentation vectorielle du texte. Des approches plus récentes (comme BERT) permettent d’obtenir un vecteur à partir d’une séquence de mots (souvent des phrase) et ainsi d’obtenir une mesure de similarité sémantique entre deux textes, même s’ils n’emploient pas les mêmes mots.
Les mémoires de traduction
Les mémoires de traduction fonctionne en comparant le texte à traduire avec les textes déjà traduits. Cette comparaison nécessite la construction d’une base de données issue de l’analyse des documents traduits. Vous trouverez plus d’information sur la page dédiée aux outils de traduction.