> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Comprendre les règles générées

> Lire le code généré automatiquement pour les propriétés des éléments de recherche NLP — références de chemin complet, simplification des noms et explication règle par règle dans Advanced Designer.

Lorsque vous créez un élément et définissez ses propriétés dans le volet **Properties**, le programme génère automatiquement le code correspondant. Cette section vous aide à comprendre ce code généré automatiquement afin de pouvoir le modifier si nécessaire.

<div id="search-element-structure">
  ## Structure de l’élément de recherche
</div>

<Frame>
  <img src="https://mintcdn.com/abbyy/Bmjdl5TjCaidPxKi/images/vantage/advanced-designer/ad_extractionrulesnlp_exampleelements.png?fit=max&auto=format&n=Bmjdl5TjCaidPxKi&q=85&s=85fa49cf52523e1ae1ca9dcd95c0de24" alt="Exemple de structure de l’élément de recherche avec le groupe Parties contenant les éléments enfants Organization et Address" style={{ width:"69%" }} width="542" height="464" data-path="images/vantage/advanced-designer/ad_extractionrulesnlp_exampleelements.png" />
</Frame>

Le code généré automatiquement pour l’élément de recherche `Parties.Address` sera le suivant :

<div id="auto-generated-rule">
  ## Règle auto-générée
</div>

```
~Root.Parties.Address,
t1 : Root.Parties.Organization,
t2 : Root.kw_PreNextParty
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Root.Parties.Address ]+
=>
Root.Parties.Address( t );
```

Comme vous pouvez le constater, le code généré automatiquement fait toujours référence à chaque élément de recherche en utilisant le chemin complet afin d’éviter tout conflit de noms. Dans ce cas, nous pouvons [raccourcir les noms des éléments](/fr/vantage/documentation/advanced-designer/activities/nlp-extraction-rules/code-syntax/basic-concepts#referencing-search-elements) en supprimant Root de chacun.

<div id="rule-with-shorter-element-names">
  ## Règle avec des noms d’élément plus courts
</div>

```
~Parties.Address,
t1 : Parties.Organization,
t2 : kw_PreNextParty
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );
```

Nous pouvons maintenant détailler la signification de chaque instruction :

<div id="rule-explained">
  ## Explication de la règle
</div>

```
// Vérifier que l'élément de recherche Address n'a pas encore été trouvé, car seule la première instance est nécessaire
~Parties.Address,
// Récupérer l'élément de recherche Organization et l'élément de recherche par mot-clé de la partie suivante. Ils ont été trouvés avant Address
t1 : Parties.Organization,
t2 : kw_PreNextParty
// Trouver la séquence de jetons contenant une entité nommée NERAddress
// (le mot-clé "same" spécifie qu'un seul NERAddress doit être associé s'il y en a plusieurs)
// L'adresse doit être située après le nom de l'organisation et avant le mot-clé de la partie suivante
// Le signe + signifie que la séquence de jetons peut être composée de plusieurs mots
// La condition ~@Parties.Address à la fin garantit
// que l'adresse ne sera pas associée à nouveau aux mêmes jetons
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );
```
