FR 3077148 A1 20190726 FR 1850486 A 20180122 Procédé et dispositif électronique de sélection d'au moins un message parmi un ensemble de plusieurs messages, programme d'ordinateur associé La présente invention concerne un procédé de sélection d'au moins un message parmi un ensemble de plusieurs messages, chaque message comportant un ou plusieurs mots, le procédé étant mis en oeuvre par un dispositif électronique de sélection. Le procédé de sélection comprend une conversion de chacun des messages de l'ensemble en un vecteur respectif de valeurs numériques ; un calcul, pour chaque vecteur respectif, d'une distance par rapport à un vecteur de référence ; et une sélection d'au moins un message à partir des distances calculées. La présente invention concerne aussi un programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre un tel procédé de sélection. La présente invention concerne également un dispositif électronique de sélection d'au moins un message parmi un ensemble de plusieurs messages, chaque message comportant un ou plusieurs mots. La présente invention concerne le domaine de l'analyse et de la sélection de messages, c'est-à-dire de contenus textuels, afin notamment de recommander ensuite automatiquement un ou plusieurs messages à destination d'au moins un utilisateur. Par message, on entend de manière générale tout type d'élément susceptible de contenir un texte. Chaque message comprend alors un ou plusieurs mots, c'est-à-dire une ou plusieurs chaines de caractère(s) alphanumérique(s). Les messages susceptibles d'être sélectionnés via le procédé de sélection selon l'invention sont notamment des messages accessibles via un portail informatique, tel qu'un Extranet, un lntranet ou encore un site Internet. Ces messages sont par exemple des documents techniques ; des livrets d'accueil ; des évènements ; des commentaires sur un forum ; des fichiers informatiques, tels que des fichiers éditables par un logiciel de traitement de texte, un tableur ou encore un logiciel de création de présentation ; des profils de collaborateurs ; etc. Par mot, c'est-à-dire une chaine de caractère(s) alphanumérique(s) au sens de l'invention, on entend une succession d'un ou plusieurs caractères alphanumériques, les caractères alphanumériques étant les uns à la suite des autres, sans espace entre eux. La chaine de caractère(s) alphanumérique(s) est typiquement un nom, un acronyme, un nombre, etc. Par caractère alphanumérique, on entend une lettre d'un alphabet, un chiffre ou encore un caractère spécial, tel que '+', '-', '"', 'f, ", '#', '@', etc. 2 On cannait un moteur de recommandation basé sur une évaluation de « similarités textuelles » entre les messages, ou contenus textuels, de l'ensemble et un ou plusieurs attributs associés à un utilisateur donné et traités comme un message ou contenu textuel 5 associé à cet utilisateur. On cannait également un moteur de recommandation basé sur une recherche par mots-clés, les mots-clés étant déterminés en fonction du ou des attributs associés à l'utilisateur. Toutefois, le ou les messages sélectionnés par un tel moteur de recommandation ne sont pas toujours pertinents, et la recommandation effectuée ne correspond alors 10 parfois pas aux attentes de l'utilisateur. Le but de l'invention est alors de proposer un procédé de sélection, et un dispositif électronique de sélection associé, qui permettent de sélectionner plus efficacement un ou plusieurs messages parmi l'ensemble de messages. 15 A cet effet, l'invention a pour objet un procédé de sélection d'au moins un message parmi un ensemble de plusieurs messages, chaque message comportant un ou plusieurs mots, le procédé étant mis en oeuvre par un dispositif électronique de sélection et comprenant les étapes suivantes : - conversion de chacun des messages de l'ensemble en un vecteur respectif de 20 valeurs numériques ; - calcul, pour chaque vecteur respectif, d'une distance par rapport à un vecteur de référence ; - sélection d'au moins un message à partir des distances calculées ; et préalablement à l'étape de sélection, une étape de pondération des distances 25 calculées en fonction d'un groupe prédéfini de critère(s), l'étape de sélection étant alors effectuée à partir des distances pondérées. L'homme du métier comprendra que par vecteur de valeurs numériques, on entend un ensemble ordonné de valeurs numériques, chaque valeur étant associée à une position prédéfinie, définissant une composante du vecteur. 30 A la différence du procédé de sélection de l'état de la technique, le procédé de sélection selon l'invention ne se base alors pas seulement sur une similarité entre chaque message de l'ensemble et un ou plusieurs attributs associés à un utilisateur qui définissent un message de référence. En effet, le procédé de sélection selon l'invention dépend en outre d'un groupe 35 prédéfini de critère(s), tels que la langue de chaque message respectif et la langue de l'utilisateur, en pondérant chaque similarité, calculée via une distance, entre un message 3 respectif de l'ensemble et le message de référence, en fonction de ce groupe prédéfini de critère(s). Suivant d'autres aspects avantageux de l'invention, le procédé de sélection comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant 5 toutes les combinaisons techniquement possibles : - le vecteur de référence et le groupe de critère(s) sont associés à un utilisateur pour qui est effectuée la sélection d'au moins un message ; - le procédé comprend en outre une étape d'acquisition d'au moins une réaction de l'utilisateur suite à la sélection d'au moins un message, et une étape de mise à jour du 10 groupe de critère(s) en fonction de la ou des réactions acquises ; - le procédé comprend en outre, suite à l'étape de conversion, une étape de regroupement des messages de l'ensemble par classes de message(s), les étapes de calcul, de pondération et de sélection étant alors en outre effectuées classe par classe ; - lors de l'étape de conversion, chaque composante du vecteur correspond à un 15 mot d'un dictionnaire, défini préalablement à l'étape de conversion, la valeur de chaque composante dépendant du nombre d'occurrence(s) dans le message respectif du mot associé à ladite composante ; l'étape de conversion comportant de préférence la mise en oeuvre d'un algorithme de codage fréquentiel pondéré, suivant lequel la valeur de la composante est égale à une 20 fréquence d'apparition du mot dans le message, pondérée par un facteur inversement proportionnel au nombre de message(s) dans le(s)quel(s) le mot apparait ; la valeur de la composante vérifiant de préférence encore l'équation suivante : 171,1=TF_IDF(i,j)= TF_IDF (message, mot) =TF (message,mot)* log( DF(mot,corpus)) où i est un indice entier représentant le message dans le corpus et compris entre 1 et N, 25 N représente le nombre de message(s) du corpus, le corpus étant l'ensemble de messages, j est un indice entier représentant le mot du dictionnaire, TF (message,mot) est un nombre entier positif ou nul représentant le nombre d'occurrence(s) du mot dans le message, et 30 DF(mot, corpus) est un nombre entier représentant le nombre de message(s) du corpus contenant au moins une occurrence de ce mot, DF(mot,corpus) étant un entier strictement positif, un mot étant inclus dans le dictionnaire seulement s'il est présent au moins une fois dans le corpus ; 4 - lors de l'étape de conversion, chaque composante du vecteur correspond à un thème, qui est une distribution de probabilités sur tous les mots d'un dictionnaire, défini préalablement à l'étape de conversion, la valeur de chaque composante dépendant de la proportion de mots dans le message respectif, affecté au thème associé à ladite 5 composante ; - lors de l'étape de calcul, la distance vérifie l'équation suivante : D = distance(X,Yref) = 1 - COS(X,Yref) = 1 11X11.11YreflI où X désigne le vecteur obtenu lors de l'étape de conversion, Yref désigne le vecteur de référence, COS(X,Yref) représente le cosinus de l'angle entre les vecteurs X et Yref, 10 représente le produit scalaire entre les vecteurs X et Yref, et 11)(11, I I lirefll représentent les modules respectifs des vecteurs X et Yref ; - l'étape de pondération comporte la multiplication de chacune des distances calculées par au moins un poids respectif, chaque poids étant déterminé en fonction du groupe prédéfini de critère(s), au moins l'un des poids ayant une valeur différente de 1, 15 le groupe prédéfini de critère(s) incluant de préférence la langue du message respectif et la langue d'un utilisateur pour qui est effectuée la sélection d'au moins un message ; et - l'étape de sélection comporte la détermination d'un groupe de distance(s) pondérée(s) minimale(s), le ou les messages sélectionnés correspondant au(x) vecteur(s) 20 associé(s) à la ou aux distances du groupe déterminé. L'invention a également pour objet un programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre un procédé de sélection tel que défini ci-dessus. L'invention a également pour objet un dispositif électronique de sélection d'au 25 moins un message parmi un ensemble de plusieurs messages, chaque message comportant un ou plusieurs mots, le dispositif électronique de sélection comprenant : - un module de conversion configuré pour convertir chacun des messages de l'ensemble en un vecteur respectif de valeurs numériques ; - un module de calcul configuré pour calculer, pour chaque vecteur respectif, une 30 distance par rapport à un vecteur de référence ; - un module de sélection configuré pour sélectionner au moins un message à partir des distances calculées ; et - un module de pondération configuré pour pondérer les distances calculées en fonction d'un groupe prédéfini de critère(s), 5 le module de sélection étant alors configuré pour sélectionner le ou les messages à partir des distances pondérées. Ces caractéristiques et avantages de l'invention apparaîtront plus clairement à la 5 lecture de la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : - la figure 1 est une représentation schématique d'un dispositif électronique, selon l'invention, de sélection d'au moins un message parmi un ensemble de plusieurs messages ; et 10 - la figure 2 est un organigramme d'un procédé, selon l'invention, de sélection d'au moins un message parmi l'ensemble de plusieurs messages, le procédé étant mis en oeuvre par le dispositif électronique de sélection de la figure 1. Sur la figure 1, un dispositif électronique de sélection 10 est configuré pour 15 sélectionner au moins un message parmi un ensemble de plusieurs messages, chaque message comportant un ou plusieurs mots. Le dispositif électronique de sélection 10 comprend un module de conversion 12 configuré pour convertir chacun des messages de l'ensemble en un vecteur respectif X de valeurs numériques, un module de calcul 14 configuré pour calculer, pour chaque vecteur 20 X respectif, une distance D par rapport à un vecteur de référence Yref, et un module de sélection 16 configuré pour selectionner au moins un message à partir des distances caluclées. Selon l'invention, le dispositif électronique de sélection 10 comprend en outre un module de pondération 18 configuré pour pondérer les distances D calculées en fonction 25 d'un groupe prédéfini de critère(s), le module de sélection 16 étant alors configuré pour selectionner le ou les messages à partir des distances pondérées D. En complément facultatif, le dispositif électronique de sélection 10 comprend en outre un module d'acquisition 20 configuré pour acquérir au moins une réaction de l'utilisateur suite à la sélection d'au moins un message, et un module de mise à jour 22 30 configuré pour effectuer une mise à jour en fonction de la ou des réactions acquises par le modules d'acquisition 20, notamment pour mettre à jour le groupe de critère(s) utilisé pour la pondération des distances calculées. En complément facultatif encore, le dispositif électronique de sélection 10 comprend en outre un module de regroupement 24 configuré pour regrouper des 35 messages de l'ensemble par classe de message(s), ou encore par thème, le module de calcul 14, le module de pondération 18 et le module de sélection 16 étant alors configurés 6 pour effectuer respectivement le calcul de la distance de chaque vecteur X par rapport au vecteur de référence Yref, la pondération de chaque distance calculée et la sélection d'au moins un message à partir des distances pondérées Dw, classe par classe, ou encore thème par thème. 5 Dans l'exemple de la figure 1, le dispositif de sélection 10 comprend une base de données 28 apte à stocker l'ensemble des messages, une unité de traitement d'informations 30 pour agir sur la base données 28 et une interface d'interaction 32. L'unité de traitement d'information 30 est par exemple formée d'une mémoire 34 et d'un processeur 36 associé à la mémoire 34. L'interface d'interaction 32 comprend par 10 exemple des moyens de saisie 38 pour permettre la saisie de requêtes relatives au contenu de la base de données 28 et/ou d'informations de la part de l'utilisateur. L'interface d'interaction 32 comprend également des moyens de visualisation 40, tel qu'un écran d'affichage, pour afficher des vues relatives au contenu de la base de données 28 et au traitement effectué par l'unité de traitement d'informations 30. 15 Dans l'exemple de la figure 1, le module de conversion 12, le module de calcul 14, le module de sélection 16 et le module de pondération 18, ainsi qu'en complément facultatif le module d'acquisition 20, le module de mise à jour 22 et le module de regroupement 24, sont réalisés chacun sous forme d'un logiciel exécutable par le processeur 36. La mémoire 34 de l'unité de traitement d'informations 30 est alors apte à 20 stocker un logiciel de conversion configuré pour convertir chacun des messages de l'ensemble en un vecteur X respectif de valeurs numériques, un logiciel de calcul configuré pour calculer, pour chaque vecteur respectif X, une distance D par rapport à un vecteur de référence Yref, un logiciel de sélection configuré pour selectionner au moins un message à partir des distances calculées et un logiciel de pondération configuré pour 25 pondérer les distances calculées D en fonction d'un groupe prédéfini de critère(s), le logiciel de sélection étant alors configuré pour sélectionner un ou des messages à partir des distances pondérées D. En complément facultatif, la mémoire 34 de l'unité de traitement d'infomations 30 est également apte à stocker un logiciel d'acquisition configuré pour acquérir au moins une réaction de l'utilisateur suite à la sélection d'au 30 moins un message par le logiciel de sélection et un logiciel de mise à jour configuré pour effectuer une mise à jour en fonction de la ou des réactions acquises par le logiciel d'acquisition, notamment pour mettre à jour le groupe de critère(s) utilisé pour la pondération des distances calculées, ainsi qu'en complément facultatif un logiciel de regroupement configuré pour regrouper les messages de l'ensemble par classe de 35 message(s), le logicel de calcul, le logiciel de pondération et le logiciel de sélection étant alors configurés pour effectuer classe par classe respectivement le calcul de la distance 7 de chaque vecteur respectif X par rapport au vecteur de référence Yref , la pondération de chaque distance calculée et la sélection d'au moins un message à partir des distances pondérées D. Le processeur 36 de l'unité de traitement d'informations 30 est alors apte à executer le logiciel de conversion, le logiciel de calcul, le logiciel de sélection et le 5 logiciel de pondération, ainsi qu'en complément facultatif le logiciel d'acquisition, le logicel de mise à jour et le logiciel de regroupement. En variante non représentée, le module de conversion 12, le module de calcul 14, le module de sélection 16 et le module de pondération 18, ainsi qu'en complément facultatif le module d'acquisition 20, le module de mise à jour 22 et le module de 10 regroupement 24, sont réalisés chacun sous forme d'un composant logique programmable, tel qu'un FPGA (de l'anglais Field Programmable Gate Array), ou encore sous forme d'un circuit intégré dédié, tel qu'un ASIC (de l'anglais Application Specific Integrated Circuit). Le module de conversion 12 est configuré pour convertir chacun des messages de 15 l'ensemble en un vecteur X respectif de valeurs numériques. Selon une première variante de réalisation, chaque composant du vecteur X correspond à un mot d'un dictionnaire, défini préalablement, et le module de conversion 12 est configuré pour déterminer la valeur de chaque composante du vecteur X en fonction d'un nombre d'occurrences dans le message respectif du mot associé à ladite 20 composante. Selon cette première variante de réalisation, le module de conversion 12 est par exemple configuré pour mettre en oeuvre un algorithme de codage fréquentiel pondéré, également appelé TF-IDF (de l'anglais Term Frequency - Inverse Document Frequency), suivant lequel la valeur de la composante est égale à une fréquence d'apparition du mot 25 dans le message, pondérée par un facteur inversement proportionnel au nombre de message(s) dans le(s)quel(s) le mot apparait. Selon cette première variante de réalisation, la valeur de chaque composante du vecteur X vérifie alors par exemple l'équation suivante : Vo = TF_IDF(i,j)=TF_IDF (message, mot) =TF (message, mot) *1°g(oF(not,corpus)) (1) 30 où i est un indice entier représentant le message dans le corpus et compris entre 1 et N, N représente le nombre de message(s) du corpus, le corpus étant l'ensemble de messages sur lequel la sélection est effectuée, j est un indice entier représentant le mot du dictionnaire, 35 TF (message,mot) est un nombre entier positif ou nul représentant le nombre d'occurrence(s) du mot dans le message, et 8 DF(mot, corpus) est un nombre entier représentant le nombre de message(s) du corpus contenant au moins une occurrence de ce mot, DF(mot,corpus) étant un entier strictement positif, un mot étant inclus dans le dictionnaire seulement s'il est présent au moins une fois dans le corpus. 5 En complément facultatif de cette première variante de réalisation pour la conversion de chaque message en un vecteur X respectif, le module de conversion 12 est configuré pour mettre en oeuvre en outre un algorithme d'analyse en composantes principales, également noté PCA (de l'anglais Principal Component Analysis), sur les vecteurs X ainsi obtenus. La mise en oeuvre de cet algorithme PCA permet alors de 10 calculer des coefficients d'analyse en composantes principales relatifs à ces vecteurs X, qui constituent des « regroupements » de leurs coefficients initiaux ou mots fortement corrélés. Selon une deuxième variante de réalisation, chaque composante du vecteur X correspond à un thème, qui est une distribution de probabilités sur tous les mots d'un 15 dictionnaire, préalablement défini, et le module de conversion 12 est alors configuré pour déterminer la valeur de chaque composante du vecteur X en fonction de la proportion de mots dans le message respectif, affectés au thème associé à ladite composante. Par thème, on entend alors une distribution de probabilités sur tous les mots du dictionnaire, les mots maximisant cette probabilité se rapportant généralement à un sujet 20 donné, ou une thématique donnée, telle que l'informatique, le sport, etc. Autrement dit, selon cette deuxième variante de réalisation pour la conversion de chaque message en un vecteur X de valeurs numériques, les composantes du vecteur X correspondent au thème, et les valeurs de ces composantes sont les pourcentages d'appartenance de chaque message à chacun de ces thèmes. 25 Selon cette deuxième variante de réalisation, le module de conversion 12 est alors configuré pour mettre en oeuvre par exemple un algorithme de représentation et de regroupement de messages, suivant lequel la valeur de chaque composante du vecteur X dépend de la proportion de mots du message auquel le thème correspondant à ladite composante est affecté. L'algorithme de représentation et de regroupement mis en oeuvre 30 par le module de conversion 12 est par exemple l'algorithme d'allocation de Dirichlet latente, également appelée LDA (de l'anglais Latent Dirichlet Allocation). Pour l'affection de thèmes au mot, le module de conversion 12 est par exemple configuré pour mettre en oeuvre un algorithme connu sous le nom de « Collapsed Gibbs Sampler », faisant partie de méthodes d'échantillonnage de Gibbs, et qui effectue une 35 série d'ensembles d'affectations aléatoires d'un thème à chaque mot dans chaque message. L'affectation d'un thème à un mot dans un message est par exemple tirée 9 aléatoirement selon une distribution de probabilités conditionnelles aux thèmes affectés à tous les autres mots dans tous les autres messages. Cette distribution sur les thèmes est alors le résultat de la multiplication de deux termes, à savoir un premier terme dépendant des thèmes affectés à tous les autres mots 5 du message, ou de la prépondérance des thèmes dans le message, et un deuxième terme dépendant des thèmes affectés à ce mot particulier dans tous les messages. Selon cette deuxième variante de réalisation, l'ensemble d'affectations choisies est alors celui qui maximise un critère connu, par exemple le critère de probabilité jointe du modèle. 10 Par la suite et pour cette deuxième variante de réalisation, un thème est alors représenté par une distribution de probabilités sur tous les mots de tous les messages, ou du dictionnaire, cette distribution étant dépendante du nombre d'affectations de chaque mot à ce thème dans tous les messages. Un message est alors représenté par ses proportions d'appartenance à chaque thème, dépendantes du nombre de mots affectés à 15 ce thème dans ce message. L'homme du métier comprendra alors que selon cette deuxième variante de réalisation, le module de conversion 12 est configuré pour effectuer également un regroupement des messages par thème, et le dispositif électronique de sélection 10 ne comporte alors pas de module de regroupement 24 selon cette deuxième variante de 20 réalisation. Le regroupement des messages par classe découle de cette conversion selon la deuxième variante de réalisation, et par exemple de l'algorithme d'allocation de Dirichlet latente (LDA). Le module de calcul 14 est configuré pour calculer la distance D de chaque vecteur X respectif par rapport au vecteur de référence Yref . Le vecteur de référence Yref 25 est de préférence associé à l'utilisateur pour qui est effectuée la sélection de message(s). Le vecteur de référence Yref résulte par exemple de la conversion d'au moins un message de référence, cette conversion étant typiquement effectuée via le module de conversion 12. En variante, le vecteur de référence Yref est un vecteur prédéfini, obtenu par exemple à partir de sélection(s) de message(s) effectuée(s) précédemment pour cet utilisateur. 30 La distance D calculée par le module de calcul 14 est par exemple une distance euclidienne. La distance D calculée par le module de calcul 14 est de préférence la distance cosinus, qui a l'avantage d'être normalisée, c'est-à-dire de ne pas dépendre de la longueur des messages, très variable d'un message à l'autre, le nombre de mots inclus dans chaque message étant très variable d'un message à l'autre. 35 Le module de calcul 14 est alors par exemple configuré pour calculer la distance D selon l'équation suivante : 10 D = distance V, Yref) = 1 - COSV, Yref = 1 (2) 11,(11.11Yrefll où X désigne le vecteur obtenu à l'issue de la conversion, Yref désigne un vecteur de référence, CO*, Yref) représente le cosinus de l'angle entre les vecteurs X et Yref, 5 représente le produit scalaire entre les vecteurs X et Yref, et 11)(11, I Iliref 11 représentent les modules respectifs des vecteurs X et Yref. Le module de sélection 16 est configuré pour sélectionner au moins un message à partir des distances calculées par le module de calcul 14, puis pondérées par le module de pondération 18. 10 Le module de sélection 16 est par exemple configuré pour déterminer un groupe de distance(s) pondérée(s) minimale(s), et le ou les messages sélectionnés par le module de sélection 16 sont alors ceux qui correspondent au(x) vecteur(s) associé(s) à la ou aux distances du groupe déterminé de distance(s) pondérée(s) minimale(s). Autrement dit, le module de sélection 16 est configuré pour sélectionner le ou les messages pour lesquels 15 la distance pondérée est faible et fait partie d'un ensemble de distance(s) pondérée(s) minimale(s). Pour la détermination du groupe de distance(s) pondérée(s) minimale(s), le module de sélection 16 est par exemple configuré pour déterminer la ou les distances qui sont inférieures à un seuil minimal de distance prédéfini. En variante ou en complément, 20 pour la détermination de ce groupe de distance(s) pondérée(s) minimale(s), le module de sélection 16 est configuré pour déterminer les P distances les plus petites, parmi l'ensemble des distances calculées par le module de calcul 14, puis pondérées par le module de pondération 18, P étant un nombre entier supérieur ou égal à 1, de valeur prédéfinie. 25 Le module de pondération 18 est configuré pour pondérer les distances préalablement calculées en fonction d'un groupe prédéfini de critère(s), c'est-à-dire pour calculer des distances pondérées Dw à partir des distances D calculées par le module de calcul 14 et du groupe prédéfini de critère(s). Comme indiqué précédemment, le module de sélection 16 est alors configuré pour effectuer la sélection du ou des messages à partir 30 des distances pondérées Dw issues du module de pondération 18. Le groupe prédéfini de critère(s) est de préférence associé à l'utilisateur pour qui est effectuée la sélection de message(s). Le groupe prédéfini de critère(s) comprend par exemple un critère de la langue, tel que la langue du message respectif et la langue de l'utilisateur pour qui est effectuée la sélection de message(s) ; un critère de niveau de 35 compétence de l'utilisateur dans un domaine, tel qu'un domaine technique ; un critère 11 d'appartenance de l'utilisateur à une entité, telle qu'une filiale d'une société ; un critère de position géographique de l'utilisateur ; un critère d'ancienneté de l'utilisateur ; ou encore un critère de réaction antérieure de l'utilisateur vis-à-vis d'un autre document, telle qu'une réaction vis à vis d'un autre document d'un même thème. 5 Pour le calcul des distances pondérées Dw, le module de pondération 18 est par exemple configuré pour multiplier chacune des distances D, calculées par le module de calcul 14, par au moins un poids respectif w,, chaque poids w, étant déterminé en fonction du groupe prédéfini des critère(s), et au moins l'un des poids w, ayant une valeur différente de 1. 10 Le module de pondération 18 est par exemple configuré pour augmenter la valeur des distances calculées dans les cas où le message ne correspond pas à l'utilisateur, par exemple lorsque le message est dans une langue que ne parle pas l'utilisateur. Le module de pondération 18 est par exemple configuré pour calculer, pour chaque critère du groupe prédéfini de critère(s), un poids w, pour chaque utilisateur et 15 pour chaque message. A titre d'exemple, pour le calcul du poids w, selon le critère de la langue, le module de pondération 18 commence par déterminer une matrice telle que celle contenue dans le Tableau 1, où les colonnes correspondent aux différentes langues possibles, et les lignes correspondent aux différents utilisateurs, ainsi qu'aux différents messages. Anglais Français Espagnol Utilisateur 1 4 5 2 Utilisateur 2 3 2 5 Message A 4 5 Message B 5 20 Tableau 1 Les niveaux et prérequis sont par exemple évalués sur une échelle prédéfinie de 1 à 5, les cases vides correspondent à l'absence de niveaux / prérequis. Le module de pondération 18 est alors par exemple configuré pour calculer la matrice résultante de similarité S, telle que celle contenue dans le Tableau 2 pour 25 l'exemple correspondant au Tableau 1, déterminée à l'aide de l'équation indiquée ci- après : A A AT S= = A (3) où S désigne la matrice résultante de similarité, A désigne la matrice précédente pour laquelle les cellules vides sont remplies par 30 des 0, 12 hAll est la racine carrée de la plus grande valeur propre de ATA. Utilisateur 1 Utilisateur 2 Message A Message B Utilisateur 1 1 0,77 0,95 0,30 Utilisateur 2 0,77 1 0,56 0,81 Message A 0,95 0,56 1 0 Message B 0,30 0,81 0 1 Tableau 2 La matrice de similarité S ainsi obtenue contient alors à des valeurs de similarité 5 qui sont comprises entre 0 et 1. Pour calculer le poids w, à appliquer, pour chaque utilisateur et pour chaque message, aux distances D calculées par le module de calcul 14, c'est-à-dire le poids w, à multiplier avec la distance calculée D correspondante, le module de pondération applique par exemple l'équation suivante : 10 w = 2 - s (4) où s est la similarité et w représente le poids respectif. Ceci permet alors d'obtenir la matrice suivante (Tableau 3) dans l'exemple précédent du critère de la langue : Utilisateur 1 Utilisateur 2 Message A Message B Utilisateur 1 1 1,23 1,05 1,70 Utilisateur 2 1,23 1 1,44 1,19 Message A 1,05 1,44 1 2 Message B 1,70 1,19 2 1 15 Tableau 3 En variante, le module de pondération 18 est configuré pour déterminer chaque poids w en appliquant l'équation suivante à partir de la similarité précédemment déterminée : w = a - (a - 1) - s (5) 20 où s est la similarité et a est un coefficient supérieur ou égal à 2. L'homme du métier notera que la valeur du coefficient a est d'autant plus élevée que la pondération est accentuée. Dans l'exemple précédent du critère de la langue en prenant le coefficient a égal à 25 10, le module de pondération 18 obtient alors la matrice suivante de poids (Tableau 4) : 13 Utilisateur 1 Utilisateur 2 Message A Message B Utilisateur 1 1 3,03 1,41 7,32 Utilisateur 2 3,03 1 4,98 2,70 Message A 1,41 4,98 1 10 Message B 7,32 2,70 10 1 Tableau 4 L'homme du métier comprendra alors que le module de pondération 18 est au final configuré pour calculer la distance pondérée Dw selon l'équation suivante : Dw = D -jeiwi (6) 5 Où D représente la distance initialement calculée par le module de calcul 14, et w, représente le poids respectif pour l'utilisateur concerné, et pour chaque critère d'indice i du groupe prédéfini de critère(s), i représentant un indice du critère associé, compris entre 1 et Q, Q étant un nombre entier supérieur ou égal à 1, représentant le nombre de 10 critère(s) dans le groupe prédéfini de critère(s). Le module d'acquisition 20 est configuré pour acquérir au moins une réaction de l'utilisateur suite à une précédente sélection de message(s), effectuée par le module de sélection 16. Le module de mise à jour 22 est alors configuré pour effectuer une mise à jour en 15 fonction de la ou des réactions acquises par le modules d'acquisition 20, notamment pour mettre à jour le groupe prédéfini de critère(s) utilisé pour la pondération des distances calculées. Pour la mise à jour du groupe prédéfini de critère(s), la réaction acquise forme par exemple un nouveau critère, et le module de pondération 18 est alors configuré pour 20 calculer un poids w, supplémentaire correspondant à ce nouveau critère, suite à la mise à jour effectuée par le module de mise à jour 22. En variante, le module de mise à jour 22 est configuré pour mettre à jour l'ensemble de message parmi lequel le module de sélection 16 est configuré pour effectuer la sélection de message(s), cette mise à jour consistant à créer un nouveau 25 message pour chaque réaction de l'utilisateur acquise par le module d'acquisition 20, chaque nouveau message de réaction étant créé par le module de mise à jour 22. Le module de regroupement 24 est configuré pour regrouper les messages de l'ensemble de messages sur lequel la sélection est effectuée, par classe de message(s), le nombre de ces classes de message(s) étant prédéfini, ce regroupement étant effectué 30 après la conversion de chaque message en un vecteur X respectif. Autrement dit, le 14 module de regroupement 24 permet de regrouper ensemble des messages dont les composantes des vecteurs obtenus présentent des ressemblances. Plus précisément, le module de regroupement 24 est configuré pour regrouper les vecteurs X résultant de la conversion des messages de l'ensemble de messages, lesdits 5 vecteurs étant regroupés par classe. Le module de calcul 14 est alors configuré pour calculer par exemple deux distances : - pour chaque centroïde ou centre de gravité de chaque classe, la distance par rapport à un vecteur de référence Yref ; et - pour chaque vecteur X de chaque classe, la distance par rapport à ce même 10 vecteur de référence Yref. Chacune des deux distances précitées est par exemple calculée à l'aide de l'équation (2) précédente, en remplaçant le cas échéant X par un vecteur caractérisant le centroïde, ou centre de gravité, lorsque la distance calculée est celle du centroïde, ou centre de gravité, par rapport au vecteur de référence Yref. 15 Le module de pondération 18 est alors configuré pour appliquer une pondération aux distances calculées en fonction de chaque classe, c'est-à-dire en fonction des regroupements effectués par le module de regroupement 24. Le module de pondération 18 est par exemple configuré, d'une part, pour appliquer une pondération aux distances entre le vecteur de référence Yref et chacun des centres de gravité de classe de vecteur(s) 20 respective, puis d'autre part, pour appliquer une pondération additionnelle à l'intérieur de chaque classe de vecteur(s) entre le vecteur de référence Yref et chaque vecteur regroupé dans ladite classe. Le module de sélection 16 est alors configuré pour effectuer une sélection par classe. Pour le regroupement de vecteurs par classes, correspondant alors à des classes 25 de message(s), le module de regroupement 24 est configuré pour mettre en oeuvre un algorithme de regroupement (de l'anglais Clustering). L'algorithme de regroupement est, par exemple, un algorithme de regroupement basé sur la connectivité (de l'anglais Connectivity-based Clustering), tel qu'un algorithme de regroupement hiérarchique (de l'anglais Hierarchical Clustering), ou un algorithme de regroupement basé sur des 30 centroïdes (de l'anglais Centroid-based Clustering), tel qu'un algorithme des k-moyennes (de l'anglais K-means Clustering) ou des k-médoïdes, ou un algorithme de regroupement basé sur une distribution (de l'anglais Distribution-based Clustering), ou encore un algorithme de regroupement basé sur la densité (de l'anglais Density-based Clustering), tel que l'algorithme DBSCAN (de l'anglais Density-Based Spatial Clustering of 35 Applications with Noise) ou l'algorithme OPTICS (de l'anglais Ordering Points To Identity the Clustering Structures). 15 L'homme du métier comprendra que le nombre de classes est prédéfini, et que les classes sont inférées par l'algorithme de regroupement, c'est-à-dire obtenues à l'issue de la mise en oeuvre dudit algorithme de regroupement. Le module de regroupement 24 est alors configuré pour effectuer ce regroupement 5 par classe postérieurement à la conversion effectuée par le module de conversion 12. Le fonctionnement du dispositif de sélection 10 selon l'invention va désormais être expliqué à l'aide de la figure 2 représentant un organigramme du procédé de sélection selon l'invention. Lors de l'étape initiale 100, le dispositif de sélection 10 convertit, via son module 10 de conversion 12, chaque message en un vecteur X respectif de valeurs numériques. Selon la première variante de réalisation, lors de l'étape de conversion 100, chaque composante du vecteur X correspond à un mot d'un dictionnaire préalablement défini, la valeur de chaque composante du vecteur X dépendant alors du nombre d'occurrences dans le message respectif du mot associé à la dite composante. 15 Selon cette première variante de réalisation, l'étape de conversion comporte alors de préférence la mise en oeuvre d'un algorithme de codage fréquentiel pondéré, tel que l'algorithme TF-IDF, suivant lequel la valeur de la composante est égale à une fréquence d'apparition des mots dans le message, pondérée par un vecteur inversement proportionnel au nombre de message(s) dans lesquels le mot apparaît. En complément 20 facultatif, les composantes corrélées sont regroupées via l'algorithme PCA, ce qui permet de préparer les groupes de messages à un regroupement éventuel par le module de regroupement 24 lors de l'étape suivante 110 optionnelle. Selon la deuxième variante de réalisation, lors de l'étape de conversion 100, chaque composante du vecteur X correspond à un thème, défini préalablement, et la 25 valeur de chaque composante du vecteur X dépend de la proportion de mots dans le message respectif, affecté au thème associé à la dite composante. Selon cette deuxième variante de réalisation, l'étape de conversion 100 comporte alors de préférence la mise en oeuvre de l'algorithme LDA. Lors d'une étape suivante 110 optionnelle, les messages de l'ensemble de 30 messages sur lequel la sélection est à effectuer, et plus précisément les vecteurs X obtenus à l'issue de l'étape de conversion 100, sont regroupés par le module de regroupement 24 en classes, correspondant à des classes de message(s). L'homme du métier observera que lorsque la conversion effectuée lors de l'étape 100 est une conversion selon la deuxième variante de réalisation, alors l'étape de 35 regroupement 110 est intégrée à l'étape de conversion 100 et est mise en oeuvre par le module de conversion 12. 16 Le dispositif de sélection 10 calcule ensuite, via son module de calcul 14 et lors de l'étape suivante 120, pour chaque vecteur X, la distance D par rapport au vecteur de référence Yref , cette distance D étant par exemple calculée à l'aide de l'équation (2) précédente. 5 En complément, lorsque les messages de l'ensemble de messages ont fait l'objet d'un regroupement lors de l'étape 110, le module de calcul 14 calcule d'une part une première distance entre le vecteur de référence Yref associé à l'utilisateur pour lequel la sélection de message est effectuée et chaque centre de gravité, ou encore centroïde, associé à une classe de messages, puis d'autre part une deuxième distance entre le 10 vecteur de référence Yref associé à l'utilisateur pour lequel la sélection de messages est effectuée et chaque vecteur X dans chaque classe de message(s). Le dispositif de sélection 10 pondère ensuite, lors de l'étape 130 et via son module de pondération 18, chaque distance calculée en fonction du groupe prédéfini de critère(s). La pondération est par exemple effectuée en multipliant, selon l'équation (6), 15 chacune des distances D calculée lors de l'étape 120 précédente par le ou les poids w, déterminés pour le groupe prédéfini de critères, au moins l'un des poids w, ayant une valeur strictement différente de 1. En complément, lorsque l'ensemble des messages objet de la sélection a été regroupé par classes de messages lors de l'étape 110 optionnelle, le module de 20 pondération 18 pondère, d'une part, chaque distance entre l'utilisateur et le centre de gravité de la classe correspondante, et d'autre part, également au sein de chaque classe, la distance entre le vecteur de référence Yref et chaque message inclus dans la classe. Lors de l'étape suivante 140, le dispositif de sélection 10 sélectionne alors, via son module de sélection 16, un ou plusieurs messages à partir des distances préalablement 25 calculées lors de l'étape 120, puis pondérées lors de l'étape 130. L'étape de sélection 140 comporte par exemple la détermination d'un groupe de distance(s) pondérée(s) minimale(s), le ou les messages sélectionnés correspondant alors au(x) vecteur(s) associé(s) à la ou aux distances du groupe ainsi déterminée(s). La détermination de ce groupe de distance(s) pondérée(s) minimale(s) est par exemple 30 effectuée par seuillage, ou encore en conservant le nombre prédéfini P de distances les plus faibles parmi la pluralité de distances calculées. En complément, lorsque les messages de l'ensemble de messages ont fait l'objet d'un regroupement lors de l'étape 110 précédente, un seuil de sélection est, lors de l'étape de sélection 140, défini par exemple pour chaque classe. Lors de l'étape de 35 sélection 140, chaque seuil de cette sélection dépend alors de la distance du vecteur de référence Yref au centroïde, ou centre de gravité, de la classe. Pour chaque classe, les 17 messages sélectionnés sont alors ceux correspondants au P, distances les plus faibles parmi les distances calculées pour ladite classe, P, étant par exemple d'autant faible que la distance entre le vecteur de référence Yref et le centroïde de la classe est élevé, i représentant un indice entier positif associé la classe. Autrement dit, pour la classe la plus 5 proche, les P1 plus proches voisins du vecteur de référence Yref sont sélectionnés, pour la deuxième classe le plus proche, les P2 plus proches voisins du vecteur de référence Yref sont sélectionnés avec P2 G P1, et ainsi de suite... En complément facultatif, le dispositif de sélection 10 acquiert lors d'une étape optionnelle 150 et via son module d'acquisition 20 une ou plusieurs réactions de 10 l'utilisateur, puis effectue lors de l'étape suivante 160 optionnelle la mise à jour en fonction des réactions acquises lors de l'étape 150. Cette mise à jour est effectuée par le module de mise à jour 22, et consiste par exemple en la mise à jour du groupe prédéfini de critère(s) en fonction de la ou des réactions acquises par le module d'acquisition 20. Dans ce cas, chaque réaction de l'utilisateur forme par exemple un nouveau critère dans le 15 groupe prédéfini de critères. En variante ou en complément, chaque réaction de l'utilisateur acquise lors de l'étape 150 est, lors de l'étape 160, transformée en une information additionnelle concernant l'utilisateur et le message auquel il a réagi. Cette mise à jour, consiste à ajouter de nouveaux messages dans le corpus de messages, ces nouveaux messages 20 correspondant aux réactions de l'utilisateur, ceci afin d'améliorer la recommandation effectuée par le dispositif de sélection 10. L'homme du métier observera que ces nouveaux messages, résultant de réaction(s) de l'utilisateur, ne sont pas inclus dans l'ensemble de messages sur lequel la sélection selon l'invention est effectuée. Autrement dit, ces nouveaux messages forment des messages transverses, ou encore des 25 messages auxiliaires, servant à améliorer la recommandation offerte par le dispositif de sélection 10 selon l'invention. Lorsque l'ensemble de messages a fait l'objet d'un regroupement initial des messages par classe ou par thème, le module de sélection 16 effectue de préférence deux sélections lors de l'étape de sélection 140, à savoir d'une part une première 30 sélection de la ou des classes, ou encore du ou des thèmes, les plus proches de l'utilisateur, et d'autre part au sein de chaque classe ou thème, d'un ou plusieurs messages de la dite classe, ou dudit thème. Le dispositif de sélection 10 selon l'invention, et le procédé de sélection associé, permettent alors de sélectionner plus efficacement un ou plusieurs messages parmi 35 l'ensemble de messages, la pondération des distances calculées permettant notamment de prendre en compte le ou les critères du groupe prédéfini de critère(s) lors de la 18 sélection ultérieure de messages, et de proposer alors une sélection de messages correspondant davantage à l'utilisateur, et donc plus pertinente et plus variée pour l'utilisateur. Lorsque les messages sont en outre regroupés par classes, ou par thèmes, la 5 sélection de messages est encore améliorée pour l'utilisateur, ce regroupement par classes, ou par thèmes, permettant d'offrir à l'utilisateur une sélection encore plus pertinente, notamment une sélection d'un ou plusieurs messages au sein de chaque classe ou thème. Lorsqu'une ou plusieurs réactions de l'utilisateur sont en outre acquises par le 10 module d'acquisition 20 pour effectuer ensuite une mise à jour, telle qu'une mise à jour du groupe prédéfini de critère(s) par le module de mise à jour 22, la recommandation proposée par le dispositif de sélection 10 selon l'invention, c'est-à-dire la sélection de message(s) effectuée par le dispositif de sélection 10, est là encore plus pertinente, puisqu'elle prend en compte la ou les réactions de l'utilisateur par rapport à une sélection 15 antérieure de message(s). La recommandation offerte par le dispositif de sélection 10 selon l'invention est alors partiellement supervisée. On conçoit ainsi que le procédé de sélection selon l'invention, et le dispositif électronique de sélection 10 associé, permettent de sélectionner plus efficacement un ou plusieurs messages parmi l'ensemble REVENDICATIONS1. Procédé de sélection d'au moins un message parmi un ensemble de plusieurs messages, chaque message comportant un ou plusieurs mots, le procédé étant mis en oeuvre par un dispositif électronique de sélection (10) et comprenant les étapes suivantes : - conversion (100) de chacun des messages de l'ensemble en un vecteur (X) respectif de valeurs numériques ; - calcul (120), pour chaque vecteur (X) respectif, d'une distance (D) par rapport à un vecteur de référence (Yref) ; et - sélection (140) d'au moins un message à partir des distances calculées ; caractérisé en ce qu'il comprend en outre, préalablement à l'étape de sélection (140), une étape (130) de pondération des distances calculées (D) en fonction d'un groupe prédéfini de critère(s), l'étape de sélection (140) étant alors effectuée à partir des distances pondérées (Dw). 2. Procédé selon la revendication 1, dans lequel le vecteur de référence (Yref) et le groupe de critère(s) sont associés à un utilisateur pour qui est effectuée la sélection (140) d'au moins un message. 3. Procédé selon la revendication 2, dans lequel le procédé comprend en outre une étape (150) d'acquisition d'au moins une réaction de l'utilisateur suite à la sélection (140) d'au moins un message, et une étape (160) de mise à jour du groupe de critère(s) en fonction de la ou des réactions acquises. 4. Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comprend en outre, suite à l'étape de conversion (100), une étape (110) de regroupement des messages de l'ensemble par classes de message(s), les étapes de calcul (120), de pondération (130) et de sélection (140) étant alors en outre effectuées classe par classe. 5. Procédé selon l'une quelconque des revendications précédentes, dans lequel lors de l'étape de conversion (100), chaque composante du vecteur (X) correspond à un mot d'un dictionnaire, défini préalablement à l'étape de conversion (100), la valeur de 20 chaque composante dépendant du nombre d'occurrence(s) dans le message respectif du mot associé à ladite composante ; l'étape de conversion (100) comportant de préférence la mise en oeuvre d'un algorithme de codage fréquentiel pondéré (TF-IDF), suivant lequel la valeur de la 5 composante est égale à une fréquence d'apparition du mot dans le message, pondérée par un facteur inversement proportionnel au nombre de message(s) dans le(s)quel(s) le mot apparait ; la valeur de la composante vérifiant de préférence encore l'équation suivante : 171,1 =TF_IDF(i,j)=TF_IDF (message, mot) = TF (message,mot)*lo g(DP (mot,corpus)) où i est un indice entier représentant le message dans le corpus et compris entre 1 10 et N, N représente le nombre de message(s) du corpus, le corpus étant l'ensemble de messages, j est un indice entier représentant le mot du dictionnaire, TF (message,mot) est un nombre entier positif ou nul représentant le nombre 15 d'occurrence(s) du mot dans le message, et DF(mot,corpus) est un nombre entier représentant le nombre de message(s) du corpus contenant au moins une occurrence de ce mot, DF(mot, corpus) étant un entier strictement positif, un mot étant inclus dans le dictionnaire seulement s'il est présent au moins une fois dans le corpus. 20 6. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel lors de l'étape de conversion (100), chaque composante du vecteur (X) correspond à un thème, qui est une distribution de probabilités sur tous les mots d'un dictionnaire, défini préalablement à l'étape de conversion (100), la valeur de chaque composante dépendant 25 de la proportion de mots dans le message respectif, affecté au thème associé à ladite composante. 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel lors de l'étape de calcul (120), la distance (D) vérifie l'équation suivante : D = distance(X, Yref) = 1 - COS(X, Yref) = 1 11X11.111irefll 30 où X désigne le vecteur obtenu lors de l'étape de conversion, Yref désigne le vecteur de référence, cos(X, Yref) représente le cosinus de l'angle entre les vecteurs X et Yref, 21 représente le produit scalaire entre les vecteurs X et Yref, et 11)(11, I I représentent les modules respectifs des vecteurs X et Yref. 8. Procédé selon l'une quelconque des revendications précédentes, dans lequel 5 l'étape de pondération (130) comporte la multiplication de chacune des distances calculées (D) par au moins un poids respectif (w,), chaque poids (w,) étant déterminé en fonction du groupe prédéfini de critère(s), au moins l'un des poids (w,) ayant une valeur différente de 1, le groupe prédéfini de critère(s) incluant de préférence la langue du message 10 respectif et la langue d'un utilisateur pour qui est effectuée la sélection (140) d'au moins un message. 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'étape de sélection (140) comporte la détermination d'un groupe de distance(s) 15 pondérée(s) minimale(s), le ou les messages sélectionnés correspondant au(x) vecteur(s) associé(s) à la ou aux distances du groupe déterminé. 10. Programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre un procédé selon l'une 20 quelconque des revendications précédentes. 11. Dispositif électronique (10) de sélection d'au moins un message parmi un ensemble de plusieurs messages, chaque message comportant un ou plusieurs mots, le dispositif électronique de sélection (10) comprenant : 25 - un module de conversion (12) configuré pour convertir chacun des messages de l'ensemble en un vecteur (X) respectif de valeurs numériques ; - un module de calcul (14) configuré pour calculer, pour chaque vecteur (X) respectif, une distance (D) par rapport à un vecteur de référence (Yref) ; et - un module de sélection (16) configuré pour sélectionner au moins un message à 30 partir des distances calculées ; caractérisé en ce qu'il comprend en outre un module de pondération (18) configuré pour pondérer les distances calculées (D) en fonction d'un groupe prédéfini de critère(s), le module de sélection (16) étant alors configuré pour sélectionner le ou les 35 messages à partir des distances pondérées (Dw).