| token | [] | Le parentesi quadre racchiudono un singolo token. | [] Qualsiasi parola o segno di punteggiatura. | | |
| token text | "" | Le virgolette indicano un token con il testo specificato. | ["Grantor"] Un token con la parola “Grantor”. | | |
| variable | : | I due punti vengono utilizzati per assegnare un nome alla sequenza di token che segue. Nota: La variabile sarà disponibile solo all’interno della stessa regola, ovvero fino a quando la parte destra non termina con un punto e virgola. | [t: "Contract"] Trova un token che contiene la parola “Contract” e lo assegna alla variabile t. | | |
| lemma | L"word" Lemma"word" | ”L” o “Lemma” prima di una parola significa che la ricerca deve trovare tutte le forme di quella parola. | [L"rule"] Verranno trovati token come “rule”, “rules”, “ruled” e “ruling”. | | |
| regular expression | /regular expression/ | Le barre oblique singole racchiudono un’espressione regolare. Come per gli elementi di ricerca Value from Regular Expression, viene utilizzata la sintassi delle espressioni regolari PCRE2. | `/[1]?\d:\d2\s+(([ap].m.) | ([AP]M))?/` Il modello corrisponderà all’ora in formato a 12 ore, ad esempio “2:00 p.m.”, “9:34 AM”. | |
| option setting for regular expressions | /regular expression/i | L’impostazione dell’opzione può essere inserita dopo la barra obliqua che chiude l’espressione regolare. L’opzione “i”, ad esempio, indica la corrispondenza senza distinzione tra maiuscole e minuscole dell’espressione regolare. | /[1]?\d:\d{2}\s+([ap]\.?m\.?)?/i Questo modello semplifica l’esempio precedente con l’aiuto della corrispondenza senza distinzione tra maiuscole e minuscole. Corrisponderà all’ora in formato a 12 ore, ad esempio “2:00 p.m.”, “9:34 AM”. | | |
| token predicates | <first_in_paragraph> | Il token è il primo in un paragrafo. | ["Section" <first_in_paragraph>] La parola “Section” inizia il paragrafo. È possibile utilizzarlo, ad esempio, per estrarre il numero di sezione immediatamente successivo a questo token. | | |
| token predicates | <punctuator> | Il token è un segno di punteggiatura. | ["Tenant"] [<punctuator>]{0,2} La parola “Tenant” può essere seguita da un massimo di due segni di punteggiatura, ad esempio una parentesi di chiusura e una virgola. | | |
| token predicates | <initial_letter_capitalized> | Il token inizia con una lettera maiuscola. | [L"agreement" <initial_letter_capitalized>] Questo modello corrisponderà a “Agreement” e “Agreements”, ma non a “agreement”. | | |
| token predicates | <mixed_capitalization> | Alcune lettere del token, ma non tutte, sono maiuscole. | [L"letter" <mixed_capitalization>] Questo modello corrisponderà, ad esempio, a “Letters” e “letteR”. | | |
| token predicates | <all_letters_capitalized> | Il token è tutto in lettere maiuscole. | [t: @NEROrganization <all_letters_capitalized>]+ Questo modello corrisponderà alle entità denominate di organizzazioni scritte in maiuscolo. | | |
| logical OR | ` | ` | Una barra verticale viene utilizzata per specificare testo alternativo del token o condizioni alternative per il token. | `[“Lender" | "Co-Lender”] [“shall”] [“have”]` Questo modello corrisponderà a una di queste stringhe: “Lender shall have” o “Co-Lender shall have” |
| logical AND | space | Lo spazio viene utilizzato come congiunzione logica per le condizioni del token. | [t: "Section" <first_in_paragraph>] Trova un token che contiene la parola “Section” E inizia un paragrafo. | | |
| object condition | @object_name | Il simbolo chiocciola (”@”) verifica che il token si trovi all’interno di una regione di oggetto. Sono supportati i seguenti oggetti: oggetti di entità denominate, gli stessi tipi disponibili anche come elementi di ricerca specializzati, con prefisso “NER”: NERPerson, NEROrganization, NERAddress, NERLocation, NERDate, NERDuration, NERMoney; elementi di ricerca; Sentence - Viene creato un oggetto separato per ogni frase nel flusso di testo; Paragraph - Viene creato un oggetto separato per ogni paragrafo nel flusso di testo. | [t: @NEROrganization]+ ["Lender"] Assegna il nome t a una sequenza di token che contiene un’entità NEROrganization ed è seguita dalla parola chiave “Lender”. [t: @NERPerson @Preamble_Segment ]+ Trova il nome di una persona nel segmento del preambolo (rappresentato da un elemento di ricerca Input field). | | |
| separating similar objects | @object_name( same ) | ”same” significa che su un token ripetuto, lo stesso oggetto viene abbinato alla sequenza di token invece di più oggetti di questo tipo. Se la condizione dell’oggetto utilizza un OR logico, “same” non deve essere utilizzato. | Ad esempio, se si dispone di un elenco di nomi di persone che si susseguono, verranno tutti rilevati come NERPerson. Per estrarre il nome di una persona alla volta, utilizzare la condizione “same”. [t: @NERPerson( same )]+ Assegna il nome t alla prima persona trovata. | | |
| relative position | @object_name( right_to( another_object )) @object_name( left_to( another_object )) | ”right_to” significa che object_name viene trovato dopo another_object specificato tra parentesi. “left_to” significa che object_name viene trovato prima di another_object specificato tra parentesi. | [ t: @NERAddress( same, right_to( id1 ), left_to( id2 ) )] Trova un’entità denominata NERAddress tra id1 e id2. | | |
| logical OR (as used in object conditions) | ` | ` | Una barra verticale può essere utilizzata anche come disgiunzione logica per le condizioni dell’oggetto. | `[t: @NERPerson( right_to( id1 ) | right_to( id2 ) )]` Assegna il nome t al nome di una persona situata dopo id1 o dopo id2. |
| token sequence | space | I token in una sequenza sono separati da spazi. | ["Grantor"] [":"] Questo modello corrisponderà a “Grantor:”. I token possono essere specificati semplicemente per il contesto, anche se queste parole non devono essere estratte. | | |
| sequenze di token alternative | `[token1] | ([token2][token3])` | La barra verticale viene utilizzata per specificare sequenze di token alternative. Le parentesi tonde definiscono la priorità. | `[“will”] ([“start”] | ([“take”] [“place”])) [“on”]Questo template corrisponderà a una delle seguenti stringhe: "will start on" oppure "will take place on". Si noti che se avessimo omesso le parentesi, il template avrebbe corrisposto anche a "will start place on". Le parentesi assicurano che la frase "take place" sia presente per intero oppure non lo sia affatto. **Nota:** Per casi reali più complessi di sequenze di token alternative, può risultare più comodo scrivere una regola separata per ciascuna alternativa:[“will”] [“start”] [“on”] => …; [“will”] [“take”] [“place”] [“on”] => …;` |
| token opzionale | []? | Il punto interrogativo indica che il token è opzionale. | ["Tenant"] ["."]? La parola “Tenant” può essere seguita da un punto. | | |
| token ripetibile opzionale | []* | L’asterisco indica che il token è opzionale e può essere ripetuto più volte. | ["Grantor"] []* ["Tenant"] Le parole chiave “Grantor” e “Tenant” possono essere separate da un numero qualsiasi di token oppure da nessuno. | | |
| token ripetibile obbligatorio | []+ | Il segno più indica che il token deve essere trovato almeno una volta e può essere ripetuto. | [@NERPerson]+ Specifica che il nome di una persona deve essere trovato, possibilmente distribuito su più token, poiché il nome è solitamente composto da più parole. | | |
| token con numero specificato di ripetizioni | []{n,} []{n,m} | I numeri tra parentesi graffe indicano che il token deve essere ripetuto da n a m volte. Se il secondo numero non è specificato, il token deve essere ripetuto almeno n volte. Nota: Come si può vedere, {0,} è equivalente a *, mentre {1,} è equivalente a +. | ["Grantor"] []{1,3} ["Tenant"] Le parole chiave “Grantor” e “Tenant” devono essere separate da 1 a 3 token. Questo può essere più utile di *, perché permette di specificare che le due parole chiave non siano troppo distanti l’una dall’altra. | | |