FR3066630A1 - Procede d'analyse de textes sur un reseau de communication - Google Patents

Procede d'analyse de textes sur un reseau de communication Download PDF

Info

Publication number
FR3066630A1
FR3066630A1 FR1754276A FR1754276A FR3066630A1 FR 3066630 A1 FR3066630 A1 FR 3066630A1 FR 1754276 A FR1754276 A FR 1754276A FR 1754276 A FR1754276 A FR 1754276A FR 3066630 A1 FR3066630 A1 FR 3066630A1
Authority
FR
France
Prior art keywords
text
lexical
words
computer
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1754276A
Other languages
English (en)
Inventor
Gael Patin
Julien Piquot
Marguerite Leenhardt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiko
Original Assignee
Xiko
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiko filed Critical Xiko
Priority to FR1754276A priority Critical patent/FR3066630A1/fr
Publication of FR3066630A1 publication Critical patent/FR3066630A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

Dans ce procédé d'analyse d'un texte (4), pour au moins une forme d'une entrée lexicale (14) prédéterminée du texte, cette entrée (14) appartenant à un lexique (12) prédéterminé stocké dans un support de stockage (10), un calculateur (16) génère au moins une variante orthographique de la forme de l'entrée (14), et enregistre la ou chaque variante dans le lexique (12).

Description

