[] | Colchetes delimitam um único token. | [] Qualquer palavra ou sinal de pontuação. |
| texto do token | "" | Aspas indicam um token com o texto especificado. | ["Grantor"] Um token com a palavra “Grantor”. |
| variável | : | Dois-pontos são usados para atribuir um nome à sequência de tokens que o segue. Observação: A variável estará disponível apenas dentro dessa mesma regra, ou seja, até que a parte direita seja finalizada com ponto e vírgula. | [t: "Contract"] Encontra um token que contém a palavra “Contract” e o atribui à variável t. |
| lema | L"word" Lemma"word" | “L” ou “Lemma” antes de uma palavra significa que a busca deve encontrar todas as formas dessa palavra. | [L"rule"] Tokens como “rule”, “rules”, “ruled” e “ruling” serão todos encontrados. |
| expressão regular | /regular expression/ | Barras simples delimitam uma expressão regular. Assim como nos elementos de busca Value from Regular Expression, a sintaxe de expressão regular PCRE2 é usada. | /[1]?\d:\d{2}\s+(([ap]\.m\.) | ([AP]M))?/ O modelo corresponderá ao horário no formato de 12 horas, por exemplo, “2:00 p.m.”, “9:34 AM”. |
| configuração de opção para expressões regulares | /regular expression/i | A configuração de opção pode ser colocada após a barra que fecha a expressão regular. A opção “i”, por exemplo, significa correspondência sem distinção entre maiúsculas e minúsculas da expressão regular. | /[1]?\d:\d{2}\s+([ap]\.?m\.?)?/i Este modelo simplifica o exemplo acima com a ajuda da correspondência sem distinção entre maiúsculas e minúsculas. Ele corresponderá ao horário no formato de 12 horas, por exemplo, “2:00 p.m.”, “9:34 AM”. |
| predicados de token | <first_in_paragraph> | O token é o primeiro em um parágrafo. | ["Section" <first_in_paragraph>] A palavra “Section” inicia o parágrafo. Você pode usar isso, por exemplo, para extrair o número da seção imediatamente após este token. |
| predicados de token | <punctuator> | O token é um sinal de pontuação. | ["Tenant"] [<punctuator>]{0,2} A palavra “Tenant” pode ser seguida por até dois sinais de pontuação, por exemplo, um parêntese de fechamento e uma vírgula. |
| predicados de token | <initial_letter_capitalized> | O token começa com letra maiúscula. | [L"agreement" <initial_letter_capitalized>] Este modelo corresponderá a “Agreement” e “Agreements”, mas não a “agreement”. |
| predicados de token | <mixed_capitalization> | Algumas, mas não todas, as letras do token estão em maiúsculas. | [L"letter" <mixed_capitalization>] Este modelo corresponderá, por exemplo, a “Letters” e “letteR”. |
| predicados de token | <all_letters_capitalized> | O token está todo em letras maiúsculas. | [t: @NEROrganization <all_letters_capitalized>]+ Este modelo corresponderá a entidades nomeadas de organização escritas em letras maiúsculas. |
| OU lógico | | | Uma barra vertical é usada para especificar texto de token alternativo ou condições alternativas para o token. | ["Lender" | "Co-Lender"] ["shall"] ["have"] Este modelo corresponderá a qualquer uma destas strings: “Lender shall have” ou “Co-Lender shall have” |
| E lógico | espaço | O espaço é usado como conjunção lógica para condições de token. | [t: "Section" <first_in_paragraph>] Encontra um token que contém a palavra “Section” E inicia um parágrafo. |
| condição de objeto | @object_name | Um sinal de arroba (”@”) verifica se o token está localizado dentro de uma região de objeto. Os seguintes objetos são suportados: Objetos de entidade nomeada, os mesmos tipos que também estão disponíveis como elementos de busca especializados, prefixados por “NER”: NERPerson, NEROrganization, NERAddress, NERLocation, NERDate, NERDuration, NERMoney; Elementos de busca; Sentence - Um objeto separado é criado para cada sentença no fluxo de texto; Paragraph - Um objeto separado é criado para cada parágrafo no fluxo de texto. | [t: @NEROrganization]+ ["Lender"] Atribui o nome t a uma sequência de tokens que contém uma entidade NEROrganization e é seguida pela palavra-chave “Lender”. [t: @NERPerson @Preamble_Segment ]+ Encontra o nome de uma pessoa no segmento de preâmbulo (representado por um elemento de busca Input field). |
| separando objetos semelhantes | @object_name( same ) | “same” significa que em um token repetido, o mesmo objeto é correspondido à sequência de tokens em vez de vários objetos deste tipo. Se a condição de objeto estiver usando um OU lógico, “same” não deve ser usado. | Por exemplo, se você tiver uma lista de nomes de pessoas em sequência, todos serão detectados como NERPerson. Para extrair o nome de uma pessoa por vez, use a condição “same”. [t: @NERPerson( same )]+ Atribui o nome t à primeira pessoa encontrada. |
| posição relativa | @object_name( right_to( another_object )) @object_name( left_to( another_object )) | “right_to” significa que object_name é encontrado após o another_object especificado entre parênteses. “left_to” significa que object_name é encontrado antes do another_object especificado entre parênteses. | [ t: @NERAddress( same, right_to( id1 ), left_to( id2 ) )] Encontra uma entidade nomeada NERAddress entre id1 e id2. |
| OU lógico (conforme usado em condições de objeto) | | | Uma barra vertical também pode ser usada como disjunção lógica para condições de objeto. | [t: @NERPerson( right_to( id1 ) | right_to( id2 ) )] Atribui o nome t ao nome de uma pessoa localizada após id1 ou após id2. |
| sequência de tokens | espaço | Tokens em uma sequência são separados por espaços. | ["Grantor"] [":"] Este modelo corresponderá a “Grantor:”. Tokens podem ser especificados simplesmente para contexto, mesmo que essas palavras não precisem ser extraídas. |
| sequências de tokens alternativas | [token1] | ([token2][token3]) | Uma barra vertical é usada para especificar sequências de tokens alternativas. Parênteses definem a prioridade. | ["will"] (["start"] | (["take"] ["place"])) ["on"]Este modelo corresponderá a qualquer uma destas strings: “will start on” ou “will take place on”. Observe que se tivéssemos omitido os parênteses, o modelo também teria correspondido a “will start place on”. Os parênteses garantem que a frase “take place” esteja presente completamente ou não esteja presente. Observação: Para casos reais mais complexos de sequências de tokens alternativas, você pode achar mais conveniente escrever uma regra separada para cada alternativa:["will"] ["start"] ["on"] => ...; ["will"] ["take"] ["place"] ["on"] => ...; |
| token opcional | []? | Um ponto de interrogação significa que o token é opcional. | ["Tenant"] ["."]? A palavra “Tenant” pode ser seguida por um ponto final. |
| token opcional repetível | []* | Um asterisco significa que o token é opcional e pode ser repetido várias vezes. | ["Grantor"] []* ["Tenant"] As palavras-chave “Grantor” e “Tenant” podem ser separadas por qualquer número de tokens ou por nenhum. |
| token repetível obrigatório | []+ | Um sinal de mais significa que o token deve ser encontrado pelo menos uma vez e pode ser repetido. | [@NERPerson]+ Especifica que o nome de uma pessoa deve ser encontrado, possivelmente distribuído em vários tokens, pois o nome geralmente consiste em várias palavras. |
| token com número especificado de repetições | []{n,} []{n,m} | Números entre chaves significam que o token deve ser repetido de n a m vezes. Se o segundo número não for especificado, o token deverá ser repetido pelo menos n vezes. Observação: Como você pode ver, {0,} é equivalente a *, enquanto {1,} é equivalente a +. | ["Grantor"] []{1,3} ["Tenant"] As palavras-chave “Grantor” e “Tenant” devem ser separadas por 1 a 3 tokens. Isso pode ser mais útil do que *, pois permite especificar que as duas palavras-chave não estejam muito distantes uma da outra. |