SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
Extraction des relations entre les entités
nommées
Réalisé par :
BELOUADAH Sakher
Master Apprentissage, Information et Contenu
Paris Saclay
1
Abstract
Nous présentons dans ce projet un système d’extraction d’informations permettant d’extraire
les relations entre les entités nommées dans un ensemble de documents. En commençant tout
d’abord par décrire la méthode du crawling utilisée ainsi que le corpus sur lequel nous allons
appliquer nos méthodes. Par la suite, nous adoptons l’outil SNER [1] qui reconnait des entités de
divers types avec une grande précision, et de générer par la suite l’ensemble des entités nommées
comme les noms propres par exemple. Enfin, nous présentons notre système d’extraction des
relations entre les entités existantes dans le corpus ainsi que l’ensemble des résultats obtenues
par ce système. Ce travail vise donc à utiliser un outil existant afin d’en extraire l’ensemble
des entités nommées, ainsi de représenter les relations entre ces entités par un réseau social
permettant d’extraire des informations pertinentes sur le type et la puissance de ces relations.
1 Introduction
L’extraction des relations entre les personnages d’un livre peut paraitre comme une simple
tache. Cependant, quand il s’agit d’un grand nombre de documents la tache devient plus difficile,
il est donc nécessaire d’utiliser un système efficace permettant d’extraire ces liens de relation entre
les entités nommées. Nous pouvons décomposer cette tâche en trois parties. La première étape
consiste à implémenter un système de crawling qui permet de récupérer l’ensemble des documents
à partir du net en respectant les règles de politesses, et puis de prétraiter chaque document
collecté. La deuxième étape est d’extraire les entités nommées à partir de ces documents avec
précision. La dernière étape consiste à identifier l’ensemble des entités qui sont en relation avec
une entité donnée, en se basant sur une mesure de similarité. Dans les sections suivantes, nous
allons détailler chacune des étapes mentionnés en présentant les résultats obtenus.
2 Prétraitement des données
La première étape dans ce projet consiste à récupérer l’ensemble des documents sur lesquels
nous allons travailler. Le choix s’est porté sur la collection des livres Sherlock Holmes [2]. Cette
collection contient une totalité de plus de 50 livres gratuitement téléchargeables en plusieurs for-
mats. Nous avons développé un crawler permettant de récupérer l’intégralité de ces documents en
respectant les règles de politesses (télécharger les documents sans surcharger le site). Ceci est fait
en téléchargeant l’ensemble des livres en mode batch au lieu de parallèle. Le script implémenté
en python est le suivant :
La deuxième étape consiste à prétraiter chaque document téléchargé. Afin de faciliter le pré-
traitement, les documents sont téléchargés en format ASCII, où chaque livre sera sauvegardé
dans une variable de type chaine de caractères. Par la suite, chaque document est découpé en un
ensemble de phrases en utilisant l’outil de traitement des langages naturels NLTK.
Ces phrases sont passées comme entrées à une fonction qui permet de les segmenter en des
unités atomiques dite token en utilisant la méthode de tokenisation proposé par NLTK. Ainsi,
2
l’ensemble des caractères spéciaux, chiffres, et ponctuations sont par la suite supprimés en utili-
sant des expressions régulières.
Exemple : Soit la phrase suivante prise d’un des livres téléchargés :
‘’One night — it was on the twentieth of March, 1888 — I was returning from a journey‘’
Nous commençons par segmenter la phrase, le résultat est dans ce cas :
[’One’, ’night’, ’-’, ’it’, ’was’, ’on’, ’the’, ’twentieth’, ’of’, ’March’, ’,’, ’1888’, ’-’, ’was’,
’returning’, ’from’, ’a’, ’journey’]
Ensuite, nous nettoyons la liste en utilisant une expression régulière à l’aide le l’instruction
suivante :
s = re.sub(”[ˆa − zA − Z]”, ””, s)
Le résultat final est :
[’One’, ’night’, ’it’, ’was’, ’on’, ’the’, ’twentieth’, ’of’, ’March’, ’I’, ’was’, ’returning’, ’from’, ’a’,
’journey’]
Après le traitement, les documents sont sauvegardés sous la forme d’une structure sFrame. Ce
tableau est organisé de telle manière que chaque ligne correspond à une phrase dans un livre, la
première colonne contient le titre du livre, la deuxième contient la phrase, et la troisième colonne
contient l’ensemble des tokens de cette phrase. Cette structure facilite l’identification des entités
Figure 1 – Exemple de la structure sFrame.
nommées citées dans la même phrase. Ce qui permet par la suite d’identifier les liens entre ces
entités.
3 Extraction des entités nommées
L’extraction des entités nommées dans le domaine du traitement des langages naturels est un
sujet profondément étudié. Le processus de la reconnaissance des entités nommées vise à extraire
et classer les désignateurs rigides dans le texte. Ces derniers correspondent traditionnellement à
l’ensemble des noms propres présents dans un texte, qu’il s’agisse de noms de personnes, de lieux
ou d’organisation, etc.
3
Dans ce projet, nous utiliserons l’outil de reconnaissance de Stanford University Named Entities
Recognition SNER[1], ce dernier permet d’extraire avec précision trois types d’entités nommées
qui sont : Organizations, Locations, Persons. Nous nous intéressons dans notre cas aux noms de
personnes. Ces derniers représentent l’ensemble des personnages citées dans la collection.
Après avoir chargé le module correspondant et avoir spécifié les bons chemins du classifieur
SNER, nous allons commencer par charger l’ensemble des livres, ensuite de passer chacune de
leurs phrases segmentées comme entrée au classifieur SNER.
Le résultat retourné par SNER est une structure de trois éléments, chaque élément contient la
liste des entités reconnues de chacun des types possibles (Organizations, Locations, Persons).
D’où la nécessité de garder que les noms de personnes dans une liste nommé personlist.
Le code qui correspond au processus expliqué ci-dessus est le suivant : La première instruction
permet de découper les textes en un ensemble de phrases, chacune de ces dernières sera segmentée
par la suite en utilisant la deuxième instruction. L’ensemble des tokens seront passés comme
argument à la fonction de reconnaissance des entités nommées. L’étape finale sera donc de ne
garder que les entités de type PERSONS.
Le résultat retournée par la fonction est :
["Irene", "Mycroft", "Lestrade", "Sherlock", "Moran", "Moriarty", "Watson", "Baynes", "Billy",
"Bradstreet", "Gregson" ,"Hopkins", "Hudson", "Shinwell", "Athelney", "Mary", "Langdale",
"Toby", "Wiggins"]
Remarquez que nous avons garder seulement les 20 personnages les plus citées selon un ordre
décroissant. Nous pouvons par la suite extraire les liens de relations entre chacun de ces person-
nages.
4 Social Network Analysis SNA
Lors du traitement d’un large corpus, le processus de la création du réseau social manuelle-
ment peut être couteux en termes de temps. D’où la nécessité d’automatiser le traitement.
Dans cette section, nous utiliserons l’ensemble des entités extraites à partir du corpus. Le pro-
cessus se déroule en deux étapes. D’abord nous analyserons les relations entre ces entités, ensuite
nous représenterons les liens de relation par un graphe connecté (Réseau social).
4.1 Extraction des relations
L’extraction des relations est le processus d’identification de relations pertinentes entre les
entités mentionnées dans un texte. Ayant une entité, nous appliquons un algorithme d’analyse
de lien sur cette entité afin d’en extraire l’ensemble des entités ayant une forte relation avec elle.
4
Les entités qui coexistent dans la même phrase du livre sont considérées comme connectées
et chaque combinaison de deux d’entre eux formant une paire de nœuds reliés. Le poids d’une
relation entre deux nœuds est par la suite le nombre de fois qu’elles apparaissent dans la même
phrase. Autrement dit, à chaque fois que deux personnages parlent ensembles, ou apparient dans
le même passage, nous ajoutons un lien entre les deux s’il n’existe pas déjà. Le poids de chaque
relation, représente par exemple le nombre de fois que deux personnages ont parlé ensemble.
Prenant par exemple la phrase suivante prise d’un des livres :
"What makes you think that Sherlock was near Greagson ?" asked Lestrade
Nous pouvons identifier trois relations entre les entités mentionnées dans cette phrase. Dans
notre cas, nous garderons que les relations ayants un poids plus ou égale à 2.
Cette technique ne va pas créer le réseau social le plus précis. Cependant, le réseau créé permettra
d’observer quelques indications intéressantes sur les relations entre les personnages.
4.2 Représentation des relations
Un graphe est défini par un ensemble de nœuds V (Vertices), et un ensemble d’arêtes E
(Edges) reliant les nœuds entre eux. Dans notre cas, Une arête reliant un nœud V1 avec un autre
V2 exprime une relation entre les deux. Où le poids associé à cette arête représente la puissance
de leur relation. Ainsi, chaque nœud représente une entité nommée (personnage) extraite du
texte.
Prenant par exemple les deux personnages, Sherlock et Watson. Le nombre de fois où les deux
apparaissent dans le même passage est égale à 14 ce qui représente la poids du lien reliant les
deux nœuds Shelock et Watson.
Figure 2 – Relation entre Sherlock et Watson
Le réseau social finale qui décrit les relations entre l’ensemble des entités extraite est le suivant :
5
Figure 3 – Réseau final
EN analysant le graphe ci-dessus (qui est créé presque automatiquement), Nous pouvons faci-
lement identifier les personnages principaux dans les histoires. Le graphe ci-dessous est construit
en utilisant un sous ensemble des entités extraites lors de la phase précédente.
Figure 4 – Amis et ennemis de Sherlock
Nous pouvons facilement identifier deux types de relations. Le premier cercle contient l’en-
semble des amis de Sherlock (Mycroft et Lestrade) qui sont eux même reliés entre eux, le deuxième
contient l’ensemble de ses ennemis qui sont Moriaty et Moran. De plus, nous remarquons une
forte relation entre Sherlock et Watson, et entre ce dernier et Moriaty l’ennemie de Sherlock.
En utilisant le même processus, nous pouvons aussi avoir plus d’informations sur les relations
entre les endroits et les personnages par exemple.
6
5 Conclusion
Dans ce projet, nous avons proposé une méthode de représentation des relations entre les
personnages présents dans les livres de Sherlock Holmes en se basant essentiellement sur la re-
connaissance des entités nommées. Ainsi, nous avons proposé une méthode permettant d’extraire
les relations entre ces entités et de représenter leur poids selon le nombre de leur citation dans
le même passage dans un livre. Nos expérimentations ont montré que l’utilisation de la recon-
naissance des entités nommées à permet d’automatiser le processus. Ainsi, notre méthode de
représentation à permet d’avoir une idée générale sur l’ensemble des personnages principaux
ainsi que les relations entre eux et leurs puissance.
Références :
[1] Stanford Named Entity Recognizer (NER) latest version 3.6.0 written by Nitin Madnani :
http ://nlp.stanford.edu/software/CRF-NER.shtml
[2] Arthur Conan Doyle’s entire Sherlock Holmes works. The canon includes all the stories and
novels. https ://sherlock-holm.es/ascii/
7

