> ## 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.

# Token-Muster

> Operationen für Token-Muster in NLP-Extraction-Rules-Code — Token-Text, Lemmata, reguläre Ausdrücke, Prädikate, Objektbedingungen und Wiederholungsoperatoren.

<table>
  <thead>
    <tr>
      <th>Operation</th>
      <th>Syntax</th>
      <th>Beschreibung</th>
      <th>Beispiel</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>token</td>

      <td>
        <code>\[]</code>
      </td>

      <td>Eckige Klammern umschließen ein einzelnes Token.</td>

      <td>
        <code>\[]</code> Ein beliebiges Wort oder Satzzeichen.
      </td>
    </tr>

    <tr>
      <td>Token-Text</td>

      <td>
        <code>""</code>
      </td>

      <td>Anführungszeichen kennzeichnen ein Token mit dem angegebenen Text.</td>

      <td>
        <code>\["Grantor"]</code> Ein Token mit dem Wort "Grantor".
      </td>
    </tr>

    <tr>
      <td>variable</td>

      <td>
        <code>:</code>
      </td>

      <td>
        Ein Doppelpunkt wird verwendet, um der nachfolgenden Tokensequenz einen Namen zuzuweisen. <strong>Hinweis:</strong> Die Variable ist nur innerhalb derselben Regel verfügbar, also bis der rechte Teil
        mit einem Semikolon abgeschlossen ist.
      </td>

      <td>
        <code>\[t: "Contract"]</code> Findet ein Token, das das Wort "Contract" enthält, und weist es der Variablen t zu.
      </td>
    </tr>

    <tr>
      <td>Lemma</td>

      <td>
        <code>L"word"</code> <code>Lemma"word"</code>
      </td>

      <td>"L" oder "Lemma" vor einem Wort bedeutet, dass bei der Suche alle Formen dieses Wortes gefunden werden.</td>

      <td>
        <code>\[L"rule"]</code> Token wie "rule", "rules", "ruled" und "ruling" werden dann alle gefunden.
      </td>
    </tr>

    <tr>
      <td>regulärer Ausdruck</td>

      <td>
        <code>/regular expression/</code>
      </td>

      <td>
        Ein regulärer Ausdruck wird von Schrägstrichen eingeschlossen. Wie bei den <strong>Wert aus regulärem Ausdruck</strong>-Suchelementen wird die Syntax für reguläre Ausdrücke von{" "}
        <a href="https://www.pcre.org/current/doc/html/pcre2syntax.html">PCRE2</a> verwendet.
      </td>

      <td>
        <code>/\[1]?\d:\d\{2}\s+((\[ap].m.)|(\[AP]M))?/</code> Das Template erkennt die Uhrzeit im 12-Stunden-Format, zum Beispiel "2:00 p.m." oder "9:34 AM".
      </td>
    </tr>

    <tr>
      <td>Optionsangabe für reguläre Ausdrücke</td>

      <td>
        <code>/regular expression/i</code>
      </td>

      <td>
        Die <a href="https://www.pcre.org/current/doc/html/pcre2syntax.html#SEC16">Optionsangabe</a> kann nach dem Schrägstrich stehen, der den regulären Ausdruck abschließt. Die Option "i" steht zum
        Beispiel für ein Matching des regulären Ausdrucks ohne Berücksichtigung der Groß- und Kleinschreibung.
      </td>

      <td>
        <code>/\[1]?\d:\d\{2}\s+(\[ap].?m.?)?/i</code> Diese Vorlage vereinfacht das obige Beispiel mithilfe eines Matchings ohne Berücksichtigung der Groß- und Kleinschreibung. Sie findet Uhrzeiten im 12-Stunden-Format, zum
        Beispiel "2:00 p.m.", "9:34 AM".
      </td>
    </tr>

    <tr>
      <td>Token-Prädikate</td>

      <td>
        <code>\<first\_in\_paragraph></code>
      </td>

      <td>Das Token ist das erste in einem Absatz.</td>

      <td>
        <code>\["Section" \<first\_in\_paragraph>]</code> Das Wort "Section" beginnt den Absatz. Sie können dies beispielsweise verwenden, um die Abschnittsnummer direkt nach diesem Token zu extrahieren.
      </td>
    </tr>

    <tr>
      <td>Prädikate für Token</td>

      <td>
        <code>\<punctuator></code>
      </td>

      <td>Das Token ist ein Satzzeichen.</td>

      <td>
        <code>\["Tenant"] \[\<punctuator>]\{0,2}</code> Auf das Wort "Tenant" können bis zu zwei Satzzeichen folgen, zum Beispiel eine schließende Klammer und ein Komma.
      </td>
    </tr>

    <tr>
      <td>Token-Prädikate</td>

      <td>
        <code>\<initial\_letter\_capitalized></code>
      </td>

      <td>Das Token beginnt mit einem Großbuchstaben.</td>

      <td>
        <code>\[L"agreement" \<initial\_letter\_capitalized>]</code> Dieses Template stimmt mit "Agreement" und "Agreements" überein, aber nicht mit "agreement".
      </td>
    </tr>

    <tr>
      <td>Tokenprädikate</td>

      <td>
        <code>\<mixed\_capitalization></code>
      </td>

      <td>Einige, aber nicht alle Buchstaben des Tokens sind großgeschrieben.</td>

      <td>
        <code>\[L"letter" \<mixed\_capitalization>]</code> Diese Vorlage entspricht zum Beispiel "Letters" und "letteR".
      </td>
    </tr>

    <tr>
      <td>Token-Prädikate</td>

      <td>
        <code>\<all\_letters\_capitalized></code>
      </td>

      <td>Das Token besteht ausschließlich aus Großbuchstaben.</td>

      <td>
        <code>\[t: @NEROrganization \<all\_letters\_capitalized>]+</code> Dieses Template erkennt Organisations-Entitäten, die vollständig in Großbuchstaben geschrieben sind.
      </td>
    </tr>

    <tr>
      <td>logisches ODER</td>

      <td>
        <code>|</code>
      </td>

      <td>Ein senkrechter Strich wird verwendet, um alternativen Token-Text oder alternative Bedingungen für das Token anzugeben.</td>

      <td>
        <code>\["Lender" | "Co-Lender"] \["shall"] \["have"]</code> Diese Vorlage stimmt mit einer dieser beiden Zeichenfolgen überein: "Lender shall have" oder "Co-Lender shall have"
      </td>
    </tr>

    <tr>
      <td>logisches UND</td>
      <td>Leerzeichen</td>
      <td>Das Leerzeichen wird als logische Konjunktion für Token-Bedingungen verwendet.</td>

      <td>
        <code>\[t: "Section" \<first\_in\_paragraph>]</code> Findet ein Token, das das Wort "Section" enthält UND am Anfang eines Absatzes steht.
      </td>
    </tr>

    <tr>
      <td>Objektbedingung</td>

      <td>
        <code>@object\_name</code>
      </td>

      <td>
        Ein At-Zeichen ("@") prüft, ob sich das Token innerhalb einer Objektsregion befindet. Die folgenden Objekte werden unterstützt: Named-Entity-Objekte, also dieselben Typen, die auch als spezialisierte
        Suchelemente verfügbar sind, mit dem Präfix "NER": <code>NERPerson</code>, <code>NEROrganization</code>, <code>NERAddress</code>, <code>NERLocation</code>, <code>NERDate</code>, <code>NERDuration</code>,{" "}
        <code>NERMoney</code>; Suchelemente; <code>Sentence</code> - Für jeden Satz im Textfluss wird ein separates Objekt erstellt; <code>Paragraph</code> - Für jeden
        Absatz im Textfluss wird ein separates Objekt erstellt.
      </td>

      <td>
        <code>\[t: @NEROrganization]+ \["Lender"]</code> Weist einer Tokensequenz, die eine NEROrganization-Entität enthält und auf die das Schlüsselwort "Lender" folgt, den Namen t zu.{" "}
        <code>\[t: @NERPerson @Preamble\_Segment ]+</code> Findet den Namen einer Person im Präambelsegment (dargestellt durch ein Suchelement vom Typ <strong>Input-Feld</strong>).
      </td>
    </tr>

    <tr>
      <td>Trennen ähnlicher Objekte</td>

      <td>
        <code>@object\_name( same )</code>
      </td>

      <td>
        "same" bedeutet, dass bei einem wiederholten Token dasselbe Objekt der Tokenfolge zugeordnet wird, anstatt mehrere Objekte dieses Typs. Wenn die Objektbedingung ein logisches OR verwendet, sollte "same"
        nicht verwendet werden.
      </td>

      <td>
        Wenn Sie beispielsweise eine Liste von Personennamen haben, die direkt aufeinander folgen, werden sie alle als NERPerson erkannt. Um jeweils nur einen Personennamen zu extrahieren, verwenden Sie die Bedingung "same".{" "}
        <code>\[t: @NERPerson( same )]+</code> Weist der ersten gefundenen Person den Namen t zu.
      </td>
    </tr>

    <tr>
      <td>relative Position</td>

      <td>
        <code>@object\_name( right\_to( another\_object ))</code> <code>@object\_name( left\_to( another\_object ))</code>
      </td>

      <td>
        "right\_to" bedeutet, dass <strong>object\_name</strong> nach dem in den Klammern angegebenen <strong>another\_object</strong> gefunden wird. "left\_to" bedeutet, dass <strong>object\_name</strong> vor dem in den Klammern angegebenen <strong>another\_object</strong> gefunden wird.
      </td>

      <td>
        <code>\[ t: @NERAddress( same, right\_to( id1 ), left\_to( id2 ) )]</code> Findet eine NERAddress zwischen id1 und id2.
      </td>
    </tr>

    <tr>
      <td>logisches ODER (wie bei Objektbedingungen verwendet)</td>

      <td>
        <code>|</code>
      </td>

      <td>Als logische Disjunktion für Objektbedingungen kann ebenfalls ein senkrechter Strich verwendet werden.</td>

      <td>
        <code>\[t: @NERPerson( right\_to( id1 ) | right\_to( id2 ) )]</code> Weist t den Namen einer Person zu, die sich entweder nach id1 oder nach id2 befindet.
      </td>
    </tr>

    <tr>
      <td>Token-Sequenz</td>
      <td>Leerzeichen</td>
      <td>Token in einer Sequenz werden durch Leerzeichen getrennt.</td>

      <td>
        <code>\["Grantor"] \[":"]</code> Diese Vorlage stimmt mit "Grantor:" überein. Token können auch einfach als Kontext angegeben werden, selbst wenn diese Wörter nicht extrahiert werden müssen.
      </td>
    </tr>

    <tr>
      <td>alternative Tokenfolgen</td>

      <td>
        <code>\[token1]|(\[token2]\[token3])</code>
      </td>

      <td>Ein senkrechter Strich wird verwendet, um alternative Tokenfolgen anzugeben. Runde Klammern legen die Priorität fest.</td>

      <td>
        <code>\["will"] (\["start"] | (\["take"] \["place"])) \["on"]</code> Diese Vorlage passt auf eine der folgenden Zeichenfolgen: "will start on" oder "will take place on". Beachten Sie, dass die
        Vorlage ohne die Klammern auch auf "will start place on" gepasst hätte. Die Klammern stellen sicher, dass die Phrase "take place" entweder vollständig vorhanden ist oder gar nicht. <strong>Hinweis:</strong> Bei
        komplexeren praktischen Fällen mit alternativen Tokenfolgen ist es möglicherweise einfacher, für jede Alternative eine separate Regel zu schreiben:

        <br />

        <br />

        <code>\["will"] \["start"] \["on"]</code>

        <br />

        <code>=></code>

        <br />

        <code>...;</code>

        <br />

        <code>\["will"] \["take"] \["place"] \["on"]</code>

        <br />

        <code>=></code>

        <br />

        <code>...;</code>
      </td>
    </tr>

    <tr>
      <td>optionales Token</td>

      <td>
        <code>\[]?</code>
      </td>

      <td>Ein Fragezeichen bedeutet, dass das Token optional ist.</td>

      <td>
        <code>\["Tenant"] \["."]?</code> Auf das Wort "Tenant" kann ein Punkt folgen.
      </td>
    </tr>

    <tr>
      <td>optionales wiederholbares Token</td>

      <td>
        <code>\[]\*</code>
      </td>

      <td>Ein Sternchen bedeutet, dass das Token optional ist und beliebig oft wiederholt werden kann.</td>

      <td>
        <code>\["Grantor"] \[]\* \["Tenant"]</code> Die Schlüsselwörter "Grantor" und "Tenant" können durch eine beliebige Anzahl von Token getrennt sein oder direkt aufeinander folgen.
      </td>
    </tr>

    <tr>
      <td>erforderliches wiederholbares Token</td>

      <td>
        <code>\[]+</code>
      </td>

      <td>Ein Pluszeichen bedeutet, dass das Token mindestens einmal vorkommen muss und wiederholt werden kann.</td>

      <td>
        <code>\[@NERPerson]+</code> Gibt an, dass ein Personenname gefunden werden muss, gegebenenfalls über mehrere Token hinweg, da ein Name in der Regel aus mehreren Wörtern besteht.
      </td>
    </tr>

    <tr>
      <td>Token mit angegebener Anzahl an Wiederholungen</td>

      <td>
        <code>\[]\{n,}</code> <code>\[]\{n,m}</code>
      </td>

      <td>
        Zahlen in geschweiften Klammern bedeuten, dass das Token n- bis m-mal wiederholt werden soll. Wenn die zweite Zahl nicht angegeben ist, soll das Token mindestens n-mal wiederholt werden. <strong>Hinweis:</strong>{" "}
        Wie Sie sehen, ist <code>\{0,}</code> gleichbedeutend mit <code>\*</code>, während <code>\{1,}</code> gleichbedeutend mit <code>+</code> ist.
      </td>

      <td>
        <code>\["Grantor"] \[]\{1,3} \["Tenant"]</code> Die Schlüsselwörter "Grantor" und "Tenant" sollten durch 1 bis 3 Token voneinander getrennt sein. Dies kann nützlicher sein als <code>\*</code>, weil Sie
        angeben können, dass die beiden Schlüsselwörter nicht zu weit voneinander entfernt sind.
      </td>
    </tr>
  </tbody>
</table>
