Systèmes de Questions-Réponses en Domaine Ouvert
Transcription
Systèmes de Questions-Réponses en Domaine Ouvert
Université de Nantes Rapport de Stage de Master 2 ATAL Systèmes de Questions-Réponses en Domaine Ouvert Auteur : Emmanuel Turbé Responsable Laboratoire : Philippe Leray Responsable Formation : Colin de la Higuera 7 juillet 2015 Table des matières Remerciements 3 1 Introduction 4 2 Cadre de travail 2.1 Laboratoire d’Informatique de Nantes Atlantique (LINA) . . 2.2 Équipe Data User Knowledge (DUKe) . . . . . . . . . . . . . 2.3 CogniTalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 3 Problématique 7 4 Étude de l’art académique 4.1 Outils du traitement automatiques de la langue . . . . . . . . 4.1.1 Étiquetage morphosyntaxique . . . . . . . . . . . . . . 4.1.2 Analyse en dépendances . . . . . . . . . . . . . . . . . 4.1.3 Reconnaissance des entités nommées . . . . . . . . . . 4.1.4 Mesures de similarité . . . . . . . . . . . . . . . . . . . 4.2 Ingénierie des connaissances . . . . . . . . . . . . . . . . . . . 4.2.1 Ontologies . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Web Sémantique . . . . . . . . . . . . . . . . . . . . . 4.2.3 Bases de connaissances . . . . . . . . . . . . . . . . . . 4.3 Architecture des systèmes de questions-réponses sur des données textuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Analyse du type de réponse attendu . . . . . . . . . . 4.3.2 Liens . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Architecture des systèmes de questions-réponses sur des données structurées . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Analyse de la question . . . . . . . . . . . . . . . . . . 4.4.2 Segmentation de la question . . . . . . . . . . . . . . . 4.4.3 Détection des relations . . . . . . . . . . . . . . . . . . 4.4.4 Mapping des éléments de la question avec la base de connaissances . . . . . . . . . . . . . . . . . . . . . . . 4.4.5 Résolution et requête . . . . . . . . . . . . . . . . . . . 4.5 Évaluations et Benchmarks . . . . . . . . . . . . . . . . . . . 4.5.1 Compétitions . . . . . . . . . . . . . . . . . . . . . . . 4.5.2 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3 Génération de Benchmark . . . . . . . . . . . . . . . . 1 8 8 8 8 9 10 11 11 12 13 14 14 16 16 17 17 19 19 20 20 20 21 22 5 Étude des systèmes existants 5.1 Introduction . . . . . . . . . . . 5.2 Systèmes purement linguistique 5.2.1 Squall2SPARQL . . . . 5.2.2 Casia . . . . . . . . . . 5.2.3 TBSL . . . . . . . . . . 5.2.4 ISOFT . . . . . . . . . . 5.3 Systèmes hybrides . . . . . . . 5.3.1 DEANNA . . . . . . . . 5.3.2 Xser . . . . . . . . . . . 5.3.3 gAnswer . . . . . . . . . 5.3.4 Casia v2 . . . . . . . . . 5.4 Systèmes non linguistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Contributions 6.1 1er prototype de système de questions-réponses . . . . . 6.1.1 Spécifications . . . . . . . . . . . . . . . . . . . . 6.1.2 Conception . . . . . . . . . . . . . . . . . . . . . 6.1.3 Bibliothèques logicielles utilisées . . . . . . . . . 6.1.4 Résultats . . . . . . . . . . . . . . . . . . . . . . 6.1.5 Analyse des erreurs . . . . . . . . . . . . . . . . . 6.2 Génération de questions . . . . . . . . . . . . . . . . . . 6.2.1 Protocole de génération des questions . . . . . . 6.2.2 Corpus Wikipedia . . . . . . . . . . . . . . . . . 6.2.3 Algorithme de génération de questions . . . . . . 6.2.4 Résultats . . . . . . . . . . . . . . . . . . . . . . 6.3 Réseaux Logiques de Markov . . . . . . . . . . . . . . . 6.3.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . 6.3.2 Principe . . . . . . . . . . . . . . . . . . . . . . . 6.3.3 Expériences . . . . . . . . . . . . . . . . . . . . . 6.4 2ème prototype : à partir de Réseaux Logiques de Markov cours de développement) . . . . . . . . . . . . . . . . . . 6.4.1 Approche . . . . . . . . . . . . . . . . . . . . . . 6.4.2 Ressources de Mapping . . . . . . . . . . . . . . 6.4.3 Résultats . . . . . . . . . . . . . . . . . . . . . . 7 Conclusions et perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (en . . . . . . . . . . . . 23 23 23 23 23 23 24 24 25 25 25 25 26 28 28 28 28 30 31 32 33 33 34 34 34 35 35 36 36 37 37 37 38 39 2 Remerciements Je souhaite remercier toutes les personnes qui m’ont aidé et accompagné durant ce stage. Je remercie Stefan Knerr, fondateur de Cognitalk, pour l’opportunité qu’il m’a donné de travailler sur un projet passionnant ainsi que pour tous les conseils et remarques qu’il a pu faire. Merci également à François-Marie et Benjamin de Cognitalk pour leur bonne humeur. Je remercie également Philippe Leray, mon encadrant au laboratoire, pour son accompagnement lors de ce stage et son soutien. Enfin j’adresse également mes remerciements à tous les membres de l’équipe DUKe pour leur accueil. 3 1 Introduction Depuis les débuts de l’informatique, un souhait récurrent est de pouvoir parler avec la machine. Cette vision apparaît dans la culture populaire que ce soit dans la littérature, le cinéma ou les jeux vidéos entre autres. Avec par exemple Samantha dans Her de Spike Jonze ou avec Cortana dans les jeux vidéos Halo. Mais de telles interfaces de communications avec la machine n’existent pas encore. Récemment de nombreux projets industriels ont commencé à obtenir des résultats intéressants en passant par les systèmes de questions-réponses. Parmi ces projets, nous retrouvons Watson d’IBM, Siri d’Apple et Google Now de Google par exemple. Mais il n’existe toujours pas d’interface conversationnelle. Créer une interface conversationnelle est l’objectif de Cognitalk, une jeune start-up nantaise. Le stage que j’ai réalisé est en partenariat avec celle-ci. Le stage a eu lieu de février à juillet 2015 et était un partenariat entre l’équipe DUKe du LINA et Cognitalk. Il avait pour thème principal les systèmes de questions-réponses. Philippe Leray a été mon encadrant au sein du laboratoire et Colin de la Higuera mon tuteur de formation. Le stage avait plusieurs objectifs. Le premier était de réaliser un état de l’art sur les systèmes de questions-réponses. Le deuxième était de réaliser des preuves de concepts de systèmes de questions-réponses. Enfin le dernier objectif était de proposer un système qui pouvait être enrichi avec des connaissances sur l’utilisateur. Ce rapport est organisé comme suit. Premièrement le cadre de travail sera présenté. Ensuite nous détaillerons les problématiques autours des systèmes de questions-réponses. En suite nous verrons l’état de l’art des systèmes de questions-réponses. Après nous étudierons les systèmes existants s’appuyant sur des données structurées de manière détaillée. Enfin nous parlerons des contributions produites et nous conclurons. 4 2 Cadre de travail Le stage se place dans le cadre d’une collaboration entre l’équipe Data User Knowledge (DUKe) du Laboratoire d’Informatique de Nantes Atlantique (LINA) et la start-up Cognitalk. 2.1 Laboratoire d’Informatique de Nantes Atlantique (LINA) Le laboratoire d’informatique de Nantes Atlantique est un laboratoire de recherche en informatique. Il est adossé à l’Université de Nantes, à l’école des Mines de Nantes ainsi qu’au CNRS. Une collaboration avec Inria existe également depuis 2012. La recherche y est focalisée autour de cinq thèmes scientifiques : — Contraintes et optimisation : équipes OPTI et TASC — Science des données : équipes DUKe et GDD — Logiciels et systèmes répartis : équipes AeLos, ASCOLA, ATLANMOD et GDD — Ressources et applications multilingues : équipe TALN — Bio-informatique : équipes ComBi et DUKe 2.2 Équipe Data User Knowledge (DUKe) Le stage a eu lieu dans l’équipe Data User Knowledge (DUKe) du laboratoire d’informatique de Nantes Atlantique (LINA), dans leurs bureaux à Polytech Nantes, sous la supervision de Philippe Leray. L’équipe est spécialisée dans la science des données. La science des données recouvre les problématiques d’acquisition, de stockage, d’interrogation et de découverte de connaissances. L’équipe est composée de 17 permanents, 4 associés, 11 doctorants et 6 ingénieurs. Phillipe Leray, mon encadrant, est spécialisé dans les représentations graphiques probabilistes telles que les réseaux bayésiens et les PRM (Probabilistic Relational Models) par exemple. Les bureaux de cette équipe sont répartis entre la faculté des sciences et techniques et Polytech Nantes. 2.3 CogniTalk Cognitalk est une jeune start-up fondée en Octobre 2014 situé au Hub Créatic à deux pas de Polytech. L’objectif de l’entreprise est de créer une nouvelle manière d’interagir avec la machine par le biais d’un agent conversationnel. Pour cela l’entreprise s’appuie sur des techniques de machine lear- 5 ning. Elle a été fondée par Stefan Knerr, un spécialiste des réseaux de neurones, qui a déjà connu le succès avec sa précédente entreprise, MyScript spécialisée dans les outils de reconnaissance de l’écriture manuscrite. L’équipe à la fin de ce stage comportait quatre personnes : — Stefan Knerr, le fondateur ; — François-Marie Giraud, un ingénieur de recherche en machine learning et traitement automatique du langage naturel qui a travaillé au LIP6 ; — Benjamin Maréchal, ingénieur de recherche qui a une double formation en mathématiques et machine learning ; — Jérémy Morvan également ingénieur de recherche. 6 3 Problématique L’objectif de ce stage en collaboration entre le Lina et Cognitalk est de fournir un état de l’art et des preuves de concepts autour des systèmes de questions-réponses. Un système de questions-réponses est un système qui pour une question en langage naturel en entrée, répond à l’utilisateur avec la bonne réponse. Par exemple, à la question "Quelle est la capitale de la France" la réponse attendue est "Paris" voir la figure 1. "Quelle est la capitale de la France" Système de Questions Réponses "Paris" Figure 1 – Systèmes de questions-réponses Le sujet est ancien [Green Jr et al., 1961] [Simmons et al., 1964]. Il a été remis au goût du jour avec le projet IBM Watson[Ferrucci et al., 2010] et les systèmes vocaux sur smartphone avec Siri et Google Now. Dans le cadre de ce stage les questions posées au système seront sous la forme de texte, un module de reconnaissance vocale pouvant se brancher sur le système. Les réponses seront trouvées dans une base de connaissances structurée. La langue traitée sera l’anglais. Un système de questions-réponses permet à l’utilisateur d’interagir de manière naturelle avec l’ordinateur. Il permet également de gagner du temps par rapport aux moteurs de cherche classique en déléguant à la machine la partie évaluation des documents restitués et la récupération du fragment contenant l’information. 7 4 Étude de l’art académique Dans cette section nous ferons des rappels sur sur différents aspects du traitement des langues et les bases de connaissances. Ensuite nous détaillerons l’architecture des systèmes de questions-réponses, d’abord avec des données textuelles comme ressources puis avec des données structurées. 4.1 4.1.1 Outils du traitement automatiques de la langue Étiquetage morphosyntaxique L’étiquetage morphosyntaxique est une tâche de linguistique qui consiste, dans un texte, à associer à chaque mot les informations grammaticales qui le concerne. Les inforations grammaticales sont par exemple la partie du discours (nom, verbe, . . . ), le genre, le nombre, . . . Comme on peut le voir avec l’exemple 4.1. Exemple 4.1 "The cat jumps on the table." devient "The/Déterminant cat/Nom jumps/Verbe à la 3ème personne on/Préposition the/Déterminant table/Nom." Ce processus peut être réalisé par un programme de manière automatique. Pour ce faire, il existe deux familles de techniques, celle basées sur les règles et les approches stochastiques. De nombreux outils sont disponibles (avec différentes licences) comme par exemple Treetagger 1 , Brill tagger 2 , Stanford Core NLP 3 , . . . 4.1.2 Analyse en dépendances L’analyse en dépendances d’une phrase a pour but de trouver la structure des relations entre les mots de celle-ci. L’idée derrière cette analyse est que chaque mot d’une phrase est relié à un autre par une relation de dépendance. Cette idée est issue des travaux de Mel’čuk [Mel’čuk et Polguere, 1987]. Le résultat d’une analyse en dépendance est un graphe orienté dont les arcs portent le nom de la relation. Exemple 4.2 "The cat jumps on the table" 1. http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/ 2. http://www.cs.cmu.edu/Groups/AI/areas/nlp/parsing/taggers/brill/0.html 3. http://nlp.stanford.edu/software/corenlp.shtml 8 ROOT pobj nsubj det The cat prep jumps det on the table . Figure 2 – Analyse en dépendance pour la phrase "The cat jumps on the table" L’exemple 4.2 montre l’analyse en dépendance pour la phrase "The cat jumps on the table". Le verbe jump est la racine du graphe. Il a deux mots qui dépendent de lui "cat" avec la relation de sujet (nsubj) et "on" avec la relation de préposition. Le mot "table" dépend de "on" avec la relation objet (pobj). Selon la variante d’analyse en dépendance, les relations avec les prépositions peuvent être portées par le verbe. On parle d’analyse en dépendance profonde. L’analyse en dépendances repose sur des ressources linguistiques de haut niveau, où les mots sont représentés dans un dictionnaire par un ensemble de fonctions dont le nombre et le type de paramètres sont explicités. 4.1.3 Reconnaissance des entités nommées La reconnaissance des entités nommées est une tâche du domaine de l’extraction d’information. La tâche consiste à extraire dans les phrases, les éléments (mot ou groupe de mots) catégorisables dans des classes prédéfinies. Ces classes sont en général les suivantes : — Personne — Organisation — Lieu — Date — Montant et quantité L’exemple 4.3 montre le résultat d’une détection d’entités nommées sur la phrase "François Hollande is the 24th and current President of France, since 2012". Exemple 4.3 "François Hollande is the 24th and current President of France, since 2012." devient après utilisation d’un détecteur d’entités nommées : "François Hollande/Personne is the 24th/Ordinal and current/Date President of France/Lieu, since 2012/Date." 9 Il est également courant de créer des hiérarchies de classes avec, par exemple, pour les lieux une distinction entre les villes et les régions. Les systèmes de question-réponse utilisent souvent la reconnaissance d’entités nommées avec des hiérarchie de plusieurs dizaines de classes. Pour aller plus loin que ce que font les détecteurs d’entités nommées, une action de désambiguïsation ajoute, en plus du type d’entités, le lien vers la ressource Wikipedia correspondante. La difficulté ici est l’ambiguïté de l’entité détectée. L’exemple 4.4 issu de Wikipedia 4 montre bien cette difficulté. Il faut que Michael Jordan soit lié à la page du chercheur et non à celle du sportif. De la même manière Berkeley représente l’université de Berkeley dans cette phrase et non la ville bien que ce ne soit pas entièrement faux. Exemple 4.4 Michael Jordan/Personne is professor at Berkeley/Organisation. 4.1.4 Mesures de similarité Les mesures de similarités vont calculer la proximité entre deux mots ou groupes de mots. L’une des mesures les plus utilisées est celle du cosinus. Elle est basée sur la représentation vectorielle des mots. Sa formule est visible dans l’équation 1. n P cos(θ) = s Ai × B i s n n P P A2i × Bi2 i=1 i=1 (1) i=1 C’est le produit scalaire des vecteurs de chacun des mots. Si deux mots ont les mêmes contexte le cosinus sera de 1, au contraire s’ils n’ont rien en commun le résultat sera 0. Pour obtenir une représentation vectorielle des mots, une technique simple, basée sur le principe que l’on reconnaît un mot par son voisinage, est de compter les occurrences des voisins dans une fenêtre donnée dans un corpus. Une autre manière d’obtenir une représentation vectorielle est d’utiliser 4. http://en.wikipedia.org/wiki/Named-entity_recognition#Current_ challenges_and_research 10 Word2vec 5 . Word2vec est outil basé sur la représentation continue des sac de mots [Mikolov et al., 2013]. Une autre mesure très utilisée est la mesure Jaccard. Comme pour la mesure cosinus, il faut entraîner des vecteurs sur un corpus. Pour comparer deux vecteurs A et B voir la formule 2. Le résultat est donc le nombre d’éléments communs à A et B divisés par le nombre total d’éléments différents. J(A, B) = |A ∩ B| |A ∪ B| (2) Des mesures de similarités basées sur Wordnet existent également. Wordnet 6 est une base de données lexicale développée par des linguistes de l’université de Princeton. Elle contient des hiérarchies de synsets qui est l’unité de base de cette ressource. Un synset est un ensemble de mots synonymes avec la même classe grammaticale. La structure hiérarchique permet donc d’obtenir les hyperonymes et les hyponymes facilement. La branche la plus dense de Wordnet est celle des noms. Parmi les mesures de similarité, il y a — [Hirst et St-Onge, 1998] — [Leacock et Chodorow, 1998] — [Banerjee et Pedersen, 2002] — [Wu et Palmer, 1994] — [Resnik, 1995] — [Jiang et Conrath, 1997] — [Lin, 1998] Toutes ces mesures sont testables sur WN4J Demo qui est un site développé par Hideki Shima. Le site fourni aussi le code source Java 7 utilisé mais la version de démonstration comporte des corrections non disponibles dans la bibliothèque à disposition. 4.2 4.2.1 Ingénierie des connaissances Ontologies En informatique, une ontologie sert à représenter les connaissances d’un domaine. Elle est représentée par un graphe qui se compose de plusieurs éléments et caractéristiques : 5. https://code.google.com/p/word2vec/ 6. https://wordnet.princeton.edu 7. https://code.google.com/p/ws4j/ 11 — classes — propriétés — structure hiérarchique — relations sémantiques — instances — axiomes Les classes sont les éléments hiérarchiques. Par exemple la classe humain est une sous-classe de mammifère. Le schéma de la figure 3 montre un exemple de structure de connaissances. La population d’une ontologie est le fait d’ajouter de nouvelles instances à celle-ci en gardant la structure des concepts déjà établie. L’enrichissement d’une ontologie est l’ajout ou la modification des relations, des propriétés et des concepts. Anne Hidalgo Type Mayor Paris Party Parti Socialiste (France) Person Figure 3 – Exemple de structure de connaissances 4.2.2 Web Sémantique Le web sémantique [Berners-Lee et al., 2001] est un mouvement qui cherche à structurer les connaissances du web, afin que celles-ci soient accessibles pour différentes applications. Pour cela, le web sémantique s’appuie sur les technologies de l’ingénierie des connaissances, principalement sur les ontologies. Les connaissances sont organisées en triples RDF dont la forme est sujet, prédicat, objet. Les bases de données sont interrogeables avec le langage de requêtes SPARQL. Par exemple dans la figure 3, un des triple serait Paris(sujet), Mayor(prédicat) et Anne Hidalgo (objet). Tim Berners-Lee est à l’initiative de ce projet soutenu par le W3C. 12 4.2.3 Bases de connaissances Il existe plusieurs bases de données sémantiques disponible sur le web. Le noyau du web sémantique est dbpedia [Auer et al., 2007] qui a été construit à partir des infobox de Wikipedia 8 . Dbpedia, comme Wikipedia, a des ressources dans plusieurs langues. En 2014, la base de donnée représentait un ensemble de : — 4,58 million entités — 3 milliards de triples RDF En étant basée sur Wikipedia, Dbpedia est donc un projet participatif. Le projet YAGO [Suchanek et al., 2007] est une extension de Dbpedia qui l’enrichie de 41,2 million données de classes. Une autre grande base de donnée sémantique est Freebase 9 . Elle est issue de la société Metaweb racheté par Google en 2010. Elle est utilisé par Google pour son Knowledge Graph 10 . Et sert de base pour la construction de son Knowledge Vault[Dong et al., 2014]. Initialement créée par une entreprise, elle est maintenant enrichie de manière participative. Le 31/03/2015, la base est verrouillée en lecture seule et ne sera plus accessible dans sa forme actuelle le 30/06/2015. L’ensemble des données est transféré au projet Wikidata. Wikidata est le dernier projet de la fondation Wikimedia. L’objectif de Wikidata est de créer une base de connaissance qui va servir à l’enrichissement de Wikipedia. Pour cela, les articles de Wikipedia intégreront des liens vers les données Wikidata. Cela permet de mettre à jour automatiquement les données des articles dans différentes langues sans avoir à éditer chacun de ceux-ci à la main et donc avoir une plus grande rapidité dans la propagation de l’information. Wikidata est donc une base récente mais déjà riche grâce à sa fusion avec Freebase. Il existe de nombreuses autres bases de connaissances, que ce soit dans le linked data avec par exemple la base LMDB spécialisé dans les films et musicbrainz spécialisé dans la musique, . . . 8. https://www.wikipedia.org 9. https://www.freebase.com 10. http://en.wikipedia.org/wiki/Knowledge_Graph 13 4.3 Architecture des systèmes de questions-réponses sur des données textuelles Dans cette section, nous nous intéresserons aux systèmes de questionsréponses dont les résultats sont extraits de documents textes, le plus souvent issue du web. Seules les approches sur des domaines ouverts seront vu. Pour rappel, on considère que le domaine est ouvert s’il est possible de poser une question sur n’importe quel sujet. L’architecture de ce type de systèmes est de manière générale la suivante : 1. Analyse du type de réponse attendu 2. Génération de la requête pour la recherche de document 3. Recherche des documents pertinents 4. Recherche des passages pertinents 5. Extraction de la réponse Un schéma de l’architecture est visible sur la figure 4. 4.3.1 Analyse du type de réponse attendu Un des composants importants des systèmes de questions-réponses est celui qui analyse le type de réponse attendu. Le type de réponse attendu est le résultat d’une classification dans une taxonomie de type de réponses possible. Connaître le type de réponse attendu permet d’améliorer la recherche de la réponse et de valoriser des candidats à la fin du processus d’extraction de la réponse. Exemple 4.5 Pour la question "qui a écrit le seigneur des anneaux ? ", le type de réponse attendu pourra être "une personne" ou si la taxonomie est plus précise "un auteur". Li and Roth fournissent dans leur article [Li et Roth, 2002] une taxonomie à deux niveaux, le premier avec 6 classes principales et un second qui comporte cinquante classes. Un dataset avec des questions labellisées est fourni pour l’apprentissage 11 . Mais les systèmes de questions-réponses utilisent souvent plus de classes dans leurs taxonomies, en allant parfois jusqu’à plusieurs milliers de classes. Pour identifier le type de réponse attendu, il existe trois approches possibles. 11. http://cogcomp.cs.illinois.edu/Data/QA/QC/ 14 Système de Questions-réponses Question en Langage Naturel Recherche d'informations Detection du type de réponse Récupération des documents Génération de la requête Analyse de la question Documents Indexation Documents Récupération des passages Type de réponse Passages Génération de la réponse Réponse Figure 4 – Architecture système de questions-réponses sur des documents textuels 15 La première est par heuristiques, c’est à dire à l’aide de règles définie par un expert. Cette approche est donc coûteuse et difficilement évolutive. Mais elle permet une grande précision quand les règles sont utilisables mais n’est pas robuste. La deuxième approche est d’utiliser de l’apprentissage automatique à l’aide de corpus annoté. Cette approche permet une meilleur couverture des différentes question possible mais est moins précis que l’approche par heuristique. La dernière approche est celle qui donne les meilleurs résultats. C’est l’approche hybride qui combine les deux approches précédentes. Des heuristiques sont créées pour être utilisées comme feature des algorithmes d’apprentissage. 4.3.2 Liens Pour aller plus loin sur les systèmes de question-réponse basés sur des recherches textuelles, voir les articles [Pasca et Harabagiu, 2001] et [Ferrucci et al., 2010], ainsi que les articles liés à TREC QA 12 4.4 Architecture des systèmes de questions-réponses sur des données structurées De nombreux travaux ont émergé ces dernières années autours des systèmes de question-réponse sur les bases de données de triples RDF, notamment grâce à la compétition QALD (Question Answering over Linked Data)[Unger et al., 2014]. L’objectif de ces systèmes est de profiter du mouvement web sémantique pour obtenir des bases de connaissances riches et exploitables, avec des données de qualité. L’utilisation d’une base de connaissance structuré permet de répondre à des questions complexes pour lesquelles il est difficile pour les approches basées sur des ressources textuelles de répondre. L’architecture de ces systèmes est assez semblable entre les approches et se décompose de la manière suivante : 1. Analyse de la question 12. http://trec.nist.gov/data/qamain.html 16 2. Segmentation de la question 3. Détection des relations 4. Mapping de la question avec la base de connaissances 5. Interrogation de la base Pour plus de détails voir le schéma sur la Figure :5. 4.4.1 Analyse de la question La première étape, comme pour les approches sur les documents textuels, consiste à analyser la question pour obtenir le type de réponse attendu. À la différence des systèmes de questions-réponses basés sur des documents textuels, le type attendu peut être lié à l’ontologie de la base plutôt qu’à une taxonomie créée spécifiquement sur cette tâche. La phase d’analyse de la question permet également de déterminer quel type de requête SPARQL devra être utilisé pour interroger la base. Si une question attend une réponse booléenne alors une requête SPARQL de type ASK est nécessaire. Dans les autres cas, une requête SELECT sera utilisé. 4.4.2 Segmentation de la question L’étape suivante consiste à segmenter la question pour en extraire des unités sémantiques. Plusieurs techniques sont utilisées pour cela. La première consiste à utiliser un détecteur d’entités nommées qui permet de trouver les entités nommées. Les entités nommées sont les éléments les plus simple à associer à une ressource sémantique même s’il peut exister plusieurs candidats possible pour une entité nommée. Les détecteurs d’entités nommées ne sont pas utilisés dans tous les système car il leur est reproché un faible rappel, ce qui dans un contexte court comme dans les questions est préjudiciable pour le reste de la résolution. Pour l’identification des segments correspondants aux relations une analyse sémantique utilisant les arbres de dépendances est souvent utilisée. 17 Système de Questions-réponses Question en Langage Naturel Segmentation Segments Identification des relations Interrogation de la base Graphe de segments Mapping Ressources externes Graphe d'éléments RDF Analyse Structurelle Conversion en Triples Base de données sémantiques Triples RDF Requête SPARQL Résultats requête Detection du type de réponse Type de réponse Traitement des candidats Réponse Figure 5 – Architecture système de questions-réponses sur des bases de données sémantiques 18 4.4.3 Détection des relations L’étape de détection des relation consiste à identifier dans la question comment les segments sont articulés. Une relation peut être vu comme un triple de la forme : Anne Hidalgo , est maire de , Paris. Un ensemble de triples forme un graphe de relations. Dans le cadre d’une question, la relation est incomplète et doit être résolu. L’exemple 4.6 montre le résultat de la décomposition pour la question "In which popular sport the father of Joakim Noah succeded ? " Exemple 4.6 "In which popular sport the father of Joakim Noah succeded ? " — X, is a, Sport — X, is, popular — Y, succeded in X, — Y, is father of, Joakim Noah Pour identifier de telles relations, l’analyse en dépendance est un outil puissant. Cependant il nécessite des ressources linguistiques et ne pourra donc pas être utilisé dans toutes les langues. Pour éviter une analyse en dépendance, longue en temps de traitement et nécessitant des ressources spécifiques, une approche avec des dictionnaires de relations comme avec PATTY [Nakashole et al., 2012] ou ReVerb [Fader et al., 2011] permet de réaliser une autre approche mais avec une précision moindre. 4.4.4 Mapping des éléments de la question avec la base de connaissances Ensuite, il faut mapper les segments avec les ressources des bases de connaissances. Les ressources sont les entités, classes et prédicats. En général chacune de ces ressources sont mappées avec des techniques différentes. L’identification des relations à l’étape précédente permet d’améliorer le mapping. L’approche la plus simple du mapping est celle qui utilise la comparaison des chaînes de caractères de la question avec les labels des entités dans la base de données. Cette approche marche bien pour les entités nommées mais 19 beaucoup moins pour le mapping des relations Il est également possible de constituer des dictionnaires de mapping (pour les entités et les prédicats) comme avec PATTY [Nakashole et al., 2012] par exemple, pour lequel le mapping des relations extraites est déjà réalisé avec 225 prédicats de dbpedia. L’exemple de PATTY impose cependant de constituer des dictionnaires de qualités pour éviter une trop faible précision et la génération de bruits. Pour le mapping des prédicats, il est courant qu’une relation soit exprimée par un hyperonyme ou un hyponyme. Dans ce cas l’utilisation de Wordnet pour le mapping permet d’obtenir de bons résultats. L’utilisation des mesures de similarités permet aussi de réaliser les mappings en cherchant les similarités les plus proches. Il faudra définir un seuil de similarité lors d’expérimentations. 4.4.5 Résolution et requête Enfin la dernière étape consiste à créer les différents triples nécessaires pour générer la requête SPARQL nécessaire à l’interrogation de la base de données. Selon les stratégies employés précédemment, plusieurs candidats peuvent exister pour chacune des étapes. Il faut donc mettre en place des stratégies d’élimination de candidats à chaque étape ou le faire de manière globale. Casia v2 [He et al., 2014] résout l’incertain en fin de processus grâce aux Markov Logic Network. DEANNA [Yahya et al., 2012] le fait avec de l’optimisation linéaire en nombres entiers (Integer Linear Programming) à la fin aussi. Alors que dans Xser [Xu et al., 2014] l’opération d’élimination de candidats est réalisé à chaque étape. 4.5 4.5.1 Évaluations et Benchmarks Compétitions Le sujet des systèmes de questions-réponses sur domaine ouvert a donné lieu à l’organisation de nombreuses compétitions autour de ce sujet. Parmi les plus connues, on retrouve TREC QA qui a eu lieu de 1999 à 2007 qui évalue les systèmes sur des réponses basées sur des documents. Cette compétition faisait partie des campagnes TREC qui s’intéressent particulièrement à la recherche d’information. 20 Les compétitions basées sur les bases sémantiques sont plus récentes. La principale est la compétition QALD qui a lieu depuis 2011. Elle est aujourd’hui organisée dans le cadre de la campagne CLEF qui est aussi axée sur la recherche d’information. La dernière compétition QALD évaluée (QALD-4 [Unger et al., 2014]) a eu lieu en 2014. La prochaine a lieu du 8 au 11 septembre 2015 à Toulouse. La tâche QALD est de répondre à des questions sur domaine ouvert en se basant sur des bases de données sémantique le plus souvent sur dbpédia. Les questions sont multilingues mais peu de participant on essayé de répondre au questions autres que celles en anglais. Les datasets de questions QALD sont disponibles au format XML [Unger, 2013] [Unger, 2014]. 4.5.2 Évaluation Pour évaluer la qualité d’un système de questions-réponses sur des domaines ouvert, il faut un nombre important de question et être capable d’évaluer automatiquement les réponses générées. Il faut donc des données où sont fournies les questions et les réponses. Pour l’évaluation des réponses, il y a quatre manières de procéder. La première manière est l’évaluation par l’humain. L’opérateur indique si oui ou non la réponse est bonne et aussi si elle est cohérente. Exemple 4.7 Question : Où se trouve Paris ? Réponse : en France Si le système répond en Europe pour l’exemple 4.7 , la réponse est cohérente bien que fausse vis-à-vis de l’attendu. Cette évaluation n’est pas réalisable à grande échelle. Mais dans un système avec échange avec l’utilisateur, l’information sur la qualité de la réponse peut être récupéré. C’est le cas pour le système Evi 13 d’Amazon qui permet d’indiquer si la réponse est satisfaisante ou pas. Pour évaluer les systèmes de questions-réponses, la méthode automatique la plus simple est d’avoir un ensemble de questions et leurs réponses. Puis de lancer le systèmes sur ces questions et compter les bonnes réponses. 13. https://www.evi.com 21 Cette technique d’évaluation a l’avantage de pouvoir tester le système sur de grandes échelles de manière automatique. Mais les réponses partielles ou cohérentes ne sont pas prises en compte. Une troisième technique d’évaluation, pour les système qui répondent avec plusieurs candidats, est de calculer le rang d’apparition de la bonne réponse si elle est fournie par le système. Cette évaluation permet de voir l’amélioration globale des systèmes évalués et permet également d’identifier les cas les plus problématiques. La dernière méthode d’évaluation, qui est également pour les systèmes à plusieurs candidats, est le MRR (Mean Reciprocal Rank) dont la formule est la suivante : |Q| MRR = 1 X 1 |Q| ranki i=1 Où ranki est le rang de la bonne réponse parmi les candidats. Ce qui donne pour une bonne réponse en rang 1 MRR= 1. Pour une question dont la réponse est au rang 2 MRR= 0, 5. Dans la pratique au delà du rang 5 le MRR= 0. Cette évaluation permet d’avantager les systèmes dont la réponse est bien placée parmi les candidats. 4.5.3 Génération de Benchmark Pour évaluer les systèmes de question-réponse, il est très utile de pouvoir produire des jeux de questions automatiquement. Michael Heilman s’est intéressé à ce sujet dans sa thèse [Heilman, 2011]. Il propose un outil 14 qui à partir de textes, produit des questions de manière automatique. Les questions produites sont fournies avec la réponse souhaitée. La qualité des questions générées dépend en partie de la qualité du corpus de textes. Dans sa thèse Michael Heilman émet un doute sur la capacité de son programme à générer des questions de bonne qualité à partir de Wikipedia. En effet selon lui, le côté participatif de Wikipedia produit des textes parfois mal formés ou avec un style qui n’avantage pas les techniques utilisées pour la génération de questions. Pour ses expérimentations, Michael Heilman a utilisé principalement les textes de l’encyclopédie Britanica. 14. http://www.ark.cs.cmu.edu/mheilman/questions/ 22 5 Étude des systèmes existants 5.1 Introduction Différents systèmes de questions-réponses existent dans la littérature. Seuls les systèmes sur des données structurées sont étudiés dans cette section. On peut classer ces systèmes dans trois catégories : 1. les systèmes s’appuyant uniquement sur les ressources linguistiques ; 2. les systèmes s’appuyant à la fois sur des ressources linguistiques et du machine learning ; 3. les systèmes s’appuyant uniquement sur des techniques de machine learning Les techniques et outils utilisés par les différents systèmes sont détaillés pour chaque étape (voir section 4.3) du système dans les tableaux 1 à 4. Les performances des systèmes sont visibles dans le tableau 5. 5.2 Systèmes purement linguistique Les systèmes purement linguistique se basent sur les outils du traitement automatique de la langue. Les règles heuristiques y sont très utilisées. 5.2.1 Squall2SPARQL Squall2SPARQL [Ferré, 2013] est un système où les questions sont reformulés en anglais contrôlé : le squall, le mapping vers les ressources sémantiques est donné par l’utilisateur. L’approche se base sur les grammaires de Montague qui utilisent des concepts de la logique. 5.2.2 Casia Casia [He et al., 2013] a une architecture simple qui utilise une architecture en pipeline pour résoudre la question posée. 5.2.3 TBSL TBSL [Unger et al., 2012] utilise d’abord un dictionnaire de mots clés génériques ("give me", "which", . . . ) pour ensuite à l’aide du parse tree choisir un template dont les slots sont remplis avec les éléments en langage naturel. Ensuite ces éléments sont mappés et enfin la meilleur requête exécutée. Avec les templates, TBSL peut gérer les conditions Filter et les agrégations. 23 Système Squall2SPARQL Casia TBSL ISOFT DEANNA Xser gAnswer Casia v2 Segmentation Grammaire de Montague détecteur d’entités nommées ; mots clés fournis ; arbre de dépendances détecteur d’entités nommées ; heuristiques à partir du POS Tag Templates détecteur d’entités nommées ; mots clés fournis ; AIDA ; Arbre de dépendances Heuristiques ; détecteur d’entités nommées dictionnaire Arbre de dépendances Structured Perceptron Arbre de dépendances Heuristiques à partir de la longueur et du POS tag Remarque questions reformulée par l’utilisateur [Hoffart et al., 2011] plusieurs candidats plusieurs candidats Table 1 – Phase de segmentation des différents systèmes 5.2.4 ISOFT ISOFT [Park et al., 2014] est une extension de TBSL où le mapping des ressources et l’analyse de la question ont été modifiés. 5.3 Systèmes hybrides Les systèmes hybrides utilise les outils du traitement des langues combinés à des algorithmes d’apprentissage automatique. Cela permet de gérer l’incertain et de faire apparaître des patterns à partir des données d’apprentissage. 24 Système Squall2SPARQL Casia TBSL ISOFT DEANNA Xser gAnswer Casia v2 Détection des relations Grammaire de Montague Arbre de dépendances Templates Templates Remarque construits à partir du parse tree et d’heuristiques construits à partir de l’arbre de dépendances Arbre de dépendances Phrase DAG parsing Arbre de dépendances Arbre de dépendances en feature Table 2 – Phase de détection des relations des différents systèmes 5.3.1 DEANNA Dans DEANNA [Yahya et al., 2012], l’originalité est l’utilisation d’Integer linear programming pour la gestion des hypothèses lors de la résolution de la question. 5.3.2 Xser Le système Xser [Xu et al., 2014] segmente et calcule les relations entre les segments de manière indépendante de la base de connaissances. Ensuite le mapping est fait avec la base de connaissances choisie. 5.3.3 gAnswer L’approche de gAnswer [Zou et al., 2014] est de considérer le problème du questions-réponses comme un problème de graph-matching. La question est transformée en plusieurs graphes candidats. Le meilleur candidat est considéré comme étant la requête qui donne la réponse. Le système serait un des plus rapides en temps d’exécution. 5.3.4 Casia v2 Dans Casia v2 [He et al., 2014], toutes les incertitudes de chacune des étapes de la résolution de la question sont conservées jusqu’à la fin. C’est 25 Système Squall2SPARQL Casia TBSL ISOFT DEANNA Xser gAnswer Casia v2 Mapping fourni par l’utilisateur lors de la reformulation Matching Dictionnaires Levenshtein Wordnet Heuristiques PATTY Matching BOA Wordnet Dictionnaire similarité ESA PATTY dictionnaire wikipedia miner tool 15 dictionnaire de prédicats PATTY dictionnaire de paraphrases Matching Dictionnaires Levenshtein Wordnet Heuristiques Remarque [Nakashole et al., 2012] [Gerber et Ngomo, 2011] apporte peu d’améliorations construit à partir de PATTY et ReVerb Table 3 – Phase de mapping des différents systèmes alors que le Markov Logic Network est utilisé pour résoudre de manière jointe toutes les incertitudes. 5.4 Systèmes non linguistiques Les systèmes non linguistique s’appuient uniquement sur les techniques d’apprentissage automatique pour répondre aux questions. L’article "Open Question Answering with Weakly Supervised Emmbedding Models" [Bordes et al., 2014] propose une approche pour réaliser un système de question-réponse à partir d’une base de connaissances. Ici la base 26 Système Squall2SPARQL Casia TBSL ISOFT DEANNA Xser gAnswer Casia v2 Résolution Traduction du langage Squall en SPARQL extraction de triples Score pour choisir le meilleur template Score pour choisir le meilleur template Integer Linear Programming Beam Search pour choisir le meilleur mapping ; heuristiques pour la conversion en SPARQL Graph matching Markov Logic Network Remarque bidirectionnelle Table 4 – Phase de résolution des différents systèmes Système Squall2SPARQL Casia TBSL ISOFT DEANNA Xser gAnswer Casia v2 Rappel 0.88 0.36 0.61 0.26 0,37 0.71 0.37 0.40 Précision 0.93 0.35 0.63 0.21 0.50 0.72 0.37 0.32 F-mesure 0.90 0.36 0.62 0.23 0.43 0.72 0.37 0.36 Évaluation QALD 3 QALD 3 QALD 1 QALD 4 QALD 1 QALD 4 QALD 4 QALD 4 Table 5 – Performances des différents systèmes utilisée est ReVerb [Fader et al., 2011]. L’objectif du système proposé est de fournir le triple qui correspond à la réponse de la question en langage naturel. Pour l’apprentissage des embedding, une méthode pour générer automatiquement des triples en questions est proposé. 27 6 Contributions 6.1 6.1.1 1er prototype de système de questions-réponses Spécifications Le premier prototype de système de questions-réponses avait pour objectif de répondre à des questions simples. Une question simple est une question qui commence par "What", "When, "Where" ou "Who" et qui ne contient pas de relations en cascade. Par exemple la question "Who is the daughter of Bill Clinton is married to ?" est une question avec des relations en cascade (daughter et married to). Une autre contrainte pour les questions était la présence obligatoire d’une entité nommée dans la question. Pour répondre à la question, une approche par règles a été utilisée. 6.1.2 Conception L’architecture retenue pour le prototype est visible sur la figure 6. L’architecture retenue est inspirée de celle du système CASIA v1 (voir section 5.2.2). Pour décrire le fonctionnement des différents composants, la question "What is the largest city in Australia" servira de fil conducteur. D’abord la question en entrée est POS taggé avec Stanford Core NLP. Ensuite le résultat du POS tagging est utilisé pour détecter les entités nommées de la question. Pour cela les suites de mots dont le POS tag est "NNP" (nom propre au singulier) ou "NNPS" (nom propre pluriel) sont réunies. Exemple 6.1 "What/WP is/VBZ the/DT largest/JJS city/NN in/IN Australia/NNP" Le détecteur d’entités nommés fourni par Stanford Core NLP n’est pas utilisé car pendant les expérimentations, il avait un rappel trop faible. Toutes les suites de noms propres sont retenues, bien que la contrainte sur les question les limite à une par question. Pour chaque entité nommée identifiée, les ressources dbpedia correspondantes sont recherchés. Pour cela, une recherche sur la valeur du prédicat "label" est effectuée. Cette opération est la plus longue du système, elle dure parfois plusieurs minutes. À l’issue de cette recherche s’il y a zéro candidat pour le mapping des entités nommées, le programme s’arrête. 28 Question en Langage Naturel Pos Tagging Question Taggée Détection des Entités Nommées Entités Nommées Création Arbre de Dépendences Question avec les entités nommées identifiées Mapping des Entités Nommées Arbre de dépendences Liste URI Détection des relations en langage Relations en naturel langage naturel Mapping des relations Triples candidats Interrogation DBPedia candidats URI réponse Tri des réponses candidates Type de réponse attendu URIs Réponse Figure 6 – Architecture du 1er prototype 29 Détection Type de la réponse Ensuite, les relations sont détectées. La phrase est convertie en arbre de dépendance. Les relations sont détectées dans l’arbre en partant de l’entité nommée la plus éloignée de la racine puis en allant jusqu’au "Wh" word qui commence la phrase. Chaque noeud de ce parcours est considéré comme une relation. Comme avoir une seule relation est une contrainte sur les questions, le programme s’arrête s’il y a plus d’un noeud dans le chemin. À l’issue de cette étape, la relation en langage naturel est identifié. L’arbre de dépendance de l’exemple 6.1 est visible sur la Figure 7. Dans l’exemple le chemin de la relation est What-city-Australia. Maintenant c’est le module de mapping des relations qui commence. D’abord la relation étendue en langage naturel est calculé. Pour l’exemple 6.1 cela signifie que de la relation "city", on passe à la relation "largest city". L’extension de relation se fait en prenant les mots de l’arbre des dépendances qui sont liés au mot relation et qui ne sont pas dans le chemin entre l’entité nommée et le "Wh" word. Avec cette relation étendue, on peut chercher le prédicat correspondant. La liste des candidats est la liste des prédicats dont l’URI de l’entité nommée est sujet. Puis on concatène les mots de la relation en langage naturel et s’il y a une correspondance alors le prédicat est sélectionnée et on passe à l’étape suivante. Sinon on regarde si la forme courte de la relation ("city" dans l’exemple) correspond. S’il n’y a toujours pas de prédicat correspondant alors on essaye avec le lemme de la relation courte. En l’absence de correspondance, on cherche un prédicat qui contient la forme courte de la relation. S’il n’y a toujours pas de correspondance alors on regarde si les synonymes ou les hyperonymes de la relation permettent de définir un prédicat candidat. Enfin s’il n’y toujours pas de prédicat candidat la distance de Levenshtein est utilisé pour choisir un candidat. A l’issue de cette étape, un ou plusieurs prédicats candidats sont sélectionnés Dbpedia est interrogé pour chacun des candidats. Cela forme l’ensemble des réponses candidates. Le type de la question permet de trier les candidats en favorisant ceux avec le type attendu. Le candidat au rang 1 est la réponse choisie par le système. 6.1.3 Bibliothèques logicielles utilisées Le prototype est codé en Java et utilise Maven pour la gestion des dépendances. La version de Java utilisée est Java 7. Pour toutes les parties 30 ROOT nsubj det What prep in amod cop is the largest city in Australia . Figure 7 – Arbre de dépendances de la question : "What is the largest city in Australia ?" traitement du langage, Stanford Core NLP 16 (version 3.4.1) est utilisé. L’interrogation des bases de données sémantiques (via SPARQL endpoint) est réalisé avec Apache Jena 17 (version 2.12.1). Pour l’exploitation de wordnet, la librairie JWI 18 (MIT Java Wordnet Interface en version 2.2.3) qui est utilisée. Pour différentes opérations sur les chaines de caractères la bibliothèque Apache Commons Lang 19 (en version 3.3.2). 6.1.4 Résultats Trois versions de ce premier prototype ont été développées. La première qui utilisait le dictionnaire de PATTY pour le mapping de relation, a donné des résultats très médiocres et n’a pas été évalué. La deuxième version utilisait toutes les règles décrites précédemment pour constituer une liste mapping de prédicats. La dernière version se concentre sur la priorité données aux règles afin d’avoir moins de candidats pour les réponses. Une modification de l’utilisation de Dbpedia pour le mapping des entités nommées a aussi été mis en place pour cette version. Dans la suite v1 signifiera la deuxième version du prototype et v2 la troisième. Version v1 v2 NB questions 54 54 R 33, 3 38, 9 NB de réponses 28 26 P@1 64, 3 80, 8 P@all 78, 6 80, 8 Table 6 – Résultats des différentes version du 1er prototype, avec les précisions au rang 1 et à tout rang 16. 17. 18. 19. http://nlp.stanford.edu/software/corenlp.shtml https://jena.apache.org http://projects.csail.mit.edu/jwi/ https://commons.apache.org/proper/commons-lang/ 31 Les résultats de la table 6 correspondent aux questions de train de QALD 4, 200 questions filtrées pour ne garder que celles qui commencent par "who", "when", "what" et "where". 6.1.5 Analyse des erreurs Erreur (par fréquence d’apparition) Question complexe NB 8 Mauvaise identification entité nommée 6 Mapping de relation non trouvé Pas d’entité nommée Priorité des prédicats pour la réponse Mauvais mapping entité nommée Mauvais mapping relation 6 4 4 4 3 Sens relation Total sans réponses Total réponses fausses Total 1 26 10 36 exemple Who produced films starring Natalie Portman ? Who composed the music for Harold and Maude ? When did Michael Jackson die ? What is the longest river ? What is the birth name of Angela Merkel ? Who was the father of Queen Elizabeth II ? What is the second highest mountain on Earth ? Who produces Orangina ? Table 7 – Différents types d’erreurs de la v1 Les principales erreurs viennent de la complexité des questions, de l’identification des entités nommées et du mapping des relations. Pour la version 2, les corrections ont principalement porté sur l’ordre des candidats de réponses. Ce qui a eu pour résultat d’augmenter la précision des réponses et diminuer le nombre de candidats par questions. Les erreurs sont toujours liées à la complexité des questions, à la détection des entités nommées et au mapping des relations. Les entités nommées qui ne sont pas bien détectées sont celles qui contiennent plusieurs mots avec des nom communs. Le mapping des relations est difficile quand il s’agit de faire correspondre un verbe et un nom. Par exemple, "die" n’est pas mappé avec le prédicat "deathCause". 32 Erreur (par fréquence d’apparition) Mapping de relation non trouvé NB 8 Mauvaise identification de l’entité nommée 7 Question complexe 6 Pas d’entité nommée 4 Relation non trouvée 1 Boucle mapping entité nommée Sens relation Mapping entité nommée non trouvé Total sans réponses Total réponses fausses Total 1 1 1 27 5 32 exemple Who is the owner of Universal Studios ? Who painted The Storm on the Sea of Galilee ? Who is the daughter of Ingrid Bergman married to ? Who is the Formula 1 race driver with the most races ? What is the second highest mountain on Earth ? Who was called Scarface ? Who produces Orangina ? What is the highest place of the Urals ? Table 8 – Différents types d’erreurs de la v2 6.2 Génération de questions Pour obtenir plus de questions, afin d’évaluer le système de questionsréponses, nous avons généré des questions à partir des travaux de [Heilman, 2011] et de son outil 20 . Ces travaux avaient pour objectif de générer automatiquement des questions factuelles à partir de textes dans un contexte éducatif afin de faciliter le travail des enseignants. 6.2.1 Protocole de génération des questions La génération des questions nécessite d’avoir des textes qui permettront de générer des questions pour chacun d’entre eux. Afin d’avoir un maximum de données factuelles, des données encyclopédiques sont recommandées. Heilman utilise dans sa thèse des données de Wikipedia et de l’encyclopédie Britanica. Pour l’expérience Wikipedia a été choisi comme corpus pour fournir les textes. Après nettoyage des textes, les questions sont générées puis filtrées en deux temps. La première fois automatiquement et une deuxième fois manuellement. 20. http://www.ark.cs.cmu.edu/mheilman/questions/ 33 6.2.2 Corpus Wikipedia Wikipedia étant une encyclopédie en ligne, elle contient de nombreuses informations factuelles qui permettront de générer les questions. Des archives de Wikipedia sont librement disponibles 21 . Les données sont fournies au format wiki, elles ont donc été, dans un premier temps, nettoyé pour obtenir des données à exploiter. Wikipedia Extractor 22 a été utilisé pour cette tâche. Le dump est ainsi converti en un ensemble de fichiers xml contenant des pages de Wikipedia. Un script supplémentaire a été écrit afin d’avoir un fichier texte par page. 6.2.3 Algorithme de génération de questions La génération de question se base la structure des phrases. L’algorithme est constitué des étapes suivantes pour chaque phrases : 1. Reformulation des phrases 2. Création de questions candidates 3. Tri des questions générées La reformulation des phrases se fait par extraction de fragments dans les phrases complexes pour obtenir des phrases plus simples. Ensuite pour la création des questions, l’arbre de dépendance syntaxique de la phrase est utilisé pour obtenir la structure de la phrase. Après supersense tagger permet d’identifier les éléments afin de choisir le type de question à générer (à partir du Wh-word). Supersense tagger (discriminative hidden Markov model) est un logiciel de reconnaissance des entités nommées. ARKref coreference system sert à la résolution des coréférences pendant l’analyse des phrases. Enfin des règles sur la structure de l’arbre permet de générer la question. 2000 documents ont été choisis aléatoirement parmi les articles Wikipedia pour générer les questions. 6.2.4 Résultats Les questions générées sont filtrées en deux temps afin d’obtenir des questions de qualité. Le premier filtre est automatique et enlève les questions dont 21. https://dumps.wikimedia.org 22. http://medialab.di.unipi.it/wiki/Wikipedia_Extractor 34 les réponses sont composées de plus de 5 mots. Mais aussi les questions qui dépassent plus de 10 mots. Ces deux premiers critères de filtre permettent de retirer les questions qui sont le plus susceptibles d’être erronées sémantiquement ou grammaticalement. Ce premier filtre permet de réduire de 213.519 à 48.298 questions. Le deuxième filtre consiste à retenir les questions pertinentes. Pour cela une approche manuelle et collaborative est envisagée. Un fichier google-docs est partagé entre les différents collaborateurs avec les questions et les réponses. Pour évaluer le nombre de questions pertinentes, 100 questions ont été choisi aléatoirement et évaluées manuellement. Le résultat est de 8% de questions pertinentes. Ce score pourrait être amélioré avec de meilleurs heuristiques de nettoyage (suppressions des questions/réponses contenant des pronoms, vérification de la présence d’une entité nommée, . . . ) ou en utilisant un autre corpus comme par exemple simple english Wikipedia. Les questions générées sont très souvent dépendantes du contexte (document) dont elles sont issues. Ce qui implique un nombre important de rejets. Les thèmes des questions sont très variés du fait du choix aléatoire des articles sélectionnés. Une meilleure sélection (par thème ou centre d’intérêts) des articles pour la génération de questions pourrait permettre de créer des questions plus en phase avec ce que l’utilisateur pourrait demander. 6.3 6.3.1 Réseaux Logiques de Markov Objectifs Après le premier prototype qui a servi pour comprendre le problème, l’objectif était de réaliser un nouveau prototype pouvant résoudre une partie des problèmes observés. Nous voulions aussi une approche qui pourrait intégrer des connaissances sur l’utilisateur. Pour cela nous avons choisi d’adopter la même approche que CASIA v2[He et al., 2014]. Dans cette approche, l’incertain, présent dans chacune des étapes pour répondre à la question, est géré et maintenu jusqu’à la fin du processus pour être résolu de manière unifiée avec un réseau logique de Markov (Markov Logic Network) [Richardson et Domingos, 2006]. 35 Nous avons donc étudié les réseaux logiques de markov (ou Markov Logic Network, MLN). Pour cela nous avons monté un groupe de travail autour de cette problématique. Il était composé de chercheurs, de doctorants et de stagiaires de l’équipe DUKe. Romain Rincé, un autre étudiant du master ATAL en stage, faisait parti de ce groupe. Les objectifs de chacun étaient différent, l’idée avec ce groupe était d’étudier le fonctionnement de ces réseaux. Pour cela nous nous sommes appuyés sur les cours 23 de l’université de Carnegie Mellon et le logiciel Alchemy 24 . 6.3.2 Principe Les réseaux logiques de Markov combinent la logique du premier ordre et les probabilités. On y exprime des formules logiques, qui peuvent être apprises, afin de constituer une base de connaissances. Ce qui est intéressant avec ce modèle est la possibilité de pouvoir violer des contraintes logique. Ce cas de figure se traduit par une probabilité faible. Ces formules sont ensuite transformées en un graphe non-orienté pour lequel des poids sont calculés pour chaque clique. Le graphe est créé à partir des formules et des constantes on parle alors de ground Markov Network. Pour chaque pair de formules où une constante est commune à deux formules on créer un arc. 6.3.3 Expériences Nous avons commencé nos expériences en étudiant la programmation logique inductive. La programmation logique inductive est une approche de l’apprentissage automatique qui cherche à apprendre les règles logique à partir d’une base de connaissances et d’exemples positifs et négatifs. Nous avons utilisé le logiciel Aleph 25 . Après cela nous avons commencé à expérimenter l’inférence à partir des exemples du tutoriel d’Alchemy 26 . L’inférence nous a permis par la suite de 23. 24. 25. 26. http://homes.cs.washington.edu/~pedrod/803/ http://alchemy.cs.washington.edu http://www.cs.ox.ac.uk/activities/machlearn/Aleph/aleph.html http://alchemy.cs.washington.edu/tutorial/ 36 vérifier les résultats de l’apprentissage des poids et de la structure. Après l’inférence, nous avons étudié l’apprentissage des poids. Afin de pouvoir comparer les résultats avec d’autres algorithmes d’apprentissage, nous avons d’abord créé des réseaux bayésiens sur lesquels un échantillonnage a été réalisé. En même temps nous avons transformé les réseaux bayésiens en bases de connaissances logique. Nous avons alors appris les probabilités des différents réseaux bayésiens et des MLN avec les données générées. Nos expériences successives ont montré que les MLN arrivent bien à apprendre les probabilités. L’apprentissage des poids peut être discriminatif ou génératif. Enfin les dernières expérimentations que nous avons effectué concernent l’apprentissage de structure. L’article [Kok et Domingos, 2005] décrit l’apprentissage de structure des MLN. L’apprentissage se rapproche de la programmation logique inductive. 2ème prototype : à partir de Réseaux Logiques de Markov (en cours de développement) 6.4 6.4.1 Approche L’approche se déroule en 5 étapes. 1. Segmentation de la phrase à partir de critères basés sur le POS tag et de la longueur du segment ; 2. Mapping des différents segments à partir des dictionnaires ; 3. Extraction des données pour le MLN, avec l’utilisation du POS tag, de l’analyse en dépendance, des informations liées au mapping de la base ; 4. Calcul de la combinaison la plus probable avec le MLN ; 5. Conversion en requête SPARQL. 6.4.2 Ressources de Mapping Une ressource importante du système est l’ensemble des fichiers de mappings. Il y a trois fichiers de Mapping, un pour les classes, un autre pour les entités et un dernier pour les relations. Les deux premiers sont relativement simple à construire à partir de dbpedia mais le fichier de mapping des relations est beaucoup plus compliqué à établir. 37 Pour la création de ce fichier, il faut avoir un corpus de relations en langage naturel comme ceux de PATTY [Nakashole et al., 2012] et ReVerb [Fader et al., 2011], qu’il faut ensuite mettre en correspondance avec les donnée de Dbpedia. La difficulté est de trouver le prédicat qui correspond réellement à la relation en langage naturel. Pour cela les concepteurs de CASIA V2 s’appuient sur une technique qu’ils ont développé et décrit dans un autre article [Liu et al., 2013]. L’idée est dans un premier temps de faire correspondre les entités de la relation en langage naturel avec les nœuds de la base de connaissance. Puis il faut mettre en correspondance le prédicat du triple avec la relation en langage naturel. Pour filtrer et améliorer les résultat une analyse linguistique basée sur les stem et sémantique à base d’ESA 27 est réalisé. Sans ce filtrage l’approche est trop naïve et donne de mauvais résultats. 6.4.3 Résultats Le prototype est toujours en cours de réalisation. Mais les résultats de CASIA V2 montre que le modèle est intéressant. L’utilisation des Réseaux logiques de Markov permettra par la suite d’intégrer un modèle de l’utilisateur grâce au formalisme souple. Cependant les auteurs de CASIA V2 pointent du doigt le manque de questions disponibles pour l’entraînement du modèle. 27. https://en.wikipedia.org/wiki/Explicit_semantic_analysis 38 7 Conclusions et perspectives Nous avons vu avec l’état de l’art qu’il existe de nombreuses approches pour s’attaquer au problème des systèmes de questions-réponses. Nous avons également mis en place un système simple qui nous a permis de voir que l’un des obstacles pour la réalisation de ces systèmes est le manque de questions pour leur évaluation. Ceci nous a poussé à chercher une solution afin de créer automatiquement les questions. Ensuite nous avons vu les réseaux logiques de Markov qui devrait permettre de développer un dernier prototype doit nous permettre de franchir une autre étape dans la résolution de la question. Au-delà de ce qui a été réalisé pendant ce stage, plusieurs obstacles restent à franchir. Le premier est réfléchir aux questions plus complexes avec des négations et compositions par exemple. Un autre défi intéressant serait de voir comment un système basé sur des données structurées peut-être renforcé avec de la recherche sur des données non structurées. Pour résumer, le sujet est encore très ouvert et toujours très intéressant. Ce qui devrait être le cas pour un moment. 39 Références [Auer et al., 2007] Auer, S., Bizer, C., Kobilarov, G., Lehmann, J., Cyganiak, R. et Ives, Z. (2007). Dbpedia : A nucleus for a web of open data. Springer. [Banerjee et Pedersen, 2002] Banerjee, S. et Pedersen, T. (2002). An adapted lesk algorithm for word sense disambiguation using wordnet. In Computational linguistics and intelligent text processing, pages 136–145. Springer. [Berners-Lee et al., 2001] Berners-Lee, T., Hendler, J., Lassila, O. et al. (2001). The semantic web. Scientific american, 284(5):28–37. [Bordes et al., 2014] Bordes, A., Weston, J. et Usunier, N. (2014). Open question answering with weakly supervised embedding models. In Machine Learning and Knowledge Discovery in Databases, pages 165–180. Springer. [Dong et al., 2014] Dong, X., Gabrilovich, E., Heitz, G., Horn, W., Lao, N., Murphy, K., Strohmann, T., Sun, S. et Zhang, W. (2014). Knowledge vault : A web-scale approach to probabilistic knowledge fusion. In Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining, pages 601–610. ACM. [Fader et al., 2011] Fader, A., Soderland, S. et Etzioni, O. (2011). Identifying relations for open information extraction. In Proceedings of the Conference on Empirical Methods in Natural Language Processing, pages 1535–1545. Association for Computational Linguistics. [Ferré, 2013] Ferré, S. (2013). squall2sparql : a translator from controlled english to full sparql 1.1. In Work. Multilingual Question Answering over Linked Data (QALD-3). [Ferrucci et al., 2010] Ferrucci, D., Brown, E., Chu-Carroll, J., Fan, J., Gondek, D., Kalyanpur, A. A., Lally, A., Murdock, J. W., Nyberg, E., Prager, J. et al. (2010). Building watson : An overview of the deepqa project. AI magazine, 31(3):59–79. [Gerber et Ngomo, 2011] Gerber, D. et Ngomo, A.-C. N. (2011). Bootstrapping the linked data web. In 1st Workshop on Web Scale Knowledge Extraction@ ISWC, volume 2011. [Green Jr et al., 1961] Green Jr, B. F., Wolf, A. K., Chomsky, C. et Laughery, K. (1961). Baseball : an automatic question-answerer. In Papers presented at the May 9-11, 1961, western joint IRE-AIEE-ACM computer conference, pages 219–224. ACM. 40 [He et al., 2013] He, S., Liu, S., Chen, Y., Zhou, G., Liu, K. et Zhao, J. (2013). Casia@ qald-3 : A question answering system over linked data. Proceedings of the Question Answering over Linked Data lab (QALD-3) at CLEF. [He et al., 2014] He, S., Zhang, Y., Liu, K. et Zhao, J. (2014). Casia@ v2 : A mln-based question answering system over linked data. [Heilman, 2011] Heilman, M. (2011). Automatic factual question generation from text. Thèse de doctorat, Carnegie Mellon University. [Hirst et St-Onge, 1998] Hirst, G. et St-Onge, D. (1998). Lexical chains as representations of context for the detection and correction of malapropisms. WordNet : An electronic lexical database, 305:305–332. [Hoffart et al., 2011] Hoffart, J., Yosef, M. A., Bordino, I., Fürstenau, H., Pinkal, M., Spaniol, M., Taneva, B., Thater, S. et Weikum, G. (2011). Robust disambiguation of named entities in text. In Proceedings of the Conference on Empirical Methods in Natural Language Processing, pages 782–792. Association for Computational Linguistics. [Jiang et Conrath, 1997] Jiang, J. J. et Conrath, D. W. (1997). Semantic similarity based on corpus statistics and lexical taxonomy. arXiv preprint cmp-lg/9709008. [Kok et Domingos, 2005] Kok, S. et Domingos, P. (2005). Learning the structure of markov logic networks. In Proceedings of the 22nd international conference on Machine learning, pages 441–448. ACM. [Leacock et Chodorow, 1998] Leacock, C. et Chodorow, M. (1998). Combining local context and wordnet similarity for word sense identification. WordNet : An electronic lexical database, 49(2):265–283. [Li et Roth, 2002] Li, X. et Roth, D. (2002). Learning question classifiers. In Proceedings of the 19th international conference on Computational linguistics-Volume 1, pages 1–7. Association for Computational Linguistics. [Lin, 1998] Lin, D. (1998). An information-theoretic definition of similarity. In ICML, volume 98, pages 296–304. [Liu et al., 2013] Liu, F., He, S., Liu, S., Zhou, G., Liu, K. et Zhao, J. (2013). Open relation mapping based on instances and semantics expansion. In Information Retrieval Technology, pages 320–331. Springer. [Mel’čuk et Polguere, 1987] Mel’čuk, I. A. et Polguere, A. (1987). A formal lexicon in the meaning-text theory :(or how to do lexica with words). Computational linguistics, 13(3-4):261–275. 41 [Mikolov et al., 2013] Mikolov, T., Sutskever, I., Chen, K., Corrado, G. S. et Dean, J. (2013). Distributed representations of words and phrases and their compositionality. In Advances in Neural Information Processing Systems, pages 3111–3119. [Nakashole et al., 2012] Nakashole, N., Weikum, G. et Suchanek, F. (2012). Patty : a taxonomy of relational patterns with semantic types. In Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning, pages 1135–1145. Association for Computational Linguistics. [Park et al., 2014] Park, S., Shim, H. et Lee, G. G. (2014). Isoft at qald4 : Semantic similarity-based question answering system over linked data. CLEF. [Pasca et Harabagiu, 2001] Pasca, M. A. et Harabagiu, S. M. (2001). High performance question/answering. In Proceedings of the 24th annual international ACM SIGIR conference on Research and development in information retrieval, pages 366–374. ACM. [Resnik, 1995] Resnik, P. (1995). Using information content to evaluate semantic similarity in a taxonomy. arXiv preprint cmp-lg/9511007. [Richardson et Domingos, 2006] Richardson, M. et Domingos, P. (2006). Markov logic networks. Machine learning, 62(1-2):107–136. [Simmons et al., 1964] Simmons, R. F., Klein, S. et McConlogue, K. (1964). Indexing and dependency logic for answering english questions. American Documentation, 15(3):196–204. [Suchanek et al., 2007] Suchanek, F. M., Kasneci, G. et Weikum, G. (2007). Yago : a core of semantic knowledge. In Proceedings of the 16th international conference on World Wide Web, pages 697–706. ACM. [Unger, 2013] Unger, C. (2013). Multilingual question answering over linked data : Qald-3 dataset. [Unger, 2014] Unger, C. (2014). Multilingual question answering over linked data : Qald-4 dataset. [Unger et al., 2012] Unger, C., Bühmann, L., Lehmann, J., Ngonga Ngomo, A.-C., Gerber, D. et Cimiano, P. (2012). Templatebased question answering over rdf data. In Proceedings of the 21st international conference on World Wide Web, pages 639–648. ACM. [Unger et al., 2014] Unger, C., Forascu, C., Lopez, V., Ngomo, A.C. N., Cabrio, E., Cimiano, P. et Walter, S. (2014). Question answering over linked data (qald-4). In Working Notes for CLEF 2014 Conference. 42 [Wu et Palmer, 1994] Wu, Z. et Palmer, M. (1994). Verbs semantics and lexical selection. In Proceedings of the 32nd annual meeting on Association for Computational Linguistics, pages 133–138. Association for Computational Linguistics. [Xu et al., 2014] Xu, K., Feng, Y. et Zhao, D. (2014). Xser@ qald-4 : Answering natural language questions via phrasal semantic parsing. [Yahya et al., 2012] Yahya, M., Berberich, K., Elbassuoni, S., Ramanath, M., Tresp, V. et Weikum, G. (2012). Deep answers for naturally asked questions on the web of data. In Proceedings of the 21st international conference companion on World Wide Web, pages 445–449. ACM. [Zou et al., 2014] Zou, L., Huang, R., Wang, H., Yu, J. X., He, W. et Zhao, D. (2014). Natural language question answering over rdf : a graph data driven approach. In Proceedings of the 2014 ACM SIGMOD international conference on Management of data, pages 313–324. ACM. 43