| 토큰 | [] | 대괄호는 하나의 토큰을 감싸는 데 사용됩니다. | [] 임의의 단어나 문장 부호. | | | |
| 토큰 텍스트 | "" | 따옴표는 지정된 텍스트를 갖는 토큰을 나타냅니다. | ["Grantor"] 단어 “Grantor”를 포함한 토큰. | | | |
| 변수 | : | 콜론은 뒤따르는 토큰 시퀀스에 이름을 지정하는 데 사용됩니다. 참고: 변수는 해당 규칙 내에서만 사용할 수 있으며, 즉 우변이 세미콜론으로 끝날 때까지만 유효합니다. | [t: "Contract"] 단어 “Contract”를 포함하는 토큰을 찾아 t 변수에 할당합니다. | | | |
| 레마(lemma) | L"word" Lemma"word" | 단어 앞에 “L” 또는 “Lemma”가 붙으면, 해당 단어의 모든 형태를 검색해야 함을 의미합니다. | [L"rule"] “rule”, “rules”, “ruled”, “ruling”과 같은 토큰을 모두 찾습니다. | | | |
| 정규식 | /regular expression/ | 정규 표현식은 단일 슬래시(/)로 둘러싸입니다. Value from Regular Expression 검색 요소와 마찬가지로 PCRE2 정규 표현식 구문이 사용됩니다. | `/[1]?\d:\d2\s+(([ap].m.) | ([AP]M))?/` 이 템플릿은 예를 들어 “2:00 p.m.”, “9:34 AM”과 같은 12시간제 시간 표기와 일치합니다. | | |
| 정규식 옵션 설정 | /regular expression/i | 옵션 설정은 정규 표현식을 닫는 슬래시(/) 뒤에 붙일 수 있습니다. 예를 들어 “i” 옵션은 정규 표현식을 대소문자를 구분하지 않고 매칭하라는 의미입니다. | /[1]?\d:\d{2}\s+([ap]\.?m\.?)?/i 이 템플릿은 정규식의 대소문자 구분 없음 옵션을 사용해 위의 예를 단순화합니다. 12시간 형식의 시간을 찾으며, 예를 들어 “2:00 p.m.”, “9:34 AM”과 같습니다. | | | |
| 토큰 술어 | <first_in_paragraph> | 이 토큰은 단락의 첫 번째 토큰입니다. | ["Section" <first_in_paragraph>] 단어 “Section”이 문단을 시작합니다. 예를 들어, 이 토큰 바로 다음에 오는 섹션 번호를 추출하는 데 사용할 수 있습니다. | | | |
| 토큰 술어 | <punctuator> | 이 토큰은 문장 부호입니다. | ["Tenant"] [<punctuator>]{0,2} 단어 “Tenant” 뒤에는 예를 들어 닫는 대괄호와 쉼표처럼 최대 두 개까지의 구두점이 올 수 있습니다. | | | |
| 토큰 술어 | <initial_letter_capitalized> | 이 토큰은 대문자로 시작합니다. | [L"agreement" <initial_letter_capitalized>] 이 템플릿은 “Agreement”와 “Agreements”에는 매칭되지만 “agreement”에는 매칭되지 않습니다. | | | |
| 토큰 술어 | <mixed_capitalization> | 이 토큰의 문자 중 일부(전부는 아님)가 대문자입니다. | [L"letter" <mixed_capitalization>] 이 템플릿은 예를 들어 “Letters”와 “letteR” 등과 일치합니다. | | | |
| 토큰 술어 | <all_letters_capitalized> | 이 토큰은 모든 문자가 대문자입니다. | [t: @NEROrganization <all_letters_capitalized>]+ 이 템플릿은 모두 대문자로 표기된 organization 개체와 일치합니다. | | | |
| 논리 OR | ` | ` | 수직 막대 기호( | )는 대체 토큰 텍스트 또는 토큰에 대한 대체 조건을 지정하는 데 사용됩니다. | `[“Lender" | "Co-Lender”] [“shall”] [“have”]` 이 템플릿은 “Lender shall have” 또는 “Co-Lender shall have” 두 문자열 중 하나와 일치합니다. |
| 논리 AND | 공백 | 공백은 토큰 조건들 사이의 논리 곱(AND)으로 사용됩니다. | [t: "Section" <first_in_paragraph>] “Section”이라는 단어를 포함하면서 동시에 단락을 시작하는 토큰을 찾습니다. | | | |
| 객체 조건 | @object_name | 골뱅이 기호(”@“)는 토큰이 객체 영역 안에 포함되어 있는지 확인합니다. 다음 객체들이 지원됩니다. 개체명 인식(NER) 객체로, 특수 검색 요소로도 제공되는 동일한 유형에 “NER” 접두사가 붙은 것들: NERPerson, NEROrganization, NERAddress, NERLocation, NERDate, NERDuration, NERMoney; 검색 요소; Sentence - 텍스트 흐름의 각 문장마다 별도의 객체가 생성됩니다. Paragraph - 텍스트 흐름의 각 단락마다 별도의 객체가 생성됩니다. | [t: @NEROrganization]+ ["Lender"] NEROrganization 엔티티를 포함하며 그 뒤에 키워드 “Lender”가 오는 토큰 시퀀스에 이름 t를 할당합니다. [t: @NERPerson @Preamble_Segment ]+ 머리말 세그먼트( Input field 검색 요소로 표현됨)에서 사람 이름을 찾습니다. | | | |
| 동일 객체 지정 | @object_name( same ) | ”same”은 반복되는 토큰에서, 이 유형의 여러 객체가 아니라 동일한 객체 하나가 토큰 시퀀스에 매칭된다는 의미입니다. 객체 조건에 논리 OR을 사용하는 경우에는 “same”을 사용해서는 안 됩니다. | 예를 들어, 여러 사람의 이름이 연달아 나열되어 있는 경우 이들은 모두 NERPerson으로 감지됩니다. 한 번에 한 사람의 이름만 추출하려면 “same” 조건을 사용하십시오. [t: @NERPerson( same )]+ 는 처음으로 감지된 사람에게 이름 t를 할당합니다. | | | |
| 상대 위치 | @object_name( right_to( another_object )) @object_name( left_to( another_object )) | ”right_to”는 괄호 안에 지정된 another_object 뒤에 object_name이 위치함을 의미합니다. “left_to”는 괄호 안에 지정된 another_object 앞에 object_name이 위치함을 의미합니다. | [ t: @NERAddress( same, right_to( id1 ), left_to( id2 ) )] id1과 id2 사이에 있는 NERAddress 개체를 찾습니다. | | | |
| 논리 OR(객체 조건에서 사용) | ` | ` | 수직 막대 기호( | )는 객체 조건에서도 논리합(OR) 연산자로 사용할 수 있습니다. | `[t: @NERPerson( right_to( id1 ) | right_to( id2 ) )]`는 id1 또는 id2 뒤에 오는 사람 이름에 t라는 이름을 할당합니다. |
| 토큰 시퀀스 | 공백 문자 | 시퀀스에 있는 토큰은 공백 문자로 구분됩니다. | ["Grantor"] [":"] 이 템플릿은 “Grantor:“와 일치합니다. 이러한 단어들을 굳이 추출할 필요가 없더라도, 단순히 문맥을 위해 토큰으로 지정할 수 있습니다. | | | |
| 대체 토큰 시퀀스 | `[token1] | ([token2][token3])` | 수직 막대 기호( | )는 대체 토큰 시퀀스를 지정하는 데 사용됩니다. 둥근 괄호는 우선순위를 정의합니다. | `[“will”] ([“start”] | ([“take”] [“place”])) [“on”]이 템플릿은 "will start on" 또는 "will take place on"이라는 두 string 중 하나와 일치합니다. 대괄호를 생략했다면, 템플릿은 "will start place on"과도 일치했을 것입니다. 대괄호는 "take place" 구가 전부 포함되거나 아예 포함되지 않도록 보장합니다. **참고:** 대안 토큰 시퀀스의 더 복잡한 실제 사례에서는 각 대안마다 별도의 규칙을 작성하는 편이 더 편리할 수 있습니다:[“will”] [“start”] [“on”] => …; [“will”] [“take”] [“place”] [“on”] => …;` |
| 선택적 토큰 | []? | 물음표(?)는 해당 토큰이 선택적임을 의미합니다. | ["Tenant"] ["."]? 단어 “Tenant” 뒤에 마침표가 따라올 수도 있습니다. | | | |
| 선택적 반복 토큰 | []* | 별표(*)는 해당 토큰이 선택적이며 여러 번(0회 이상) 반복될 수 있음을 의미합니다. | ["Grantor"] []* ["Tenant"] 키워드 “Grantor”와 “Tenant” 사이에는 0개 이상의 임의 개수의 토큰이 있을 수 있다. | | | |
| 필수 반복 토큰 | []+ | 더하기 기호(+)는 해당 토큰이 최소 한 번 이상 검색되어야 하며, 반복될 수도 있음을 의미합니다. | [@NERPerson]+ 사람 이름을 최소 한 번 이상, 필요하면 여러 토큰에 걸쳐 찾도록 지정합니다. 사람 이름은 보통 여러 단어로 이루어져 있기 때문입니다. | | | |
| 지정된 반복 횟수를 가진 토큰 | []{n,} []{n,m} | 중괄호 안의 숫자는 해당 토큰이 n번에서 m번까지 반복되어야 함을 의미합니다. 두 번째 숫자가 지정되지 않은 경우, 토큰은 최소 n번 이상 반복되어야 합니다. 참고: 보시는 것처럼 {0,}는 *와 같은 의미이고, {1,}는 +와 같은 의미입니다. | ["Grantor"] []{1,3} ["Tenant"] 키워드 “Grantor”와 “Tenant” 사이에는 1개에서 3개의 토큰이 있어야 합니다. 이렇게 하면 두 키워드가 서로 너무 멀리 떨어져 있지 않도록 지정할 수 있으므로 *보다 더 유용할 수 있습니다. | | | |