CloudView Architecture Sémantique Février 2009 Page de garde
Management & Monitoring CloudView Search Collect Process Access Interact Build-Time Semantic processing Query-Time Semantic processing Management & Monitoring
Architecture MoT Architecture dédié aux traitements des langues et à l’extraction d’informations Partage les objectifs des plateformes open sources GATE et UIMA : Extraite des informations complexes (concepts, relations entre concepts, ...) Intégration de logiciels externes Mais surtout : Orienté vers les performances (principal point faible des plateformes open sources) Support du calcul distribué (Nativement Intégré dans la plateforme Exalead MapReduce) CloudView Search
Architecture MoT Architecture MoT est utilisée : Pendant l’indexation pour enrichir le document indexé, changer les scores, … Pendant la requête pour étendre la requête (synonymes, lemmatisation, …) Tous les composants ou algorithmes qui nécessite de transformer un document en liste de descripteurs (catégorisation, clustering, …) Une instance de l’architecture est un « Pipe » composé de plusieurs processeurs Chaque processeur enrichie le document en utilisant toutes les informations extraites par les précédents processeurs CloudView Search
Architecture MoT Nous avons une vingtaine de processeurs Exalead disponibles : Tous très configurable Performant car basé sur des API en flux Architecture Converter : transforme le texte en flux de tokens Resource : représente les données avec lesquelles travail un processeur Processeur : travail sur un flux de tokens et ajoute des annotations sur un ou plusieurs tokens. CloudView Search
Example d’instance 6
Processeurs les plus importants Processeurs au niveau lexical Segmentation, normalisation, détection de phrases Processeurs au niveau morphologique/syntaxique Stemming Étiquetage morphosyntaxique Lemmatisation Processeurs au niveau sémantique Extraction d’entités nommées (Transducteur) Matching via une ontologie (OntologyMatcher) Reconnaissance d’entitées (IdentityMatcher) Catégorisation (Classification supervisée) Clustering (Classification non supervisée) CloudView Search
Niveau lexical Tokenisation (reconnaitre les mots) : CloudView Search Standard (supporte tous les langages avec séparateurs) Japonnais (Hiragana, Katakana, Kanji, romanji) Chinois Autres via partenaires (Russe, Arabe, …) Configurable: Définir le type d’un caractère (alphabétique, nombre, séparateur) Définir une expression réguliére CloudView Search CloudView Search
Niveau lexical Normalisation : Reconnaissance des fins de phrases Calculer la forme sans majuscules et sans accents Translitération des caractères, ex: “ü” to “ue” en allemand Gérer les exceptions : “déjà” = “deja” mais “maïs” != “mais” Reconnaissance des fins de phrases “Dr.”, “1.000”, “a.b@c.org”, le point n’est pas une fin de phrase « … in New York. Researchers from … », ne pas extraire une entité ou un groupe nominal pour « New York Researchers » CloudView Search CloudView Search
Niveau Morphologique/Syntaxique Etiquetage morphosyntaxique: Donner la catégorie grammaticale de chaque mot (verbe, nom commun, nom propre, …) Supprimer les ambigüités (nom/verbe par exemple) Phonétiseur et correcteur orthographique Lemmatisation et stemming: Identifier le lemme ou le stemme de chaque mot La lemmatisation utilise le part of speech pour trouver le bon lemme ou donne plusieurs lemmatisation possibles. Utilisation de traits flexionnels (singulier/pluriel/féminin/masculin) CloudView Search CloudView Search
Processeurs sémantiques OntologyMatcher : Extraction des entités ou des concepts d’une ontologie Par exemple extraire la liste des employées / services … <pkg path="top.custom.employees"> <pkg path="equipe-support"> <entry display="Florent Dupond" level="norm" lang="fr"> <form value="Florent D." trustLevel="100" /> </entry> <entry display="Clément Martin" level="norm" lang="fr"> <form value="Clément M." trustLevel="100" /> </pkg> CloudView Search CloudView Search
Processeurs sémantiques Extraction d’entités nommées: Utilisation de patrons complexes pour extraire : Emails: a.b@c.com Personnes: Jean-Marie Martin Personnes célèbres Barack Obama, Madonna Organisations: Yahoo! France, Nestlé UK Ville: Paris, Londres, … Lieux: Sillicon Valley, Beverly Hills, Abbey Road, … Evénements: 2012 Olympic Games Dates: 1999/12/31, July 4th Adresses: 10 Downing Street, London, SW1A 2AA Quantités: $14,000 billion CloudView Search CloudView Search
Extraction d’entités nommées CloudView Search CloudView Search
Transducteurs Utilisé par la détection d’entités nommées Permet d’extraire efficacement des patrons complexes Langage de règles en XML possédant : <path>, <word>, <regexp>, <any>, <digits>, <paragraph>, <language>, <nospace> <bor> , <band>, <bnot>, <seq> <near> (dans un voisinage de x mots) <opt> (optionnel) <iter> (une expression répété n fois) <plus> (équivalent du + dans les regexps) <start> (équivalent du * dans les regexps) <sub> (capture) CloudView Search CloudView Search
Transducteurs Exemple CloudView Search CloudView Search <or> <path value="ptop.nlp.organization.buisnessforms.post"/> <seq> <bee:ref name="organization_title_seperator_pattern"/> <iter min="0" max="6"> </seq> </iter> </or> CloudView Search CloudView Search
Processeurs sémantiques Identity Matching: Permet d’extraire des entités floues du texte Autorise l’utilisation d’opérateurs booléens entre des informations extraites (par un OntologyMatcher par exemple) Par exemple l’expression “The Bill & Melissa Gates fundation” va reconnaitre “Bill Gates Fundation”, “Gates fundation”, … Un score est donnée à tous ces matches en fonction de la distance d’édition avec l’entrée de l’ontologie CloudView Search CloudView Search
IdentityMatching Extraction entités floues CloudView Search Par exemple l’expression “The Bill & Melissa Gates fundation” va reconnaitre “Bill Gates Fundation”, “Gates fundation”, … Un score est donnée à tous ces matches en fonction de la distance d’édition avec l’entrée de l’ontologie : “The Bill & Melissa Gates fundation” : Distance = 0 “Bill Gates Fundation” : Distance = 2 “Gates fundation” : Distance = 3 Gère nativement les permutations, les ajouts et les suppressions de mots CloudView Search CloudView Search
IdentityMatching Utilisation d’opérateurs booléens CloudView Search Par exemple un OntologyMatcher qui identifie les concepts A_ENSEIGNEMENT, O_ACTIVITE_CULTUREL_1 et B_ADULTE. La régle de l’identifie matcher peut être un ET logique entre ces trois informations. Les options sont : Prendre en compte l’ordre des constituantes de la règle Autoriser/refuser un chevauchement des constituantes de la règle CloudView Search CloudView Search
Processeurs sémantiques Business Services Consumer Inqueries Customer Service Shopping Pets Catégorisation: training document Prédire la catégorie d’un document en utilisant une base d’apprentissage ou via des règles training document Business Services Consumer Inqueries Customer Service Shopping Pets class signature new item class signature
Processeurs sémantiques Classification non supervisée Détection et suivie de thématique (dépêches) Découvrir les classes de documents similaires Découvrir les paires de documents quasi- similaires : Détecter que D1 contient D2 Détecter que D1 partage beaucoup de phrases ou de concepts avec D2 CloudView Search CloudView Search