L’invention concerne des systèmes et méthodes d’analyse de corpus de textes, notamment des textes d’écrit spontané rédigés par des clients, des consommateurs ou plus généralement des utilisateurs du web social.
Les techniques de traitement automatique des langues, communément désignées par l’acronyme TAL, sont essentielles pour mettre en œuvre des systèmes automatiques capables d’opérer un traitement intelligent des contenus textuels. Il existe une très large variété d’application des techniques de TAL à l’analyse de contenus textuels. A titre d’exemples, on peut citer leur application à des fins d’indexation et de recherche de documents, de résumé automatique, de traduction automatique, d’analyse syntaxique, etc.
Les systèmes de communication médiatisés par ordinateur sont, depuis plusieurs années, largement utilisés à l’échelle mondiale. De ce fait, l’expression spontanée des utilisateurs de tels systèmes résulte, notamment, en une masse de contenus textuels d’écrit spontané, dont l’analyse est primordiale pour l’ensemble des secteurs de l’activité socio-économique. Dans ce contexte, les techniques de TAL sont exploitées à des fins applicatives variées, en particulier pour valoriser les flux de contenus textuels massifs existant dans les environnements internes et externes des entreprises et des organisations. Les systèmes informatisés qui implémentent ces techniques sont généralement adossés sur des représentations normatives des contenus textuels, par le biais de l’exploitation de différents types de connaissances pouvant ou non être de nature linguistique.
La difficulté principale du traitement automatique de textes d’écrit spontané découle de deux caractéristiques inhérentes à ce type de matériau linguistique. D’une part, ces textes sont souvent rédigés avec une grammaire et une orthographe approximatives. D’autre part, leur vocabulaire est non-canonique et très fluctuant. Les systèmes de TAL classiques à base de règles utilisent principalement des méthodes normatives. Ces dernières reposent sur l’utilisation de ressources linguistiques, notamment des grammaires, des lexiques, des ontologies, etc. Ces ressources linguistiques sont normatives, préconçues et coûteuses à produire et à maintenir. Or ces systèmes échouent souvent à traiter des textes d’écrit spontanés car l’écart à la norme est trop élevé. Ainsi, ce type de système n’est pas performant sur tous les types de textes.
Adapter des systèmes classiques aux textes d’écrit spontané est un processus long et coûteux, notamment à cause du phénomène de boîte noire et de traitement en cascade inhérent à ces systèmes. Les systèmes de TAL basés sur l’apprentissage automatique peuvent ne pas s’embarrasser de la norme orthographique et grammaticale ou de ressources linguistiques normatives pour fonctionner. Cependant ils s’appuient nécessairement sur des corpus d’apprentissage difficiles à obtenir ou
-2coûteux à construire et à maintenir. Ces systèmes ne sont pas exempts du phénomène de boîte noire qui complexifie l’identification et la correction des erreurs et alourdit la maintenance.
Pour finir, l'adaptation du moteur d’analyse à un domaine ou une thématique pour répondre à un cas d’application donné est nécessaire pour garantir une qualité d’analyse suffisante. Les systèmes classiques, qui reposent sur des approches globalisantes et normatives, sont moins performants, sans adaptation et coûteux à adapter. Force est de constater qu’à ce jour, il n’existe pas de système satisfaisant capable à la fois d’alléger de tels coûts opérationnels et de maintenir des performances qualitatives sur tous types de textes, en particulier les textes d’écrit spontané.
Un but de l’invention est de pallier au moins certains de ces inconvénients en proposant notamment un procédé d’analyse de texte souple et adaptable à un grand nombre de textes.
A cet effet, on prévoit selon l’invention un procédé d’analyse d’un texte, dans lequel, pour au moins une forme d’une entrée lexicale prédéterminée du texte, cette entrée appartenant à un lexique prédéterminé stocké dans un support de stockage, un calculateur :
- génère au moins une variante orthographique de la forme de l’entrée lexicale, et
- enregistre la ou chaque variante dans le lexique.
Ainsi, la génération de variantes orthographiques permet une analyse du texte qui ne soit pas mise en défaut par une orthographe ou une grammaire approximative. Cette génération de variantes n’est pas non plus mise en défaut par l’enrichissement éventuel du vocabulaire employé par les utilisateurs rédigeant les textes analysés puisque les variantes orthographiques de nouvelles expressions peuvent systématiquement être générées.
On s’affranchit aussi de l’utilisation des normes qui présentent les défauts présentés dans ce qui précède. Au contraire, on décrit ainsi avec souplesse les différentes formulations d’une expression.
Enfin, la génération de variantes ne dépend pas de la langue dans laquelle est rédigé le texte, ce qui rend le procédé de l’invention souple et adaptable à un grand nombre de textes.
Avantageusement, la forme de l’entrée lexicale étant définie par une chaîne de caractères, on applique à la forme de l’entrée lexicale au moins un générateur de variantes par motif, ce générateur étant apte à effectuer l’une des actions suivantes :
- rendre optionnel un caractère de la forme de l’entrée lexicale, par exemple au moyen de l’opérateur point d’interrogation (?),
- répéter un nombre fini de fois un caractère de la forme, par exemple au moyen de
- 3l’opérateur intervalle ( {} ),
- placer dans la forme de l’entrée lexicale une chaîne de caractères à une position prédéterminée et choisie parmi une liste de chaînes de caractères prédéterminée, la liste étant généralement de cardinal égal à deux, par exemple au moyen de l’opérateur alternative ( | ),
- placer dans la forme de l’entrée lexicale un caractère, à une position prédéterminée, appartenant à des classes de caractères non-prédéterminées et sans complément, par exemple au moyens de crochets ( [ ] ), et
- ordonnancer l’application de générateurs de variantes, par exemple au moyen du parenthésage.
Ces générateurs de variantes sont simples à mettre en œuvre et permettent de générer un nombre important de variantes orthographiques pour une entrée lexicale donnée. Cela permet ainsi de couvrir un grand nombre d’orthographes éventuelles qu’un utilisateur peut donner à un mot prédéterminé.
Avantageusement, on applique à la forme de l’entrée lexicale au moins un générateur de variantes par transformation, ce générateur étant apte à effectuer au moins l’une des actions suivantes : capitalisation, minusculisation, majusculisation et désaccentuation.
Une erreur sur un accent ou une majuscule, par exemple pour un nom propre, n’induisant en général pas de confusion sur le sens qu’on souhaite donner à un mot, il peut être fréquent qu’un utilisateur ne daigne pas corriger une telle erreur. De telles erreurs peuvent donc apparaître fréquemment dans un texte d’écrit spontané. Grâce aux générateurs de variantes par transformation, l’analyse du texte n’est pas mise en défaut par ces erreurs.
Avantageusement, les formes entrées lexicales étant au moins au nombre de deux et associées à deux entrées lexicales différentes, on applique au moins un générateur de formes cooccurrentes aux deux formes, avec comme paramètres un entier naturel formant un paramètre de distance et un booléen d’ordonnancement formant un paramètre d’ordonnancement, de manière à générer des formes cooccurrentes résultant de la concaténation des deux formes avec une distance comprise entre 0 et le paramètre de distance, et aussi les formes cooccurrentes inverses si le paramètre d’ordonnancement est égal à « faux ».
On génère ainsi des groupes de mots génériques comprenant les deux formes. Cela permet de prendre en compte le contexte dans lequel s’inscrit le texte, et notamment de désambigüiser le sens d’un mot du texte en recherchant les mots se trouvant dans son voisinage local.
De préférence, le générateur de formes cooccurrentes est appliqué aux variantes
-4orthographiques des deux formes générées au lieu d’être appliqué directement aux deux formes.
On combine ainsi les méthodes de génération de variantes et de formes cooccurrentes pour générer d’un seul coup un grand nombre de formes cooccurrentes de deux entrées lexicales prenant en compte les variantes orthographiques.
Avantageusement, on segmente en mots des produits de la génération de variantes, on crée un arbre d’entrées lexicales comprenant ces mots, chacun de ces mots étant représenté par une feuille de l’arbre, et on segmente le texte en mots de manière à obtenir un ensemble de mots du texte, puis on compare chaque mot du texte avec les mots de l’arbre.
De manière plus générale, on segmente les produits en unités orthographiques. Ces dernières correspondent à des mots en langue française ou en langue anglaise. En langue chinoise, les unités orthographiques correspondent plutôt à des caractères.
Une fois la génération de variantes effectuée, les variantes sont rangées dans un arbre associé à une étiquette prédéterminée de l’entrée lexicale ou des entrées lexicales. En trouvant une correspondance entre le texte et l’arbre, on peut associer l’étiquette au texte, ce qui contribue à l’analyse du texte.
De préférence, préalablement à la segmentation du texte en mots, on transforme l’arbre d’entrées lexicales en un arbre de profondeur égale à 1.
De préférence, préalablement à la segmentation en mots du texte, on attribue de manière bijective un identifiant entier strictement positif à chaque feuille de l’arbre.
Ces deux opérations permettent de faciliter les recherches de correspondances entre l’arbre et le texte, ce qui revient à optimiser le procédé d’analyse.
Avantageusement, on met en communication le calculateur avec un serveur, par exemple une mémoire vive d’un ordinateur, dans lequel est stocké le texte.
Avantageusement, le procédé est utilisé pour l’une des applications suivantes :
- le ciblage sémantique de contenus en vue de l’adaptation de la publicité sur un réseau de communication tel qu’internet,
- la veille sociale sur un réseau de communication tel qu’internet,
- l’analyse de tendances marketing ou sociétales,
- l’analyse de courriels pour le profilage de clientèles, ou
- l’analyse de tickets pour la maintenance industrielle.
Le procédé d’analyse de texte permet d’obtenir des résultats intéressants pour ces applications.
On prévoit également un programme d’ordinateur qui comprend des instructions de code aptes à commander l’exécution d’un procédé tel que défini plus haut lorsqu’il est exécuté sur un ordinateur.
On prévoit aussi un procédé de mise à disposition du programme ci-dessus en vue de son téléchargement sur un réseau de communication.
On prévoit de plus une machine, telle qu’un ordinateur, comprenant le programme d’ordinateur ci-dessus et des moyens aptes à exécuter ce programme.
On prévoit enfin un support de stockage lisible par un ordinateur contenant des instructions qui, lorsqu’elles sont exécutées par un ordinateur, font mettre en œuvre à cet ordinateur un procédé tel que défini plus haut.
On va maintenant décrire un mode de réalisation de l’invention à l’appui des dessins annexés sur lesquels :
- la figure 1 est un schéma illustrant les moyens mis en œuvre par le procédé selon l’invention,
- la figure 2 est un exemple d’arbre d’entrées lexicales produit lors de la mise en œuvre du procédé selon l’invention,
- les figures 3a, 3b et 3c illustrent des arbres d’entrées lexicales générés à partir de différents types d’entrées lexicales,
- la figure 4 illustre le procédé d’aplatissement d’un arbre d’entrées lexicales réalisé lors de la mise en œuvre du procédé selon l’invention, et
- la figure 5 illustre le remplacement bijectif des feuilles d’un arbre d’entrées lexicales par des identifiants.
On va maintenant présenter un mode de mise en œuvre du procédé de l’invention.
En référence à la figure 1, un réseau de communication 2 tel qu’internet comprend des textes 4 rédigés par des utilisateurs du réseau de communication 2.
Une machine 6, telle qu’un ordinateur, est connectée au réseau de télécommunication 2. La machine 6 est apte à télécharger au moins certains des textes 4 sur un serveur 8 de la machine 6, par exemple une mémoire vive de la machine 6. Ainsi, le texte 4 du réseau de communication 2 à analyser est téléchargé sur le serveur 8 en vue de son analyse.
La machine 6 comprend un support de stockage 10, tel qu’un disque dur, dans lequel est stocké au moins un lexique 12. Le ou chaque lexique 12 comprend un ensemble d’entrées lexicales 14. Le lexique 12 et ses entrées lexicales 14 seront décrits plus bas.
La machine 6 comprend un calculateur 16. Celui-ci est connecté avec le support de stockage 10 et est apte à :
- lire les entrées lexicales 14 des lexiques 12, et
- modifier les lexiques 14, notamment en y enregistrant de nouvelles formes.
Le calculateur 16 est également connecté au serveur 8 en vue de l’analyse des
-6textes qui y ont été téléchargés et qu’on souhaite analyser.
Le procédé d’analyse selon l’invention met en œuvre les étapes générales suivantes :
- l’enrichissement des lexiques 12 par des mécaniques de génération de variantes orthographiques et syntaxiques,
- l’organisation des variantes ainsi générées en vue de leur exploitation,
- l’analyse du texte à l’aide de comparaisons avec les lexiques enrichis.
Dans ce qui suit, on va décrire chacune de ces trois étapes générales du procédé d’analyse.
Description de la ressource linguistique
Un lexique est un ensemble d’entrées lexicales, associés à une ou plusieurs étiquettes ou labels qui permettent de caractériser le sens donné au lexique. Une entrée lexicale est composée de formes, qui correspondent à des suites de mots ou de caractères en fonction de la langue, ou de formes cooccurrentes, qui correspondent à des ensembles de forme apparaissant dans une fenêtre de mots ou caractères).
Afin d’enrichir le lexique, on utilise un ou plusieurs générateurs de variantes qui s’appuient sur des mécaniques de génération de variantes orthographiques et syntaxiques. Le calculateur a pour fonction de :
- générer au moins une variante orthographique d’une forme ou d’une forme cooccurrente de l’entrée lexicale au moyen du ou des générateurs, et
- enregistrer la ou chaque variante dans le lexique.
Dans ce qui suit, on décrira notamment deux types de générateurs, à savoir les générateurs de formes et les générateurs de formes cooccurrentes. Ces générateurs permettent de générer des ensembles de formes ou de formes cooccurrentes et de les enregistrer dans le lexique.
Une étiquette unique peut être attribuée à un générateur. Le cas échéant, les formes ou les formes cooccurrentes générées par ce générateur sont également associées à cette étiquette. Ce sont ces formes ou ces formes cooccurrentes associées à l’étiquette que nous allons chercher à identifier dans un texte à traiter ou analyser.
Les formes sont les éléments de base du lexique. Chaque forme est décrite avec une chaîne de caractères.
Un système de tokenization est un système de découpage d’une chaîne de caractère en tokens. Un token est une sous-séquence de la chaîne de caractères. Dans le cadre de l’invention, il s’agit d’un mot de la chaîne. En d’autres termes, la tokenization revient à segmenter la chaîne de caractères en unités orthographiques. A titre d’exemple, en langue française ou anglaise, cela revient à segmenter la chaîne de
- 7caractère en mots. Dans ce qui suit, on se place dans le contexte où la chaîne de caractère est segmentée en mots. Pour une chaîne de caractères donnée, la fonction du système de segmentation est de placer des séparateurs à certaines positions de la chaîne. Les mots résultant de l’opération sont les chaînes de caractères comprises entre deux séparateurs. Par exemple, pour la chaîne « Je suis une chaîne à segmenter », le résultat de la segmentation serait : « Je », « », « suis », « », « une », « », « chaîne », « », « à », « », « segmenter ». Un token dont la fonction est de séparer les unités orthographiques est appelé token séparateur ou tout simplement séparateur, par exemple le token « ».
Le générateur de variantes permet de définir de manière intuitive les ensembles formes à l’aide de deux mécaniques de génération de variantes : la génération de variante par motif et la génération de variante par transformation.
La génération de variante par motif est décrite par une chaîne de caractères représentant une expression régulière restreinte en l’espèce aux quantifieurs finis (notamment le point d’interrogation «?» et l’intervalle fini «{n,m}»), à l’alternative (barre verticale « | »), au parenthésage (« () ») et aux classes de caractères nonprédéfinies et sans complément (crochet « [] »). L’ensemble des formes générées par un motif est composé de toutes les formes décrites par des chaînes de caractères qui correspondent au motif.
L’alternative consiste à proposer des chaînes alternatives et à permettre de choisir une de ces chaînes parmi celles situées entre les barres verticales « | ». Par exemple, le générateur « chien|chat|avion » génère les formes suivantes : « chien », « chat », « avion ».
Le parenthésage permet de former des groupements afin de faciliter l’utilisation des opérateurs. Par exemple, le générateur « ren(o|ault|aud) » génère les formes suivantes : « reno », « renault », « renaud ». A titre d’exemple supplémentaire, le générateur « galettes? d(es rois|u roi) » génère les formes suivantes : « galette du roi », « galettes du roi », « galette des rois », « galettes des rois ».
L’intervalle fini {n, m} permet la répétition de n à m fois l’élément précédant l’intervalle. Par exemple, le générateur « ouai{1, 4}s » génère les formes suivantes : « ouais », « ouaiis », « ouaiiis », « ouaiiiis ».
Les crochets permettent de choisir un des caractères parmi ceux entre crochets. Par exemple, le générateur « mang[éeèê] » génère les formes suivantes : « mangé », « mange », « mangé », « mangé ».
La génération de variantes par transformation est décrite par des opérations de transformation de mots qui peuvent se combiner. Les opérations de variation disponibles sont en l’espèce au nombre de quatre. Le calculateur a le choix d’activer ou
- 8de désactiver des opérations de variante pour une forme donnée. Une opération de variation prend en entrée un mot et restitue en sortie un autre mot variant. Les quatre opérations sont les suivantes :
- La capitalisation ( CAP ) qui met en majuscule le premier caractère du mot.
Exemple : CAP( « chien » ) = « Chien ».
- La minusculisation ( MIN ) qui met en minuscule tous les caractères du mot. Exemple : MIN( «AUDI » ) = « audi ».
- La majusculisation ( MAJ ) qui met en majuscule tous les caractères du mot.
Exemple : MAJ( « audi » ) = «AUDI ».
- La désaccentuation ( DES ) qui désaccentue tous les caractères du mot.
Exemple : DES( « éventré » ) = « eventre ».
Les variantes générées par une opération de variation sont toutes les formes résultant de la combinaison des mots originaux et de leur forme variantes.
Exemple : CAP( « chien de paille » ) = « Chien De Paille », « chien De Paille », « Chien De paille », « Chien de Paille », « Chien de paille », « chien De paille », « chien de Paille ».
Si plusieurs opérations de variation sont activées, les variantes d’un mot sont les mots résultant de toutes les combinaisons d’opérations possibles.
Exemple : CAP+DES( « été indien » ) = « ete indien », « ete Indien », « Eté Indien », « Été Indien », « été Indien », « Été indien ».
Une forme cooccurrente représente deux formes séparées par un nombre maximal de mots. Il s’agit d’une construction récursive composée de deux formes ordonnées associées à un entier naturel représentant la distance maximale entre les deux entrées.
Le générateur de formes cooccurrentes permet de générer un ensemble de formes cooccurrentes. Il est décrit par deux générateurs (Generatorl et Generator2) d’entrées ordonnées, une distance maximale (MaxDistance) formée par un entier naturel et un booléen d’ordonnancement (Ordered). MaxDistance et Ordered forment respectivement des paramètres de distance et d’ordonnancement.
Les formes cooccurrentes générées sont toutes les formes cooccurrentes résultant de la concaténation des formes générées par le générateur d’entrées n°1 avec celles générées par le générateur d’entrées n°2 avec une distance comprise entre 0 et MaxDistance. Si le booléen d'ordonnancement est faux, la forme cooccurrente inverse est également générée. Par exemple, avec les paramètres suivants : Generatorl = « avion? », Generator2 = « réaction », MaxDistance = 2 et Ordered = « faux », les formes cooccurrentes suivantes sont générées : « avions [0..3] réaction », « avion [0..3] réaction », « réaction [0..3] avions », « réaction [0.. 3] avion ».
On peut également mentionner deux autres générateurs.
- 9Un générateur de groupe permet de regrouper un ensemble de formes décrites par un ensemble de générateurs. Il est décrit par une liste de générateurs. Les formes générées sont toutes les formes générées par les générateurs de la liste.
Un générateur de référence permet de générer les formes du générateur associées à une étiquette. Il est décrit par une étiquette correspondant au générateur ciblé. Les formes générées sont toutes les formes générées par la cible.
Compilation de la ressource linguistique
Il s’agit désormais d’organiser les variantes générées en vue de leur exploitation pour l’analyse du texte.
Dans le cadre du présent mode de mise en œuvre du procédé, la première étape de compilation est un prétraitement consistant à générer des arbres d’entrées lexicales relatives aux générateurs possédant une étiquette. En effet, on s’intéresse aux seules entrées lexicales possédant une étiquette. Un arbre d’entrées lexicales est un arbre naire dont des feuilles sont des mots, et dont des nœuds internes possèdent au moins deux fils ordonnés. De plus, à chaque couple de fils se succédant est associé un entier représentant la distance maximale entre les deux fils. On a représenté en figure 2 un exemple d’arbre d’entrées lexicales.
Les arbres d’entrées lexicales sont créés de la manière suivante en fonction des générateurs :
- Générateur de variantes : Toutes les variantes générées sont segmentées. Pour chaque variante, on conserve dans l’ordre les N mots ou tokens non-séparateurs. Si le nombre de mots est de 1, on crée un arbre composé d’une racine représentant un mot. Si le nombre de mots est strictement supérieur à 1, on crée ensuite un arbre composé d’une racine et de N fils ordonnés tels que le n-ième fils correspond au n-ième mot. La distance maximale entre les fils de l’arbre est définie à 0.
- Générateur de forme cooccurrente. Si le booléen d'ordonnancement est égal à «vrai», on crée deux ensembles d’arbres lexicaux (LexTreesI et LexTrees2) contenant les formes créées respectivement à partir de deux générateurs Generatorl et Generator2. Ensuite, pour toutes les combinaisons de ces ensembles, on crée un arbre composé d’une racine ayant un premier fils issu de l’ensemble LexTreesI et un deuxième fils issu de l’ensemble LexTree2. La distance entre les fils correspond à la valeur du paramètre MaxDistance. Si le booléen d'ordonnancement est égal à « faux », on génère également les arbres lexicaux en inversant la combinaison des deux ensembles d’arbre lexicaux LexTreesI et LexTrees2.
- Générateur de groupe ou de référence. S’agissant de générateurs faisant référence à un ou plusieurs générateurs, on crée les arbres lexicaux correspondant à ces générateurs.
On a représenté en figures 3a, 3b et 3c des arbres d’entrées lexicales générés à partir de différents types d’entrées lexicales.
La deuxième étape consiste à « aplatir » les arbres d’entrées lexicales, c’est-à-dire à les transformer en arbre de profondeur 1. Pour effectuer cette opération, on applique une opération de réduction aux nœuds internes non-racine dont les fils sont des feuilles.
Soit un nœud x étant le n-ième fils d’un nœud y et distant de ses frères précédents et suivants (si ces derniers existent) de PrevMaxDist et NextMaxDist. L’opération de réduction consiste à :
- retirer le nœud x de l’arbre,
- rattacher tous les fils de x à y en les insérant à la position n où était rattachée x et en conservant les distances maximales entre les fils de x,
- si x n’est pas le premier fils de y, associer la distance PrevMaxDist entre le premier fils de x et le fils n-1 de y, et
- si x n’est pas le dernier fils de y, associer la distance NextMaxDist entre le dernier fils de x et le fils n+1 de y.
La figure 4 illustre le procédé d’aplatissement d’un arbre de profondeur égale à deux.
La troisième étape consiste à faire l’inventaire des feuilles (c’est-à-dire des mots) des arbres lexicaux et à les faire correspondre à un identifiant entier supérieur à 0, ce de manière bijective. La bijection entre un mot et un identifiant, c’est-à-dire l’application d’un dictionnaire de mots, peut s’effectuer à l’aide de structures de données optimisées pour la recherche de chaîne de caractères tels que des arbres radix. Ces structures de données étant connues, on ne les décrira pas davantage dans ce qui suit. La structure de données et l’algorithme de recherche ne sont pas non plus décrits dans ce qui suit.
Pour finir, on remplace les mots des feuilles des arbres lexicaux par les identifiants correspondants. La figure 5 illustre cette étape de remplacement.
La quatrième étape sert à réduire le nombre d’arbres lexicaux en les fusionnant. Les arbres lexicaux ayant la même étiquette, le même nombre de fils et les mêmes distances entre les fils peuvent être fusionnés en fusionnant les feuilles à la même position. Le résultat de la fusion de plusieurs feuilles est l’union des identifiants de ces feuilles. Enfin, les arbres ayant une topologie identique mais ayant des étiquettes différentes sont fusionnés sous un arbre unique avec union des étiquettes d’origine.
La cinquième étape consiste à construire un index de correspondance entre les
- 11 arbres et les identifiants de leur première feuille. Cet index est nommé LexTreeWithFirstlds, et permettra de trouver facilement les arbres lexicaux commençant par un identifiant à l’étape d’application de la ressource linguistique.
Application de la ressource linguistique
Les variantes générées étant désormais convenablement organisées, le calculateur procède à l’analyse du texte à l’aide des lexiques enrichis.
Les correspondances des arbres d’entrées lexicales avec le texte à analyser s’effectue en deux étapes, à savoir la conversion des textes en listes d’identifiants puis la recherche de correspondances dans l’arbre d’entrées lexicales.
La conversion d’un texte en une liste d’identifiants s’effectue en segmentant en mots dans un premier temps le texte avec le même système de segmentation que celui utilisé pour la génération de lexique. Puis le dictionnaire de mots créé lors de la troisième étape décrite en relation avec le titre « Compilation de la ressource linguistique » est appliqué pour trouver les identifiants correspondants aux tokens nonséparateurs. Les mots n’ayant pas de correspondance dans le dictionnaire se voient attribuer l’identifiant 0 qui n’est jamais attribué par le dictionnaire. Le résultat est une liste d’identifiants de tokens non-séparateurs.
Le recherche de correspondances s’effectue par un parcours progressif de la liste d’identifiants de mots. A chaque nouvel identifiant parcouru, l’index LexTreeWithFirstlds (voir la quatrième étape décrite en relation avec le titre « Compilation de la ressource linguistique ») est utilisé pour trouver les arbres lexicaux dont le premier identifiant correspond à l’identifiant courant. Dès lors deux cas se présentent.
Dans le premier cas, si l’arbre d’entrée lexicale trouvé est composé d’une seule feuille, alors une correspondance de l’arbre d’entrée lexicale est trouvée.
Dans le second cas, si l’arbre d’entrée lexicale trouvé est composé de plusieurs feuilles, alors une correspondance partielle est enregistrée. Cette correspondance partielle contient une référence à l’arbre d’entrée lexicale candidat, l’index du dernier identifiant correspondant - ici l’identifiant courant - et l’index de la prochaine feuille attendue de l’arbre d’entrée lexicale.
Ensuite pour chacune des correspondances partielles enregistrées, on effectue les opérations suivantes :
- si la distance entre le dernier identifiant correspondant et l’identifiant courant est supérieur à la distance maximale de la prochaine feuille attendue, la correspondance partielle est retirée de la liste ;
- si l’identifiant courant correspond à l’un des identifiants de la prochaine feuille mais qu’il ne s’agit pas de la dernière feuille de l’arbre, la correspondance est mise à jour de la manière suivante : l’index du dernier identifiant correspondant est mis à jour, ici avec l’index de l’identifiant courant, et le numéro de la prochaine feuille attendue est incrémenté ;
- si l’identifiant courant correspond à l’un des identifiants de la prochaine feuille et qu’il s’agit de la dernière feuille de l’arbre d’entrée lexicale, une correspondance de l’arbre d’entrée lexicale est trouvée.
Pour une étiquette donnée L, on définit son nombre d’occurrences dans le texte T à analyser comme étant le nombre de fois où un arbre d’entrée lexicale portant l’étiquette L génère une correspondance à la fin du traitement de T.
Afin de prévenir les ambiguïtés pouvant survenir lors de l'utilisation du générateur de lexique hors de son contexte thématique, chaque générateur de lexique est créé en ayant la connaissance de la ou les thématique(s) dans le(s)quelle(s) il peut s’appliquer. Ainsi chaque générateur de lexique est associé à une thématique particulière.
Lorsqu’un texte est traité, une ou plusieurs thématiques lui sont attribuées au préalable via un système de catégorisation (qui n’est pas présenté ici). Chaque arbre candidat est associé à un contexte global. En faisant correspondre le contexte de chaque arbre à la thématique courante, on s’assure que les arbres hors contexte ne viennent pas bruiter le processus. Par exemple, un arbre associé au contexte aviation est écarté lorsque la thématique courante est cuisine.
Le procédé d’analyse selon l’invention peut par exemple être employé pour les applications suivantes :
- le ciblage sémantique de contenus en vue de l’adaptation de la publicité sur internet,
- la veille sociale sur internet,
- l’analyse de tendances marketing et sociétales,
- l’analyse de courriels pour le profilage de clientèle, ou
- l’analyse de ticket pour la maintenance industrielle.
On peut prévoir un programme d’ordinateur qui comprend des instructions de code aptes à commander l’exécution d’un procédé d’analyse tel que décrit dans ce qui précède lorsqu’il est exécuté sur un ordinateur, ainsi qu’un procédé de mise à disposition de ce programme en vue de son téléchargement sur un réseau de communication. Ce programme peut notamment être enregistré dans un support de stockage lisible par un ordinateur contenant des instructions qui, lorsqu’elles sont exécutées par un ordinateur, font mettre en œuvre à cet ordinateur un procédé d’analyse tel que décrit dans ce qui précède.
Bien entendu, on pourra apporter à l'invention de nombreuses modifications sans sortir du cadre de celle-ci.

