Wortartenerkennung
Verständnis der POS-Tagging
Es wurde erwähnt, dass das Part-of-Speech-Tagging vorteilhaft für die Lemmatisierung ist, was seine Hauptfunktion in der Textvorverarbeitung darstellt. Daher wird dieser Prozess nun ausführlicher erläutert.
Part-of-Speech (POS) Tagging bezeichnet den Prozess, ein Wort in einem Text (Korpus) als eine bestimmte Wortart (z. B. Substantiv oder Verb) zu kennzeichnen, basierend sowohl auf seiner Definition als auch auf seinem Kontext – also seiner Beziehung zu benachbarten und verwandten Wörtern in einem Satz, einer Phrase oder einem Absatz.
Die Verwendung vollständiger Wortartnamen (z. B. "Verb" oder "Substantiv") kann insbesondere bei großen Korpora recht umständlich werden. Daher werden stattdessen Kurzformen, sogenannte Tags, verwendet. Zum Beispiel "VB" anstelle von Verb. In der Praxis nutzen jedoch verschiedene POS-Tagger teilweise unterschiedliche Tags und detailliertere Tags wie "VBD" für Verben im Präteritum.
POS-Tagging mit NLTK
Um eine Part-of-Speech-Tagging mit NLTK durchzuführen, sollte die Funktion pos_tag() direkt aus nltk importiert und auf die Liste von Strings (Tokens) angewendet werden, indem diese als Argument übergeben wird.
123456789101112from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) print(tagged_tokens)
Diese Funktion gibt eine Liste von Tupeln zurück, die jeweils ein Token und dessen Tag enthalten. Die Zeile nltk.download('averaged_perceptron_tagger_eng') startet den Download des Datensatzes und der Modelle, die für den PerceptronTagger benötigt werden, welcher der Standard-POS-Tagger in NLTK ist.
Dieser Tagger basiert auf dem Averaged Perceptron Model, einem überwachten Lernalgorithmus, der sich für die Verarbeitung großer Textmengen, einschließlich POS-Tagging, als effektiv erwiesen hat. Der PerceptronTagger wird aufgrund seines ausgewogenen Verhältnisses von Geschwindigkeit und Genauigkeit ausgewählt und eignet sich daher für eine Vielzahl von NLP-Aufgaben, die POS-Tagging erfordern. Er lernt Gewichtungen für Merkmale basierend auf den Trainingsdaten und verwendet diese Gewichtungen, um die POS-Tags in unbekannten Texten vorherzusagen.
Für eine bessere visuelle Darstellung können wir das Ergebnis in ein pandas-DataFrame umwandeln:
1234567891011121314from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk import pandas as pd nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) # Convert to DataFrame print(pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']).T)
Alternativ könnten wir pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) ohne Transponieren des DataFrames verwenden, sodass jede Zeile ein Token-Tag-Paar darstellt.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.45
Wortartenerkennung
Swipe um das Menü anzuzeigen
Verständnis der POS-Tagging
Es wurde erwähnt, dass das Part-of-Speech-Tagging vorteilhaft für die Lemmatisierung ist, was seine Hauptfunktion in der Textvorverarbeitung darstellt. Daher wird dieser Prozess nun ausführlicher erläutert.
Part-of-Speech (POS) Tagging bezeichnet den Prozess, ein Wort in einem Text (Korpus) als eine bestimmte Wortart (z. B. Substantiv oder Verb) zu kennzeichnen, basierend sowohl auf seiner Definition als auch auf seinem Kontext – also seiner Beziehung zu benachbarten und verwandten Wörtern in einem Satz, einer Phrase oder einem Absatz.
Die Verwendung vollständiger Wortartnamen (z. B. "Verb" oder "Substantiv") kann insbesondere bei großen Korpora recht umständlich werden. Daher werden stattdessen Kurzformen, sogenannte Tags, verwendet. Zum Beispiel "VB" anstelle von Verb. In der Praxis nutzen jedoch verschiedene POS-Tagger teilweise unterschiedliche Tags und detailliertere Tags wie "VBD" für Verben im Präteritum.
POS-Tagging mit NLTK
Um eine Part-of-Speech-Tagging mit NLTK durchzuführen, sollte die Funktion pos_tag() direkt aus nltk importiert und auf die Liste von Strings (Tokens) angewendet werden, indem diese als Argument übergeben wird.
123456789101112from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) print(tagged_tokens)
Diese Funktion gibt eine Liste von Tupeln zurück, die jeweils ein Token und dessen Tag enthalten. Die Zeile nltk.download('averaged_perceptron_tagger_eng') startet den Download des Datensatzes und der Modelle, die für den PerceptronTagger benötigt werden, welcher der Standard-POS-Tagger in NLTK ist.
Dieser Tagger basiert auf dem Averaged Perceptron Model, einem überwachten Lernalgorithmus, der sich für die Verarbeitung großer Textmengen, einschließlich POS-Tagging, als effektiv erwiesen hat. Der PerceptronTagger wird aufgrund seines ausgewogenen Verhältnisses von Geschwindigkeit und Genauigkeit ausgewählt und eignet sich daher für eine Vielzahl von NLP-Aufgaben, die POS-Tagging erfordern. Er lernt Gewichtungen für Merkmale basierend auf den Trainingsdaten und verwendet diese Gewichtungen, um die POS-Tags in unbekannten Texten vorherzusagen.
Für eine bessere visuelle Darstellung können wir das Ergebnis in ein pandas-DataFrame umwandeln:
1234567891011121314from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk import pandas as pd nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) # Convert to DataFrame print(pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']).T)
Alternativ könnten wir pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) ohne Transponieren des DataFrames verwenden, sodass jede Zeile ein Token-Tag-Paar darstellt.
Danke für Ihr Feedback!