• Aucun résultat trouvé

Chapitre V. Méthodologies d’acquisition et de maintenance des règles métier

sémantique.

V.2.1.1 Fouille syntaxique

Une fouille syntaxique correspond à une fouille à base de mots-clés caractéristiques de règles métier. Chaque mot-clé permet de construire un patron spécifique afin de retrouver toutes les phrases contenant ce mot-clé. Un mot-clé est manipulé dans un patron selon que celui-ci s’applique sur le contenu brut des phrases ou sur leurs arbres syntaxiques respectifs.

L’application d’un patron suppose alors une analyse lexicale ou une analyse syntaxique de chacune des phrases de la base documentaire (textes réglementaires).

L’analyse lexicale permet d’utiliser une phrase comme une suite de mots ou de considérer la chaîne de caractères associée. Dans ce cas, un mot-clé est un mot simple ("must") ou un groupe de mots successifs ("shall be") ou non successifs ("if...then"). Les deux premiers types de mots-clés sont détectés par une simple recherche de chaîne dans la phrase. Les mots non successifs peuvent être traités comme une conjonction (and: sélectionner toutes les phrases qui contiennent tous les mots de la conjonction à la fois), ou comme une disjonction (or : sélectionner toutes les phrases qui contiennent au moins un mot de la disjonction).

On peut définir un peu plus précisément ce type de patron.

Considérons les ensemblesMetS qui définissent respectivement l’ensemble des mots-clés caractéristiques de règles et l’ensemble des phrases du document. Pour nos expériences, nous avons choisi l’union des mots clés de SBVR-SE et des mots clés de RuleSpeak.

M est découpé en trois sous-ensembles correspondant chacun à un type de mots-clés : M = {T1T2T3} où T1 est la liste des mots-clés simples (un seul mot chacun), T2 la liste des mots-clés constitués de groupes de mots successifs, T3 la liste des mots-clés constitués de mots ou groupes de mots disjoints.

L’ensembleP des patrons construits avec les mots-clés contenus dansM est P={p|p=OPi=1n mi et miT1T2} oùOP est l’un des {+,· · · ,∨,∧}

Nous utilisons aussi la fonctionnorm(s) qui est une normalisation de la phrase s obtenue en remplaçant tous les séparateurs par le caractère blanc (d’espacement).

L’application d’un patron dePpour identifier les phrases concernées peut alors se définir

V.2 Identification des règles candidates

comme une fonctionr de recherche : r :PS

pr(p) = {s∈S/match(s, p) = 1}

match(s, p) =

1 si

OP = + etp est une sous chaîne denorm(s)

OP = · · · et pour tout i,mi est une sous chaîne de norm(s), et ces sous chaînes apparaissent dans l’ordre

OP =∧ et pour chaque i mi est une sous chaîne denorm(s) OP =∨ et pour au moins un i mis

0 sinon

(V.1) L’analyse syntaxiquepermet d’utiliser l’arbre syntaxique d’une phrase et d’y appliquer des patrons plus complexes que ceux utilisés pour les contenus bruts des phrases. Elle permet d’effectuer une fouille sur la base des informations syntaxiques associées à une phrase notamment les catégories morpho-syntaxiques des mots ainsi que les dépendances entre ces mots. Les patrons utilisés dans ce cas sont construits à l’aide de mots-clés caractéris-tiques de règles et de descripteurs syntaxiques. Ils s’appliquent sur l’arbre syntaxique de la phrase.

Il existe deux types d’arbres syntaxiques (voir FigureV.21) :

1. les arbres syntaxiques de composants qui associent une étiquette morpho-syntaxique (S : Sentence (phrase), NP : Noun Phrase (groupe nominal), VP : Verb Phrase (groupe verbal), N : Noun (nom), V : Verb (verbe) , etc) à des sous parties d’une phrase ;

2. et les arbres de dépendance qui spécifient les dépendances syntaxiques ou les types de relations syntaxiques entre les mots et, indirectement, entre les différents composants d’une phrase (sujet(,), COD(,), apposition(,), etc).

Des exemples de patrons sont :

NP + can + only + V · · · if + NP. Ce patron s’applique sur un arbre syntaxique des composants et il permet de chercher toutes les phrases contenant les mots-clés

“can”, “only”et “if” avec la précision que ”can” vient après un groupe nominal, est

1. Exemple tiré de http ://en.wikipedia.org/wiki/Parse_tree et modifié

Chapitre V. Méthodologies d’acquisition et de maintenance des règles métier

Figure V.2Exemples arbres de composants et arbres de dépendances.

immédiatement suivi de ”only” puis du verbe, après lequel se trouve, en position non nécessairement contiguë, ”if” suivi d’un autre groupe nominal.

sujet(S,V)S + shall + V . Celui-ci s’applique sur un arbre de dépendance et il permet de retrouver toutes les phrases où le mot-clé ”shall” s’intercale exactement entre le dépendant et la tête d’une dépendance ’sujet’ – c’est-à-dire entre le sujet et le verbe.

De la même manière que au niveau de l’analyse lexicale, nous pouvons définir les patrons spécifiques aux arbres syntaxiques :

Considérons les mêmes ensemblesMde mots clés etS de phrases utilisés précédemment.