Claims (14)

  1. REVENDICATIONS
    1. Procédé d’analyse d’un texte (4), caractérisé en ce que, pour au moins une forme d’une entrée lexicale (14) prédéterminée du texte (4), cette entrée (14) appartenant à un lexique (12) prédéterminé stocké dans un support de stockage (10), un calculateur (16) :
    - génère au moins une variante orthographique de la forme de l’entrée (14), et
    - enregistre la ou chaque variante dans le lexique (12).
  2. 2. Procédé selon la revendication précédente, dans lequel, la forme de l’entrée lexicale (14) étant définie par une chaîne de caractères, on applique à la forme de l’entrée lexicale (14) au moins un générateur de variantes par motif, ce générateur étant apte à effectuer l’une des actions suivantes :
    - rendre optionnel un caractère de la forme de l’entrée lexicale, par exemple au moyen de l’opérateur point d’interrogation (?),
    - répéter un nombre fini de fois un caractère de la forme, par exemple au moyen de l’opérateur intervalle ( {} ),
    - placer dans la forme de l’entrée lexicale une chaîne de caractères à une position prédéterminée et choisie parmi une liste de chaînes de caractères prédéterminée, la liste étant généralement de cardinal égal à deux, par exemple au moyen de l’opérateur alternative ( | ),
    - placer dans la forme de l’entrée lexicale un caractère, à une position prédéterminée, appartenant à des classes de caractères non-prédéterminées et sans complément, par exemple au moyens de crochets ( [ ] ), et
    - ordonnancer l’application de générateurs de variantes, par exemple au moyen du parenthésage.
  3. 3. Procédé selon l’une quelconque des revendications précédentes, dans lequel on applique à la forme de l’entrée lexicale (14) au moins un générateur de variantes par transformation, ce générateur étant apte à effectuer au moins l’une des actions suivantes : capitalisation, minusculisation, majusculisation et désaccentuation.
  4. 4. Procédé selon l’une quelconque des revendications précédentes, dans lequel, les formes étant au moins au nombre de deux et associées à deux entrées lexicales (14) différentes, on applique au moins un générateur de formes cooccurrentes aux deux formes cooccurrentes, avec comme paramètres un entier naturel formant un paramètre de distance et un booléen d’ordonnancement formant un paramètre d’ordonnancement, de manière à générer des formes cooccurrentes résultant de la concaténation des deux formes avec une distance comprise entre 0 et le paramètre de distance, et aussi les formes cooccurrentes inverses si le paramètre d’ordonnancement est égal à « faux ».
  5. 5. Procédé selon la revendication précédente, dans lequel, dans le procédé de la revendication 4, le générateur de formes cooccurrentes est appliqué aux variantes orthographiques des deux formes générées au lieu d’être appliqué directement aux deux formes.
  6. 6. Procédé selon l’une quelconque des revendications précédentes, dans lequel :
    - on segmente en mots des produits de la génération de variantes,
    - on crée un arbre d’entrées lexicales comprenant ces mots, chacun de ces mots étant représenté par une feuille de l’arbre, et
    - on segmente le texte (4) en mots de manière à obtenir un ensemble de mots du texte, puis on compare chaque mot du texte avec les mots de l’arbre.
  7. 7. Procédé selon la revendication précédente, dans lequel, préalablement à la segmentation du texte en mots, on transforme l’arbre d’entrées lexicales en un arbre de profondeur égale à 1.
  8. 8. Procédé selon la revendication précédente, dans lequel, préalablement à la segmentation en mots du texte (4), on attribue de manière bijective un identifiant entier strictement positif à chaque feuille de l’arbre.
  9. 9. Procédé selon l’une quelconque des revendications précédentes, dans lequel on met en communication le calculateur (16) avec un serveur (8), par exemple une mémoire vive d’un ordinateur (6), dans lequel est stocké le texte (4).
  10. 10. Procédé selon l’une quelconque des revendications précédentes, utilisé pour l’une des applications suivantes :
    - le ciblage sémantique de contenus en vue de l’adaptation de la publicité sur un réseau de communication tel qu’internet,
    - la veille sociale sur un réseau de communication tel qu’internet,
    - l’analyse de tendances marketing ou sociétales,
    - l’analyse de courriels pour le profilage de clientèles, ou
    - l’analyse de tickets pour la maintenance industrielle.
  11. 11. Programme d’ordinateur caractérisé en ce qu’il comprend des instructions de code aptes à commander l’exécution d’un procédé selon l’une quelconque des revendications précédentes lorsqu’il est exécuté sur un ordinateur.
  12. 12. Procédé de mise à disposition du programme de la revendication précédente en vue de son téléchargement sur un réseau de communication.
  13. 13. Machine (6), telle qu’un ordinateur, comprenant le programme d’ordinateur selon la revendication 11 et des moyens aptes à exécuter ce programme.
  14. 14. Support de stockage lisible par un ordinateur contenant des instructions qui, lorsqu’elles sont exécutées par un ordinateur, font mettre en œuvre à cet ordinateur un procédé selon l’une quelconque des revendications 1 à 10 et 12.
