[] | Les crochets encadrent un seul jeton. | [] N’importe quel mot ou signe de ponctuation. |
| texte du jeton | "" | Les guillemets désignent un jeton avec le texte spécifié. | ["Grantor"] Un jeton contenant le mot “Grantor”. |
| variable | : | Un deux-points permet d’attribuer un nom à la séquence de jetons qui le suit. Remarque : La variable ne sera disponible que dans cette même règle, c’est-à-dire jusqu’à ce que la partie droite se termine par un point-virgule. | [t: "Contract"] Trouve un jeton contenant le mot “Contract” et l’attribue à la variable t. |
| lemme | L"word" Lemma"word" | “L” ou “Lemma” devant un mot signifie que la recherche doit trouver toutes les formes de ce mot. | [L"rule"] Les jetons tels que “rule”, “rules”, “ruled” et “ruling” seront tous trouvés. |
| expression régulière | /regular expression/ | Les barres obliques simples encadrent une expression régulière. Comme pour les éléments de recherche Value from Regular Expression, la syntaxe d’expression régulière PCRE2 est utilisée. | /[1]?\d:\d{2}\s+(([ap]\.m\.) | ([AP]M))?/ Le modèle correspondra à l’heure au format 12 heures, par exemple “2:00 p.m.”, “9:34 AM”. |
| paramètre d’option pour les expressions régulières | /regular expression/i | Le paramètre d’option peut être placé après la barre oblique qui ferme l’expression régulière. L’option “i”, par exemple, signifie une correspondance insensible à la casse de l’expression régulière. | /[1]?\d:\d{2}\s+([ap]\.?m\.?)?/i Ce modèle simplifie l’exemple ci-dessus grâce à une correspondance insensible à la casse. Il correspondra à l’heure au format 12 heures, par exemple “2:00 p.m.”, “9:34 AM”. |
| prédicats de jeton | <first_in_paragraph> | Le jeton est le premier d’un paragraphe. | ["Section" <first_in_paragraph>] Le mot “Section” commence le paragraphe. Vous pouvez l’utiliser, par exemple, pour extraire le numéro de section qui suit immédiatement ce jeton. |
| prédicats de jeton | <punctuator> | Le jeton est un signe de ponctuation. | ["Tenant"] [<punctuator>]{0,2} Le mot “Tenant” peut être suivi de jusqu’à deux signes de ponctuation, par exemple une parenthèse fermante et une virgule. |
| prédicats de jeton | <initial_letter_capitalized> | Le jeton commence par une lettre majuscule. | [L"agreement" <initial_letter_capitalized>] Ce modèle correspondra à “Agreement” et “Agreements”, mais pas à “agreement”. |
| prédicats de jeton | <mixed_capitalization> | Certaines lettres du jeton, mais pas toutes, sont en majuscules. | [L"letter" <mixed_capitalization>] Ce modèle correspondra, par exemple, à “Letters” et “letteR”. |
| prédicats de jeton | <all_letters_capitalized> | Le jeton est entièrement en lettres majuscules. | [t: @NEROrganization <all_letters_capitalized>]+ Ce modèle correspondra aux entités nommées d’organisation écrites en majuscules. |
| OU logique | | | Une barre verticale permet de spécifier un texte de jeton alternatif ou des conditions alternatives pour le jeton. | ["Lender" | "Co-Lender"] ["shall"] ["have"] Ce modèle correspondra à l’une de ces chaînes : “Lender shall have” ou “Co-Lender shall have” |
| ET logique | espace | L’espace sert de conjonction logique pour les conditions de jeton. | [t: "Section" <first_in_paragraph>] Trouve un jeton contenant le mot “Section” ET commençant un paragraphe. |
| condition d’objet | @object_name | Un arobase (”@”) vérifie que le jeton est situé dans une région d’objet. Les objets suivants sont pris en charge : Objets d’entité nommée, les mêmes types qui sont également disponibles en tant qu’éléments de recherche spécialisés, préfixés par “NER” : NERPerson, NEROrganization, NERAddress, NERLocation, NERDate, NERDuration, NERMoney ; Éléments de recherche ; Sentence - Un objet distinct est créé pour chaque phrase dans le flux de texte ; Paragraph - Un objet distinct est créé pour chaque paragraphe dans le flux de texte. | [t: @NEROrganization]+ ["Lender"] Attribue le nom t à une séquence de jetons contenant une entité NEROrganization et suivie du mot-clé “Lender”. [t: @NERPerson @Preamble_Segment ]+ Trouve le nom d’une personne dans le segment de préambule (représenté par un élément de recherche Input field). |
| séparation d’objets similaires | @object_name( same ) | “same” signifie que pour un jeton répétitif, le même objet est associé à la séquence de jetons au lieu de plusieurs objets de ce type. Si la condition d’objet utilise un OU logique, “same” ne doit pas être utilisé. | Par exemple, si vous avez une liste de noms de personnes qui se suivent, ils seront tous détectés comme NERPerson. Pour extraire le nom d’une personne à la fois, utilisez la condition “same”. [t: @NERPerson( same )]+ Attribue le nom t à la première personne trouvée. |
| position relative | @object_name( right_to( another_object )) @object_name( left_to( another_object )) | “right_to” signifie que object_name se trouve après le another_object spécifié entre parenthèses. “left_to” signifie que object_name se trouve avant le another_object spécifié entre parenthèses. | [ t: @NERAddress( same, right_to( id1 ), left_to( id2 ) )] Trouve une entité nommée NERAddress entre id1 et id2. |
| OU logique (tel qu’utilisé dans les conditions d’objet) | | | Une barre verticale peut également servir de disjonction logique pour les conditions d’objet. | [t: @NERPerson( right_to( id1 ) | right_to( id2 ) )] Attribue le nom t au nom d’une personne située soit après id1, soit après id2. |
| séquence de jetons | espace | Les jetons d’une séquence sont séparés par des espaces. | ["Grantor"] [":"] Ce modèle correspondra à “Grantor:”. Les jetons peuvent être spécifiés simplement pour le contexte, même si ces mots n’ont pas besoin d’être extraits. |
| séquences de jetons alternatives | [token1] | ([token2][token3]) | Une barre verticale permet de spécifier des séquences de jetons alternatives. Les parenthèses définissent la priorité. | ["will"] (["start"] | (["take"] ["place"])) ["on"]Ce modèle correspondra à l’une de ces chaînes : “will start on” ou “will take place on”. Notez que si nous avions omis les parenthèses, le modèle aurait également correspondu à “will start place on”. Les parenthèses garantissent que l’expression “take place” est soit présente dans son intégralité, soit absente. Remarque : Pour des cas réels plus complexes de séquences de jetons alternatives, vous trouverez peut-être plus pratique d’écrire une règle distincte pour chaque alternative :["will"] ["start"] ["on"] => ...; ["will"] ["take"] ["place"] ["on"] => ...; |
| jeton facultatif | []? | Un point d’interrogation signifie que le jeton est facultatif. | ["Tenant"] ["."]? Le mot “Tenant” peut être suivi d’un point. |
| jeton répétable facultatif | []* | Un astérisque signifie que le jeton est facultatif et peut être répété plusieurs fois. | ["Grantor"] []* ["Tenant"] Les mots-clés “Grantor” et “Tenant” peuvent être séparés par un nombre quelconque de jetons, ou par aucun. |
| jeton répétable obligatoire | []+ | Un signe plus signifie que le jeton doit être trouvé au moins une fois et peut être répété. | [@NERPerson]+ Indique qu’un nom de personne doit être trouvé, éventuellement réparti sur plusieurs jetons, car le nom se compose généralement de plusieurs mots. |
| jeton avec nombre de répétitions spécifié | []{n,} []{n,m} | Les nombres entre accolades signifient que le jeton doit être répété de n à m fois. Si le deuxième nombre n’est pas spécifié, le jeton doit être répété au moins n fois. Remarque : Comme vous pouvez le constater, {0,} est équivalent à *, tandis que {1,} est équivalent à +. | ["Grantor"] []{1,3} ["Tenant"] Les mots-clés “Grantor” et “Tenant” doivent être séparés par 1 à 3 jetons. Cela peut être plus utile que *, car vous pouvez ainsi spécifier que les deux mots-clés ne sont pas trop éloignés l’un de l’autre. |