> ## 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.

# Hypothèses et arbres d’hypothèses

> Dans ABBYY FlexiLayout Studio, les hypothèses sont des correspondances candidates pour les éléments : découvrez comment la qualité est calculée, ce que sont les hypothèses nulles et un exemple pratique.

Une **hypothèse** est une supposition du programme selon laquelle le ou les objets détectés correspondent à un élément particulier, c’est-à-dire satisfont aux propriétés et aux critères de recherche spécifiés pour cet élément.

<Warning>
  Il peut y avoir plusieurs objets ou ensembles d’objets dans la zone de recherche de l’élément, qui correspondent tous à l’élément. Dans ce cas, le programme formulera une hypothèse pour chaque objet détecté.
</Warning>

Les hypothèses sont caractérisées par leur **qualité**.

La qualité d’une hypothèse mesure à quel point l’objet détecté correspond à la description de l’élément correspondant. Il s’agit d’une valeur numérique comprise entre 0 et 1.

La qualité d’une hypothèse est calculée comme \[ Pre-search quality ]\*\[ Post-search quality ], où

* La qualité de pré-recherche correspond à la qualité des paramètres définis dans la boîte de dialogue **Properties** et dans le champ **relations avancées de pré-recherche**.
* La qualité de post-recherche est le résultat de l’application des conditions spécifiées dans le champ **Advanced post-search relations**.

La qualité d’une hypothèse pour un élément Group est calculée en multipliant les qualités des hypothèses de tous les éléments constitutifs.

Pour les [éléments facultatifs](/fr/flexi-capture/fls/template/elements-optional), le programme formule une hypothèse nulle.

Une **hypothèse nulle** est une hypothèse que le programme formule s’il ne détecte aucun objet correspondant à un élément facultatif dans la zone de recherche.

Cela signifie que si le programme ne trouve aucun objet correspondant à un élément facultatif, il n’interrompt pas la mise en correspondance du FlexiLayout, mais formule une hypothèse nulle et lui attribue une qualité définie par l’utilisateur lors de la création de l’élément facultatif.

Par commodité, le terme *hypothèse* est également utilisé pour désigner l’ensemble d’objets inclus dans une hypothèse particulière.

<div id="hypotheses-a-practical-example">
  ## Hypothèses : un exemple pratique
</div>

Supposons que vous deviez créer deux éléments pour rechercher deux textes statiques sur vos images. Le premier texte statique est "mother", le second est "father", et le texte "father" se trouve toujours sous le texte "mother". Le premier élément Static Text, **StaticText1**, servira à rechercher le texte "mother", et le second élément Static Text, **StaticText2**, servira à rechercher le texte "father". Supposons également que les deux éléments soient facultatifs et que la qualité de l’hypothèse nulle de chacun d’eux soit définie sur 0.97.

Aucune contrainte n’est définie pour la zone de recherche de **StaticText1**. Comme le texte "father" se trouve toujours sous le texte "mother", vous pouvez spécifier que **StaticText2** doit toujours se trouver sous **StaticText1**. Pour ce faire, saisissez la contrainte correspondante dans l’onglet **Relations** de la boîte de dialogue **Properties** de l’élément **StaticText2** : `Below: SearchElements.StaticText1;`.

La figure suivante affiche les résultats de la mise en correspondance du FlexiLayout avec une image sur laquelle le mot "mother" apparaît deux fois (au-dessus et au-dessous du mot "father") et où une erreur d’OCR a été commise dans le mot "mother" situé au-dessus du mot "father".

<img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Example_Father_Mother.gif?fit=max&auto=format&n=fmgRWFNHKYN2MLSg&q=85&s=9daad26cd814a1feb2fd5f58f07a9a0e" alt="" width="549" height="486" data-path="images/flexi-capture/fls/Example_Father_Mother.gif" />

La mise en correspondance du FlexiLayout a généré deux hypothèses pour l’élément **StaticText1**. La première hypothèse correspond au mot "mother", reconnu avec une erreur d’OCR, situé au-dessus du mot "father", et a une qualité de 0.98. La seconde hypothèse correspond au mot "mother" situé au-dessous du mot "father" et a une qualité de 1.

À ce stade, la qualité de chaque chaîne est identique à celle de l’hypothèse correspondante. La meilleure chaîne est donc celle qui contient l’hypothèse d’une qualité de 1.

Comme l’élément **StaticText2** doit se trouver sous l’élément **StaticText1** et que le programme a généré deux hypothèses pour l’élément **StaticText1**, il essaie maintenant de trouver le texte statique requis dans deux zones de recherche. Si le programme poursuit la seconde hypothèse, d’une qualité de 1, qui a trouvé le mot "mother" sous le mot "father", il ne parviendra pas à trouver l’élément **StaticText2** sous l’élément **StaticText1** et générera donc une hypothèse nulle d’une qualité de 0.97. La qualité de la chaîne d’hypothèses obtenue sera 1x0.97=0.97.

Si le programme poursuit la première hypothèse, d’une qualité de 0.98, qui a trouvé le mot "mother" au-dessus du mot "father", il détectera correctement l’élément **StaticText2** sous l’élément **StaticText1** et générera une hypothèse d’une qualité de 1. La qualité de la chaîne d’hypothèses obtenue sera 0.98x1=0.98.

Par conséquent, le programme sélectionne la chaîne dont la qualité globale est de 0.98.
