Copyright ©
Mindbreeze GmbH, A-4020 Linz, .
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller.
Diese Unterlagen sind streng vertraulich. Durch die Übermittlung und Präsentation dieser Unterlagen alleine werden keine Rechte an unserer Software, an unseren Dienstleistungen und Dienstleistungsresultaten oder sonstigen geschützten Rechten begründet. Die Weitergabe, Veröffentlichung oder Vervielfältigung ist nicht gestattet.
Aus Gründen der einfacheren Lesbarkeit wird auf die geschlechtsspezifische Differenzierung, z.B. Benutzer/-innen, verzichtet. Entsprechende Begriffe gelten im Sinne der Gleichbehandlung grundsätzlich für beide Geschlechter.
Dieses Dokument beschäftigt sich mit dem Konzept, dem Setup und den Troubleshooting Methoden für die Konfiguration von Entity Recogntition.
In diesem Kapitel wird das Konzept von Entity Recognition anhand eines einfachen Beispiels erklärt.
Führen Sie zum Einrichten folgende Schritte durch:
Die Konfiguration der Parameter für die Entity Recogniton ermöglicht es dem Index Service, Metadaten aus den Dokumentinhalten zu extrahieren. Die folgenden Einstellungen sind verfügbar:
Einstellung | Beschreibung |
Pattern Rules | Definiert eine Reihe von Regeln, die bei der Extraktion von Metadaten angewendet werden. Die Regeln werden mit einem Regex-Muster definiert. Bitte beachten Sie, dass die regulären Ausdrücke ebenfalls mit einem "/" umschlossen sein müssen. |
Pattern Add Region Annotations | Fügt den Wert der Einstellung "Link HREF-Muster verwenden" zur Annotation hinzu. |
Process HTML Attributes | Ermöglicht der Entity Recognition auch innerhalb von Link-Referenzen zu suchen. Wie <a href=link zu suchen.> Link </a> im HTML-Quelltext. |
HTML Attribute Name Pattern | Legt fest, welche Attributnamen durchsuchbar sein sollen. Es wird mit einem Regex-Muster definiert. In den meisten Fällen ist ein "href" ausreichend. Es kann auch einfach mit einem '|' ("OR") wie folgt erweitert werden: "href|link|..." . |
Im Abschnitt "Add Metadata Definition" können für jedes Metadatum Regeln definiert werden. Die folgenden Einstellungen sind verfügbar:
Einstellung | Beschreibung |
If Rule Matches | Eine Regel, die den Bereich im Inhalt definiert, aus dem Metadaten extrahiert werden sollen. Sie sollte den Namen der Regel tragen, die in der Einstellung "Pattern Rules" definiert ist. |
Name | Der Name der Metadaten, die einem Dokument hinzugefügt werden, wenn die definierte Regel zutrifft. |
Value | Eine Regel, die den Wert von Metadaten definiert. Der Wert der Regel {{month}} kann normaler Text oder zusammengesetzt sein. |
Scope | Eine Regel, die einen Bereich oder mehrere Bereiche mit einer Entity Recognition Regel definiert, in denen die Regeln für die Extraktion angewendet werden sollen. Dazu ist der Name der Regel zur Auswahl des/der Bereiche(s) anzugeben. Im Gegensatz zur Wertextraktion müssen Sie den Namen ohne "{{}}" eingeben. |
Format | Ermöglicht die Extraktion von typisierten Metadaten wie Datum aus String. Die bekannten Typen sind "String", "Date", "Number". Nur "Date" benötigt zusätzliche Parameter "Format Options" und "Locale". |
Format Options | Obligatorisch für Format "Datum". Option zur Einstellung der Formatierung der Ausgabe. Die genaue Definition finden Sie hier: https://github.com/unicode-org/icu/blob/main/docs/userguide/format_parse/datetime/index.md#datetime-format-syntax. Definieren Sie die Reihenfolge und was ausgegeben werden soll, z.B.: "jjjjj.MMMM.tt HH:mm" zum Drucken 2024.Juli.05 11:33. |
Locale | Wird nur für das Format "Datum" verwendet. Legen Sie das Gebietsschema "Locale" fest, wenn sich das Gebietsschema des Computers und des Benutzers unterscheiden. Wie ja_JP zur Anzeige im japanischen Standard-Datumsformat. Prüfen Sie https://github.com/unicode-org/icu/blob/main/docs/userguide/format_parse/datetime/index.md#datetimepatterngenerator. |
In Existing Metadata | Legt fest, für welche Metadaten diese Regeln gelten sollen. Zum Beispiel: content, title, datasource/mes:key, <ownmetadatum>, etc. |
Aggregateable | Wenn diese Option aktiviert ist, ist das erzeugte Metadatum statisch aggregierbar. |
Use Value for Sentence Embeddings | Wenn diese Einstellung aktiviert ist, können die erkannten Entitäten mit einer Sentence Similarity Search (NLQA) gefunden werden. |
Annotate As | Legt fest, wie die Entität zu den Metadaten hinzugefügt wird. Die folgenden Optionen sind verfügbar:
|
Add Link With URL Pattern | Definiert ein Muster für den Annotation-Link, wenn die Einstellung "Annotate As" auf "Link" oder "Entity And Link" gesetzt ist. Es kann die Regex-Definitionen aus der Einstellung "Pattern Rules" verwenden, die auf die gleiche Weise wie die Einstellung "Value" konfiguriert werden kann. Verwendet für etwas wie: www.mindbreeze.com/link_to_item?item={{RuleName}} |
Entity Label | Name der erstellten Entität, wenn die Einstellung "Annotate As" auf "Entity" oder "Entity And Link" gesetzt ist. |
Dieses Kapitel beschäftigt sich mit der Einrichtung und Erklärung von Entity Recognition mit Mindbreeze unter Anlehnung an ein einfaches Beispiel.
Zuerst müssen die Regeln für die Extraktion angelegt werden:
share=/[^\\]+/.
directory=/[^\\]+/.
UNCPath="\\\\" host "\\" share "\\" directory "\\".
If Rule Matches: UNCPath
Name: Laufwerk
Value: {{share}}
In Existing Metadata: datasource/mes:key
If Rule Matches: UNCPath
Name: Projektpfad
Value: {{directory}}
In Existing Metadata: datasource/mes:key
Aggregated Metadata Keys (; separated)
Laufwerk;Projektpfad
Date-Formate für Entity Recognition basieren auf den ICU-Patterns (z.B. Locale … de_AT)
Sind die Regeln mehrdeutig, kann über alternative Regeln und einer Reihung durch Benennung sowie die korrekte Reihung der mehrfachen Metadaten-Extraktion auch solch ein komplexer Fall erreicht werden. Der Pfad (path) als Metadatum ist lower-case und somit besser für CSV-Mapping.
Ein ODER (|) von Sub-Regeln funktioniert nicht!
> einfache Lösung ohne Ausnahme:
Pattern Rules:
LWPath=/\\\\[^\\]+\\[^\\]+\\[^\\]+\\[^\\]+/.
FilePath=/[^\\]+/.
FullPath=LWPath "\\" FilePath.
> Lösung mit einer Ausnahme (data\it):
Pattern Rules:
ASpecialPath="data\\it".
OtherPath=/[^\\]+/.
BaseShare=/\\\\[^\\]+\\[^\\]+\\[^\\]+/.
LWPathA= BaseShare "\\" ASpecialPath.
LWPathOther= BaseShare "\\" OtherPath.
FilePathA=/[^\\].*/.
FilePathOther=/[^\\].*/.
FullPathA=LWPathA "\\" FilePathA.
FullPathOther=LWPathOther "\\" FilePathOther.
Im nachstehenden Screenshot wird die Konfiguration der Regeln visualisiert.
CSV-Transform: der extrahierte Wert (fileshare) muss case-sensitive matchen, somit sollte der path als Quell-Metadatum verwendet werden.
fileshare;letter
\\fileserver.mycompany.com\qa\fstest\projekte;U:
\\fileserver.mycompany.com\qa\fstest\vorlagen;T:
\\fileserver.mycompany.com\qa\fstest\allgemein;G:
\\fileserver.mycompany.com\qa\fstest\spezial;M:
\\fileserver.mycompany.com\qa\fstest\data\it;H:
\\fileserver.mycompany.com\qa\fstest\data;H:
\\fileserver.mycompany.com\qa\fstest\data-services;H:
\\fileserver.mycompany.com\qa\fstest\allgemein-retail;G:
Der Match auf mes:key ist in CSV-Transformation (sowie in ER-rules) nur möglich mit: In Property = datasource/mes:key.
Achtung: /documents-Servlet liefert keine Werte die nur über Index Re-Invert entstehen!
Dieses Kapitel beschäftigt sich mit dem Troubleshooting der Entity Recognition Regeln.
Index-Status prüfen über http://localhost:8443/index/<Indexport>/statistics
Entity Recognition Regeln sind normalerweise gierig Im folgenden Beispiel werden die markierten Zeilen gematcht:
Regel
R1=/ (?s)(test)(?P<line>.+)\s+(.*Page) /.
Match:
Wird gierig deaktiviert würde jedoch nicht mehr alles gematchet werden, sondern nur jene Blöcke die mit test beginnen und mit Page enden:
Regel:
(?U)(?s)(test)(?P<line>.+)\s+(.*Page)(?U)
Match:
Bei folgender Fehlermeldung ist ein Fehler beim Parsen der ER-Regeln aufgetreten:
“MesQuery::Text::RE2Tokenizer ERROR: Matched empty (epsilon) token, pattern is”
… z.B. wird ein „\“ am Ende einer Regex nicht unterstützt (LWPath=/\\\\[^\\]+\\/. … liefert Fehler besser: LWPath=/\\\\[^\\]+/ “\\“.).
Eventuell kann es auch zu Problemen mit “.*“ in Regeln kommen.
Entity Recognition Rules werden in alphabetischer Reihenfolge ausgewertet und der erste vollständige Match gewinnt.
Regex-Rules nach deutschen Wörtern treffen mit \w nicht alle Zeichen (Umlaute, etc.). Stattdessen können Sie mit \pL alle Unicode-Buchstaben matchen.
Wenn die Entity Recognition auf Inhalte angewendet werden soll, indem der Name auf „content“ oder „.*“ gesetzt wird, muss der Inhalt manuell als aggregierbar hinzugefügt werden. Dies kann mit einer der beiden Methoden geschehen:
1. Hinzufügen von „@content“ zu den Aggregated Metadata Keys
2. Oder fügen Sie ein Precomputed Synthesized metadata mit dem Name „@content“, Property Expression “""”, Transformation Pipeline Slot “Before Entity Recognition”, Merge Strategy “Replace Existing”, Aggregatable “Static Aggregatable” hinzu.
\d{4}(\s|\.|\-)\d{6}
Example
1237 010180
1237.010180
1237-010180
(\+)([\s.\(\)]*\d{1}){8,13}(-)?(\d{1,5})
Example
+43 732 606162-0
+43 732 606162-609
+49(732)606162-609
RegEx
z1=/\d/.z2=/\d/. (…)Dlmtr=/[\s\-_.:]?/.
z1 Dlmtr z2 Dlmtr z3 Dlmtr z4 Dlmtr z5 Dlmtr z6.
Example
12-34567
12 34 56-7
1-2 3456.7
((\d{1,3}(\.(\d){3})*)|\d*)(,\d{1,2})
Example
0,84
100.000,49
100.000,00
1.000.000.000.000,00
Handbuch zu den Datumsformaten: http://userguide.icu-project.org/formatparse/datetime
(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?
Example
11:00:23
12:30
([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})
Example
david.porter@inspire.mindbreeze.com
AT\d{18}
Example
AT002105017000123456
In diesem Beispiel wird eine Liste von Inhalten getrennt mit einem Beistrich als Liste in Mindbreeze interpretiert.
Input: Liste aus Wort, Wort,
Wert=/[^\s,][^,]*[^,\s]?/.
Regel=/\s*/value/\s*(,\s*|$)/.