| jeton | [] | 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 avec le mot “Grantor”. | | |
| variable | : | Un deux-points est utilisé pour 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 qui contient le mot “Contract” et l’attribue à la variable t. | | |
| lemme | L"word" Lemma"word" | ”L” ou “Lemma” avant un mot signifie que la recherche doit trouver toutes les formes de ce mot. | [L"rule"] Des 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 Valeur à partir d’une expression régulière, la syntaxe d’expression régulière PCRE2 est utilisée. | `/[1]?\d:\d2\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 à l’aide d’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 dans un paragraphe. | ["Section" <first_in_paragraph>] Le mot “Section” commence le paragraphe. Vous pouvez utiliser ceci, 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 un crochet fermant 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 entièrement en majuscules. | | |
| OU logique | ` | ` | Une barre verticale est utilisée pour 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 ou l’autre de ces chaînes : “Lender shall have” ou “Co-Lender shall have” |
| ET logique | espace | L’espace est utilisé comme conjonction logique pour les conditions de jeton. | [t: "Section" <first_in_paragraph>] Trouve un jeton qui contient le mot “Section” ET commence 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 qui contient une entité NEROrganization et est 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 Champ d’entrée). | | |
| séparation d’objets similaires | @object_name( same ) | ”same” signifie que sur 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 est trouvé après le another_object spécifié entre parenthèses. “left_to” signifie que object_name est trouvé 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 être utilisée comme 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é 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 ou l'autre 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 entièrement présente, soit totalement absente. **Remarque :** Pour des cas réels plus complexes de séquences de jetons alternatives, il peut être plus pratique d'écrire une règle distincte pour chaque alternative :[“will”] [“start”] [“on”] => …; [“will”] [“take”] [“place”] [“on”] => …;` |
| jeton optionnel | []? | Un point d’interrogation indique que le jeton est optionnel. | ["Tenant"] ["."]? Le mot « Tenant » peut être suivi d’un point. | | |
| jeton répétitif optionnel | []* | Un astérisque indique que le jeton est optionnel 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étitif obligatoire | []+ | Un signe plus indique que le jeton doit être trouvé au moins une fois et peut être répété. | [@NERPerson]+ Spécifie 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 indiquent 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. | | |