FormAnalysator
Die FormAnalysator-Klasse ist für die Analyse von lateinischen Wörtern und deren Beziehungen zu möglichen Lemmata verantwortlich.
Konstruktor
public function __construct(string $Form, array $config = [])$Form: Die lateinische Form, die analysiert werden soll.$config: Ein optionales Konfigurationsarray, das die folgenden Optionen enthalten kann:analysis_method: Die zu verwendende Lemmatisierungsmethode ('default').analysis_form_as_lowercase: Ob die Analyse in Kleinbuchstaben durchgeführt werden soll (default: true).analysis_show_pos: Ob die Wortart angezeigt werden soll (default: true).analysis_show_morpho: Ob die morphologische Analyse angezeigt werden soll (default: true).analysis_show_bedeutungen: Ob die Bedeutungen angezeigt werden sollen (default: true).
Methoden
get()
public function get(bool $FullAnalysis = false, bool $serialize = false): FormAnalysis|Collection|array|string$FullAnalysis: Ob die vollständige Analyse durchgeführt werden soll (default: false).$serialize: Ob das Ergebnis serialisiert werden soll (default: false).
Gibt die FormAnalysis oder eine serialisierte Version davon zurück.
analyze()
public function analyze(): FormAnalysator
{
$this->lemmatize();
$this->deleteEmpty();
$this->deleteDuplicates();
$this->report();
return $this;
}Führt die Analyse der Form durch und gibt eine Instanz von FormAnalysator zurück.
- Lemmatisierung aller möglichen Formen
- Leere Lemma-Analysen werden gelöscht.
- Duplikate von Lemma-Analysen werden entfernt.
lemmatize()
public function lemmatize(): static
{
$this->reduceAlternativeFormen();
$this->queryLemmaBank();
return $this;
}Führt die Lemmatisierung der Form durch und gibt eine Instanz von FormAnalysator zurück.
- Zunächst werden alternative Formen reduziert, indem nach möglichen Verweisen, zusammengesetzten Formen und Enklitika gesucht wird.
- Anschließend werden alle möglichen Formenvarianten festgelegt, die analysiert werden sollen (Suche nach Verweisen, Enklitika usw.).
- Die Lemmatisierung wird durchgeführt, indem die Form in der LemmaBank gesucht und die zugehörigen Lemma- und morphologischen Informationen abgerufen werden.
applyScope()
Beschreibung
Die applyScope() Methode filtert die Analyseergebnisse basierend auf einem vorgegebenen VocabScope und einem Anwendungsoperator ('in' oder 'out').
Parameter
$VocabScope(array): Ein Array, das das vorgegebene Vokabular enthält, gegen das die Analyseergebnisse gefiltert werden sollen.$scopeType(string): Der Anwendungsbereich, der angibt, wie das Vokabular verwendet werden soll. Mögliche Werte sind 'in' (nur Wörter, die im Vokabular enthalten sind) oder 'out' (nur Wörter, die nicht im Vokabular enthalten sind).
Funktionsweise
- Prüfen des Anwendungsbereichs: Die Methode überprüft den übergebenen
$scopeType, um festzustellen, ob sie die Analyseergebnisse auf Wörter beschränken soll, die im Vokabular enthalten sind ('in'), oder auf Wörter, die nicht im Vokabular enthalten sind ('out'). - Filtern der Analyseergebnisse: Die Methode durchläuft die Analyseergebnisse und vergleicht jeden Eintrag mit dem vorgegebenen Vokabular. Basierend auf dem Anwendungsbereich ('in' oder 'out') filtert sie die Analyseergebnisse entsprechend.
- Aktualisieren des Analyseobjekts: Nachdem die Methode die Analyseergebnisse gefiltert hat, aktualisiert sie das Analyseobjekt, um nur die gefilterten Ergebnisse zu enthalten.
- Rückgabe der
FormAnalysatorInstanz: Die Methode gibt dieFormAnalysatorInstanz selbst zurück, um eine verkettete Methodenanwendung (Method Chaining) zu ermöglichen.
Rückgabewert
Die FormAnalysator Instanz selbst, um weitere Methodenanwendungen zu ermöglichen.
Beispiel
$FormAnalysator = new FormAnalysator('amavit', $TextConfig);
$FormAnalysator->analyze();
$FormAnalysator->applyScope($VocabScope, 'in');In diesem Beispiel wird die applyScope() Methode verwendet, um die Analyseergebnisse von "amavit" zu filtern. Sie beschränkt die Ergebnisse auf diejenigen, die im $VocabScope enthalten sind. Nachdem die Methode die Analyseergebnisse gefiltert hat, aktualisiert sie das Analyseobjekt entsprechend.