Veille automatisée pour la récolte d'effets indésirables évoqués par les patients

|

|

Le besoin
La solution
Ils peuvent vous aider

Le besoin

Récolte des effets indésirables rencontrés par les patients

Je suis chargé du service de pharmacovigilance pour un laboratoire pharmaceutique international et j’ai besoin de recenser, pour un médicament donné, les effets indésirables évoqués par les patients sur différents forums d'échanges, sur internet. Naviguer entre les différents forums, lire tous les échanges et recenser les effets indésirables sont des tâches fastidieuses et chronophages ; j'ai besoin d'un outil qui aide les experts de mon service à réaliser toutes ces tâches.

La solution

Automatiser la récolte des effets indésirables signalés par les patients

La solution permettant de repérer les mentions d'effets indésirables de médicaments, dans des forums d'échanges sur internet, est la mise en place d’un cycle de veille automatisé qui navigue sur les forums d’échanges, et analyse les échanges afin de recueillir les effets indésirables mentionnés par les patients.

Le cycle de veille itératif comprend les étapes suivantes :

  1. Cadrage du besoin.
  2. Identification des sources d’information.
  3. Collecte des données.
  4. Analyse des données.
  5. Diffusion.

Il est schématisé ainsi :

schéma-cycle-veille

1. Cadrage du besoin

Il est nécessaire de définir précisément les objectifs de cette veille afin d’obtenir un outil optimal. Le cadrage du besoin doit apporter les réponses aux questions suivantes :

  • Quelles informations sont recherchées ?
    L'expert chargé de pharmacovigilance recherche des mentions d’effets indésirables pour un médicament donné, de la part de consommateurs du médicament.
  • Quelles sources ou types de sources privilégier et lesquelles éviter ?
    L'expert chargé de pharmacovigilance détient une liste de forums qu’il souhaite explorer en priorité, et il accepte que d’autres forums lui soient proposés. Dans le cas où il détient une liste de forums qu’il ne veut pas explorer car il les considère comme non fiables par exemple, il est important de le définir à cette étape du projet.
  • Sous quelle forme est attendu le résultat de la veille ?
    L'expert doit définir selon ses besoins quelles données il souhaite obtenir lors de la diffusion des résultats de la veille et sous quel format. Par exemple, il peut souhaiter une liste d’effets indésirables, le nombre de posts dans lequel l’effet est mentionné, il peut souhaiter voir les effets indésirables qui sont mentionnés ensemble et lesquels ne le sont jamais. Il peut également souhaiter avoir accès à tous les posts qui mentionnent tel ou tel effet afin de voir plus de contexte.. Le résultat peut être fourni sous forme de liste, de tableau, de graphique, de base de données dans laquelle l’utilisateur navigue.

2. Identification des sources : Crawling

Le crawling est une technique très utilisée pour automatiser une veille informationnelle, en particulier dans le cas où l’on recherche des sources d’information. Cette technique consiste à cartographier le Web, indexer les résultats et permet ainsi de découvrir des liens, URLs, adresses intéressantes pour l’étude. Les moteurs de recherche s’en servent pour indexer les résultats proposés suite à une recherche.

Dans le cas d’une veille informationnelle deux scénarios sont possibles :

  1. Premier scénario : L’initiateur de la veille a une liste de source prédéfinie (des sites web) qu’il veut exclusivement exploiter.
    Dans ce cas, il est possible de mettre en place un crawler (nom de l’algorithme de crawling, -aussi appelé robot d’indexation) ayant pour mission de naviguer sur le site web, explorer tous les hyperliens afin de récupérer les données de chaque page pertinente du site. Le crawler part du nom de domaine fourni par le veilleur et navigue ensuite toutes les pages du site afin d’établir une base de données, constituée des adresses nommées URLs de chaque page pertinente.
  2. Deuxième scénario : L’initiateur de la veille n’a pas de source prédéfinie, ou souhaite élargir sa liste en explorant de nouvelles sources.
    Dans ce cas, le crawler agit sur l’ensemble du web en recherchant les sites web pertinents pour l’étude, à l’aide de mots-clés notamment. Sur chacun de ces sites, le crawler navigue ensuite toutes les pages pour constituer la base de données, dans la même logique que le crawler évoqué en scénario 1.

Le crawler fournit le code HTML de chaque page. Le code HTML est un langage informatique du web qui définit la structure d'une page web, ses catégories. Ce code permet donc de répondre à la question : « dans tel site, où se situe la donnée recherchée ? ».

La collecte de ces données permet de réaliser l’étape suivante du processus : le scraping.

En résumé, le crawling est l’automatisation de la navigation que l’on réalise manuellement, intéressant pour traiter de grandes quantités de données (le Web entier), et avec pour finalité la constitution d’une base de données exploitable ultérieurement.

3. Collecte des données : Scraping

Une fois la base de données constituée des URLs de chaque page et du code HTML par le crawler, un scraper est mis en place. Un scraper est le nom de l’algorithme qui effectue le scraping.

Le scraping est une technique qui permet de collecter, pour une adresse URL, les données présentes sur la page de cette adresse.  Il existe deux sortes de scraper :

  1. Un scraper peut être dit « généraliste », c’est-à-dire qu’un seul algorithme est utilisé sur plusieurs sites différents. L’avantage de ce type de scraper est le gain de temps, et la variété des sources d’information exploitée. L’inconvénient est que sa performance peut altérer d’un site web à l’autre, selon l’hétérogénéité des structures. Un scraper généraliste peut être codé sur un même type de site, par exemple, les forums de discussion.
  2. Il peut également être « spécialisé », c’est-à-dire que le scraper va être développé pour un site spécifiquement, en étant donc parfaitement adapté à sa structure. Ce type de scraper est intéressant dans le cas où le veilleur souhaite exploiter les données sur un seul site, et si le site est particulièrement complexe, chargé, avec une structure qui lui est propre.