Considérons de plus les ensembles Sasc et Sasd qui contiennent respectivement les arbres syntaxiques de composants et les arbres de dépendance résultant de l’analyse syntaxique des phrases deS.

L’ensemblePdes patrons comprend deux sous-ensembles Pasc etPasd. Ils sont construits avec les mots-clés contenus dans M et les composants de l’un des deux types d’arbres syntaxiques. Chaque patron filtre une suite ou une somme de combinaisons de mots-clés et de composants, ou de mots-clés et de dépendances syntaxiques.

Pasc={p|p=OPi=1n (mi|ci)∧kj=1ancestor(ci, cj) etmiM etci ∈ {N P, V P, N, V, etc}etOP ∈ {+,· · · }

Pasd = {p|p = OPi=1n (mi|ci)∧lk=1 relk(ci, cj) et miM et ci ∈ {S, V, C, etc} et OP ∈ {+,· · · } et relk ∈ {Sujet, Object, Attribut, etc}}

Un patron comporte donc une partie qualifiante (avant le ∧) et une partie relationnelle.

L’application d’un patron dePpour identifier les phrases concernées peut alors se définir

V.2 Identification des règles candidates

comme une fonctionr de recherche : r :PS

pr(p) = {s∈S/match(s, p) = 1}

match(s, p) =

1 si

sS s vérifie la partie qualifiante du patron p et sasc sa partie relationnelle

sS s vérifie la partie qualifiante du patron p et sasd sa partie relationnelle

0 sinon

(V.2)

V.2.1.2 Fouille sémantique

La fouille sémantique dont nous parlons ici n’a pas encore été expérimentée dans les travaux de détection de règles métier mais elle apparaît dans les travaux sur la recherche d’information axés sur l’indexation conceptuelle (voirIII.3). Elle repose sur la sémantique lexicale de la phrase.

Elle consiste à effectuer des recherches non pas avec des mots-clés caractéristiques de règles métier mais avec des termes métier du vocabulaire de domaine. Notre but est de compléter la fouille syntaxique par une fouille à partir des termes : ce qui permettra de trouver certaines phrases pertinentes non identifiables par mots-clés.

Contrairement aux mots-clés, il n’y a pas de configuration connue a priori de termes métier qui soit caractéristique de règles. Les patrons définis dans la fouille syntaxique peuvent être utilisés pour apprendre certaines configurations. Cependant, comme les phrases sélectionnées par la fouille syntaxique ne sont que des candidates plausibles à être une règle métier, effectuer une fouille sémantique avec les termes obtenus ainsi risque de donner un bruit important dans les résultats. Il nous a paru plus pertinent de réduire l’effet de ce bruit importé dans les données initiales en considérant les termes métier figurant dans des règles reconnues.

Nous proposons de chercher d’abord les termes métier qui caractérisent le mieux les règles candidates déjà extraites. C’est une fois que les premières fouilles syntaxiques à base de mots-clés ont été validées que peut commencer une fouille sémantique. Ainsi des calculs sémantiques sont à effectuer dans la base de règles candidates afin d’identifier les termes métier dont les

Chapitre V. Méthodologies d’acquisition et de maintenance des règles métier

fréquences dans les règles et dans le reste du texte diffèrent le plus, à défaut simplement les plus fréquents, et ensuite ces termes pourront être utilisés dans le cadre d’une fouille sémantique pour recherche les phrases qui contiennent ces termes.

Il existe une autre façon aussi intéressante de faire une fouille sémantique. Elle consiste à comparer individuellement les phrases restant dans le textes (c.-à-d.. celles qui ne sont pas apparues dans les fouilles) et les règles candidates extraites suivant les termes métier qu’elles partagent. Il peut être utile d’analyser les phrases qui partagent les mêmes termes que ceux d’une règle candidate donnée ou qui ont plusieurs termes en commun avec une règle candidate.

V.2.2 Rapport avec l’utilisateur

Nous avions déjà précisé que l’identification des règles candidates est une tâche effectuée par l’expert métier. Il guide le processus et valide ou non les phrases résultant de ces fouilles en règle candidate. Nous n’envisageons pas un processus automatique, parce qu’aucune technique ne donne des résultats assez fiables, et l’intervention humaine est toujours nécessaire pour valider (voir IV.1.1), Le processus est semi-automatique et interactif. L’expert contrôle toujours le travail de fouille, y compris l’arrêt et le volume de travail effectué. Il est chargé de choisir le type de fouille (syntaxique ou sémantique) le plus adéquat ou le plus à son goût, de sélectionner les patrons qu’il a envie d’appliquer, et de valider ensuite les résultats, puis de relancer ou pas un cycle de fouille. L’application des patrons quant à elle est à la charge de la plateforme (voirVI.2).

Le système est aussi chargé après chaque fouille, après chaque application d’un patron, après validation des phrases détectées ou leur non validation, de réduire l’espace de recherche et ainsi d’améliorer les fouilles futures. Cette réduction se résume à une simple différence ensembliste : S =S −(SinvSv) où Sinv correspond à l’ensemble des phrases jugées invalides par l’expert et Sv à l’ensemble des phrases jugées valides à partir desquelles des règles candidates ont été dérivées.