Lemmatization
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 endelser, 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 nøjagtig, men også mere beregningstung og kan være tidskrævende med store datasæt. For endnu bedre nøjagtighed anbefales det desuden at udføre morfologisk analyse og ordklassemærkning før lemmatisering.
Bekymr dig ikke om ordklassemærkning 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 rækker langt ud over et simpelt korpus. Den grupperer ord i synonymgrupper, eller synsets, som hver fanger et særskilt 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 betydninger.
Når du bruger WordNet Lemmatizer, slår den det ønskede ord op i WordNet-databasen for at finde den mest passende lemma af 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 ordklasse (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)
Du kan undlade at angive ordklassen ved at kalde lemmatizer.lemmatize("running"), men som du kan se, giver forskellige ordklasser forskellige resultater. Derfor vil det være 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
Awesome!
Completion rate improved to 3.45
Lemmatization
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 endelser, 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 nøjagtig, men også mere beregningstung og kan være tidskrævende med store datasæt. For endnu bedre nøjagtighed anbefales det desuden at udføre morfologisk analyse og ordklassemærkning før lemmatisering.
Bekymr dig ikke om ordklassemærkning 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 rækker langt ud over et simpelt korpus. Den grupperer ord i synonymgrupper, eller synsets, som hver fanger et særskilt 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 betydninger.
Når du bruger WordNet Lemmatizer, slår den det ønskede ord op i WordNet-databasen for at finde den mest passende lemma af 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 ordklasse (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)
Du kan undlade at angive ordklassen ved at kalde lemmatizer.lemmatize("running"), men som du kan se, giver forskellige ordklasser forskellige resultater. Derfor vil det være bedst at udføre ordklasse-tagging på forhånd.
Tak for dine kommentarer!