Une fois les données collectées, il est nécessaire de les transformer de sorte à les rendre exploitable pour automatiser l’analyse par la suite.

4. Analyses linguistique des posts collectés

C’est une fois les données (c’est-à-dire le contenu textuel des pages) collectées par le scraper, que les méthodes du NLP interviennent afin d’effectuer des analyses linguistiques en deux grandes étapes. La première étape consiste à identifier les posts, parmi ceux collectés, qui évoquent le médicament étudié. La seconde étape consiste à identifier les mentions d’effets indésirables dans chacun de ces posts.

Les deux étapes de l’analyse linguistique sont basées sur les mêmes méthodes : la mise en place d’un système de reconnaissance d’entités nommées, appuyé sur un thésaurus.

Construire un thésaurus

Pour envisager de mettre en place un système d’intelligence artificielle capable de détecter la présence d’une mention d’un médicament dans un post, il est d’abord nécessaire de répertorier toutes les appellations possibles d’un même médicament, voire du principe actif si c’est ce dernier qui intéresse l’utilisateur. Ce référencement est réalisé par le biais d’un thésaurus, sorte de dictionnaire permettant d’inventorier des termes et concepts de manière structurée. En s’appuyant sur le thésaurus lors de l’analyse des posts, le système mis en place est par exemple capable de considérer paracétamol et para-acétylaminophénol comme des équivalents. L'avantage du thésaurus réside dans sa structure à la fois verticale et horizontale. Pour un concept donné, ses équivalents et sous-concepts lui sont rattachés, par conséquent tous les concepts sont liés entre eux.

La création d’un thésaurus, également pour les noms de médicaments et pour les effets indésirables permet de pallier la problématique de variation de langage sur les forums.

Redressement orthographique

Le texte issu de forums d'échanges est du discours libre, publié par un public potentiellement non spécialiste,  avec un vocabulaire très varié, et potentiellement parsemé de fautes d’orthographes. Ces phénomènes conduisent à la nécessité d’effectuer une étape de correction orthographique automatique, afin que la performance du système ne soit pas biaisée par les fautes d'orthographe.

Mettre en place un système de Reconnaissance d'entités nommées

La reconnaissance d'entités nommées, ou NER (Named Entity Recognition), est une technique du NLP permettant de détecter et de classer automatiquement certains éléments d'un texte, appelés « entités nommées ». Les entités nommées sont majoritairement des noms propres, de dates, de lieux, et il est possible de redéfinir les entités nommées spécifiquement pour un domaine. Dans le cadre d'une veille en pharmacologie, les noms de principes actifs, de médicaments, les symptômes et effets indésirables constituent des entités nommées. Un système de NER est donc en mesure de

  • détecter la présence d’une entité dans un texte, et la délimiter,
  • de la classer dans une des catégories définies.

Par exemple, dans la phrase :

  • J’ai pris du doliprane pour mes céphalées

le système de NER reconnait  doliprane  en tant que médicament et céphalées en tant que maladie.

5. Diffusion

La diffusion, dernière étape du cycle de veille correspond à la présentation des résultats à l’utilisateur final de la veille. Plusieurs informations issues de la collecte et de l’analyse peuvent être présentées, sous divers formats : texte, tableaux, graphiques, base de données… Comme cela a été dit précédemment, la diffusion dépend des demandes du client qui sont définies lors du cadrage du besoin.

Exemple

En guise d’exemple, considérons que l'expert souhaite obtenir les effets indésirables du cardiofort. Le système est lancé sur un forum d'échanges et le post ci-dessous est récupéré :

"Bonsoir, je prends du cardiofort suite à une crise cardiaque et des plaques d’athérosclérose. Le seul inconvénient que j'ai remarqué : des ecchymoses au moindre contact. En revanche : plus de blocage et pas d'attaque cérébrale grâce à lui.

Le système commence par analyser le post et détecter la présence du mot « cardiofort », car il est référencé dans le thesaurus préalablement construit. La présence de ce mot va permettre au post de passer le premier filtre et de déterminer qu'il s'agit bien d'un post concernant ce médicament. Le système peut ensuite poursuivre le traitement et passer à la reconnaissance d'entité nommées.

Dans cet exemple, les entités nommées détectées sont : cardiofort dans la catégorie médicament et ecchymoses dans la catégorie effet indésirable.

L'expert chargé de la pharmacovigilance ayant choisi de recevoir les informations suivantes sous forme de tableau :

  • le nom du médicament,
  • le nom de l'effet indésirable,
  • le nombre de posts dans lesquels l'effet indésirable est mentionné,
  • le nombre total de posts évoquant le médicament,

reçoit donc un tableau tel que celui ci-dessous.

Points d'attention

Lors de la mise en œuvre de cette solution, il est nécessaire de faire attention à plusieurs aspects :

  • Le respect du RGPD. Il s'agit de la règlementation européen quant au traitement de données dont il faut avoir connaissance lors de tels projets.
  • Les conditions d'utilisation du site web : autorise-t-il le crawling et le scraping ? Et la collecte de données ? A quels usages ? Les sites web fournissent généralement un fichier nommé robots.txt ou une page dédiée, qui présente des instructions sur ces sujets-là qu'il est indispensable de respecter.
  • Si le crawler et le scraper sont lancés de trop nombreuses fois sur un même site internet, ils risquent de l'alourdir, ce qui bloquerait son accès. Dans cette situation, l'organisme (ou la personne) à l'origine du crawling/scraping peut se voir accusé(e) d'attaque informatique envers le site.
Par Wissam Kerkri
Ingénieure TAL/NLP Engineer