> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 右側部分

> NLP Extraction Rules コードにおける右側部分の操作 — 検索要素の作成、グループの作成、グループ内での子検索要素の作成。

<table>
  <thead>
    <tr>
      <th>操作</th>
      <th>構文</th>
      <th>説明</th>
      <th>例</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>検索要素を作成する</td>

      <td>
        <code>search\_element\_name( value\_expression )</code> <code>search\_element\_name( token\_variable1 + token\_variable2 )</code>
      </td>

      <td>
        検索要素には、かっこ内で指定した値が割り当てられます。値はルールの左側部分で作成された変数で指定することも、引用符で囲んだ
        テキストとして直接渡すこともできます。複数の変数の値は、プラス記号を使って連結できます。
      </td>

      <td>
        <code>\[ t: "Contract" ] => kw\_Contract( t );</code> トークン t の値を <code>kw\_Contract</code> 検索要素に割り当てます。{" "}
        <code>\[ "Contract" | "Contrato" ] => documentType( "Contract" );</code> 指定したキーワードが見つかった場合、文書タイプを定数文字列 "Contract" に設定します。{" "}

        <code>
          \[ org1: @NEROrganization( same ) ]+ \[ kw\_doingBusinessAs: "d/b/a" | "d / b/ a" ] \[ org2: @NEROrganization( same )]+ => Supplier\_FullName( org1 + kw\_doingBusinessAs + org2 );
        </code>

        {" "}

        "d/b/a" という略語でつながれた 2 つの組織名を見つけ、その全体を <code>Supplier\_FullName</code> 検索要素に割り当てます。
      </td>
    </tr>

    <tr>
      <td>グループを作成する</td>

      <td>
        <code>group\_name id</code>
      </td>

      <td>
        グループの新しいインスタンスが作成され、変数に割り当てられます。その後、この変数を使って入れ子の検索要素を作成できます。<strong>注:</strong> 非繰り返しグループの 2 つ目の
        インスタンスを作成しようとすると、ルール全体が実行されません。非繰り返しグループを扱う場合は、インスタンスがすでに存在する場合用と、存在しない場合用の 2 つの別々のルールを
        記述してください。
      </td>

      <td>
        <code>\["Grantor"] \[":"] \[p: @NERPerson]+ => Grantor group, group.FullName( p );</code> Grantor グループの新しいインスタンスを作成し、左側部分で見つかった人名を
        <code>Grantor.FullName</code> 検索要素に割り当てます。
      </td>
    </tr>

    <tr>
      <td>グループ内に子検索要素を作成する</td>

      <td>
        <code>id.search\_element\_name( value\_expression )</code>
      </td>

      <td>新しい検索要素は、変数で指定されたグループ内に作成され、かっこ内で指定した値を受け取ります。</td>
      <td>上記の例を参照してください。</td>
    </tr>

    <tr>
      <td>左側部分からグループ内に子検索要素を作成する</td>

      <td>
        <code>left\_hand\_part\_object.search\_element\_name( value\_expression )</code>
      </td>

      <td>
        新しい検索要素は、ルールの左側部分で見つかったグループ内に作成されます。新しい検索要素の値は、かっこ内で指定します。<strong>注:</strong> 非繰り返しグループでは、
        ルールの左側部分でインスタンスが存在することを確認し、そのグループに変数名を割り当てることができます。その後、右側部分でこの変数名を使用して入れ子要素を
        作成できます。
      </td>

      <td>
        <code>group: Tenant \[p: @NERPerson]+ \[]\{0,3} \["Tenant"] => group.FullName( p );</code> 既存の Tenant グループのインスタンスにアクセスし、左側部分で見つかった人名を
        <code>Tenant.FullName</code> 検索要素に割り当てます。{" "}
        <code>\[org: @BuyerGroup.organization\_name]+ \[]\{3,9} \[addr: @NERAddress] => parent( obj( org ) ).buyer\_address( addr );</code> 組織名の近くにある住所の固有表現を見つけ、
        この住所を、<code>organization\_name</code> 検索要素が属しているのと同じ BuyerGroup インスタンス内の <code>buyer\_address</code> 検索要素に割り当てます。
      </td>
    </tr>
  </tbody>
</table>
