CloudView ArchitectureSémantique
Février2009
Interact
CloudView Search
Management & Monitoring
AccessProcessCollect
Build-TimeSemanticprocessing
Query-TimeSemanticprocessing
Architecture MoT
CloudView Search• 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 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
Architecture MoT
CloudView Search• 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.
Architecture MoT
Example d’instance
Processeurs les plus importants
CloudView Search• 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)
Niveau lexical
CloudView SearchCloudView Search• Tokenisation (reconnaitre les mots) :• 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 SearchCloudView Search• Normalisation : • 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”, “[email protected]”, 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 »
Niveau lexical
Niveau Morphologique/Syntaxique
CloudView SearchCloudView Search• 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)
Processeurs sémantiques
CloudView SearchCloudView Search• 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" />
</entry>
</pkg>
</pkg>
Processeurs sémantiques
CloudView SearchCloudView Search• Extraction d’entités nommées: • Utilisation de patrons complexes pour
extraire :
Emails: [email protected]: Jean-Marie MartinPersonnes célèbres Barack Obama, MadonnaOrganisations: Yahoo! France, Nestlé UKVille: Paris, Londres, …Lieux: Sillicon Valley, Beverly Hills, Abbey Road, …Evénements: 2012 Olympic GamesDates: 1999/12/31, July 4thAdresses: 10 Downing Street, London, SW1A 2AAQuantités: $14,000 billion
Extraction d’entités nommées
CloudView SearchCloudView Search
Transducteurs
CloudView SearchCloudView Search• 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)
Transducteurs
CloudView SearchCloudView Search• Exemple <or>
<path value="ptop.nlp.organization.buisnessforms.post"/>
<seq>
<bee:ref name="organization_title_seperator_pattern"/>
<path value="ptop.nlp.organization.buisnessforms.post"/>
<iter min="0" max="6">
<seq>
<bee:ref name="organization_title_seperator_pattern"/>
<path value="ptop.nlp.organization.buisnessforms.post"/>
</seq>
</iter>
</seq>
</or>
Processeurs sémantiques
CloudView SearchCloudView Search• 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
IdentityMatching
CloudView SearchCloudView Search• Extraction entités floues
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
IdentityMatching
CloudView SearchCloudView Search• Utilisation d’opérateurs booléens
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
Processeurs sémantiques
• Catégorisation: Business
ConsumerServices
Inqueries
Customer Service
Shopping
Pets
training document
Business
ConsumerServices
Inqueries
Customer Service
Shopping
Pets
new item classsignatureclass
signature
training document
Prédire la catégorie d’un documenten utilisant une base d’apprentissageou via des règles
Processeurs sémantiques
CloudView SearchCloudView Search
• 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