Mettre en place une veille multilingue à l'aide de Wikidata
|
|
Le besoin
Mettre en place une veille scientifique multilingue
Je suis veilleur dans un groupe pharmaceutique. Je parle français, anglais et espagnol.
On me demande, dans le cadre d’une étude amont concernant des axes thérapeutiques potentiels, d’étudier pour la fin de la semaine, les principaux symptômes qui sont mentionnés dans la presse européenne non spécialisée.
Le groupe dispose pour cela d’un abonnement à une grande agence de presse européenne qui fournit des documents en français, anglais, allemand, espagnol et portugais.
Les documents sont identifiés par langue et sont regroupés par thèmes.
J’ai pu filtrer ainsi un grand nombre de documents qui étaient classés sous une rubrique documents scientifiques. (les autres thèmes me paraissaient éloignés de mon sujet : religion, société, justice, etc.) Néanmoins, j’ai obtenu ainsi environ 15 000 dépêches. Que puis-je faire à ce stade :
- la notion de symptôme est large et difficile à cerner par des mots clés qui sont nombreux et varient d’une langue à l’autre,
- je ne parle ni allemand ni portugais.
15 000 dépêches à raison d’une minute en moyenne par dépêche cela représente : 33 jours de lecture continue à raison de 7h30 par jour.
Que puis-je faire ?
La solution
Un outil de veille multilingue s'appuyant sur Wikidata
Pour analyser ces 15 000 dépêches ciblées sur le domaine de la santé et déjà triées par langue, deux problèmes se posent :
- la barrière de la langue : explorer un corpus multilingue sans parler toutes les langues qui y sont présentes,
- le haut niveau de complexité linguistique : extraire la notion de "symptôme", c'est-à-dire un concept élevé, bien plus complexe à détecter que des entités comme une ville, une organisation ou encore un nom propre.
A cela s'ajoute aussi la grande quantité de documents à analyser, ce qui est très chronophage, il faut donc mettre en place une solution qui répond à tous ces besoins à la fois.
Wikidata, une base de connaissances très développée
Wikidata est une base de connaissances libre de droits et participative créée en 2012. Elle regroupe les millions de données issues des différents projets de la fondation Wikimédia, à savoir l'encyclopédie multilingue Wikipédia, mais aussi Wiktionary, Wikisource, Wikibooks, Wikinews, etc. Ces données sont librement modifiables et régulièrement mises à jour, ce qui permet d'avoir du contenu toujours actualisé en fonction des évolutions dans le monde.
Par exemple, la pandémie de Covid-19 a fait émerger de nouveaux mots tels que "déconfinement", "vaccinodrome" ou encore "téléconsultation", ainsi que de nouvelles expressions comme les "gestes barrières" ou la "distanciation sociale". Grâce au Wiktionnaire qui répertorie leurs définitions et à Wikipédia qui permet de voir les mots en contexte dans des articles, la base de connaissances Wikidata est donc constamment enrichie et actualisée et elle prend en compte ce nouveau vocabulaire. De même, les mises à jour régulières permettent d'indiquer la date de décès d'une personnalité connue dont on vient juste d'annoncer la mort ou encore d'ajouter de futurs grands événements comme les Jeux Olympiques d'été de 2024 dont on connait l'existence mais qui n'ont pas encore eu lieu.
L'avantage est que les articles sont bien rédigés, la qualité linguistique est bonne car ils ne contiennent pas de fautes d'orthographe ou de syntaxe et le vocabulaire en est cohérent.
De plus, les sciences de la vie y sont bien développées, ce qui est très intéressant pour effectuer de la veille dans le domaine pharmaceutique.
Wikidata fonctionne comme un immense réseau d'articles constitué de métadonnées conceptuelles, c'est-à-dire que chaque article est constitué de données et de couples clé-valeur. Autrement dit, chaque concept est associé à un identifiant unique (qui sera le même dans tous les langues), ce qui permettra notamment de faire des liens vers d'autres articles. On parle ainsi de concepts "translingues", c'est-à-dire de concepts universels, identiques dans plusieurs langues.
Par exemple, comme on peut le voir ci-dessous, le concept de "symptom" est associé au code "Q169872" et toutes ses traductions, ses synonymes et les mots qui en sont dérivés sont rassemblés sous cette même étiquette. Cela signifie que si l'un de ces termes apparaît dans un article Wikipédia, il contiendra alors un lien renvoyant vers la page "symptom" (le nom de la page variera selon la langue sélectionnée par l'utilisateur mais le concept et l'identifiant, eux, resteront identiques).
L'ensemble de ces données forme une arborescence gigantesque, un ensemble de graphes sémantiquement structuré. L'ambition est de former un graphe de connaissances unique.
En exploitant cette base de connaissances, il est possibles sélectionner tout ou une partie seulement de cette arborescence. Pour ce cas d'usage, seules les connaissances en "sciences de la vie" sont utiles et c'est un domaine qui contient déjà à lui seul de nombreuses branches et subdivisions. Cela va permettre de désambiguïser les concepts en ne s'intéressant qu'à leur signification dans ce domaine précis.
Un extracteur d'entités directement relié à Wikidata
L'objectif est de construire un modèle d'apprentissage automatique supervisé capable de détecter et désambiguïser les entités de manière générique, c'est-à-dire issues de n'importe quel domaine et sans se limiter à un certain type d'entités (lieu, organisation, nom de personne...). La base de connaissances Wikidata rend possible tout cela puisqu'elle regroupe de nombreux domaines et met à disposition des métadonnées et des informations linguistiques très intéressantes à exploiter. Le corpus d'entrainement du modèle va donc regrouper non seulement le texte, mais aussi le résumé, une description détaillé et des métadonnées, ce qui va permettre in fine d'effectuer des recherches très pointues au sein des documents annotés en fonction de divers critères.
Au-delà de la détection de toute sorte d'entités, l'association du texte et des informations sémantiques qui y sont associées va permettre d'entrainer un modèle de désambiguïsation en s'appuyant sur les éléments translingues indiqués dans Wikidata. Autrement dit, il n’y aura pas de confusion possible entre la pellicule du photographe et celles qu’observera le dermatologue, ou encore entre les cellules de prison et les cellules du corps humain, malgré la similitude des termes employés. L’identification du contexte et du domaine va éliminer toute ambiguïté.
Ensuite il faut passer par une étape de normalisation : c'est ce qui va permettre de garantir que ce sont bien les termes génériques (plutôt que des synonymes ou des dérivés) qui sont privilégiés dans l'analyse des résultats.
Enfin, il faut relier les concepts issus du texte à un ensemble d'informations générales : par exemple, pour une personnalité connue, il peut s'agir d'une photo et de sa date et son lieu de naissance. Toutes les informations sont donc regroupées et interconnectées. Pour aller plus loin, il est possible de stocker non seulement les informations générales de Wikidata, mais aussi celles des nouvelles entités extraites du corpus, afin d'agrandir la base de connaissances.
Finalement, en construisant un modèle de ce type relié à Wikidata, tous les concepts présents dans le corpus des 15 000 dépêches scientifiques vont être automatiquement détectés, puis désambiguïsés, normalisés, et reliés à d'autres entités grâce aux nombreuses connexions faites avec toutes les informations déjà accumulées dans la base de connaissances. Les 15 000 textes vont donc être annotés très rapidement et d'une manière bien plus exhaustive qu'une simple annotation d'entités.
Plus encore, le corpus de dépêches est multilingue mais c'est aussi le cas de la base de connaissances Wikidata et, comme l'annotateur s'appuie sur les métadonnées (couples clé-valeur) et non sur des mots dépendants d'une langue, on peut donc annoter les concepts dans n'importe langue sans même avoir besoin de la parler. La diversité des langues n'est donc pas un obstacle à l'analyse de ces textes.
Exploiter les métadonnées pour détecter uniquement les symptômes
Une fois le processus terminé, les dépêches contiennent toutes énormément d'annotations. Or, dans ce cas précis, seules les informations liées aux symptômes sont pertinentes pour la veille scientifique. Il est donc nécessaire de restreindre la détection des entités afin de cibler uniquement les types de symptômes qui apparaissent dans les textes : il faut créer un sorte de moteur de recherche inclusif. Pour cela, on recherche le concept "symptôme" dans la base Wikidata et, grâce à son identifiant Wikidata, on va pouvoir indiquer au système d’extraction de données via un éditeur Json que l’on souhaite extraire uniquement les entités classées comme appartenant à la catégorie « symptôme ».
Par exemple, le terme « cough » ("toux", en français) est considéré comme un type de ("instance of") symptôme ("symptom") par Wikidata et pourra donc être annoté à chaque occurrence dans le corpus de textes.
Ainsi, les 15 000 documents du corpus multilingue sont annotés en fonction de ce critère et il suffit d'une heure pour obtenir une vision globale de tous les références à des symptômes, ce qui aurait pris plus d'un mois manuellement.
Le fait d'avoir intégré Wikidata à l'outil permet aussi de consulter l'article Wikipédia correspondant à chaque annotation en cliquant dessus afin de lire le mot en contexte.
L'étape finale : traduire
A la fin du processus, il est possible d'utiliser un traducteur pour comprendre les annotations des documents qui étaient rédigés dans une langue étrangère non maitrisée par l'utilisateur.
Il n'est pas nécessaire de traduire les textes avant cette dernière étape puisque, grâce aux métadonnées de Wikidata, la langue n'est plus une barrière pour annoter les entités dans différentes langues.
En effectuant les recherches directement dans la langue d'origine du texte, on évite ainsi une grosse perte de connaissances due au processus de traduction. Ce phénomène serait d'autant plus accentué avec des langues peu dotées, c'est-à-dire des langues disposant de peu de ressources linguistiques informatisées, pour lesquelles les systèmes de traduction donnent généralement des résultats peu fiables.
L'utilisation de Wikidata permet donc de pallier le problème d'inégalité de représentation des langues, bien connu dans le domaine du NLP, en offrant une alternative au traitement classique des corpus multilingues.
Points d'attention
Un modèle de NLP n'obtient jamais 100% de réussite mais cette approche permet d'atteindre des résultats très élevés, notamment sur les langues peu dotées, contrairement aux modèles multilingues qui sont très déséquilibrés (anglais surreprésenté, langues rares peu représentées).
Wikidata est une base de connaissances participative, c'est-à-dire que les articles sont rédigés par des membres puis vérifiés par d'autres. Il peut donc y avoir quelques erreurs au sein des articles, les informations ne sont pas fiables à 100% mais, pour cette approche, le modèle s'appuie uniquement sur les structures linguistiques et les métadonnées donc l'exactitude des informations de Wikidata n'a aucun impact sur les résultats obtenus.