Was ist Chunking bei der Verarbeitung natürlicher Sprache?

Quellknoten: 1878431

Liebe Leserinnen und Leser,

In diesem Blog werde ich Chunking sowohl theoretisch als auch praktisch in Python diskutieren.

Fangen wir also an…

Anmerkungen: Für die Implementierung ist es besser, Python IDLE zu verwenden, da die Ausgabe eine Zeichnung eines Baums ist, die in einem separaten Fenster angezeigt wird.

Veranstaltungs-kalender

  • Was ist Chunking?
  • Wo wird Chunking eingesetzt?
  • Arten des Chunkings
  • Implementierung von Chunking in Python
  • Die Ergebnisse

Was ist Chunking?

Unter Chunking versteht man den Prozess der Verarbeitung natürlicher Sprache, der zur Identifizierung von Wortteilen und kurzen Phrasen in einem bestimmten Satz dient.

Wenn wir uns an unseren guten alten Englisch-Grammatikunterricht in der Schule erinnern, stellen wir fest, dass es acht Wortarten gibt, nämlich Substantiv, Verb, Adjektiv, Adverb, Präposition, Konjunktion, Pronomen und Interjektion. In der obigen Definition von Chunking beziehen sich kurze Phrasen außerdem auf die Phrasen, die durch die Einbeziehung dieser Wortarten gebildet werden.

Beispielsweise kann Chunking durchgeführt werden, um Nominalphrasen oder Substantive allein, Adjektive oder Adjektivphrasen usw. zu identifizieren und somit zu gruppieren. Betrachten Sie den folgenden Satz:

„Ich hatte Burger und Gebäck zum Frühstück.“

Wenn wir in diesem Fall Nominalphrasen gruppieren oder aufteilen möchten, erhalten wir „Burger“, „Gebäck“ und „Mittagessen“, die die Substantive oder Substantivgruppen des Satzes sind.

Wo wird Chunking eingesetzt?

Warum sollten wir etwas lernen wollen, ohne zu wissen, wo es weit verbreitet ist?! Ein Blick auf die in diesem Abschnitt des Blogs besprochenen Anwendungen wird Ihnen helfen, bis zum Ende neugierig zu bleiben!

Chunking wird verwendet, um die erforderlichen Phrasen aus einem bestimmten Satz zu erhalten. Allerdings kann POS-Tagging nur verwendet werden, um die Wortarten zu erkennen, zu denen jedes Wort des Satzes gehört.

Wenn wir viele Beschreibungen oder Änderungen zu einem bestimmten Wort oder einer Phrase haben, die uns interessiert, verwenden wir Chunking, um nur die erforderliche Phrase zu erfassen und den Rest um sie herum zu ignorieren. Daher ermöglicht das Chunking die Gruppierung der erforderlichen Phrasen und den Ausschluss aller sie umgebenden Modifikatoren, die für unsere Analyse nicht erforderlich sind. Zusammenfassend lässt sich sagen, dass uns Chunking dabei hilft, aus langen Beschreibungen allein die wichtigen Wörter zu extrahieren. Somit ist Chunking ein Schritt bei der Informationsextraktion.

Interessanterweise wird dieser Chunking-Prozess im NLP auf verschiedene andere Anwendungen ausgeweitet; zum Beispiel, um Früchte einer bestimmten Kategorie zu gruppieren, beispielsweise proteinreiche Früchte als eine Gruppe, vitaminreiche Früchte als eine andere Gruppe und so weiter. Darüber hinaus kann Chunking auch verwendet werden, um ähnliche Autos zu gruppieren, beispielsweise Autos, die automatisches Schalten unterstützen, in eine Gruppe und andere, die manuelles Schalten unterstützen, in eine andere Gruppe und so weiter.

Arten des Chunkings

Es gibt im Großen und Ganzen zwei Arten von Chunking:

  • Aufteilen
  • Reduzieren

Aufteilen:

