Diese Dokumentation bezieht sich auf IBM Watson® Knowledge Studio on IBM Cloud®. Die Dokumentation für die Vorgängerversion von Knowledge Studio on IBM Marketplace kann über diesen Link aufgerufen werden.
Rules
Erstellen Sie ein regelbasiertes Modell zum Erkennen von Mustern in Ihren Dokumenten. Verwenden Sie Regeln, um Muster zu erfassen, die in Dokumenten vorkommen und Informationen über die zugrunde liegenden Entitätstypen liefern.
Übersicht über Klassen
Beim Erstellen einer Regel verwenden Sie Klassen, um Informationstypen darzustellen. Diese Klassen sind mit Entitätstypen vergleichbar. Warum werden beim Definieren von Regeln nicht einfach Entitätstypen verwendet? Dies hat seinen Grund darin, dass beim Erstellen von Regeln Zwischenklassen definiert werden können, die nur dazu dienen, andere komplexere Klassen zu erstellen. Diese Zwischenklassen dienen lediglich als Mittel zum Zweck. Sie haben keine eigenständige Bedeutung. Zwischenklassen dienen im Verbund mit anderen Zwischenklassen zum Definieren einer effizienteren und vollständigeren Klasse. Eine Zwischenklasse ist zwar nötig, aber sie wird nicht im Rahmen eines Typsystems bereitgestellt. Damit das regelbasierte Modell zielführende Aufgaben wie das Vorannotieren von Dokumenten mit Entitätserwähnungen übernehmen kann, müssen Sie die komplexen Klassen, die Sie beim Erstellen von Regeln verwenden, den entsprechenden Entitätstypen aus dem Typsystem zuordnen.
Angenommen, Sie benötigen ein Modell, das Personennamen erkennen kann. Um ein Machine Learning-Modell so zu trainieren, dass es Personennamen erkennen kann, annotieren Sie viele verschiedene Namen mit unterschiedlichen Schreibweisen in den Dokumenten
einer Annotationsgruppe mit dem Entitätstyp PERSON
. Um ein regelbasiertes Modell zum Erkennen von Personennamen zu trainieren, können Sie eine Regel definieren, die zum Angeben von Personennamen verwendete Textmuster beschreibt.
Sie können beispielsweise eine Klasse FirstName
und eine Klasse LastName
erstellen und mithilfe dieser Zwischenklassen eine Klasse FullName
definieren. Sie können Bedingungen definieren, die die Platzierung
der Klasse FullName
in Bezug auf allgemeine Präfixe wie Dr.
und allgemeine Suffixe wie Jr.
festlegen. Bei Verwendung des regelbasierten Modells wird die Klasse FullName
dem Entitätstyp PERSON
zugeordnet.
Ein weiterer Grund, warum das Zuordnen von Zwischenklassen zu Entitäten in Ihrem Typsystem vermieden werden sollte, besteht darin, dass beim Vorannotieren von Dokumenten mit dem regelbasierten Modell und dem anschließenden Hinzufügen dieser
Dokumente zur Ground Truth für das Trainieren eines Machine Learning-Modells keine Regeln definiert werden sollen, die Entitätserwähnungen mit Überschneidungen erzeugen. Beispiel: Wenn die Zwischenklasse FirstName
und die komplexe
Klasse FullName
der Entität PERSON
zugeordnet würden, würde das Vorkommen des Namens John Doe, Jr.
zu einer Erwähnung mit Überschneidung führen.
Tools im Regeleditor
Der Regeleditor stellt einige Tools bereit, die Sie beim Definieren von Regeln unterstützen.
-
Wörterbuch
Fügen Sie ein Wörterverzeichnis hinzu und ordnen Sie diesem einen Klassennamen zu. Alle gefundenen Wörter, die mit Einträgen im Wörterverzeichnis übereinstimmen, werden automatisch mit der zugeordneten Klasse annotiert.
-
Regulärer Ausdruck
Ein regulärer Ausdruck (Regular Expression, RegEx) ist eine Zeichenfolge, die ein Suchmuster definiert. Hier ein einfaches Beispiel:
[A-Z][a-z]*
findet Wörter in Großschreibung.[A-Z]
findet alle Großbuchstaben (A bis Z) und[a-z]*
findet alle Kleinbuchstaben (a bis z), die beliebig oft vorkommen. Der Stern (*) gibt die Anzahl der Wiederholungen (gar nicht oder beliebig oft) an.Sie können ein frei verfügbares, webbasiertes Dienstprogramm für reguläre Ausdrücke verwenden, um den richtigen Ausdruck zum Erfassen des gesuchten Musters zu finden.
Angenommen, Ihre Dokumente enthalten verschiedene Referenzen, die den folgenden Ausdrücken ähneln:
35-year-old driver 16-year-old learner
Die Syntax
n-year-old x
ist ein Muster, das in der Regel eine Person bezeichnet. Sie können eine Regel mit einem regulären Ausdruck definieren, der das Mustern-year-old x
findet, und die gefundenen Erwähnungen als EntitätstypPERSON
annotieren.
Bewährte Verfahren für reguläre Ausdrücke
Das Tool für reguläre Ausdrücke (regex) im Regeleditor erkennt zwar Ausdrücke, die der Syntax java.util.regex.Pattern
entsprechen, es unterstützt jedoch nicht die gesamte Syntax. Beachten Sie bei der Verwendung des Tools 'regex'
die folgenden bewährten Verfahren:
- Der Regelabgleich wird nur auf Tokengrenzen angewendet. Sie können keine Regeln für den Abgleich mit einer Teilsequenz eines Tokens schreiben. Weitere Informationen hierzu finden Sie unter Tokenizer.
- Erstellen Sie möglichst einfache und überschaubare reguläre Ausdrücke.
- Ziehen Sie die Verwendung von Wörterverzeichnissen anstelle von regulären Ausdrücken in Betracht. Selbst wenn Sie eine effiziente Regel finden können, die mehrere Ausdrücke abdeckt, ist der Abgleich mit einem Wörterverzeichnis schneller als der Regelabgleich. Außerdem sind Wörterverzeichnisse einfacher zu pflegen.
- Eine Kombination aus Wörterverzeichnissen, regulären Ausdrücken und Regeln ist effizienter als die einseitige Abhängigkeit von regulären Ausdrücken. Das Szenario für den Abgleich mit einer Telefonnummer in einem Satz wie
My mobile is 123-456
ist ein gutes Beispiel. Sie können zwar eine Regel für den Abgleich mit diesem Satz schreiben. In diesem Fall wird jedoch empfohlen, ein Wörterverzeichnis hinzuzufügen, um Wörter wie Mobil und Telefon zu finden, einen einfachen regulären Ausdruck zu schreiben, der mögliche Telefonnummernfolgen erfasst, und dann eine Regel zu erstellen, um nach einer Folge von Mustern wiedictionary term
+text
+regex
zu suchen, wie im BeispielsatzMy mobile is 123-456
dargestellt. - Vermeiden Sie unnötige Verwendung von Lookahead und Lookbehind (
(?=ABC)
). In vielen Fällen können Sie dasselbe Ergebnis erzielen, indem Sie eine Kombination aus regulären Ausdrücken und Regeln verwenden.