Ordklassemerking
Forståelse av POS-tagging
Vi har nevnt at part-of-speech-tagging er nyttig for lemmatisering, som er dens primære rolle i tekstforbehandling, så la oss se nærmere på denne prosessen.
Part-of-speech (POS) tagging er prosessen med å merke et ord i en tekst (korpus) som tilhørende en bestemt ordklasse (for eksempel substantiv eller verb), basert på både dets definisjon og kontekst — det vil si dets forhold til tilstøtende og relaterte ord i en frase, setning eller avsnitt.
Å bruke fulle navn på ordklasser (for eksempel "verb" eller "substantiv") kan bli ganske tungvint, spesielt med store korpus. Derfor brukes korte representasjoner, kjent som tagger, i stedet. For eksempel "VB" i stedet for verb. I praksis kan imidlertid ulike POS-taggere bruke litt forskjellige tagger og mer detaljerte tagger som "VBD" for verb i preteritum.
POS-tagging med NLTK
For å utføre part-of-speech-tagging med NLTK, bør du importere funksjonen pos_tag() direkte fra nltk og bruke den på listen av strenger (tokens) ved å sende den som argument.
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)
Denne funksjonen returnerer en liste med tupler, der hvert element inneholder et token og dets tag. Linjen nltk.download('averaged_perceptron_tagger_eng') starter nedlastingen av datasettet og modellene som er nødvendige for PerceptronTagger, som er standard POS-tagger brukt av NLTK.
Denne taggeren er basert på averaged perceptron-modellen, en veiledet læringsalgoritme som er effektiv for storskala tekstbehandling, inkludert POS-tagging. PerceptronTagger er valgt for sin balanse mellom hastighet og nøyaktighet, noe som gjør den egnet for et bredt spekter av NLP-oppgaver som krever POS-tagging. Den lærer vekter for egenskaper basert på treningsdataene den får, og bruker disse vektene til å forutsi POS-tagger i ukjent tekst.
For bedre visuell fremstilling kan vi konvertere resultatet til en 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)
Alternativt kan vi bruke pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) uten å transponere DataFrame, slik at hver rad representerer et token-tag-par.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Ordklassemerking
Sveip for å vise menyen
Forståelse av POS-tagging
Vi har nevnt at part-of-speech-tagging er nyttig for lemmatisering, som er dens primære rolle i tekstforbehandling, så la oss se nærmere på denne prosessen.
Part-of-speech (POS) tagging er prosessen med å merke et ord i en tekst (korpus) som tilhørende en bestemt ordklasse (for eksempel substantiv eller verb), basert på både dets definisjon og kontekst — det vil si dets forhold til tilstøtende og relaterte ord i en frase, setning eller avsnitt.
Å bruke fulle navn på ordklasser (for eksempel "verb" eller "substantiv") kan bli ganske tungvint, spesielt med store korpus. Derfor brukes korte representasjoner, kjent som tagger, i stedet. For eksempel "VB" i stedet for verb. I praksis kan imidlertid ulike POS-taggere bruke litt forskjellige tagger og mer detaljerte tagger som "VBD" for verb i preteritum.
POS-tagging med NLTK
For å utføre part-of-speech-tagging med NLTK, bør du importere funksjonen pos_tag() direkte fra nltk og bruke den på listen av strenger (tokens) ved å sende den som argument.
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)
Denne funksjonen returnerer en liste med tupler, der hvert element inneholder et token og dets tag. Linjen nltk.download('averaged_perceptron_tagger_eng') starter nedlastingen av datasettet og modellene som er nødvendige for PerceptronTagger, som er standard POS-tagger brukt av NLTK.
Denne taggeren er basert på averaged perceptron-modellen, en veiledet læringsalgoritme som er effektiv for storskala tekstbehandling, inkludert POS-tagging. PerceptronTagger er valgt for sin balanse mellom hastighet og nøyaktighet, noe som gjør den egnet for et bredt spekter av NLP-oppgaver som krever POS-tagging. Den lærer vekter for egenskaper basert på treningsdataene den får, og bruker disse vektene til å forutsi POS-tagger i ukjent tekst.
For bedre visuell fremstilling kan vi konvertere resultatet til en 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)
Alternativt kan vi bruke pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) uten å transponere DataFrame, slik at hver rad representerer et token-tag-par.
Takk for tilbakemeldingene dine!