Hier tauchen wir nicht tief ein; Stattdessen freuen wir uns über einen Überblick über die Informationen. Es hilft uns lediglich, einen kurzen Überblick über die gegebenen Daten zu bekommen.

Reduzieren:

Im Gegensatz zur vorherigen Art des Chunking hilft uns das Chunking Down dabei, detaillierte Informationen zu erhalten.

Wenn Sie also einfach nur einen Einblick wünschen, denken Sie über eine „Aufteilung“ nach, andernfalls bevorzugen Sie eine „Aufteilung“.

Implementierung von Chunking in Python

Stellen Sie sich eine Situation vor, in der Sie für Ihre Analyse alle Verben aus dem gegebenen Text extrahieren möchten. Daher müssen wir in diesem Fall die Unterteilung von Verbalphrasen in Betracht ziehen. Dies liegt daran, dass unser Ziel darin besteht, alle Verbalphrasen aus dem gegebenen Textabschnitt zu extrahieren. Das Chunking erfolgt mithilfe regulärer Ausdrücke.

Machen Sie sich keine Sorgen, wenn Sie zum ersten Mal auf den Begriff „reguläre Ausdrücke“ stoßen. Die folgende Tabelle steht Ihnen hier zur Verfügung:

Symbol

Bedeutung

Beispiel

*

Das vorangehende Zeichen kann null oder mehrmals vorkommen, was bedeutet, dass das vorhergehende Zeichen vorhanden sein kann oder auch nicht.

ab* stimmt mit allen Eingaben überein, die mit ab beginnen und dann von null oder mehr bs gefolgt werden. Das Muster stimmt mit ab, abb, abbb usw. überein.

+

Das vorangehende Zeichen sollte mindestens einmal vorkommen.

a+ entspricht a,aa,aaa und so weiter.

?

Das vorangehende Zeichen darf überhaupt nicht oder nur einmal vorkommen, was bedeutet, dass das vorangehende Zeichen optional ist.

ab? stimmt mit ab,abb überein, aber nicht mit abbb und so weiter.

Die obige Tabelle enthält die am häufigsten verwendeten regulären Ausdrücke. Reguläre Ausdrücke sind in der Befehlszeile sehr nützlich, insbesondere beim Löschen, Suchen, Umbenennen oder Verschieben von Dateien.

Wie auch immer, für diese Implementierung werden wir nur * verwenden. Schauen Sie sich gerne die obige Tabelle an, um sich mit dem Symbol vertraut zu machen!

Wir werden Chunking mit nltk durchführen, der beliebtesten NLP-Bibliothek. Also importieren wir es zunächst.

importiere nltk

Betrachten wir den folgenden Beispieltext, den ich selbst erstellt habe. Ersetzen Sie den folgenden Text gerne durch einen beliebigen Beispieltext, um Chunking zu implementieren!

