Woordsoorttagging
Inzicht in POS-tagging
We hebben vermeld dat part-of-speech-tagging nuttig is voor lemmatisering, wat de primaire rol is in tekstvoorverwerking. Laten we dit proces daarom in meer detail bespreken.
Part-of-speech (POS) tagging is het proces waarbij een woord in een tekst (corpus) wordt gemarkeerd als behorend tot een bepaald woordsoort (bijvoorbeeld zelfstandig naamwoord of werkwoord), op basis van zowel de definitie als de context — dat wil zeggen, de relatie met aangrenzende en gerelateerde woorden in een zin, frase of alinea.
Het gebruik van volledige namen van woordsoorten (bijvoorbeeld "werkwoord" of "zelfstandig naamwoord") kan behoorlijk omslachtig worden, vooral bij een groot corpus. Daarom worden korte aanduidingen, bekend als tags, gebruikt. Bijvoorbeeld, "VB" in plaats van werkwoord. In de praktijk kunnen verschillende POS-taggers echter iets andere tags en meer gedetailleerde tags gebruiken, zoals "VBD" voor werkwoorden in de verleden tijd.
POS-tagging met NLTK
Voor het uitvoeren van part-of-speech-tagging met NLTK, importeer de functie pos_tag() direct uit nltk en pas deze toe op de lijst van strings (tokens) door deze als argument mee te geven.
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)
Deze functie retourneert een lijst van tuples, elk met een token en het bijbehorende label. De regel nltk.download('averaged_perceptron_tagger_eng') start het downloaden van de dataset en modellen die nodig zijn voor de PerceptronTagger, de standaard POS-tagger die door NLTK wordt gebruikt.
Deze tagger is gebaseerd op het gemiddeld perceptronmodel, een supervisie-leeralgoritme dat effectief is voor grootschalige tekstverwerking, waaronder POS-tagging. De PerceptronTagger is gekozen vanwege de balans tussen snelheid en nauwkeurigheid, waardoor het geschikt is voor uiteenlopende NLP-taken die POS-tagging vereisen. Het leert gewichten voor kenmerken op basis van de trainingsdata die het ontvangt, en gebruikt deze gewichten om de POS-tags in onbekende tekst te voorspellen.
Voor een betere visuele weergave kan het resultaat worden omgezet naar een pandas DataFrame:
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)
Als alternatief kunnen we pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) gebruiken zonder de DataFrame te transponeren, zodat elke rij een token-tagpaar weergeeft.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain what each POS tag means in the output?
How does POS tagging help with lemmatization?
What are some common POS tag sets used in NLP?
Awesome!
Completion rate improved to 3.45
Woordsoorttagging
Veeg om het menu te tonen
Inzicht in POS-tagging
We hebben vermeld dat part-of-speech-tagging nuttig is voor lemmatisering, wat de primaire rol is in tekstvoorverwerking. Laten we dit proces daarom in meer detail bespreken.
Part-of-speech (POS) tagging is het proces waarbij een woord in een tekst (corpus) wordt gemarkeerd als behorend tot een bepaald woordsoort (bijvoorbeeld zelfstandig naamwoord of werkwoord), op basis van zowel de definitie als de context — dat wil zeggen, de relatie met aangrenzende en gerelateerde woorden in een zin, frase of alinea.
Het gebruik van volledige namen van woordsoorten (bijvoorbeeld "werkwoord" of "zelfstandig naamwoord") kan behoorlijk omslachtig worden, vooral bij een groot corpus. Daarom worden korte aanduidingen, bekend als tags, gebruikt. Bijvoorbeeld, "VB" in plaats van werkwoord. In de praktijk kunnen verschillende POS-taggers echter iets andere tags en meer gedetailleerde tags gebruiken, zoals "VBD" voor werkwoorden in de verleden tijd.
POS-tagging met NLTK
Voor het uitvoeren van part-of-speech-tagging met NLTK, importeer de functie pos_tag() direct uit nltk en pas deze toe op de lijst van strings (tokens) door deze als argument mee te geven.
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)
Deze functie retourneert een lijst van tuples, elk met een token en het bijbehorende label. De regel nltk.download('averaged_perceptron_tagger_eng') start het downloaden van de dataset en modellen die nodig zijn voor de PerceptronTagger, de standaard POS-tagger die door NLTK wordt gebruikt.
Deze tagger is gebaseerd op het gemiddeld perceptronmodel, een supervisie-leeralgoritme dat effectief is voor grootschalige tekstverwerking, waaronder POS-tagging. De PerceptronTagger is gekozen vanwege de balans tussen snelheid en nauwkeurigheid, waardoor het geschikt is voor uiteenlopende NLP-taken die POS-tagging vereisen. Het leert gewichten voor kenmerken op basis van de trainingsdata die het ontvangt, en gebruikt deze gewichten om de POS-tags in onbekende tekst te voorspellen.
Voor een betere visuele weergave kan het resultaat worden omgezet naar een pandas DataFrame:
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)
Als alternatief kunnen we pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) gebruiken zonder de DataFrame te transponeren, zodat elke rij een token-tagpaar weergeeft.
Bedankt voor je feedback!