FR1754276A 2017-05-16 2017-05-16 Procede d'analyse de textes sur un reseau de communication Pending FR3066630A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1754276A FR3066630A1 (fr) 2017-05-16 2017-05-16 Procede d'analyse de textes sur un reseau de communication

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1754276 2017-05-16
FR1754276A FR3066630A1 (fr) 2017-05-16 2017-05-16 Procede d'analyse de textes sur un reseau de communication

Publications (1)

Publication Number Publication Date
FR3066630A1 true FR3066630A1 (fr) 2018-11-23

Family

ID=59253784

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1754276A Pending FR3066630A1 (fr) 2017-05-16 2017-05-16 Procede d'analyse de textes sur un reseau de communication

Country Status (1)

Country Link
FR (1) FR3066630A1 (fr)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LUCIE STEIBLÉ ET AL: "Vers un lexique ouvert des formes fléchies de l'alsacien : génération de flexions pour les verbes", ACTES DE LA CONFÉRENCE CONJOINTE JEP-TALN-RECITAL 2016, VOLUME 2 : TALN, 1 January 2016 (2016-01-01), France, XP055438235, Retrieved from the Internet <URL:https://jep-taln2016.limsi.fr/actes/Actes JTR-2016/Papers/T68.pdf> [retrieved on 20180104] *
MATTHIEU CONSTANT: "Mettre les expressions multi-mots au coeaur de l'analyse automatique de textes : sur l'exploitation de ressources symboliques externes", 1 January 2012 (2012-01-01), XP055440368, Retrieved from the Internet <URL:https://tel.archives-ouvertes.fr/tel-00841556/PDF/hdr.pdf> [retrieved on 20180112] *
PATRICK WATRIN ET AL: "An N-gram frequency database reference to handle MWE extraction in NLP applications", PROCEEDINGS OF THE WORKSHOP ON MULTIWORD EXPRESSIONS: FROM PARSING AND GENERATION TO THE REAL WORLD, 1 January 2011 (2011-01-01), pages 83 - 91, XP055440776 *

