Lemmatiseing
Stryg for at vise menuen
Forståelse af lemmatisering
Lemmatisering er en teknik til tekstnormalisering, der anvendes i NLP for at reducere ord til deres ordbogsform, kendt som et lemma.
I modsætning til stemming, som groft fjerner affikser, tager lemmatisering hensyn til konteksten og omdanner ordet til dets ordbogsform. For eksempel bliver 'am', 'are' og 'is' alle lemmatiseret til 'be'. Denne tilgang kan markant reducere størrelsen på ordforrådet (antallet af unikke ord) i store tekstkorpora og dermed øge effektiviteten ved modellering.
På den anden side er lemmatisering mere præcis, men også mere computationalt krævende og kan være tidskrævende ved store datasæt. For endnu bedre nøjagtighed anbefales det desuden at udføre morfologisk analyse og ordklassemærkning før lemmatisering.
Du behøver ikke bekymre dig om ordklasse-tagging lige nu, da dette er det næste, du vil lære om.
Lemmatisering med NLTK
WordNet Lemmatizer, som leveres af NLTK-biblioteket, udnytter WordNet-korpusset til at udføre lemmatisering.
WordNet er en semantisk rig leksikalsk database for engelsk, der går langt ud over et simpelt korpus. Den grupperer ord i synonymgrupper, eller synsets, som hver repræsenterer et unikt begreb og ledsages af definitioner og eksempler på brug. Derudover koder WordNet meningsfulde relationer mellem disse synsets — såsom hyperonymer (bredere, mere generelle termer) og hyponymer (snævrere, mere specifikke termer) — hvilket giver en stærk ramme for at udforske og afklare ords betydning.
Når du bruger WordNet Lemmatizer, slår den det ønskede ord op i WordNet-databasen for at finde den mest passende lemma for ordet.
Som nævnt ovenfor kan ord have forskellige betydninger i forskellige sammenhænge (f.eks. "running" som verbum vs. "running" som substantiv), og derfor kan lemmatizeren kræve, at du angiver ordklassen (f.eks. verbum, substantiv, adjektiv). Dette hjælper den med at vælge den korrekte lemma baseret på ordets rolle i en sætning.
1234567891011from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
from nltk.stem import WordNetLemmatizer
Denne linje importerer WordNetLemmatizer-klassen.
nltk.download('wordnet')
Denne linje downloader WordNet-korpusset og sikrer dermed, at alle funktionaliteter relateret til WordNet, såsom lemmatisering, kan bruges.
lemmatizer = WordNetLemmatizer()
Denne linje opretter en instans af WordNetLemmatizer-klassen, som bruges til at udføre lemmatisering.
parts_of_speech = ['v', 'n']
Denne linje opretter en liste over ordklasser, der skal bruges i lemmatiseringen.
lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]
Denne linje opretter en liste over lemmatiserede ord ved hjælp af list comprehension. Processen med lemmatisering udføres via
lemmatize()-metoden på lemmatizer-objektet. Strengen, der repræsenterer et ord, skal være det første
argument, og den ønskede ordklasse som det andet valgfri argument ('v' for verbum,
'a' for adjektiv, 'n' for substantiv osv.).
Du kan undlade at angive ordklassen ved at kalde lemmatizer.lemmatize("running"), men som du kan se, giver forskellige ordklasser forskellige resultater. Derfor er det bedst at udføre ordklasse-tagging på forhånd.
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