Analyse sémantique - Semantic parsing

L'analyse sémantique consiste à convertir un énoncé en langage naturel en une forme logique : une représentation compréhensible par la machine de sa signification. L'analyse sémantique peut ainsi être comprise comme l'extraction du sens précis d'un énoncé. Les applications de l'analyse sémantique incluent la traduction automatique , la réponse aux questions , l' induction d'ontologies , le raisonnement automatisé et la génération de code . L'expression a été utilisée pour la première fois dans les années 1970 par Yorick Wilks comme base pour des programmes de traduction automatique fonctionnant uniquement avec des représentations sémantiques.

En vision par ordinateur , l'analyse sémantique est un processus de segmentation pour les objets 3D.

Les types

Peu profond

L'analyse sémantique superficielle consiste à identifier des entités dans un énoncé et à les étiqueter avec les rôles qu'elles jouent. L'analyse sémantique superficielle est parfois appelée analyse sémantique de remplissage ou de trame, car sa base théorique provient de la sémantique de trame , dans laquelle un mot évoque une trame de concepts et de rôles connexes. Les systèmes de remplissage de créneaux sont largement utilisés dans les assistants virtuels en conjonction avec les classificateurs d'intention, qui peuvent être considérés comme des mécanismes permettant d'identifier le cadre évoqué par un énoncé. Les architectures populaires pour le remplissage de slots sont en grande partie des variantes d'un modèle de codeur-décodeur, dans lequel deux réseaux de neurones récurrents (RNN) sont entraînés conjointement pour coder un énoncé dans un vecteur et pour décoder ce vecteur en une séquence d'étiquettes de slot. Ce type de modèle est utilisé dans le système de compréhension de la langue parlée Amazon Alexa .

Profond

L'analyse sémantique profonde, également connue sous le nom d'analyse sémantique compositionnelle, vise à produire des représentations de signification précises d'énoncés pouvant contenir une compositionnalité significative . Les analyseurs sémantiques peu profonds peuvent analyser des énoncés tels que « montre-moi des vols de Boston à Dallas » en classant l'intention comme « liste des vols » et en remplissant les emplacements « source » et « destination » avec « Boston » et « Dallas », respectivement. Cependant, l'analyse sémantique superficielle ne peut pas analyser des énoncés de composition arbitraires, comme « montrez-moi des vols de Boston vers n'importe quel endroit qui a des vols vers Juneau ». L'analyse sémantique profonde tente d'analyser de tels énoncés, généralement en les convertissant en un langage de représentation de sens formel.

Langages de représentation

Les premiers analyseurs sémantiques utilisaient des langages de représentation de sens hautement spécifiques au domaine, les systèmes ultérieurs utilisant des langages plus extensibles tels que Prolog , lambda calculus , la sémantique compositionnelle basée sur les dépendances lambda (λ-DCS), SQL , Python , Java , Alexa Meaning Representation Language et la représentation du sens abstrait (AMR). Certains travaux ont utilisé des représentations de signification plus exotiques, comme des graphes de requête, des graphes sémantiques ou des représentations vectorielles.

Des modèles

La plupart des modèles d'analyse sémantique profonde modernes sont soit basés sur la définition d'une grammaire formelle pour un analyseur de graphique, soit sur l'utilisation de RNN pour traduire directement d'un langage naturel à un langage de représentation de sens. Des exemples de systèmes basés sur des grammaires formelles sont le Cornell Semantic Parsing Framework, le Semantic Parsing with Execution de l'Université de Stanford (SEMPRE) et le Word Alignment-based Semantic Parser (WASP).

Ensembles de données

Les ensembles de données utilisés pour la formation des modèles d'analyse sémantique statistique sont divisés en deux classes principales en fonction de l'application : ceux utilisés pour la réponse aux questions via les requêtes de la base de connaissances et ceux utilisés pour la génération de code.

Réponse aux questions

Un ensemble de données standard pour répondre aux questions via l'analyse sémantique est l'ensemble de données Air Travel Information System (ATIS), qui contient des questions et des commandes sur les vols à venir ainsi que le SQL correspondant. Un autre ensemble de données de référence est l'ensemble de données GeoQuery qui contient des questions sur la géographie des États-Unis associées au Prolog correspondant. L'ensemble de données Overnight est utilisé pour tester dans quelle mesure les analyseurs sémantiques s'adaptent à plusieurs domaines ; il contient des requêtes en langage naturel sur 8 domaines différents associés aux expressions λ-DCS correspondantes.

Génération de code

Les ensembles de données populaires pour la génération de code comprennent deux ensembles de données de cartes à collectionner qui lient le texte qui apparaît sur les cartes au code qui représente précisément ces cartes. L'un a été construit en reliant les textes des cartes Magic: The Gathering à des extraits Java; l'autre en liant les textes des cartes Hearthstone à des extraits Python. L' ensemble de données IFTTT utilise un langage spécialisé spécifique au domaine avec de courtes commandes conditionnelles. L' ensemble de données Django associe des extraits de code Python à un pseudocode anglais et japonais les décrivant. L' ensemble de données RoboCup associe les règles anglaises à leurs représentations dans un langage spécifique à un domaine qui peut être compris par des robots de football virtuels.

Voir également

Les références