Similar Documents

Publication Publication Date Title
CN106156365B (zh) 一种知识图谱的生成方法及装置
Romein et al. State of the field: digital history
US10423649B2 (en) Natural question generation from query data using natural language processing system
CA2867547C (fr) Procede et systeme mis en oeuvre par un ordinateur et systeme pour la creation de contenu
FR2896603A1 (fr) Procede et dispositif pour extraire des informations et les transformer en donnees qualitatives d&#39;un document textuel
US10013404B2 (en) Targeted story summarization using natural language processing
FR2975201A1 (fr) Analyse de texte utilisant des proprietes de listes linguistiques et non-linguistiques
US20200372088A1 (en) Recommending web api&#39;s and associated endpoints
EP1364316A2 (fr) Dispositif d&#39;extraction d&#39;informations d&#39;un texte a base de connaissances
US9633008B1 (en) Cognitive presentation advisor
CN109508448A (zh) 基于长篇文章生成短资讯方法、介质、装置和计算设备
Chatterjee et al. Python social media analytics
Beleveslis et al. A hybrid method for sentiment analysis of election related tweets
Leonandya et al. A semi-supervised algorithm for Indonesian named entity recognition
WO2015114014A1 (fr) Procédé d&#39;analyse sémantique d&#39;un texte
Mercan et al. Abstractive text summarization for resumes with cutting edge NLP transformers and LSTM
JP5291351B2 (ja) 評価表現抽出方法、評価表現抽出装置、および、評価表現抽出プログラム
WO2016116459A1 (fr) Procédé de lemmatisation, dispositif et programme correspondant
FR3066630A1 (fr) Procede d&#39;analyse de textes sur un reseau de communication
Sahmoudi et al. Towards a linguistic patterns for arabic keyphrases extraction
CN107092669A (zh) 一种建立机器人智能交互的方法
Buerki Frequency consolidation among word N-grams: a practical procedure
FR2986882A1 (fr) Procede d&#39;identification d&#39;un ensemble de phrases d&#39;un document numerique, procede de generation d&#39;un document numerique, dispositif associe
Goel et al. Emotion analysis of twitter data using hashtag emotions
CN117972025B (zh) 一种基于语义分析的海量文本检索匹配方法

Legal Events

Date Code Title Description
PLSC Publication of the preliminary search report

Effective date: 20181123