Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Tekstvoorverwerking in de Praktijk Toepassen | Grondbeginselen van Tekstvoorbewerking
Introductie tot NLP

bookTekstvoorverwerking in de Praktijk Toepassen

Documenten

Allereerst, voordat we verder gaan met een praktisch voorbeeld van tekstvoorbewerking, is het belangrijk om de belangrijkste componenten van een tekstcorpus te begrijpen: documenten.

Note
Definitie

Een document is een afzonderlijk tekstbestand binnen een corpus, bijvoorbeeld een e-mail binnen een verzameling e-mails.

In wezen is elk tekstcorpus een verzameling documenten, dus het voorbewerken van het corpus betekent het voorbewerken van elk van de documenten.

Het laden van het corpus

Eerder hadden we ons tekstcorpus als stringvariabelen. In praktijksituaties wordt een tekstcorpus echter vaak opgeslagen in TXT-bestanden voor puur tekstuele data of in CSV-bestanden met meerdere kolommen wanneer er extra gegevens aan de tekst zijn gekoppeld.

In onze cursus werken we met CSV- of TXT-bestanden, waarbij elk document op een nieuwe regel begint. Daarom gebruiken we de functie read_csv() uit de pandas-bibliotheek om een tekstcorpus uit een bestand te laden.

123456
import pandas as pd corpus = pd.read_csv( 'https://staging-content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) print(corpus)
copy

Hier lezen we dit TXT-bestand in een DataFrame. We stellen sep='\r' in om het carriage return-symbool als scheidingsteken te gebruiken, wat aangeeft dat elk document op een nieuwe regel begint. We gebruiken header=None zodat de eerste regel niet als kop wordt beschouwd, en we geven names=['Document'] op om de enige kolom 'Document' te noemen. Hierdoor krijgen we een DataFrame met één kolom genaamd 'Document' die 6 documenten (zinnen) bevat.

Voorbewerken van het Corpus

Om het corpus voor te bewerken, maken we eerst een functie voor het voorbewerken van elk document:

123456789101112131415161718
import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc
copy

Pas deze functie nu toe op onze DataFrame voor elk document en maak een kolom met opgeschoonde documenten:

123456789101112131415161718192021222324252627
import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk import pandas as pd nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc corpus = pd.read_csv( 'https://staging-content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) corpus['Cleaned_Document'] = corpus['Document'].apply(preprocess_document) print(corpus)
copy

Zoals u kunt zien, is onze corpus succesvol voorbewerkt, dus zullen we later in de cursus de voorbewerkte versie van deze corpus gebruiken.

question mark

Selecteer de juiste uitvoer van het volgende codefragment.

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 9

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain what each step in the preprocessing function does?

What are stop words and why are they removed?

How can I customize the preprocessing steps for my own dataset?

Awesome!

Completion rate improved to 3.45

bookTekstvoorverwerking in de Praktijk Toepassen

Veeg om het menu te tonen

Documenten

Allereerst, voordat we verder gaan met een praktisch voorbeeld van tekstvoorbewerking, is het belangrijk om de belangrijkste componenten van een tekstcorpus te begrijpen: documenten.

Note
Definitie

Een document is een afzonderlijk tekstbestand binnen een corpus, bijvoorbeeld een e-mail binnen een verzameling e-mails.

In wezen is elk tekstcorpus een verzameling documenten, dus het voorbewerken van het corpus betekent het voorbewerken van elk van de documenten.

Het laden van het corpus

Eerder hadden we ons tekstcorpus als stringvariabelen. In praktijksituaties wordt een tekstcorpus echter vaak opgeslagen in TXT-bestanden voor puur tekstuele data of in CSV-bestanden met meerdere kolommen wanneer er extra gegevens aan de tekst zijn gekoppeld.

In onze cursus werken we met CSV- of TXT-bestanden, waarbij elk document op een nieuwe regel begint. Daarom gebruiken we de functie read_csv() uit de pandas-bibliotheek om een tekstcorpus uit een bestand te laden.

123456
import pandas as pd corpus = pd.read_csv( 'https://staging-content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) print(corpus)
copy

Hier lezen we dit TXT-bestand in een DataFrame. We stellen sep='\r' in om het carriage return-symbool als scheidingsteken te gebruiken, wat aangeeft dat elk document op een nieuwe regel begint. We gebruiken header=None zodat de eerste regel niet als kop wordt beschouwd, en we geven names=['Document'] op om de enige kolom 'Document' te noemen. Hierdoor krijgen we een DataFrame met één kolom genaamd 'Document' die 6 documenten (zinnen) bevat.

Voorbewerken van het Corpus

Om het corpus voor te bewerken, maken we eerst een functie voor het voorbewerken van elk document:

123456789101112131415161718
import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc
copy

Pas deze functie nu toe op onze DataFrame voor elk document en maak een kolom met opgeschoonde documenten:

123456789101112131415161718192021222324252627
import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk import pandas as pd nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc corpus = pd.read_csv( 'https://staging-content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) corpus['Cleaned_Document'] = corpus['Document'].apply(preprocess_document) print(corpus)
copy

Zoals u kunt zien, is onze corpus succesvol voorbewerkt, dus zullen we later in de cursus de voorbewerkte versie van deze corpus gebruiken.

question mark

Selecteer de juiste uitvoer van het volgende codefragment.

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 9
some-alt