Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Ordklassmärkning | Sektion
Natural Language Processing

bookOrdklassmärkning

Svep för att visa menyn

Note
Definition

Ordklassmärkning (POS-tagging) är processen att märka ett ord i en text (korpus) som tillhörande en viss ordklass (t.ex. substantiv eller verb), baserat på både dess definition och dess kontext — det vill säga dess relation till angränsande och relaterade ord i en fras, mening eller stycke.

Att använda fullständiga namn på ordklasser (t.ex. "verb" eller "substantiv") kan bli ganska omständligt, särskilt med stora korpusar. Därför används korta representationer, så kallade taggar, istället. Till exempel "VB" istället för verb. I praktiken kan dock olika POS-taggare använda något olika taggar och mer detaljerade taggar som "VBD" för verb i preteritum.

POS-tagging med NLTK

För att utföra ordklassmärkning med NLTK bör du importera funktionen pos_tag() direkt från nltk och tillämpa den på listan av strängar (token) genom att skicka 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

Denna funktion returnerar en lista av tupler, där varje tuple innehåller ett token och dess tagg. Raden nltk.download('averaged_perceptron_tagger_eng') initierar nedladdningen av datasetet och modellerna som krävs för PerceptronTagger, vilket är standardtaggaren för ordklasstaggning i NLTK.

Note
Läs mer

Denna taggare är baserad på averaged perceptron-modellen, en övervakad inlärningsalgoritm som är effektiv för storskalig textbearbetning, inklusive ordklasstaggning. PerceptronTagger väljs för sin balans mellan hastighet och noggrannhet, vilket gör den lämplig för många NLP-uppgifter som kräver ordklasstaggning. Den lär sig vikter för egenskaper baserat på träningsdata och använder dessa vikter för att förutsäga ordklasstaggning i osedd text.

För en bättre visuell representation kan vi konvertera resultatet till 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 kan vi använda pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) utan att transponera DataFrame, så att varje rad representerar ett token-tag-par.

question mark

Vad är målet med part-of-speech (POS) tagging inom NLP?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 14

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 14
some-alt