Python’s NLTK library features a robust sentence tokenizer and POS tagger. Python verfügt über einen nativen Tokenizer, die Funktion .split()
, der ein Trennzeichen übergeben kann und die Zeichenkette, mit der die Funktion aufgerufen wird, an diesem Trennzeichen zerlegt. Der NLTK-Tokenisierer ist robuster. Er zerlegt einen Satz in Wörter und Interpunktion. Bei folgendem Code:
Es wird den Satz Can you please buy me an Arizona Ice Tea? It's .99."
wie folgt tokenisieren:
Beachten Sie, dass der Tokenizer 's
, '$'
, 0.99
und .
als separate Token behandelt. Dies ist wichtig, da Kontraktionen ihre eigene semantische Bedeutung haben und auch ihre eigene Wortart haben, was uns zum nächsten Teil der NLTK-Bibliothek bringt, dem POS-Tagger. Der POS-Tagger in der NLTK-Bibliothek gibt spezifische Tags für bestimmte Wörter aus. Die Liste der POS-Tags sieht wie folgt aus, mit Beispielen dafür, wofür jedes POS steht.
CC koordinierende Konjunktion
CD kardinale Ziffer
DT Determinator
EX existentielles da (wie: „there is“ … wie „es gibt“)
FW Fremdwort
IN Präposition/unterordnende Konjunktion
JJ Adjektiv ‚groß‘
JJR Adjektiv, Komparativ ‚größer‘
JJS Adjektiv, Superlativ ‚größter‘
LS Listenmarker 1)
MD Modal könnte, wird
NN Substantiv, Singular ‚Schreibtisch‘
NNS Substantiv Plural ‚Schreibtische‘
NNNP Eigenname, Singular ‚Harrison‘
NNPS Eigenname, Plural ‚Amerikaner‘
PDT Prädeterminator ‚all die Kinder‘
POS Possessivendung Eltern
PRP Personalpronomen ich, er, sie
PRP$ Possessivpronomen mein, sein, ihr
RB Adverb sehr, leise,
RBR Adverb, Komparativ besser
RBS Adverb, Superlativ am besten
RP Partikel aufgeben
TO, ‚zum‘ Laden gehen.
UH Interjektion, errrrrrrrm
VB Verb, Grundform nehmen
VBD Verb, Vergangenheitsform nehmen
VBG Verb, Gerundium/Präsens Partizip nehmen
VBN Verb, Partizip Perfekt nehmen
VBP Verb, Sing. Präsens, nicht-3d nehmen
VBZ Verb, 3. Person Sing. present take
WDT wh-determiner which
WP wh-pronoun who, what
WP$ possessive wh-pronoun whose
WRB wh-abverb where, when
Wie Sie in Zeile 5 des obigen Codes sehen können, muss die .pos_tag()
ein tokenisierter Satz zur Markierung übergeben werden. Das Tagging erfolgt mit Hilfe eines trainierten Modells in der NLTK-Bibliothek. Der enthaltene POS-Tagger ist nicht perfekt, liefert aber recht genaue Ergebnisse. Bei Verwendung desselben Satzes wie oben lautet die Ausgabe:
Das Taggen von Wortarten kann für die syntaktische und semantische Analyse wichtig sein. So hat das Wort can
in einem Satz wie dem obigen mehrere semantische Bedeutungen. Eine davon ist ein Modal für die Bildung von Fragen, eine andere ein Behälter zur Aufnahme von Lebensmitteln oder Flüssigkeiten und eine weitere ein Verb, das die Fähigkeit bezeichnet, etwas zu tun. Wenn man einem Wort wie diesem eine bestimmte Bedeutung gibt, kann das Programm es sowohl in der semantischen als auch in der syntaktischen Analyse richtig behandeln.