5.2
 NLTK-Chunkparser

5.2.1
 Aufstarten

Aufstarten des NLTK ChunkParsers 

NLTK-NP-Chunkparser

Einfache Entwicklungsumgebung, um Chunk-Grammatiken zu schreiben und zu evaluieren anhand von NP-Chunks aus der CONLL-Shared-Task. http://www.cnts.ua.ac.be/conll20001

Aufstarten

$ python  
>>> import nltk  
>>> nltk.app.chunkparser()

Chunking-Regeln schreiben für NLTK-NP-ChunkParser 


pict

Abbildung 5.4: Partielle Analyse von einem Chunk-Tagger (TreeTagger) von H. Schmid

Wie kann man die zulässigen NP Chunks beschreiben?

{<NN> <NN> <NNS>}

Chunks werden nur auf der Ebene der Wortarten (PoS-Tags) der Wörter spezifiziert (deshalb heissen sie Tag-Patterns).

5.2.2
 Strategien

Mehrere Tag-Patterns nacheinander anwenden 

{<DT> <JJ> <NN> } # ... ist ein NP-Chunk  
{<NN>}            # Ein einzelnes Nomen ist ein NP-Chunk,  
                  # falls nicht bereits Teil eines Chunks.

Reguläre Muster für Tag-Patterns 

Übliche Matching-Strategien

{<DT>? <JJ>+ <NN> } # Was beschreibt das?

Tag-Patterns mit Kontext 

Chunk-Gruppierung nur in bestimmten Kontexten

Die Anwendung einer Gruppierung lässt sich auf bestimmte Kontext einschränken. Links und/oder rechts von den geschweiften Klammern können Tag-Patterns stehen.

<VBP> {<VBG><NN>} # Gruppiere VBG NN nur zu NP-Chunk,  
                  # wenn vorher ein VBP steht

Chinking 

Idee

Manchmal ist es einfacher zu sagen, was nicht im Chunk sein soll, nämlich die Chinks.

Reguläre Ausdrücke innerhalb einer Tag-Angabe

{ <.*>+ }        # Chunke alles im Satz zusammen  
                 # . steht für einen Buchstaben ausser >  
} <VBD | IN>+ {  # Chinke Folgen von VBD oder IN  

Achtung: Zeichen mit Sonderbedeutung in regulären Ausdrücken müssen geschützt werden, um für das normale Zeichen zu stehen: z.B. <PRP\$>

Semantik der Chinking-Regel 
pict