Ordklassemærkning
Forståelse af POS-tagging
Vi har nævnt, at part-of-speech-tagging er gavnligt for lemmatisering, hvilket er dens primære rolle i tekstforbehandling, så lad os gennemgå denne proces mere detaljeret.
Part of speech (POS) tagging er processen, hvor et ord i en tekst (korpus) markeres som tilhørende en bestemt ordklasse (f.eks. substantiv eller verbum), baseret på både dets definition og dets kontekst — dvs. dets forhold til tilstødende og beslægtede ord i en sætning, et afsnit eller en frase.
Brug af fulde ordklassenavne (f.eks. "verbum" eller "substantiv") kan blive ret besværligt, især med store korpus. Derfor anvendes korte repræsentationer, kendt som tags, i stedet. For eksempel "VB" i stedet for verbum. I praksis kan forskellige POS-taggere dog bruge lidt forskellige tags og mere detaljerede tags som "VBD" for verber i datid.
POS-tagging med NLTK
For at udføre part-of-speech-tagging med NLTK, skal du importere funktionen pos_tag() direkte fra nltk og anvende den på listen af strenge (tokens) ved at 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 funktion returnerer en liste af tuples, hvor hver tuple indeholder et token og dets tag. Linjen nltk.download('averaged_perceptron_tagger_eng') starter download af datasættet og de modeller, der er nødvendige for PerceptronTagger, som er den standard POS-tagger, der bruges af NLTK.
Denne tagger er baseret på averaged perceptron-modellen, en superviseret læringsalgoritme, der er effektiv til storskalabehandling af tekst, herunder POS-tagging. PerceptronTagger vælges for sin balance mellem hastighed og nøjagtighed, hvilket gør den velegnet til en bred vifte af NLP-opgaver, der kræver POS-tagging. Den lærer vægte for funktioner baseret på de træningsdata, den får, og bruger disse vægte til at forudsige POS-tags i uset tekst.
For bedre visuel repræsentation 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 kunne vi bruge pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) uden at transponere DataFrame, så hver række repræsenterer et token-tag-par.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 3.45
Ordklassemærkning
Stryg for at vise menuen
Forståelse af POS-tagging
Vi har nævnt, at part-of-speech-tagging er gavnligt for lemmatisering, hvilket er dens primære rolle i tekstforbehandling, så lad os gennemgå denne proces mere detaljeret.
Part of speech (POS) tagging er processen, hvor et ord i en tekst (korpus) markeres som tilhørende en bestemt ordklasse (f.eks. substantiv eller verbum), baseret på både dets definition og dets kontekst — dvs. dets forhold til tilstødende og beslægtede ord i en sætning, et afsnit eller en frase.
Brug af fulde ordklassenavne (f.eks. "verbum" eller "substantiv") kan blive ret besværligt, især med store korpus. Derfor anvendes korte repræsentationer, kendt som tags, i stedet. For eksempel "VB" i stedet for verbum. I praksis kan forskellige POS-taggere dog bruge lidt forskellige tags og mere detaljerede tags som "VBD" for verber i datid.
POS-tagging med NLTK
For at udføre part-of-speech-tagging med NLTK, skal du importere funktionen pos_tag() direkte fra nltk og anvende den på listen af strenge (tokens) ved at 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 funktion returnerer en liste af tuples, hvor hver tuple indeholder et token og dets tag. Linjen nltk.download('averaged_perceptron_tagger_eng') starter download af datasættet og de modeller, der er nødvendige for PerceptronTagger, som er den standard POS-tagger, der bruges af NLTK.
Denne tagger er baseret på averaged perceptron-modellen, en superviseret læringsalgoritme, der er effektiv til storskalabehandling af tekst, herunder POS-tagging. PerceptronTagger vælges for sin balance mellem hastighed og nøjagtighed, hvilket gør den velegnet til en bred vifte af NLP-opgaver, der kræver POS-tagging. Den lærer vægte for funktioner baseret på de træningsdata, den får, og bruger disse vægte til at forudsige POS-tags i uset tekst.
For bedre visuel repræsentation 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 kunne vi bruge pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) uden at transponere DataFrame, så hver række repræsenterer et token-tag-par.
Tak for dine kommentarer!