跳轉到主要內容
對於每個搜尋元素,Extraction Rules 活動中的程式碼都包含一系列依序執行的規則。每條規則由兩個部分構成,並以分號結尾:
Left-hand part
=>
Right-hand part;
左側部分負責檢查條件或尋找符合該條件的值。右側部分會建立新的搜尋元素執行個體,並將這些值指派給它們。

範例

下列這個簡單規則會尋找名為 kw_Contract、且包含關鍵字 “Contract” 的搜尋元素:
[ t: "Contract" ] // looking for a word "Contract" and assigning the token to a new variable called t
=>
kw_Contract( t ); // 每次重複出現單詞 "Contract" 時建立 kw_Contract 搜尋元素的新實例

左側區塊結構

左側區塊最多可以包含三個部分:
Existence_condition
Token_template
Additional_check

存在條件(可選)

尋找具有指定屬性的物件。若物件存在,建議為其指派名稱,以便在同一條規則中重複使用。此條件也可以用來指定物件必須不存在。 範例 如果只需要尋找一個 SellerName 搜尋元素的實例,請在規則開頭指定尚未找到任何此類實例:
~SellerName // 檢查 SellerName 搜尋元素尚未找到
注意: 使用否定條件時不能指定變數名稱,因為否定條件表示不存在任何物件。
此條件會檢查是否存在地址類型的命名實體:
a: NERAddress // 檢查地址命名實體是否存在,並將其指派給名為 a 的新變數
關於此部分所使用語法的詳細說明,請參閱 Existence condition

權杖範本(必要)

由一連串權杖組成。權杖(token) 是自然語言中的一個字詞或一個標點符號。權杖通常不包含空格,少數例外是在某些結構中,會將包含空格的片語視為單一字詞:such asa lot 範例 例如,下列權杖範本由一個符合關鍵字 “Grantor” 的權杖、一個為冒號的權杖,以及一個重複出現的 Person 命名實體權杖組成(指定為可重複,因為一個人的姓名可能由多個字詞構成,而每個字詞都是獨立的權杖):
["Grantor"] [":"] [p: @NERPerson]+
此範本會比對像「Grantor: Anne Smith」這樣的文字串,並將「Anne Smith」這個值指派給變數 p 如需此部分所使用語法的詳細資訊,請參閱 Token template

額外檢查(可選)

對已在規則中提到的物件執行更多條件檢查。 範例 例如,假設你正在尋找合約中的各方,並已將欄位分成兩個不同的群組實例,每一方一個。找到一個組織名稱和一個地址後,你可以檢查這些搜尋項目是否具有相同的父層。如果有,這表示該地址屬於該組織。
n: Party.OrgName // 組織名稱搜尋元素已在先前找到
[ a: @Party.Address ] // 尋找地址搜尋元素所在的標記
// 檢查組織名稱和地址搜尋元素
// 是否為同一個 Party 群組元素實例的子元素
parent( n ) == parent( obj( a ) )
如需瞭解本部分使用的語法詳細資訊,請參閱 Additional check

右側部分結構

右側部分由一個或多個以逗號分隔的片段組成,用於建立群組和搜尋元素的新實例,並為這些搜尋元素指派值:
Create_group_A,
Create_element_B_and_assign_value
通常,規則的左側部分會找到一個 token、一段 token 序列或一個物件,並將它指派給一個變數。然後,右側部分可以使用這個變數,將其值寫入其中一個搜尋元素。例如,下列程式碼會將 t 的值寫入 Element1 搜尋元素中:

範例

[t: "Lease"] ["Agreement"]
=>
Root.kw_AgreementType( t );
請參閱 Right-hand part,以瞭解此部分所使用語法的詳細說明。
注意: 程式碼只會建立已存在於 Extraction Rules 活動中的 search elements 和 group search elements 的執行個體,無法透過程式碼建立新的 search elements。若要在結構中建立其他 search elements,請在 Activity Editor 中使用 Search Elements 索引標籤

參照搜尋元素

若要在程式碼中存取搜尋元素,必須使用能明確識別該元素的名稱。若某個元素的名稱是唯一的,您可以直接用它的名稱來參照該元素。若有多個元素具有相同名稱,您需要指定一條足夠長的路徑,才能唯一地識別該元素。

範例

請考慮以下巢狀的搜尋元素結構:
  • Property
    • Type
    • Address
  • Buyer
    • FullName
    • Address
在程式碼中要引用買方的名稱時,可以直接使用「FullName」,因為具有這個名稱的元素是唯一的。「Buyer.FullName」或「Root.Buyer.FullName」同樣可以正常使用。 若要引用買方的地址,則必須至少加上父群組的名稱,因為有兩個名為「Address」的元素。在這裡,您應該使用「Buyer.Address」或「Root.Buyer.Address」。

語言專屬規則

您可以指定要執行該規則所適用的文件語言。如此一來,在其他語言下將不會執行這項規則。請在規則前加上一個井字號(#)以及兩個字母的語言代碼(ISO-639-1 標準)。

支援語言的代碼

語言代碼
英文en
德文de
法文fr
西班牙文es
義大利文it
葡萄牙文(標準)pt
日文ja
俄文ru
例如,如果您要處理英文與西班牙文的文件,可能會想使用語言專用的關鍵字:

範例

#en
[ t: "Grantor" ] // 英文文件的關鍵字
=>
kw_landlord( t );

#es
[ t: "Arrendador" ] // 西班牙文文件的關鍵字
=>
kw_landlord( t );