LemmatiseRing
Svep för att visa menyn
Förståelse av lemmatisering
Lemmatisering är en textnormaliseringsteknik som används inom NLP för att reducera ord till deras ordboksform, kallad lemma.
Till skillnad från stemming, som grovt kapar av affix, tar lemmatisering hänsyn till kontexten och omvandlar ordet till dess ordboksform. Till exempel lemmatiseras 'am', 'are' och 'is' till 'be'. Denna metod kan avsevärt minska vokabulärens storlek (antalet unika ord) i stora textkorpusar, vilket ökar effektiviteten vid modellträning.
Å andra sidan är lemmatisering mer exakt, men också mer beräkningskrävande och kan vara tidskrävande vid stora datamängder. För ännu bättre noggrannhet rekommenderas dessutom morfologisk analys och ordklassmärkning före lemmatisering.
Oroa dig inte för part-of-speech tagging just nu, eftersom detta är nästa ämne du kommer att lära dig om.
Lemmatization med NLTK
WordNet Lemmatizer, som tillhandahålls av NLTK-biblioteket, använder WordNet-korpuset för att utföra lemmatization.
WordNet är en semantiskt rik lexikal databas för engelska som går långt utöver ett enkelt korpus. Den grupperar ord i synonymgrupper, eller synsets, där varje grupp representerar ett unikt begrepp och åtföljs av definitioner och användningsexempel. Dessutom kodar WordNet meningsfulla relationer mellan dessa synsets — såsom hypernymer (bredare, mer generella termer) och hyponymer (snävare, mer specifika termer) — vilket erbjuder en kraftfull ram för att utforska och särskilja ords betydelser.
När du använder WordNet Lemmatizer slår den upp det aktuella ordet i WordNet-databasen för att hitta den mest lämpliga lemmat av ordet.
Som nämnts ovan kan ord ha olika betydelser i olika sammanhang (t.ex. "running" som verb kontra "running" som substantiv), och därför kan lemmatizern kräva att du anger ordklass (t.ex. verb, substantiv, adjektiv). Detta hjälper den att välja rätt lemma baserat på ordets roll i en mening.
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
Denna rad importerar klassen WordNetLemmatizer.
nltk.download('wordnet')
Denna rad laddar ner WordNet-korpuset och säkerställer därmed att alla funktioner relaterade till WordNet, såsom lemmatisering, kan användas.
lemmatizer = WordNetLemmatizer()
Denna rad skapar en instans av klassen WordNetLemmatizer som används för att utföra lemmatisering.
parts_of_speech = ['v', 'n']
Denna rad skapar en lista över ordklasser som kommer att användas vid lemmatisering.
lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]
Denna rad skapar en lista med lemmatiserade ord med hjälp av list comprehension. Själva lemmatiseringen utförs via
metoden lemmatize() på objektet lemmatizer. Strängen som representerar ett ord ska vara det första
argumentet och önskad ordklass det andra valfria argumentet ('v' för verb,
'a' för adjektiv, 'n' för substantiv, etc.).
Du kan utelämna att specificera ordklassen genom att anropa lemmatizer.lemmatize("running"), men som du kan se ger olika ordklasser olika resultat. Därför är det bäst att utföra ordklassmärkning i förväg.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal