© saicle/Shutterstock.com
Kolumne PEARcing

Ein PEAR Package vorgestellt


Ein häufig gewünschtes Feature in sozialen Netzwerken ist die Erkennung und Filterung der Sprache eines Feeds, einer Statusangabe oder eines Kommentars. Idealerweise sollte die Sprache automatisch erkannt werden, und genau das macht Text_LanguageDetect.

Die Funktionsweise?

Das API des Packages ist relativ simpel und beinhaltet dabei eine ganze Menge Know-how. Basis der Analyse ist das N-Gramm-Konzept [1], im Englischen nur mit einem „m“: N-Gram. Dabei wird ein Text in Abschnitte zerlegt, jeder Teil besteht dabei aus N Zeichen. Die Abschnitte werden gezählt und die Häufigkeit der Bestandteile im Text wird dann mit sprachspezifischen Statistiken verglichen. Text_LanguageDetect verwendet Trigramme (3-Gram), zerlegt Texte also in Abschnitte von je drei Zeichen. Die notwendigen Statistiken zum Vergleichen liefert das Package für nicht weniger als 52 Sprachen mit.

Die Installation

Bei der Installation gibt es nichts weiter zu beachten, außer dass es sich bei der aktuellen Version um eine Alpha handelt:

pear install Text_LanguageDetect-alpha

Wer Interesse an den Statistiken hat, der findet sie im /data/-Verzeichnis seiner PEAR-Installation. Wenn Sie nicht wissen, wo das liegt, finden Sie es mit pear config-get data_dir. Dort liegen sie in den Dateien Text_Lan­guageDetect/lang.dat und unicode_blocks.dat, die Daten liegen darin in Form eines serialisierten PHP Arrays.

Die Anwendung

Der Einsatz gestaltet sich im Grunde einfach: Objekt initialisieren, Text zum Prüfen übergeben, erkannte Sprache abholen. Das ist tatsächlich so trivial:

require_once 'Text/LanguageDetect.php'; $l = new Text_LanguageDetect; $sprache = $l->detectSimple('Der erste Testtext der Geschichte.');

Die Variable $sprache enthält die Sprache je nach Einstellung als Wort oder Ländercode. Aber es geht auch komplexer:

$sprache = $l->detectConfidence('Der erste Testtext der Geschichte.');

Diesmal ist es schwieriger die Bedeutung des Ergebnisses in $sprache tatsächlich zu interpretieren. Der einfachste Fall ist, $sprache ist null – dann konnte keine Sprache identifiziert werden. Ansonsten enthält es ein Array mit der Angabe der Sprache und dem Wahrscheinlichkeitsfaktor. Letzterer ist umso kleiner, je mehr auch eine andere Sprache in Frage kommt. Gerade hier sei noch einmal daran erinnert, dass es sich nur um eine statistische Schätzung handelt. War der geprüfte Text kurz und der Wahrscheinlichkeitsfaktor sehr klein, kann es durchaus sinnvoll sein, das Ergebnis zu verwerfen. Das Zusammenspiel aus Textlä...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang