POS-Tagging mit NLTK und Chunking in NLP (BEISPIELE)

Inhaltsverzeichnis:

Anonim

POS-Tagging

POS-Tagging (Teile des Sprach-Tagging) ist ein Prozess zum Markieren der Wörter im Textformat für einen bestimmten Teil einer Sprache basierend auf ihrer Definition und ihrem Kontext. Es ist dafür verantwortlich, Text in einer Sprache zu lesen und jedem Wort ein bestimmtes Token (Wortarten) zuzuweisen. Es wird auch als grammatikalisches Tagging bezeichnet.

Lassen Sie uns anhand eines NLTK-Beispiels für einen Teil der Sprache lernen:

Input: Alles was uns erlaubt.

Ausgabe : [('Alles', NN), ('bis', TO), ('Erlaubnis', VB), ('wir', PRP)]

Schritte im POS-Tagging-Beispiel:

  • Tokenize-Text (word_tokenize)
  • Wenden Sie pos_tag auf den obigen Schritt an, der nltk.pos_tag (tokenize_text) lautet.

Beispiele für NLTK-POS-Tags sind:

Abkürzung Bedeutung
CC koordinierende Konjunktion
CD Kardinalziffer
DT Bestimmer
EX existenziell dort
FW Fremdwort
IM Präposition / untergeordnete Konjunktion
JJ Dieses NLTK POS Tag ist ein Adjektiv (groß)
JJR Adjektiv, vergleichend (größer)
JJS Adjektiv, Superlativ (am größten)
LS Listenmarkt
MD modal (könnte, wird)
NN Substantiv, Singular (Katze, Baum)
NNS Substantiv Plural (Schreibtische)
NNP Eigenname, Singular (sarah)
NNPS Eigenname, Plural (Indianer oder Amerikaner)
PDT Vorbestimmung (alle, beide, die Hälfte)
POS besitzergreifendes Ende (Eltern)
PRP Personalpronomen (ihr, sie selbst, er, sich selbst)
PRP $ Possessivpronomen (sie, sein, mein, mein, unser)
RB Adverb (gelegentlich schnell)
RBR Adverb, vergleichend (größer)
RBS Adverb, Superlativ (am größten)
RP Teilchen (ungefähr)
ZU unendlicher Marker (zu)
ÄH Interjektion (auf Wiedersehen)
VB Verb (fragen)
VBG Verb gerund (urteilen)
VBD Verb Vergangenheitsform (plädiert)
VBN Verb Partizip Perfekt (wiedervereinigt)
VBP Verb, Präsens nicht 3. Person Singular (Wrap)
VBZ Verb, Präsens mit 3. Person Singular (Basen)
WDT wh-Determiner (das, was)
WP Wh-Pronomen (wer)
WRB wh-Adverb (wie)

Die obige NLTK-POS-Tag-Liste enthält alle NLTK-POS-Tags. Der NLTK POS-Tagger wird verwendet, um jedem Wort des Satzes grammatikalische Informationen zuzuweisen. Das Installieren, Importieren und Herunterladen aller Pakete von POS NLTK ist abgeschlossen.

Was ist Chunking in NLP?

Das Chunking in NLP ist ein Prozess, bei dem kleine Informationen in große Einheiten zusammengefasst werden. Die Hauptverwendung von Chunking besteht darin, Gruppen von "Nominalphrasen" zu bilden. Es wird verwendet, um dem Satz Struktur zu verleihen, indem POS-Tags in Kombination mit regulären Ausdrücken befolgt werden. Die resultierende Gruppe von Wörtern wird "Chunks" genannt. Es wird auch als flaches Parsen bezeichnet.

Beim flachen Parsen gibt es maximal eine Ebene zwischen Wurzeln und Blättern, während das tiefe Parsen mehr als eine Ebene umfasst. Flaches Parsen wird auch als leichtes Parsen oder Chunking bezeichnet.

Regeln für das Chunking:

Es gibt keine vordefinierten Regeln, aber Sie können sie je nach Bedarf und Anforderung kombinieren.

Zum Beispiel müssen Sie Nomen, Verb (Vergangenheitsform), Adjektiv und koordinierende Verbindung aus dem Satz markieren. Sie können die Regel wie folgt verwenden

Chunk: {*** ?}

Die folgende Tabelle zeigt, was die verschiedenen Symbole bedeuten:

Name des Symbols Beschreibung
. Beliebiges Zeichen außer neuer Zeile
* * Ordne 0 oder mehr Wiederholungen zu
? Passen Sie 0 oder 1 Wiederholungen an

Schreiben wir nun den Code, um die Regel besser zu verstehen

from nltk import pos_tagfrom nltk import RegexpParsertext ="learn php from guru99 and make study easy".split()print("After Split:",text)tokens_tag = pos_tag(text)print("After Token:",tokens_tag)patterns= """mychunk:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Ausgabe

After Split: ['learn', 'php', 'from', 'guru99', 'and', 'make', 'study', 'easy']After Token: [('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN'), ('and', 'CC'), ('make', 'VB'), ('study', 'NN'), ('easy', 'JJ')]After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules:***?'>After Chunking (S(mychunk learn/JJ)(mychunk php/NN)from/IN(mychunk guru99/NN and/CC)make/VB(mychunk study/NN easy/JJ))

Die Schlussfolgerung aus dem obigen Teil des Speech-Tagging-Python-Beispiels: "make" ist ein Verb, das nicht in der Regel enthalten ist, daher wird es nicht als mychunk markiert

Anwendungsfall von Chunking

Chunking wird zur Entitätserkennung verwendet. Eine Entität ist der Teil des Satzes, durch den die Maschine den Wert für eine Absicht erhält

Example:Temperature of New York.Here Temperature is the intention and New York is an entity.

Mit anderen Worten, Chunking wird zum Auswählen der Teilmengen von Token verwendet. Bitte folgen Sie dem folgenden Code, um zu verstehen, wie Chunking zur Auswahl der Token verwendet wird. In diesem Beispiel sehen Sie das Diagramm, das einem Teil einer Nominalphrase entspricht. Wir werden den Code schreiben und die Grafik zum besseren Verständnis zeichnen.

Code zur Demonstration des Anwendungsfalls

import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {
?*}"cp =nltk.RegexpParser(grammar)result = cp.parse(tag)print(result)result.draw() # It will draw the pattern graphically which can be seen in Noun Phrase chunking

Ausgabe :

['learn', 'php', 'from', 'guru99'] -- These are the tokens[('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN')] -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Graph

Nomen Phrase Chunking Graph

Aus der Grafik können wir schließen, dass "lernen" und "guru99" zwei verschiedene Token sind, aber als Nomenphrase kategorisiert werden, während das Token "von" nicht zur Nomenphrase gehört.

Chunking wird verwendet, um verschiedene Token in denselben Chunk zu kategorisieren. Das Ergebnis hängt von der ausgewählten Grammatik ab. Weiteres Chunking NLTK wird verwendet, um Muster zu markieren und Textkorpora zu untersuchen.

Zusammenfassung

  • POS-Tagging in NLTK ist ein Prozess zum Markieren der Wörter im Textformat für einen bestimmten Teil einer Rede basierend auf ihrer Definition und ihrem Kontext.
  • Einige Beispiele für NLTK-POS-Tags sind: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO usw.
  • Der POS-Tagger wird verwendet, um grammatikalische Informationen für jedes Wort des Satzes zuzuweisen. Das Installieren, Importieren und Herunterladen aller Pakete von Part of Speech Tagging mit NLTK ist abgeschlossen.
  • Das Chunking in NLP ist ein Prozess, bei dem kleine Informationen in große Einheiten zusammengefasst werden.
  • Es gibt keine vordefinierten Regeln, aber Sie können sie je nach Bedarf und Anforderung kombinieren.
  • Chunking wird zur Entitätserkennung verwendet. Eine Entität ist der Teil des Satzes, durch den die Maschine den Wert für eine Absicht erhält
  • Chunking wird verwendet, um verschiedene Token in denselben Chunk zu kategorisieren.