Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
3,79 MB
Nội dung
UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL ZAGABE SERUTI Jean Claude Reconnaissance et désambiguïsation des entités Nhận dạng làm sáng tỏ thực thể MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE HANOÏ - 2020 Université Nationale du Vietnam, Hanoï Institut Francophone International ZAGABE SERUTI Jean Claude Reconnaissance et désambiguïsation des entités Nhận dạng làm sáng tỏ thực thể Spécialité : Systèmes Intelligents et Multimédia Option : Données Code : Programme pilote MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE Sous la direction de : Damien Nouvel Mtre des Conférences, INALCO, ERTIM HANOÏ - 2020 ATTESTATION SUR L’HONNEUR J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs La source des informations citées dans ce mémoire a été bien précisée LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu riêng tơi Các số liệu, kết nêu Luận văn trung thực chưa công bố công trình khác Các thơng tin trích dẫn Luận văn rõ nguồn gốc Signature de l’étudiant ZAGABE SERUTI Jean Claude Remerciements Par cette rédaction de mémoire que j’ai compris le proverbe grec, je cite : « une main lave l’autre », en foi chrétienne on dit souvent « vaux mieux deux qu’un seul » Je voulais pas clore ce travail sans remercier toutes personnes qui m’ont tenues la main dans ce parcours de Master par leur encouragement, leur générosité, leur amour fraternel et leur inquiétude manifestée l’égard de ma formation m’ont permis d’atteindre les objectifs fixés durant mes études Tout en étant conscient que la sagesse et l’intelligence viennent d’en haut comme le confirme les saintes écritures dans Jacques :17 et Proverbes :6, je dois remercier en premier lieu mon Elohỵm, hoshoua Mashiah pour ce don parfait, lui seul, soient honneur et gloire Pour claquer des doigts, un seul doigt ne suffit pas, mon mtre de stage, Damien Nouvel, qui je remercie profondément, par lui, j’ai appris en tant qu’un étudiant, mes défauts et qualités ont été les points de mon encadrement dans un seul but de fixer le regard comme un aigle durant ce temps d’épreuve Il n’a jamais cessé de me porter conseil, parfois il quittait ses prérogatives d’encadreur pédagogique du stage enfin de me mettre en confiance du soi pour mon avenir, en quelque sorte il jouait un rôle d’un psychologue J’aimerais également lui dire quel point j’ai apprécié sa disponibilité, sa sensibilité, son écoute et sa compréhension tout au long de ce travail Je souhaiterais exprimer ma gratitude monsieur HO Tuong Vinh pour m’avoir donné son accord pour aller en stage et son encadrement durant ma formation l’IFI par son cours de reconnaissance des formes et le TPE Par cette occasion, je remercie également toute l’administration de l’IFI pour leur accueil chaleureux chaque fois que j’ai sollicité leur aide, ainsi que pour les multiples encouragements, notamment lors de mes démarches pour la France, Madame Cam Tú , elle était pour répondre toutes mes préoccupations Je souhaiterais aussi adresser ma gratitude tous les professeurs de l’Université Nationale du Vietnam et de l’Université de La Rochelle qui se sont occupés de nous durant notre formation de master sans lesquels ma recherche serait certainement moins riche Ces remerciements seraient incomplets si je n’en adressais pas l’ensemble des membres de l’Inalco, l’organisme d’acceuil de mon stage, pour leur soutien logistique et moral ainsi que pour la très bonne ambiance que j’ai toujours trouvée au sein de l’équipe Ertim Je remercie plus particulièrement Jean Michel Daube et Stuck Franỗois pour nos nombreuses discussions Jexprime ma gratitude tous mes amis dont je ne pourrais citer car la liste est longue mais permettez-moi au moins trois : « Christus Mathoka », « Azy Saidi » et « Emmanuel Biaya » qui sont les amis de tout le temps Enfin, MERCI ma très chère famille, Papa Lubunga Pene Shako et celle qui m’a vue naợtre le premier, ma tendre mốre ô Marceline Musangilayi Nzeba » et mon défunt père « Wencelas » qui n’a jamais vu mon baccalauréat jusqu’à ce jour de la fin du master, paix son âme Jean Claude Zagabe Résumé L’avènement de techniques d’apprentissage automatique a motivé les chercheurs des universités aller plus loin dans leurs démarches afin de trouver des solutions aux problèmes posés dans la société Nous remarquons cela lorsque nous passons du temps la télévision en suivant les informations ou les débats politiques, l’utilisation des mots par l’intervenant fait l’objet d’une étude approfondie À ce jour où l’automatisation fait rage, il y a des domaines spécifiques qui s’intéressent aux parties du discours dans sa diversité Dans cette recherche, nous visons mettre en œuvre les techniques d’apprentissage l’aide des algorithmes CRF ou encore LSTM et du Bi-LSTM dans le domaine de sous tâche d’extraction d’informations dont nous citons : « la reconnaissance des entités nommées et la désambiguïsation des entités» Sa mise en œuvre permettra aux entreprises qui exploitent les informations politiques de bien vouloir traiter chaque partie des discours Durant ce temps de recherche, nous avons approfondi les pratiques de l’analyse des discours et l’apport des techniques du TAL Nous ne serions pas parvenu sans le projet TALAD, qui nous a permis d’interagir avec les spécialistes du domaine pour produire un travail interdisciplinaire Au premier chapitre, nous présentons le projet avec ces objectifs atteindre tout en abordant la problématique de notre sujet de stage Au deuxième chapitre, nous faisons l’état de l’art des travaux de recherches dans ces domaines pluridisciplinaires pour nous permettre de nous appuyer sur les idées qui ont fait l’objet d’études et critiques afin d’orienter notre travail sur des bases solides Nous avons traité les approches qui doivent être adoptées, entre autres les approches base des règles, d’apprentissage et hybride Au troisième chapitre, nous proposons notre solution en se basant sur l’outil mXS qui est le fruit des chercheurs des membres du projet TALAD Notre contribution dans cet outil sera plus dans l’ajouts des modules tels que la liaison des données et sa mise niveau Cette participation m’a motivé produire un outil REN basé sur les algorithmes d’apprentissage, ce qui m’a permis de faire une critique vis-à-vis de l’approche hybride et l’approche du réseau de neurones Au dernier chapitre, nous expérimentons le système mXS et le système RenL en vue d’analyser les résultats obtenus par rapport la spécificité de chaque système Retenons que mXS est un outil développé durant trois années de recherches (2009-2012) par contre RenL est développé durant six mois du stage y compris la période de pandémie (Covid-19) Partant de cette évaluation, nous avons tiré une conclusion par rapport l’évolution technologique, de ce fait, il est souhaitable d’appliquer le modèle de réseau de neurones Bi-LSTM car il a montré des résultats plus encourageants durant l’évaluation du système Mots clés : Entité Nommées, reconnaissance des entités nommées, désambiguïsation des entités, traitement automatique des langues, apprentissage automatique, BI-LSTM, CRF, extraction d’information Abstract The advent of machine learning techniques motivated university researchers to go further in their efforts in order to find solutions to problems posed in society We can see that when we watch the news or political debates on TV The way words are used by intervenant is subject to an in-depth study Nowadays automation is more relevant, there are specific areas that are interested in the parts of speech in its diversity In this research, we aim to implement learning techniques using CRF algorithms or LSTM and Bi-LSTM in the field of information extraction sub-task of which we quote : "recognition named entities and entity disambiguation ” Its implementation will allow companies that exploit political information to treat every part of the speeches During our research, we deepened the practices of speech analysis and the contribution of NLP techniques We would not have succeeded without the TALAD project, which allowed us to interact with specialists in the field to produce interdisciplinary work In the first chapter, we present the project with these objectives to be achieved while addressing the issue of our internship subject In the second chapter, we report on the state of the art of research work in these multidisciplinary fields to enable us to rely on the ideas that have been the subject of studies and critiques in order to orient our work on solid We have covered the approaches that need to be taken, including rule-based, learning and hybrid approaches In the third chapter, we propose our solution based on the mXS tool which is the result of researchers from members of the TALAD project Our contribution in this tool will be more in adding modules such as data binding and upgrading it This participation motivated us to produce a NER tool based on learning algorithms, which allowed us to make a critique vis-a-vis the hybrid approach and the neural network approach In the last chapter, we experiment with the mXS system and the RenL system in order to analyze the results obtained in relation to the specificity of each system Note that mXS is a tool developed during three years of research (2009-2012) on the other hand RenL is developed during six months of the internship including the pandemic period (Covid-19) From this evaluation, we have drawn a conclusion about technological evolution, therefore, it is desirable to apply the Bi-LSTM neural network model as it showed more encouraging results during the evaluation of the system Keywords : Named Entities, named entity recognition, entity linking, NLP, machine learning, BI-LSTM, CRF, information extraction Table des matières Liste des tableaux iv Table des figures v Introduction générale 1.1 Présentation de l’établissement d’accueil 1.1.1 Institut national des langues et civilisations orientales (Inalco) 1.1.2 Projet TALAD 1.2 Problématique et objectifs du stage 1.2.1 Problématique 1.2.2 Objectifs du stage 3 5 Etat de l’art 2.1 Entités Nommées 2.1.1 Introduction et approche historique 2.1.2 Dérivé du concept d’entité nommée 2.1.3 Exemples d’annotations d’entités nommées 2.1.4 Notions élémentaires d’annotation des entités 2.2 Reconnaissance des entités nommées 2.2.1 Définitions et contexte de REN 2.2.2 Les approches 2.2.2.1 Approche symbolique 2.2.2.2 Approche statistique 2.2.2.3 Approche hybride 2.2.3 Représentation BIO et Modèle d’apprentissage de CRF 2.2.3.1 Exemple de représentation BIO 2.2.3.2 Modèle d’apprentissage avec de CRF 2.3 Désambiguïsation 2.3.1 Présentation et définition 2.3.2 Discussions comparatives 2.3.3 Motivation d’approche 6 11 11 12 12 13 15 16 16 17 18 18 19 20 i TABLE DES MATIÈRES 2.4 Approche base des réseaux de neurones 21 2.4.1 Réseau de neurones pour la reconnaissance et désambiguïsation des entités nommées 22 2.4.2 Réseaux LSTM bidirectionnels 23 Solution proposée 25 3.1 Solution existante 25 3.2 Quelques Librairies existantes 26 3.3 Solution proposée 27 Implémentation et résultats expérimentaux 4.1 Implémentation 4.1.1 Ressources matérielles et logicielles 4.1.2 Présentation des données 4.2 Résultats expérimentaux 4.2.1 Expérimentation avec mXS 4.2.2 Expérimentation avec RenL 4.2.3 Participation la campagne d’évaluation CLEF HIPE 2020 A Annexe A.1 Extraction des entités nommées A.2 Extrait de codes A.2.1 Script de liaison des données A.2.2 Extrait de script récupération des entités via Dbpédia ii 31 31 31 32 35 35 37 44 51 51 54 54 57 Table des figures 1.1 Présentation de REN issue d’une dérivation de phrases via wikipédia 2.1 2.2 2.3 2.4 2.5 Hiérarchie des entités selon l’annotation Quaero Architecture générale de Nemesis Champ aléatoire conditionnel chne linéaire Schéma général d’un système de désambiguïsation des entités Structure LSTM 10 13 14 21 23 3.1 Architecture de traitement 25 3.2 Architecture proposée de mXS 27 3.3 Architecture proposée du prototype 29 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 Présentation de corpus interviews Présentation de l’analyse statistique textuelle Tableau croisant des formes pleines et des segments de texte Annotation d’extrait du corpus dans mXS Le résultat d’annotation automatique dans mXS Exécution de la commande Le résultat de sortie mXS Le résultat de sortie avec une annotation fine mXS Exécution d’exemple de liaison des données Le résultat de sortie de liaison des données Lancement du système RenL pour la notation du corpus Résultat d’annotation sur RenL Le détail de corpus annoté par RenL Extrait de sortie d’annotation du corpus en format BIO Visualisation graphique des phrase par la longueur Présentation des matrice de caractéristiques et le vecteur cible Présentation de modèle Formation des données Graphique d’entrnement et de validation iii 33 33 34 35 36 36 36 36 37 37 38 38 39 39 40 40 41 41 42 Bibliographie [1] AL-RFOU R., Kulkarni V, Perozzi B Skiena S Polyglot-ner : «Massive multilingual named entity recognition» In Proceedings of the 2015 SIAM International Conference on Data Mining, p 586–594 , 2015 [2] Brando, C., Frontini, F., Ganascia, J.G (2016) REDEN: «Named-Entity Linking in digital Literary Editions using Linked Data Sets, Complex Systems Informatics and Modeling Quarterly CSIMQ», 2016 [3] Chloé-Agathe Azencott, «Introduction au Machine Learning», édition Dunod, Paris 2018 [4] Damien Nouvel, Sophie Rosset, « Named Entity Resources - Overview and Outlook», Maud Ehrmann, 2015 [5] Damien Nouvel, Jean-Yves Antoine, Nathalie Friburger, Arnaud Soulet, «Fouille de règles d’annotation pour la reconnaissance d’entités nommées», 2014 [6] Damien Nouvel and Jean Claude Zagabe, "Adapting a pre-neural ML NER System to Historical Data", 2020 [7] Dupont Y , « Exploration de traits pour la reconnaissance d’entités nommées du Franỗais par apprentissage automatiqueằ In 24e Confộrence sur le Traitement Automatique des Langues Naturelles (TALN), 2017 [8] Hahm Y., Park J., Lim K., Kim Y., Hwang D Choi K «Named entity corpus onstruction using wikipedia and dbpedia ontology» In LREC, p.25652569 [9] Hani Daher, Romaric Besanỗon,Olivier Ferret, Hervộ Le Borgne — Anne-Laure Daquo — Youssef Tamaazousti, «Désambigụsation d’entités nommées par apprentissage de modèles d’entités large échelle»,2018 49 BIBLIOGRAPHIE [10] Khalid M A., Jijkoun V., de Rijke M., «The Impact of Named Entity Normalization on Information Retrieval for Question Answering»„ Glasgow, UK, Springer Berlin Heidelberg, 2008 [11] Lafferty J., MC Callum A Pereira F., «Conditional random fields : Probabilistic models for segmenting and labeling sequence data», 2001 [12] Le Meur, C., Galliano, S., and Geoffrois, «Conventions d’annotations en entités nommées-ester», Rapport technique de la campagne Ester, 2014 [13] Loïc Vial, Benjamin Lecouteux, Didier Schwab «Approche supervisée base de cellules LSTM bidirectionnelles pour la désambiguïsation lexicale», 2018 [14] Maud Ehrmann, «Les entités nommées, de la linguistique au TAL», PhD thesis, Paris 7, 2008 [15] Miftah Nina, Ataa Allah Fadoua, Taghbalout Imane, «Corpus multilingues pour les langues peu», 2016 [16] Moro A., Raganato A., Navigli R., «Entity Linking meets Word Sense Disambiguation: a Unified Approach», Transactions of the Association for Computational Linguistics (TACL), vol.2, p 231-244, 2014 [17] Rapport TALAD, DEFI 8, axe "Révolution numérique", sous-axe"Création et partage des savoirs"PRCE, AAPG ANR 2017 [18] Rrubaa Panchendrarajan, Aravindh Amaresan, «Bidirectional LSTM-CRF for Named Entity Recognition», 32nd Pacific Asia Conference on Language, Information and Computation, Hong Kong, December 2018 [19] Romaric Besanỗon, Hani Daher, Olivier Ferret, Hervé Le Borgne, France, «Utilisation des relations d’une base de connaissances pour la désambiguïsation d’entités nommées», France, 2016 [20] https://scikit-learn.org/stable/modules/generated/sklearn.metrics [21] Solenn Le Pevedic et Denis Maurel, «Retour sur les annotations des entités nommées dans les campagnes dộvaluation franỗaises et comparaison avec la TEIằ, 2016 [22] Thierry Hamon, «Fouille de textes Reconnaissance des entités sémantiques», Notes de cours, 2016 [23] Yoann Dupont, Marco Dinarelli, Isabelle Tellier, "Réseaux neuronaux profonds pour l’étiquetage de séquences, 2017" [24] Zhiheng Huang, Wei Xu, Kai Yu, «Bidirectional LSTM-CRF Models for Sequence Tagging», Août 2015 50 Annexe A Annexe A.1 Extraction des entités nommées Par annexe vous comprenez le détail des données utilisées ainsi que ces outils qui nous ont conduits bien porter le choix Cette présentation des résultats est l’un de continuité d’un travail que je me suis mis exploiter dès le début de mon stage Cidessous le tableau A.1 des entités nommées les plus repérées — SEM semble a vu de nez avoir une bonne précision, mais un rappel faible — Polyglott ne donne pas la nature des entités (pers, loc, ) — Scpacy semble être le plus performant, il ne me semble pas avoir vu de gros défauts, on pourrait s’appuyer sur ces résultats pour la suite — Dbpedia spotlight présente l’avantage de lier les entités entre elles, mais il fait des erreurs importantes, y compris pour une confiance de 0.9 Ce résultat permis de projeter l’étude sur le réseau de neurones mais c’est assez lourd manoeuvrer et demande beaucoup de connaissances transverses Parfois si on divise par interviewé on obtient que des résultats qui auraient été prévisibles (eg : FN immigration, FI riches/puissants ) On pourrait en revanche comparer la diversité des thèmes abordés par personnes (qui met sur la table le plus de sujet différents ), mais les thèmes abordés dépendent plus du journaliste que de l’interviewé (beaucoup de guidage dans les questions) On peut aussi essayer de creuser par média (105 différents) ou par interviewer/euse (271 différents) Exemple thèmes les plus abordés par les médias publics/privés On a aussi vu qu’il était possible de travailler sur la temporalité Peut-être on peut essayer de regarder un peu les thèmes en fonction des tranches horaires de l’interview Pour info : — 08h : 62 interviews — 09h : 906 interviews — 10h : 865 interviews — 11h : 809 interviews 51 ANNEXE A ANNEXE Les entités Nommées les plus repérées SEM MXS Simple 190017 301907 entités entités Spacy 326887 entitộs Polyglott 217440 entitộs 11009 Franỗais LOC 16225 France 17634 France Location 9804 Franỗais pers 17547 aujourdhui 10812 Emmanuel Macron PER 8663 Franỗois Fillon 10929 Emmanuel Macron Person 9433 France loc 14986 France 8736 Franỗois Fillon PER 8288 Rộpublique 8753 Franỗois Fillon Person 8708 Franỗois Fillon pers 5502 gauche 8434 la France LOC 4372 Franỗois Hollande 5596 Europe Location 8676 Emmanuel Macron pers 5417 Europe 7715 Ça MISC 1660 Ben 4804 Marine Le Pen Person 7503 gouvernement org 3342 matin 6630 France LOC 4201 Emmanuel 4757 Franỗois Hollande Person 7268 gauche org 2844 droite 5336 État LOC 4106 Est 4191 Front national Organization 6951 droite org 2602 Paris 4747 Franỗois Hollande PER 3852 Front national 3611 Nicolas Sarkozy Person 6236 France org 1722 Aujourd’hui 4378 Jean PER 3433 Nicolas Sarkozy 3354 Jean-Luc Mélenchon Person 4771 Marine Le Pen pers 1315 Union européenne 4037 Front national ORG 3154 Emmanuel Macron 2925 Benoợt Hamon Person 4652 Franỗois Hollande pers 1156 demain 3607 Nicolas Sarkozy PER 3152 Jean - Luc Mélenchon 2900 Manuel Valls Person 4510 président de la République func 1066 Assemblée nationale TABLE A.1 – Extraction des entités nommées — 12h : 425 interviews — 13h : 68 interviews 52 MXS FGA 67727 ANNEXE A ANNEXE — 14h : 16 interviews — 15h : interviews — 16h : interviews Concernant migrant/réfugiés, on pourrait exploiter le contraste si on se base sur la visualisation du nombre de mentions en fonction du temps (voir A.3) En revanche, on pourrait peut-être creuser le contraste en fonction du contexte avec lequel le mot est employé en fonction du groupe politique de l’interviewvé-e Le tableau A.2 correspond aux mots les plus fréquents utilisés sur une fenêtre de 10 mots (contexte gauche et droit sans avoir fait la distinction interviewer-euse/interviewvé-e, sans mots vides) Les mots ont été récupérés via une regex (pas de sens eg : “Ryanair aussi, souvenez-vous, qui, justement s’était réfugiée ”) Voici les graphes obtenus pour l’étude du nombre de mention en fonction du temps Il semble que l’intervalle de temps étudié est trop petit pour apercevoir une évolution de pratique langagière 53 ANNEXE A ANNEXE A.2 Extrait de codes A.2.1 Script de liaison des données import os , json , re , codecs , sys , collections , math , wikiapi , string , glob dicospath = os environ get ( ’ DICOS_PATH ’) json_data = {} wiki = wikiapi WikiApi ({ ’ locale ’: ’ fr ’ }) json_files = ’/ home / zagabe / dico / ’ 10 11 12 13 def cut_word ( content ) : text = re sub ( " [^ a - zA - Z ] " , " " , content ) words = text lower () split () # stops = set ( stopwords words ( ’ french ’) ) tags = [ w for w in words ] return ( tags ) 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 def merge_tag ( tag1 = None , tag2 = None ) : v1 = [] v2 = [] tag_dict1 = collections Counter ( tag1 ) tag_dict2 = collections Counter ( tag2 ) merged_tag = set () for it in tag_dict1 keys () : merged_tag add ( it ) for item in tag_dict2 keys () : merged_tag add ( item ) for i in merged_tag : if i in tag_dict1 : v1 append ( tag_dict1 [ i ]) else : v1 append (0) if i in tag_dict2 : v2 append ( tag_dict2 [ i ]) else : v2 append (0) return v1 , v2 35 36 37 def dot_product ( v1 , v2 ) : return sum ( a * b for a , b in zip ( v1 , v2 ) ) 38 39 40 def magnitude ( vector ) : return math sqrt ( dot_product ( vector , vector ) ) 41 42 43 def similarity ( v1 , v2 ) : return dot_product ( v1 , v2 ) / ( magnitude ( v1 ) * magnitude ( v2 ) + 00000000001) 44 45 def approxMatch ( s1 , s2 , l ) : 54 ANNEXE A ANNEXE 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 if s1 == s2 : return True elif l > 0: excludes = string punctuation + ’ \ t \ n ’ s1 = ’ ’ join ( c for c in s1 if c not in excludes ) s2 = ’ ’ join ( c for c in s2 if c not in excludes ) # print ( s1 , s2 ) if s1 == s2 : return True elif l > 1: s1 = ’ ’ join ( c for c in s1 if c in string ascii_letters ) lower () s2 = ’ ’ join ( c for c in s2 if c in string ascii_letters ) lower () if s1 == s2 : return True elif l > 2: s1 = ’ ’ join ( c for c in s1 if c not in string digits ) s2 = ’ ’ join ( c for c in s2 if c not in string digits ) if s1 == s2 : return True elif l > 3: if s1 in s2 or s2 in s1 : return True elif l > 4: return True 70 71 72 73 74 75 76 77 78 79 def nameBestMatches ( entity , titles ) : matches = [] l = while not len ( matches ) : for title in titles : if approxMatch ( entity , title , l ) : matches append ( title ) l += return matches 80 81 82 83 84 85 86 87 88 89 90 91 92 93 def get_wikilinks ( entity , content ) : url = None # results = wiki find ( n strip () ) results = wiki find ( entity ) if results and len ( results ) : results = nameBestMatches ( entity , results ) if len ( results ) > 1: dico_simi = {} for title in results : article = wiki get_article ( title ) summary = article content tag1 , tag2 = cut_word ( summary ) , cut_word ( content ) v1 , v2 = merge_tag ( tag1 , tag2 ) 55 ANNEXE A ANNEXE 94 95 96 97 98 simi = similarity ( v1 , v2 ) dico_simi [ article ] = simi return max ( dico_simi , key = lambda k : dico_simi [ k ]) url else : return wiki get_article ( results [0]) url 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 # ici c ’ est la fonction qui extrait les # d o n n e s json et sur wikiapi def extract_data () : data = dicospath + " / links json " dico = {} lines = [ line for line in codecs open ( data ) ] js = [ json loads ( line ) for line in lines ] for person in js : if " fullName " and " wikipediaUrl " in person : fullName = person [ " fullName " ] wikiUrl = person [ " wikipediaUrl " ] dico [ fullName ] = wikiUrl if " lastName " in person : lastName = person [ " lastName " ] dico [ lastName ] = wikiUrl return ( dico ) 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 # ici on definit une fonction # qui lit dans un repertoire donner # par le user , si la variable rep est vide # alors un chemin par defaut lui est a t t r i b u def e x t r a c t _ d a t a _ f r o m _ j s o n _ f i l e s ( rep = " " ) : # on r e c u p r e la liste de fichiers json dico ={} if rep == " " : rep = json_files fichiers = glob glob ( rep + ’* json ’ ) for fic in fichiers : ent = os path basename ( fic ) # clename = ent split (".") # ne = name [0] print ( " voici les fichier : " ,fic , " - " , ent ) with open ( fic ) as json_data : data_dict = json load ( json_data ) for obj in data_dict : cl = list () for c in obj keys () : cl append ( c ) if cl [0]== " lien " : dico [ obj [ cl [1]]]= obj [ cl [0]] else : dico [ obj [ cl [0]]]= obj [ cl [1]] return dico 144 145 def trouver_la_cle ( target = " " , dico_cle ={}) : 56 ANNEXE A ANNEXE for k in dico_cle keys () : if re match ( r ’\ g ’+ target + ’ ’ ,k ) != None : return dico_cle [ k ] 146 147 148 149 return None # elif target lower () in k : # return dico_cle [ k ] # elif target capitalize () in k : # return dico_cle [ k capitalize () ] 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 def identifier_NEs ( content ) : data_reference = e x t r a c t _ d a t a _ f r o m _ j s o n _ f i l e s ( dicospath ) # extract_data () names = re findall ( r ’ < pers *? >.*? ’ , content ) if names : for name in names : link = None entity = re search ( r ’ < pers *? >(.*?) ’ , name ) group (1) strip () entity = re sub ( ’ + ’ , ’ ’ , re sub ( ’ ]* > ’ , ’ ’ , entity ) strip () ) ref = trouver_la_cle ( data_reference ) if ref != None : link = ’" ’ + ref + ’" ’ 168 else : print ( " voici la valeur de ref : " , ref ) url = get_wikilinks ( entity , content ) if url != None : link = ’" ’ + url + ’" ’ try : old = re compile ( name ) except : pass if link : new = " < pers link ={} >{} " format ( link , entity 169 170 171 172 173 174 175 176 177 178 179 ) 180 181 content = old sub ( new , content ) return content 182 183 print ( identifier_NEs ( sys stdin read () ) ) Listing A.1 – Script de liaisons des données dans mXS A.2.2 Extrait de script récupération des entités via Dbpédia 57 ANNEXE A ANNEXE F IGURE A.1 – bilan dpedia 58 ANNEXE A ANNEXE F IGURE A.2 – Tableau des mots de Parti politique les plus fréquents F IGURE A.3 – Graphes des mentions Migrant et Réfugié 59 ANNEXE A ANNEXE F IGURE A.4 – Graphes des mentions pondérées F IGURE A.5 – Nuages de mots d’un parti politique France Insoumise 60 ANNEXE A ANNEXE F IGURE A.6 – Nuages de mots d’un parti politique LaREM F IGURE A.7 – Nuages de mots d’un parti politique Front National 61 ANNEXE A ANNEXE F IGURE A.8 – Script python-sparql via dbpedia 62 ANNEXE A ANNEXE 63 ... niveau des couches cachées" 2.4.1 Réseau de neurones pour la reconnaissance et désambiguïsation des entités nommées Selon (Vial et al, 2018), les travaux de (Chan et al., 2007 ; Zhong et Ng,... (java) Description Il permet aux utilisateurs d’ajouter des annotations linguistiques pour le texte, y compris des limites de forme et de phrases, des parties de discours, des entités nommées, etc... représentent des objets du monde réel tels que des personnes, des lieux, des organisations, etc., souvent désignés par des noms propres La notion d’entité nommée est apparue lors des conférences