sample_text="""
Rama tötete Ravana, um Sita vor Lanka zu retten. Die Legende vom Ramayan ist das beliebteste indische Epos. Viele Filme und Serien haben es bereits getan
wurde hier in Indien auf der Grundlage des Ramayana in mehreren Sprachen gedreht. „““

Bevor wir fortfahren, müssen die Daten eindeutig in Satz-Tokens und dann in Wort-Tokens umgewandelt werden. Bei der Tokenisierung handelt es sich um nichts anderes als den Prozess der Zerlegung eines gegebenen Textstücks in kleinere Einheiten, beispielsweise Sätze (im Fall der Satz-Tokenisierung) und Wörter (im Fall der Wort-Tokenisierung).

Im Anschluss an die Tokenisierung wird für jedes Wort eine POS-Kennzeichnung (Part-of-Speech) durchgeführt, bei der die Wortart jedes Wortes identifiziert wird. Jetzt sind wir nur an der Wortart des Verbs interessiert und möchten diese extrahieren.

Geben Sie daher den für uns interessanten Teil der Sprache mithilfe des erforderlichen regulären Ausdrucks wie folgt an:

VERB: {}

tokenized=nltk.sent_tokenize(sample_text)
für i in tokenisiert: Words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( chunkGram) chunked=chunkParser.parse(tagged_words) chunked.draw()

Der reguläre Ausdruck (RE) wird in eckige Klammern () eingeschlossen, die wiederum in geschweifte Klammern ({ und }) eingeschlossen werden.

Anmerkungen: Geben Sie die RE entsprechend dem erforderlichen POS an

VB steht für das Verb POS. Der Punkt nach dem VB bedeutet, dass mit jedem Zeichen nach dem VB übereinstimmt. Das Fragezeichen hinter dem Punkt gibt an, dass jedes Zeichen nach B nur einmal oder gar nicht vorkommen darf. Aus der Tabelle, die wir zuvor gesehen haben, geht jedoch hervor, dass dieses Zeichen optional ist. Wir haben den regulären Ausdruck auf diese Weise umrahmt, da Verbphrasen in NLTK die folgenden POS-Tags enthalten:

POS

Bedeutung

VB

Verb in seiner Grundform

VBD

Verb in der Vergangenheitsform

GBV

Verb im Präsens

VBN

Verb in seiner Partizipialform der Vergangenheit

VBP

Verb im Präsens, aber nicht in der dritten Person Singular

VBZ

Verb im Präsens und in der dritten Person Singular

Somit können Verbalphrasen zu jedem der oben genannten POS gehören. Aus diesem Grund wird der reguläre Ausdruck als VB bezeichnet.? die alle oben genannten Kategorien umfasst. Das RegexpParser-Paket wird verwendet, um zu überprüfen, ob ein POS unser erforderliches Muster erfüllt, das wir zuvor mit dem RE erwähnt haben.

Der gesamte Code kann wie folgt gesehen werden:

NLTK importieren
nltk.download('averaged_perceptron_tagger')
sample_text="""
Rama tötete Ravana, um Sita vor Lanka zu retten. Die Legende vom Ramayan ist das beliebteste indische Epos. Viele Filme und Serien haben es bereits getan
wurde hier in Indien auf der Grundlage des Ramayana in mehreren Sprachen gedreht. „““
tokenized=nltk.sent_tokenize(sample_text)
für i in tokenisiert: Words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( chunkGram) chunked=chunkParser.parse(tagged_words) chunked.draw()

Die Ergebnisse

Chunking-Ergebnis
Chunking-Ergebnis

Schließlich erhalten wir eine Baumform des POS der Wörter zusammen mit den Wörtern, deren POS mit dem gegebenen RE übereinstimmt. Die Momentaufnahme der Ausgabe, die für den von uns übergebenen Beispieltext erhalten wurde, ist in den obigen Abbildungen zu sehen.

Beachten Sie, dass die Wörter, die unsere RE nur für Verbphrasen erfüllen, in der Ausgabe deutlich hervorgehoben sind. Daher wurde die Aufteilung der Verbalphrasen erfolgreich durchgeführt.

Ich hoffe, Sie fanden meinen Artikel nützlich.

Danke!

Bibliographie

1. Chunking in Python implementieren

2. Theorie hinter Chunking

3. Vollständige Liste der in NLP verfügbaren POS

Über mich

Ich bin Nithyashree V, ein BTech Informatik- und Ingenieurstudent im letzten Jahr. Ich liebe es, solche coolen Technologien zu lernen und in die Praxis umzusetzen, insbesondere zu beobachten, wie sie uns helfen, die herausfordernden Probleme der Gesellschaft zu lösen. Meine Interessengebiete sind Künstliche Intelligenz, Data Science und Natural Language Processing.

Hier ist mein LinkedIn-Profil: Mein LinkedIn

Sie können meine anderen Artikel zu Analytics Vidhya von lesen hier.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Quelle: https://www.analyticsvidhya.com/blog/2021/10/what-is-chunking-in-natural-lingual-processing/

Zeitstempel:

Mehr von Analytics-Vidhya