PROCEDE D'ETABLISSEMENT AUTOMATIQUE DE REQUETES INTERLANGUES POUR MOTEUR DE RECHERCHE
DOMAINE TECHNIQUE DE L’INVENTION L'invention concerne le domaine de l'informatique appliquée au langage. Plus précisément, l'invention porte sur un procédé d'établissement automatique de requête inter-langues pour moteur de recherche.
ARRIERE PLAN TECHNOLOGIQUE
Il est connu de représenter des mots à l'aide de vecteurs de taille fixe. Il s'agit d'une représentation distribuée, dans la mesure où il n'est pas nécessaire qu'il existe une correspondance de type bijective entre les dimensions des vecteurs et les propriétés linguistiques des mots distribuées suivant les dimensions de l'espace.
Une méthode connue, dite Skip-gram (Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. 2013a. Efficient estimation of word représentations in vector space. arXiv preprint arXiv:1301.3781) permet un apprentissage de vecteurs de mots autorisant le traitement d'une très grande quantité de données en un temps réduit. Ainsi, la méthode Skip-gram permet de traiter un ensemble de 1.6 milliards de mots en moins d'une journée.
Dans l'état de l'art, les requêtes établies sur les moteurs de recherche à partir de vecteurs de mots ne peuvent être réalisées que dans une seule langue uniquement.
OBJET DE L’INVENTION L'invention vise à permettre d'établir, à partir d'un mot de requête, des requêtes exécutables par un moteur de recherche dans plusieurs langues. A cet effet, l'invention propose un procédé d'établissement automatique de requêtes inter-langues exécutées par un moteur de recherche, caractérisé en ce que, à partir d'un fichier de texte contenant un corpus d'apprentissage comportant un ensemble de phrases exprimées de manière correspondante dans au moins deux langues, les mots de chacune des deux langues étant associés chacun à un vecteur cible, ledit procédé comporte: - une étape d'alignement de vecteurs cibles des mots dudit corpus d'apprentissage dans lesdites au moins deux langues, - une étape de récupération de N mots dans chacune des au moins deux langues ayant des vecteurs cibles les plus proches par rapport à un vecteur cible associé à un mot de requête, et - une étape d'établissement de requêtes exécutées par un moteur de recherche à partir des N mots précédemment récupérés dans lesdites au moins deux langues.
Selon une mise en oeuvre, pour permettre à un utilisateur de filtrer un sens dudit mot de requête parmi plusieurs sens, ledit procédé comporte en outre: i - une étape de détermination de M vecteurs cibles les plus proches dudit vecteur cible associé audit mot de requête, ii - une étape de sélection du vecteur cible le plus proche correspondant au sens dudit mot de requête à filtrer, et iii - une étape de retranchement dudit vecteur cible le plus proche sélectionné au vecteur cible associé audit mot de requête.
Selon une mise en oeuvre, les étapes précitées i) à iii) sont répétées jusqu'à ce que des résultats retournés par ledit moteur de recherche soient exempts du sens du mot de requête à filtrer.
Selon une mise en oeuvre, l'étape de retranchement est effectuée par application du processus d'ortho-normalisation de Graham-Schmit.
Selon une mise en oeuvre, chaque mot dudit corpus d'apprentissage étant associé à un vecteur cible et à un vecteur de contexte, l'étape d'alignement des vecteurs cibles comporte: - des étapes de calcul de fonctions de coût, dites fonctions intra-langues, pour calculer les vecteurs cibles et les vecteurs de contexte dans chacune des deux langues, - des étapes de calcul de fonctions de coût, dites fonctions de coût interlangues, respectivement pour aligner les vecteurs cibles des mots d'une première langue par rapport aux vecteurs de contexte des mots d'une deuxième langue ainsi que pour aligner les vecteurs cibles des mots de la deuxième langue par rapport aux vecteurs de contexte des mots de la première langue, et - une étape de minimisation de la somme des au moins quatre fonctions de coût précédemment calculées.
Selon une mise en oeuvre, l'étape de calcul de chaque fonction de coût intra-langue est réalisée par un procédé itératif mettant en oeuvre une fenêtre coulissante dans ledit corpus d'apprentissage et basé sur l'analyse d'un vecteur cible d'un mot d'intérêt de la fenêtre par rapport aux vecteurs de contexte des autres mots de la fenêtre, dits mots de contexte, situés autour du mot d'intérêt et exprimés dans la même langue que le mot d'intérêt.
Selon une mise en oeuvre, la fonction de coût intra-langue s'exprime de la façon suivante:
- C correspondant à l'ensemble des phrases dudit corpus d'apprentissage dans une langue donnée; - s[w-l:w+l] étant la fenêtre de mots correspondant à une phrase du corpus d'apprentissage centrée autour du mot d'intérêt w, - w étant le mot d'intérêt de la phrase, - c étant un mot de contexte, - w étant le vecteur cible du mot d'intérêt, - c correspondant au vecteur de contexte du mot de contexte, - σ étant une fonction de type Sigmoïde.
Selon une mise en oeuvre, les étapes de calcul des fonctions de coût interlangues d'une langue par rapport à une autre langue sont réalisées par un procédé itératif mettant en oeuvre une fenêtre coulissante dans le corpus d'apprentissage et basé sur l'analyse d'un vecteur cible d'un mot d'intérêt de la fenêtre par rapport aux vecteurs de contexte de l'ensemble des mots situés dans la fenêtre, y compris le mot d'intérêt, exprimés dans une langue différente de celle du mot d'intérêt.
Selon une mise en œuvre, la fonction de coût inter-langue s'exprime de la manière suivante:
- se étant une phrase exprimée dans la première langue e et correspondant à la traduction d'une phrase sf de la deuxième langue f, - Ae,f étant le corpus aligné des phrases exprimées dans la première et dans la deuxième langue, - we étant un mot cible sélectionné dans la phrase "se" correspondant à la fenêtre centrée autour du mot d'intérêt we et définie par se[we-l:we+l], - le contexte sélectionné pour un mot d'intérêt we dans la phrase "se" étant constitué par tous les mots cf apparaissant dans la phrase sf, y compris le mot d'intérêt we, - ' étant le vecteur cible du mot d'intérêt, - ^correspondant au vecteur des mots de contexte dans la langue autre que celle du mot d'intérêt, - σ étant une fonction de type Sigmoïde.
Selon une mise en œuvre, pour aligner des vecteurs cibles de mots d'une langue supplémentaire, ledit procédé comporte en outre: - une étape de calcul d'une fonction de coût intra-langue pour déterminer les vecteurs cibles et les vecteurs de contexte dans la langue supplémentaire, - une étape de calcul d'une fonction de coût inter-langue pour aligner les vecteurs cibles des mots de la langue supplémentaire par rapport aux vecteurs cibles des mots d'une des langues, dite langue pivot, ainsi que pour aligner les vecteurs cibles des mots de la langue pivot par rapport aux vecteurs cibles des mots de la langue supplémentaire, et - une étape de minimisation de la somme de l'ensemble des fonctions de coûts intégrant en outre la fonction de coût intra-langue et la fonction de coût inter-langue précédemment calculées pour la langue supplémentaire. L'invention a également pour objet un équipement informatique de type ordinateur ou serveur comportant une mémoire stockant des instructions logicielles permettant la mise en œuvre du procédé tel que précédemment défini.
BREVE DESCRIPTION DES FIGURES L’invention sera mieux comprise à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent. Ces figures ne sont données qu’à titre illustratif mais nullement limitatif de l’invention.
La figure 1 montre un diagramme des différentes étapes du procédé d'établissement automatique de requêtes inter-langues selon la présente invention;
La figure 2 montre un diagramme des étapes mises en œuvre pour déterminer les vecteurs cibles alignés de mots dans deux langues différentes;
La figure 3 est un tableau illustrant les mots de requête pouvant être générés, grâce au procédé selon la présente invention, dans 21 langues à partir d'un vecteur cible associé à un seul mot de requête;
La figure 4 est un tableau illustrant la possibilité de désambiguïser un mot de requête ayant plusieurs sens par soustraction d'un vecteur cible associé à un mot d'une autre langue correspondant au sens à filtrer.
DESCRIPTION D’EXEMPLES DE REALISATION DE L’INVENTION
Le procédé selon la présente invention est mis en œuvre à partir d'un fichier de texte contenant un corpus d'apprentissage C comportant un ensemble de phrases exprimées de manière correspondante dans au moins deux langues, par exemple la langue anglaise "e" et la langue française "f". Les mots de chacune des deux langues sont associés chacun à un vecteur cible w et à un vecteur de contexte c. Les vecteurs cibles w et de contexte c comportent chacun un nombre de composantes compris entre 50 et 1000 et valant par exemple 300.
Comme cela est illustré par la figure 1, le procédé comporte dans un premier temps une étape de détermination 100 de vecteurs cibles w alignés des mots dans les deux langues, de telle façon que deux vecteurs cibles w associés à deux mots correspondants dans les deux langues sont les plus proches l'un de l'autre. Autrement dit, une fois l'étape d'alignement 100 des vecteurs cibles ir réalisée, pour un vecteur cible ir associé à un mot dans une première langue donné, il n'y a aucun autre vecteur cible ^plus proche que celui associé à la traduction du mot dans l'autre langue. A cet effet, comme cela est illustré par le diagramme de la figure 2, on réalise des étapes 201, 202 de calcul de fonctions de coût Je, Jf dites fonctions de coût intra-langues, pour calculer les vecteurs cibles w et les vecteurs de contexte c dans chacune des deux langues. Dans l'exemple, on calcule ainsi une fonction de coût intra-langue Je pour la langue anglaise et une fonction de coût intra-langue Jf pour la langue française.
De préférence, les étapes de calcul 201, 202 de chaque fonction de coût intra-langue Je, Jf sont réalisées par un procédé itératif mettant en œuvre une fenêtre coulissante dans le corpus d'apprentissage C et basé sur l'analyse d'un vecteur cible w d'un mot d'intérêt de la fenêtre par rapport aux vecteurs de contexte c des autres mots de la fenêtre, dits mots de contexte, situés autour du mot d'intérêt et exprimés dans la même langue que le mot d'intérêt. Le mot d'intérêt n'est pas pris en compte lors du calcul des vecteurs cibles des mots de contexte.
En l'occurrence, la fonction de coût intra-langue J s'exprime pour chaque langue de la façon suivante:
- C correspondant à l'ensemble des phrases du corpus d'apprentissage dans une langue donnée e ou f; - s[w-l:w+l] étant la fenêtre de mots correspondant à une phrase du corpus d'apprentissage centrée autour du mot w, - w étant le mot d'intérêt de la phrase, - c étant un mot de contexte autour du mot d'intérêt, - w étant le vecteur cible du mot d'intérêt, - c correspondant au vecteur de contexte du mot de contexte, - σ étant une fonction de type Sigmoïde.
En outre, on réalise des étapes de calcul 203, 204 de fonctions de coût Qe,f, Qf,e dites fonctions de coût inter-langues, respectivement pour aligner les vecteurs cibles V)e des mots de la première langue e par rapport aux vecteurs de contexte cf des mots de la deuxième langue f, ainsi que pour aligner les vecteurs cibles Wf des mots de la deuxième langue f par rapport aux vecteurs de contexte Ce des mots de la première langue e.
De préférence, l'étape de calcul 203, 204 de chaque fonction de coût interlangues Qe,f, Qf,e d'une langue par rapport à une autre est réalisée par un procédé itératif mettant en œuvre une fenêtre coulissante dans le corpus d'apprentissage C et basé sur l'analyse d'un vecteur cible VJ d'un mot d'intérêt de la fenêtre par rapport aux vecteurs de contexte c de l'ensemble des mots situés dans la fenêtre et exprimés dans la langue différente de celle du mot d'intérêt.
En l'occurrence, la fonction de coût inter-langue Ω s'exprime de la manière suivante:
- se étant une phrase exprimée dans une première langue e et correspondant à la traduction d'une phrase sf exprimée dans une deuxième langue f, - Ae,f étant le corpus aligné des phrases exprimées dans la première et dans la deuxième langue (c’est-à-dire que pour chaque phrase exprimée dans une langue il existe une phrase correspondante dans l'autre langue), - we étant un mot cible sélectionné dans la phrase se correspondant à la fenêtre centrée autour de we: se[we-l:we+l], - le contexte sélectionné pour un mot d'intérêt we dans la phrase "se" étant constitué par tous les mots cf apparaissant dans la phrase sf, y compris le mot d'intérêt, -We étant le vecteur cible du mot d'intérêt, - cf correspondant au vecteur de contexte dans la langue autre que celle du mot d'intérêt, - σ étant une fonction de type Sigmoïde.
La somme de ces quatre fonctions de coût Je, Jf Qe,f, Qf,e précédemment calculées (cf. bloc fonctionnel 205) est minimisée afin d'obtenir les vecteurs cibles we, ^alignés dans les deux langues.
Il est à noter qu'il est très simple d'adapter le procédé selon l'invention pour aligner des vecteurs cibles Wj de mots d'une langue supplémentaire. En effet, il suffit pour cela de calculer la fonction de coût intra-langue pour calculer les vecteurs cibles ^/et les vecteurs de contexte Ci dans la langue supplémentaire, ainsi que les fonctions de coût inter-langue pour aligner les vecteurs cibles Wj des mots de la langue supplémentaire par rapport aux vecteurs cibles '^edes mots d'une des langues, dite langue pivot, ainsi que pour aligner les vecteurs cibles wedes mots de la langue pivot par rapport aux vecteurs cibles Wides mots de la langue supplémentaire.
Ainsi, si l'on souhaite aligner les vecteurs de mots exprimés dans la langue italienne "i" et que l'anglais "e" est défini comme une langue pivot, on calculera outre les fonctions de coûts précitées la fonction de coût intra-langue Ji ainsi que les fonctions de coûts inter-langues Qi,e et Qe,i.
On minimise ensuite la somme de l'ensemble des fonctions de coûts intégrant, outre les fonctions de coût précitées Je, Jf, Qe,f, Qf,e, les fonctions de coûts Ji, Qi,e et Qe,i calculées pour la langue supplémentaire.
Ainsi, par prise en compte des fonctions de coûts pour chaque langue supplémentaire, l'invention pourra permettre aisément d'aligner des vecteurs cibles Wi dans plus de 15 langues différentes.
Une fois les vecteurs cibles w alignés suivant la méthode précédemment décrite, il est possible d'établir automatiquement des requêtes inter-langues pour un moteur de recherche. A cet effet, dans une étape 102, on récupère N mots dans chacune des langues considérées ayant des vecteurs cibles w les plus proches par rapport à un vecteur cible w associé à un mot de requête. La détermination des vecteurs cibles w les plus proches les uns des autres est effectuée par minimalisation de la distance euclidienne entre les vecteurs.
Dans une étape 103, les requêtes sont ensuite établies et exécutées par un moteur de recherche à partir des N mots précédemment récupérés dans les langues considérées. Le procédé met également en oeuvre une étape 104 d'affichage des résultats retournés par le moteur de recherche.
La figure 3 met ainsi en évidence qu'à partir d'un seul mot de requête, ici le mot "innovation", il est possible de faire une recherche à l'aide de 10 mots par langue ayant des vecteurs les plus proches du vecteur associé au mot "innovation", soit une recherche basée sur 210 mots de recherche dans le cas de l'utilisation de 21 langues. L'invention permet ainsi d'obtenir des résultats de recherche en relation avec le sens global d'un mot considéré dans une pluralité de langues, et cela sans avoir nécessairement connaissance des différentes langues du fait de l'utilisation des vecteurs cibles ir alignés dans les différentes langues.
En outre, pour permettre à un utilisateur de filtrer un sens d'un mot de requête ayant plusieurs sens, le procédé pourra également comporter en outre: i - une étape de détermination de M vecteurs cibles w les plus proches du vecteur cible associé audit mot de requête, ii - une étape de sélection du vecteur cible w le plus proche correspondant au sens dudit mot de requête à filtrer, et iii - une étape de retranchement du vecteur cible w le plus proche sélectionné au vecteur cible associé au mot de requête. Cette étape de retranchement est effectuée de préférence par application du processus d'ortho-normalisation de Graham-Schmit.
La figure 4 montre ainsi la liste des mots polonais ayant les vecteurs cibles les plus proches du mot "train" français accompagnés de leur traduction en anglais. Cette liste inclut des notions de véhicule, ainsi que des notions temporelles (ex: être en train de manger). Le tableau met en évidence que, si l'on soustrait le vecteur cible du mot "sta" italien associé uniquement à la notion temporelle au vecteur cible du mot "train" en français, on obtient une liste de mots polonais contenant uniquement des mots en relation avec la notion de véhicule. Autrement dit, la soustraction entre vecteurs cibles dans les différentes langues permet d'éliminer un ou plusieurs sens d'un mot de requête que l'utilisateur souhaite filtrer lors de sa recherche afin de désambiguïser un terme.
Les étapes précitées i) à iii) pourront être répétées par l'utilisateur ou de façon automatique jusqu'à ce que des résultats affichés par le moteur de recherche soient exempts du sens du mot de requête à filtrer. L'invention a également pour objet un équipement informatique de type ordinateur ou serveur comportant une mémoire stockant des instructions logicielles permettant la mise en œuvre du procédé tel que précédemment décrit. L'homme du métier pourra bien entendu apporter des modifications au procédé décrit ci-dessus sans sortir du cadre de l'invention défini ci-après par les revendications.