Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Ordklassemærkning | Stamme- og Lemmatisering
Introduktion til NLP med Python

bookOrdklassemæ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.

Note
Definition

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, frase eller et afsnit.

Brugen af fulde ordklassebetegnelser (f.eks. "verbum" eller "substantiv") kan blive ret omstændeligt, 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 anvende 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.

123456789101112
from 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)
copy

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 anvendes af NLTK.

Note
Læs Mere

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 ukendt tekst.

For bedre visuel repræsentation kan vi konvertere resultatet til en pandas DataFrame:

1234567891011121314
from 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)
copy

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.

question mark

Hvad er målet med part-of-speech (POS) tagging i NLP?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 2. Kapitel 5
some-alt