| Operación | Sintaxis | Descripción | Ejemplo |
|---|---|---|---|
| token | [] | Los corchetes indican un único token. | [] Cualquier palabra o signo de puntuación. |
| texto del token | "" | Las comillas indican un token con el texto especificado. | [“Grantor”] Un token con la palabra “Grantor”. |
| variable | : | Se usan dos puntos para asignar un nombre a la secuencia de tokens que sigue. Nota: La variable solo estará disponible dentro de esa misma regla, es decir, hasta que la parte derecha termine con un punto y coma. | [t: “Contract”] Encuentra un token que contiene la palabra “Contract” y lo asigna a la variable t. |
| lema | L”word”Lemma”word" | "L” o “Lemma” delante de una palabra significa que la búsqueda encontrará todas las formas de esa palabra. | [L”rule”] Se encontrarán palabras como “rule”, “rules”, “ruled” y “ruling”. |
| expresión regular | /regular expression/ | Las barras diagonales simples encierran una expresión regular. Al igual que con los elementos de búsqueda de valor de una expresión regular, se utiliza la sintaxis de expresiones regulares de PCRE2. | /[1]?\d:\d{2}\s+(([ap].m.)|([AP]M))?/ La plantilla coincidirá con la hora en formato de 12 horas, por ejemplo, “2:00 p.m.” y “9:34 AM”. |
| opción de configuración para expresiones regulares | /regular expression/i | La opción de configuración puede colocarse después de la barra inclinada que cierra la expresión regular. La opción “i”, por ejemplo, significa emparejamiento de la expresión regular sin distinguir entre mayúsculas y minúsculas. | /[1]?\d:\d{2}\s+([ap].?m.?)?/i Este patrón simplifica el ejemplo anterior mediante el emparejamiento sin distinguir entre mayúsculas y minúsculas. Hará coincidir la hora en formato de 12 horas, por
ejemplo, “2:00 p.m.”, “9:34 AM”. |
| predicados de token | <first_in_paragraph> | El token es el primero en un párrafo. | [“Section” <first_in_paragraph>] La palabra “Section” aparece al inicio del párrafo. Puede usarlo, por ejemplo, para extraer el número de sección inmediatamente después de este token. |
| predicados de token | <punctuator> | El token es un signo de puntuación. | [“Tenant”] [<punctuator>]{0,2} La palabra “Tenant” puede ir seguida de hasta dos signos de puntuación; por ejemplo, un paréntesis de cierre y una coma. |
| predicados de tokens | <initial_letter_capitalized> | El token comienza con una letra mayúscula. | [L”agreement” <initial_letter_capitalized>] Este Template coincidirá con “Agreement” y “Agreements”, pero no con “agreement”. |
| predicados de token | <mixed_capitalization> | Algunas, pero no todas, las letras del token están en mayúscula. | [L”letter” <mixed_capitalization>] Este Template coincidirá, por ejemplo, con “Letters” y “letteR”. |
| predicados de token | <all_letters_capitalized> | El token está escrito íntegramente en mayúsculas. | [t: @NEROrganization <all_letters_capitalized>]+ Esta Template coincidirá con entidades nombradas de tipo organización escritas íntegramente en mayúsculas. |
| OR lógico | | | Se utiliza una barra vertical para especificar texto alternativo del token o condiciones alternativas para el token. | [“Lender” | “Co-Lender”] [“shall”] [“have”] Este Template coincidirá con cualquiera de estas cadenas: “Lender shall have” o “Co-Lender shall have” |
| AND lógico | espacio | El espacio se utiliza como conjunción lógica en las condiciones de token. | [t: “Section” <first_in_paragraph>] Encuentra un token que contiene la palabra “Section” y que inicia un párrafo. |
| condición de objeto | @object_name | La arroba (”@”) comprueba que el token esté situado dentro de una región de objeto. Se admiten los siguientes objetos: objetos de entidades con nombre, los mismos tipos que también están disponibles como
elementos de búsqueda especializados, con el prefijo “NER”: NERPerson, NEROrganization, NERAddress, NERLocation, NERDate, NERDuration,
NERMoney; elementos de búsqueda; Sentence - Se crea un objeto independiente para cada oración en el flujo de texto; Paragraph - Se crea un objeto independiente para cada
párrafo en el flujo de texto. | [t: @NEROrganization]+ [“Lender”] Asigna el nombre t a una secuencia de tokens que contiene una entidad NEROrganization y va seguida de la palabra clave “Lender”.
[t: @NERPerson @Preamble_Segment ]+ Encuentra el nombre de una persona en el segmento de preámbulo (representado por un elemento de búsqueda de campo de entrada). |
| separación de objetos similares | @object_name( same ) | “same” significa que, cuando un token se repite, se empareja el mismo objeto con la secuencia de tokens en lugar de varios objetos de este tipo. Si la condición del objeto usa un OR lógico, no debe usarse “same”. | Por ejemplo, si tiene una lista de nombres de personas uno detrás de otro, todos se detectarán como NERPerson. Para extraer el nombre de una persona cada vez, use la condición “same”.
[t: @NERPerson( same )]+ Asigna el nombre t a la primera persona encontrada. |
| posición relativa | @object_name( right_to( another_object ))@object_name( left_to( another_object )) | “right_to” significa que object_name aparece después de another_object, especificado entre paréntesis. “left_to” significa que object_name aparece antes de another_object, especificado entre paréntesis. | [ t: @NERAddress( same, right_to( id1 ), left_to( id2 ) )] Encuentra una entidad con nombre NERAddress entre id1 e id2. |
| OR lógico (como se usa en las condiciones de objeto) | | | Una barra vertical también puede usarse como disyunción lógica en las condiciones de objeto. | [t: @NERPerson( right_to( id1 ) | right_to( id2 ) )] Asigna el nombre t a un nombre de persona situado después de id1 o de id2. |
| secuencia de tokens | espacio | Los tokens de una secuencia están separados por espacios. | [“Grantor”] [”:”] Esta plantilla coincidirá con “Grantor:”. Los tokens pueden especificarse simplemente para aportar contexto, aunque no sea necesario extraer esas palabras. |
| secuencias alternativas de tokens | [token1]|([token2][token3]) | Se utiliza una barra vertical para especificar secuencias alternativas de tokens. Los paréntesis indican la prioridad. | [“will”] ([“start”] | ([“take”] [“place”])) [“on”] Esta plantilla coincidirá con cualquiera de estas cadenas: “will start on” o “will take place on”. Tenga en cuenta que, si hubiéramos omitido los
paréntesis, la plantilla también habría coincidido con “will start place on”. Los paréntesis garantizan que la frase “take place” esté presente completa o no aparezca en absoluto. Nota: Para
casos reales más complejos de secuencias alternativas de tokens, puede resultarle más práctico escribir una regla independiente para cada alternativa:[“will”] [“start”] [“on”]=>…;[“will”] [“take”] [“place”] [“on”]=>…; |
| token opcional | []? | Un signo de interrogación indica que el token es opcional. | [“Tenant”] [”.”]? La palabra “Tenant” puede ir seguida de un punto. |
| token opcional repetible | []* | Un asterisco indica que el token es opcional y puede repetirse varias veces. | [“Grantor”] []* [“Tenant”] Las palabras clave “Grantor” y “Tenant” pueden estar separadas por cualquier cantidad de tokens o por ninguno. |
| token obligatorio repetible | []+ | Un signo más indica que el token debe encontrarse al menos una vez y puede repetirse. | [@NERPerson]+ Especifica que debe encontrarse el nombre de una persona, posiblemente abarcando varios tokens, porque normalmente consta de varias palabras. |
| token con un número determinado de repeticiones | []{n,}[]{n,m} | Los números entre llaves indican que el token debe repetirse de n a m veces. Si no se especifica el segundo número, el token debe repetirse al menos n veces. Nota:
Como puede ver, {0,} es equivalente a *, mientras que {1,} es equivalente a +. | [“Grantor”] []{1,3} [“Tenant”] Las palabras clave “Grantor” y “Tenant” deben estar separadas por 1 a 3 tokens. Esto puede resultar más útil que *, porque
podrá especificar que las dos palabras clave no estén demasiado alejadas entre sí. |
Syntax
Plantilla de token
Operaciones con plantillas de token en el código de NLP Extraction Rules — texto del token, lemas, expresiones regulares, predicados, condiciones de objeto y operadores de repetición.
