Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Stamming | Stamming og Lemmatisering
Introduksjon til NLP

bookStamming

Forståelse av stemming

Note
Definisjon

Stemming er en tekstnormaliseringsteknikk brukt i NLP for å redusere bøyde ord til deres stamme.

Mer presist innebærer stemming å fjerne affikser (vanligvis bare suffikser) fra ord for å oppnå deres rotform, kjent som stamme. For eksempel er stammen til "running", "runs" og "run" alle "run."

Formålet med stemming er å forenkle analysen ved å behandle lignende ord som samme enhet, noe som til slutt forbedrer effektiviteten i ulike NLP-oppgaver.

Stemming med NLTK

NLTK tilbyr ulike algoritmer for stemming, hvor de mest populære er Porter Stemmer og Lancaster Stemmer. Disse algoritmene bruker spesifikke regler for å fjerne affikser og finne stammen til et ord.

Alle stemmer-klassene i NLTK har et felles grensesnitt. Først må du opprette en instans av stemmer-klassen, og deretter bruke dens stem()-metode for hver av tokenene.

1234567891011121314151617181920212223242526272829
import nltk from nltk.stem import PorterStemmer, LancasterStemmer from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) # Create a Porter Stemmer instance porter_stemmer = PorterStemmer() # Create a Lancaster Stemmer instance lancaster_stemmer = LancasterStemmer() text = "Stemming is an essential technique for natural language processing." text = text.lower() tokens = word_tokenize(text) # Filter out the stop words tokens = [token for token in tokens if token.lower() not in stop_words] # Apply stemming to each token porter_stemmed_tokens = [porter_stemmer.stem(token) for token in tokens] lancaster_stemmed_tokens = [lancaster_stemmer.stem(token) for token in tokens] # Display the results print("Original Tokens:", tokens) print("Stemmed Tokens (Porter Stemmer):", porter_stemmed_tokens) print("Stemmed Tokens (Lancaster Stemmer):", lancaster_stemmed_tokens)
copy

Først brukte vi tokenisering, deretter filtrerte vi ut stoppordene og til slutt brukte vi stemming på tokenene våre ved hjelp av list comprehension. Når det gjelder resultatene, ga disse to stemmerne ganske forskjellige resultater. Dette skyldes at Lancaster Stemmer har omtrent dobbelt så mange regler som Porter Stemmer og er en av de mest "aggressive" stemmerne.

Note
Merk

Generelt er Porter Stemmer det mest populære alternativet og gir mer meningsfulle resultater enn Lancaster Stemmer, som ofte overstammer ord.

question mark

Hvilke av følgende påstander om Porter og Lancaster stemmere er sanne?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 3.45

bookStamming

Sveip for å vise menyen

Forståelse av stemming

Note
Definisjon

Stemming er en tekstnormaliseringsteknikk brukt i NLP for å redusere bøyde ord til deres stamme.

Mer presist innebærer stemming å fjerne affikser (vanligvis bare suffikser) fra ord for å oppnå deres rotform, kjent som stamme. For eksempel er stammen til "running", "runs" og "run" alle "run."

Formålet med stemming er å forenkle analysen ved å behandle lignende ord som samme enhet, noe som til slutt forbedrer effektiviteten i ulike NLP-oppgaver.

Stemming med NLTK

NLTK tilbyr ulike algoritmer for stemming, hvor de mest populære er Porter Stemmer og Lancaster Stemmer. Disse algoritmene bruker spesifikke regler for å fjerne affikser og finne stammen til et ord.

Alle stemmer-klassene i NLTK har et felles grensesnitt. Først må du opprette en instans av stemmer-klassen, og deretter bruke dens stem()-metode for hver av tokenene.

1234567891011121314151617181920212223242526272829
import nltk from nltk.stem import PorterStemmer, LancasterStemmer from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) # Create a Porter Stemmer instance porter_stemmer = PorterStemmer() # Create a Lancaster Stemmer instance lancaster_stemmer = LancasterStemmer() text = "Stemming is an essential technique for natural language processing." text = text.lower() tokens = word_tokenize(text) # Filter out the stop words tokens = [token for token in tokens if token.lower() not in stop_words] # Apply stemming to each token porter_stemmed_tokens = [porter_stemmer.stem(token) for token in tokens] lancaster_stemmed_tokens = [lancaster_stemmer.stem(token) for token in tokens] # Display the results print("Original Tokens:", tokens) print("Stemmed Tokens (Porter Stemmer):", porter_stemmed_tokens) print("Stemmed Tokens (Lancaster Stemmer):", lancaster_stemmed_tokens)
copy

Først brukte vi tokenisering, deretter filtrerte vi ut stoppordene og til slutt brukte vi stemming på tokenene våre ved hjelp av list comprehension. Når det gjelder resultatene, ga disse to stemmerne ganske forskjellige resultater. Dette skyldes at Lancaster Stemmer har omtrent dobbelt så mange regler som Porter Stemmer og er en av de mest "aggressive" stemmerne.

Note
Merk

Generelt er Porter Stemmer det mest populære alternativet og gir mer meningsfulle resultater enn Lancaster Stemmer, som ofte overstammer ord.

question mark

Hvilke av følgende påstander om Porter og Lancaster stemmere er sanne?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1
some-alt