Schlagworte

german-prepare-tags Package Dokumentation

Verschlagwortung von deutschsprachigen Texten mit PHP German-Prepare-Tags-Package

Ihr findet auf meinem GitHub-Account die PHP-Klasse german-prepare-tags für Indexierung von deutschsprachigen Texten. Die Auswahl von Schlagworten erfolgt dabei mit einer Stopwortliste, die mit dem Text anhand von Wortstämmen abgeglichen wird.

Vom german-prepare-tags Package werden außerdem englischsprachige Texte unterstützt, wobei eine automatische Spracherkennung stattfindet.

Optional kann das ausgegebene Schlagwort auch den Phonetischen Code ( analog zum php-Befehl soundex() ) für die deutsche Sprache nach dem Kölner Verfahren enthalten. Dabei wird die SoundexGer-Klasse von Andy Theiler genutzt.

Installation

Composer

Ich empfehle die Installation mit dem Paketmanager Composer.

curl -sS https://getcomposer.org/installer | php

Danach im Projekt die composer.json Datei anpassen,

{
    "repositories": [ { "type": "vcs", "url": "https://github.com/mhaasler/german-prepare-tags.git"} ],
    "minimum-stability": "dev",
    "require": {
        "mhaasler/germanprepare": "dev-master"
    }
}


jetzt mit Composer installieren,

php composer.phar install

und den composer autoloader einbinden.

require 'vendor/autoload.php';

GitHub

Alternativ kann der Code auch von GitHub geklont werden, wobei die abhängigen Pakete zu beachten sind:

https://github.com/mhaasler/german-prepare-tags

Benötigt

Handhabung

Beispiel:

 
            use mhaasler\GermanPrepare\GermanPrepare; 
            $text = "Mein Text für die automatische Indexierung."; 
            $germanPrepare = new GermanPrepare($text); 
            var_dump ( 
                $germanPrepare->setModCompare('stem')->getTags() 
            );
        


Zuerst erstellen wir von der Klasse GermanPrepare eine Instanz, wobei wahlweise der zu indexierende Text übergeben wird. Der Text kann ebenso mit der Methode setText() hinzugefügt werden. Die Ausgabe wird mit getTags() erzeugt und vorher mit setModCompare('stem') in den Vergleichsmodus „Wortstämme“ gesetzt.

Beispiel Ausgabe:

array (size=3)
  'text' => 
    object(mhaasler\GermanPrepare\Model\GermanPrepareModel)[415]
      protected 'orig' => string 'Text' (length=4)
      protected 'clean' => string 'text' (length=4)
      protected 'stem' => string 'text' (length=4)
      protected 'soundex' => string '2482' (length=4)
      protected 'occour' => int 1
  'automatische' => 
    object(mhaasler\GermanPrepare\Model\GermanPrepareModel)[416]
      protected 'orig' => string 'automatische' (length=12)
      protected 'clean' => string 'automatische' (length=12)
      protected 'stem' => string 'automat' (length=7)
      protected 'soundex' => string '02628' (length=5)
      protected 'occour' => int 1
  'indexierung' => 
    object(mhaasler\GermanPrepare\Model\GermanPrepareModel)[417]
      protected 'orig' => string 'Indexierung' (length=11)
      protected 'clean' => string 'indexierung' (length=11)
      protected 'stem' => string 'indexier' (length=8)
      protected 'soundex' => string '06248764' (length=8)
      protected 'occour' => int 1
        


Die Ausgabe enthält für unser Beispiel ein Array mit drei GermanPrepareModel Objekten. Ein GermanPrepareModel hat folgende Getter-Methoden

getOrig() — gibt das Originalwort zurück
getClean() — gibt das bereinigte Wort zurück
getStem() — gibt den Wortstamm zurück
getSoundex() — gibt den phonetischer Algorithmus nach dem Kölner Verfahren zurück
getOccour() — gibt die Anzahl der Vorkommen zurück

Optionen

setMod( int $mod )
  • GermanPrepare::MOD_STEM_PHON (default) — gibt phonetischen Wert UND Wortstamm UND bereinigtes Wort zurück
  • GermanPrepare::MOD_ONLY_PHON — gibt phonetischen Wert UND bereinigtes Wort zurück
  • GermanPrepare::MOD_ONLY_STEM — gibt Wortstamm UND bereinigtes Wort zurück
  • GermanPrepare::MOD_ONLY_TRIM — gibt bereinigtes Wort zurück

Die jeweilig weggelassene Eigenschaft gibt beim Getter das Ergebnis NULL.

setModCompare( string $mod )

  • ohne Parameter — es werden exakt die Stopwörter aus der Stopwortliste entfernt
  • „stem“ (empfohlen) — es werden alle Wörter entfernt, die den gleichen Wortstamm mit der Wortstammstopwortliste
    haben.

setText( string $text, $setLang = true )

  • Parameter string $text kann ein beliebiger Text sein
  • $setLang (default: true) boolean Wert, der angibt, ob der die Textsprache automatisch erkannt werden soll

setStopWords( array $stopWords )

  • Parameter array $stopWords setzt eine eigene Stopwortliste (default: /src/Utility/data/stopwordlist_*.json)

setLang( string $lang )

  • Parameter „de“ oder „en“ zum manuellen Setzen der Textsprache (default: „de“)

Package Lizenz

http://www.fsf.org/ GNU General Public License

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.