Contenu connexe

En vedette

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

En vedette (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Named Entities recognition and visualisation using a social network

  • 1. Extraction des relations entre les entités nommées Réalisé par : BELOUADAH Sakher Master Apprentissage, Information et Contenu Paris Saclay 1
  • 2. Abstract Nous présentons dans ce projet un système d’extraction d’informations permettant d’extraire les relations entre les entités nommées dans un ensemble de documents. En commençant tout d’abord par décrire la méthode du crawling utilisée ainsi que le corpus sur lequel nous allons appliquer nos méthodes. Par la suite, nous adoptons l’outil SNER [1] qui reconnait des entités de divers types avec une grande précision, et de générer par la suite l’ensemble des entités nommées comme les noms propres par exemple. Enfin, nous présentons notre système d’extraction des relations entre les entités existantes dans le corpus ainsi que l’ensemble des résultats obtenues par ce système. Ce travail vise donc à utiliser un outil existant afin d’en extraire l’ensemble des entités nommées, ainsi de représenter les relations entre ces entités par un réseau social permettant d’extraire des informations pertinentes sur le type et la puissance de ces relations. 1 Introduction L’extraction des relations entre les personnages d’un livre peut paraitre comme une simple tache. Cependant, quand il s’agit d’un grand nombre de documents la tache devient plus difficile, il est donc nécessaire d’utiliser un système efficace permettant d’extraire ces liens de relation entre les entités nommées. Nous pouvons décomposer cette tâche en trois parties. La première étape consiste à implémenter un système de crawling qui permet de récupérer l’ensemble des documents à partir du net en respectant les règles de politesses, et puis de prétraiter chaque document collecté. La deuxième étape est d’extraire les entités nommées à partir de ces documents avec précision. La dernière étape consiste à identifier l’ensemble des entités qui sont en relation avec une entité donnée, en se basant sur une mesure de similarité. Dans les sections suivantes, nous allons détailler chacune des étapes mentionnés en présentant les résultats obtenus. 2 Prétraitement des données La première étape dans ce projet consiste à récupérer l’ensemble des documents sur lesquels nous allons travailler. Le choix s’est porté sur la collection des livres Sherlock Holmes [2]. Cette collection contient une totalité de plus de 50 livres gratuitement téléchargeables en plusieurs for- mats. Nous avons développé un crawler permettant de récupérer l’intégralité de ces documents en respectant les règles de politesses (télécharger les documents sans surcharger le site). Ceci est fait en téléchargeant l’ensemble des livres en mode batch au lieu de parallèle. Le script implémenté en python est le suivant : La deuxième étape consiste à prétraiter chaque document téléchargé. Afin de faciliter le pré- traitement, les documents sont téléchargés en format ASCII, où chaque livre sera sauvegardé dans une variable de type chaine de caractères. Par la suite, chaque document est découpé en un ensemble de phrases en utilisant l’outil de traitement des langages naturels NLTK. Ces phrases sont passées comme entrées à une fonction qui permet de les segmenter en des unités atomiques dite token en utilisant la méthode de tokenisation proposé par NLTK. Ainsi, 2
  • 3. l’ensemble des caractères spéciaux, chiffres, et ponctuations sont par la suite supprimés en utili- sant des expressions régulières. Exemple : Soit la phrase suivante prise d’un des livres téléchargés : ‘’One night — it was on the twentieth of March, 1888 — I was returning from a journey‘’ Nous commençons par segmenter la phrase, le résultat est dans ce cas : [’One’, ’night’, ’-’, ’it’, ’was’, ’on’, ’the’, ’twentieth’, ’of’, ’March’, ’,’, ’1888’, ’-’, ’was’, ’returning’, ’from’, ’a’, ’journey’] Ensuite, nous nettoyons la liste en utilisant une expression régulière à l’aide le l’instruction suivante : s = re.sub(”[ˆa − zA − Z]”, ””, s) Le résultat final est : [’One’, ’night’, ’it’, ’was’, ’on’, ’the’, ’twentieth’, ’of’, ’March’, ’I’, ’was’, ’returning’, ’from’, ’a’, ’journey’] Après le traitement, les documents sont sauvegardés sous la forme d’une structure sFrame. Ce tableau est organisé de telle manière que chaque ligne correspond à une phrase dans un livre, la première colonne contient le titre du livre, la deuxième contient la phrase, et la troisième colonne contient l’ensemble des tokens de cette phrase. Cette structure facilite l’identification des entités Figure 1 – Exemple de la structure sFrame. nommées citées dans la même phrase. Ce qui permet par la suite d’identifier les liens entre ces entités. 3 Extraction des entités nommées L’extraction des entités nommées dans le domaine du traitement des langages naturels est un sujet profondément étudié. Le processus de la reconnaissance des entités nommées vise à extraire et classer les désignateurs rigides dans le texte. Ces derniers correspondent traditionnellement à l’ensemble des noms propres présents dans un texte, qu’il s’agisse de noms de personnes, de lieux ou d’organisation, etc. 3
  • 4. Dans ce projet, nous utiliserons l’outil de reconnaissance de Stanford University Named Entities Recognition SNER[1], ce dernier permet d’extraire avec précision trois types d’entités nommées qui sont : Organizations, Locations, Persons. Nous nous intéressons dans notre cas aux noms de personnes. Ces derniers représentent l’ensemble des personnages citées dans la collection. Après avoir chargé le module correspondant et avoir spécifié les bons chemins du classifieur SNER, nous allons commencer par charger l’ensemble des livres, ensuite de passer chacune de leurs phrases segmentées comme entrée au classifieur SNER. Le résultat retourné par SNER est une structure de trois éléments, chaque élément contient la liste des entités reconnues de chacun des types possibles (Organizations, Locations, Persons). D’où la nécessité de garder que les noms de personnes dans une liste nommé personlist. Le code qui correspond au processus expliqué ci-dessus est le suivant : La première instruction permet de découper les textes en un ensemble de phrases, chacune de ces dernières sera segmentée par la suite en utilisant la deuxième instruction. L’ensemble des tokens seront passés comme argument à la fonction de reconnaissance des entités nommées. L’étape finale sera donc de ne garder que les entités de type PERSONS. Le résultat retournée par la fonction est : ["Irene", "Mycroft", "Lestrade", "Sherlock", "Moran", "Moriarty", "Watson", "Baynes", "Billy", "Bradstreet", "Gregson" ,"Hopkins", "Hudson", "Shinwell", "Athelney", "Mary", "Langdale", "Toby", "Wiggins"] Remarquez que nous avons garder seulement les 20 personnages les plus citées selon un ordre décroissant. Nous pouvons par la suite extraire les liens de relations entre chacun de ces person- nages. 4 Social Network Analysis SNA Lors du traitement d’un large corpus, le processus de la création du réseau social manuelle- ment peut être couteux en termes de temps. D’où la nécessité d’automatiser le traitement. Dans cette section, nous utiliserons l’ensemble des entités extraites à partir du corpus. Le pro- cessus se déroule en deux étapes. D’abord nous analyserons les relations entre ces entités, ensuite nous représenterons les liens de relation par un graphe connecté (Réseau social). 4.1 Extraction des relations L’extraction des relations est le processus d’identification de relations pertinentes entre les entités mentionnées dans un texte. Ayant une entité, nous appliquons un algorithme d’analyse de lien sur cette entité afin d’en extraire l’ensemble des entités ayant une forte relation avec elle. 4
  • 5. Les entités qui coexistent dans la même phrase du livre sont considérées comme connectées et chaque combinaison de deux d’entre eux formant une paire de nœuds reliés. Le poids d’une relation entre deux nœuds est par la suite le nombre de fois qu’elles apparaissent dans la même phrase. Autrement dit, à chaque fois que deux personnages parlent ensembles, ou apparient dans le même passage, nous ajoutons un lien entre les deux s’il n’existe pas déjà. Le poids de chaque relation, représente par exemple le nombre de fois que deux personnages ont parlé ensemble. Prenant par exemple la phrase suivante prise d’un des livres : "What makes you think that Sherlock was near Greagson ?" asked Lestrade Nous pouvons identifier trois relations entre les entités mentionnées dans cette phrase. Dans notre cas, nous garderons que les relations ayants un poids plus ou égale à 2. Cette technique ne va pas créer le réseau social le plus précis. Cependant, le réseau créé permettra d’observer quelques indications intéressantes sur les relations entre les personnages. 4.2 Représentation des relations Un graphe est défini par un ensemble de nœuds V (Vertices), et un ensemble d’arêtes E (Edges) reliant les nœuds entre eux. Dans notre cas, Une arête reliant un nœud V1 avec un autre V2 exprime une relation entre les deux. Où le poids associé à cette arête représente la puissance de leur relation. Ainsi, chaque nœud représente une entité nommée (personnage) extraite du texte. Prenant par exemple les deux personnages, Sherlock et Watson. Le nombre de fois où les deux apparaissent dans le même passage est égale à 14 ce qui représente la poids du lien reliant les deux nœuds Shelock et Watson. Figure 2 – Relation entre Sherlock et Watson Le réseau social finale qui décrit les relations entre l’ensemble des entités extraite est le suivant : 5
  • 6. Figure 3 – Réseau final EN analysant le graphe ci-dessus (qui est créé presque automatiquement), Nous pouvons faci- lement identifier les personnages principaux dans les histoires. Le graphe ci-dessous est construit en utilisant un sous ensemble des entités extraites lors de la phase précédente. Figure 4 – Amis et ennemis de Sherlock Nous pouvons facilement identifier deux types de relations. Le premier cercle contient l’en- semble des amis de Sherlock (Mycroft et Lestrade) qui sont eux même reliés entre eux, le deuxième contient l’ensemble de ses ennemis qui sont Moriaty et Moran. De plus, nous remarquons une forte relation entre Sherlock et Watson, et entre ce dernier et Moriaty l’ennemie de Sherlock. En utilisant le même processus, nous pouvons aussi avoir plus d’informations sur les relations entre les endroits et les personnages par exemple. 6
  • 7. 5 Conclusion Dans ce projet, nous avons proposé une méthode de représentation des relations entre les personnages présents dans les livres de Sherlock Holmes en se basant essentiellement sur la re- connaissance des entités nommées. Ainsi, nous avons proposé une méthode permettant d’extraire les relations entre ces entités et de représenter leur poids selon le nombre de leur citation dans le même passage dans un livre. Nos expérimentations ont montré que l’utilisation de la recon- naissance des entités nommées à permet d’automatiser le processus. Ainsi, notre méthode de représentation à permet d’avoir une idée générale sur l’ensemble des personnages principaux ainsi que les relations entre eux et leurs puissance. Références : [1] Stanford Named Entity Recognizer (NER) latest version 3.6.0 written by Nitin Madnani : http ://nlp.stanford.edu/software/CRF-NER.shtml [2] Arthur Conan Doyle’s entire Sherlock Holmes works. The canon includes all the stories and novels. https ://sherlock-holm.es/ascii/ 7