Anwendung der Textvorverarbeitung in der Praxis
Dokumente
Bevor ein praktisches Beispiel zur Textvorverarbeitung betrachtet wird, ist es wichtig, die zentralen Bestandteile eines Textkorpus zu verstehen: Dokumente.
Ein Dokument ist ein separates Textstück innerhalb eines Korpus, zum Beispiel eine E-Mail in einem E-Mail-Korpus.
Im Wesentlichen besteht jeder Textkorpus aus einer Menge von Dokumenten, daher bedeutet die Vorverarbeitung des Korpus die Vorverarbeitung jedes einzelnen Dokuments.
Laden des Korpus
Bisher hatten wir unseren Textkorpus als Zeichenfolgenvariablen. In realen Szenarien wird ein Textkorpus jedoch häufig in TXT-Dateien für rein textuelle Daten oder in CSV-Dateien mit mehreren Spalten gespeichert, wenn zusätzliche Daten mit dem Text verknüpft sind.
In unserem Kurs arbeiten wir entweder mit CSV- oder TXT-Dateien, wobei jedes Dokument mit einer neuen Zeile beginnt. Daher verwenden wir die Funktion read_csv() aus der pandas-Bibliothek, um einen Textkorpus aus einer Datei zu laden.
123456import 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)
Hier lesen wir diese TXT-Datei in ein DataFrame ein. Wir setzen sep='\r', um das Wagenrücklauf-Symbol als Trennzeichen zu verwenden, was bedeutet, dass jedes Dokument mit einer neuen Zeile beginnt. Mit header=None wird die erste Zeile nicht als Kopfzeile betrachtet, und mit names=['Document'] benennen wir die einzige Spalte 'Document'. Das Ergebnis ist ein DataFrame mit einer einzigen Spalte namens 'Document', die 6 Dokumente (Sätze) enthält.
Vorverarbeitung des Korpus
Um den Korpus vorzuverarbeiten, erstellen wir zunächst eine Funktion zur Vorverarbeitung jedes einzelnen Dokuments:
123456789101112131415161718import 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
Wenden wir diese Funktion nun auf unser DataFrame für jedes Dokument an und erstellen eine Spalte mit bereinigten Dokumenten:
123456789101112131415161718192021222324252627import 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)
Wie Sie sehen können, wurde unser Korpus erfolgreich vorverarbeitet. Wir werden die vorverarbeitete Version dieses Korpus später im Kurs verwenden.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Großartig!
Completion Rate verbessert auf 3.45
Anwendung der Textvorverarbeitung in der Praxis
Swipe um das Menü anzuzeigen
Dokumente
Bevor ein praktisches Beispiel zur Textvorverarbeitung betrachtet wird, ist es wichtig, die zentralen Bestandteile eines Textkorpus zu verstehen: Dokumente.
Ein Dokument ist ein separates Textstück innerhalb eines Korpus, zum Beispiel eine E-Mail in einem E-Mail-Korpus.
Im Wesentlichen besteht jeder Textkorpus aus einer Menge von Dokumenten, daher bedeutet die Vorverarbeitung des Korpus die Vorverarbeitung jedes einzelnen Dokuments.
Laden des Korpus
Bisher hatten wir unseren Textkorpus als Zeichenfolgenvariablen. In realen Szenarien wird ein Textkorpus jedoch häufig in TXT-Dateien für rein textuelle Daten oder in CSV-Dateien mit mehreren Spalten gespeichert, wenn zusätzliche Daten mit dem Text verknüpft sind.
In unserem Kurs arbeiten wir entweder mit CSV- oder TXT-Dateien, wobei jedes Dokument mit einer neuen Zeile beginnt. Daher verwenden wir die Funktion read_csv() aus der pandas-Bibliothek, um einen Textkorpus aus einer Datei zu laden.
123456import 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)
Hier lesen wir diese TXT-Datei in ein DataFrame ein. Wir setzen sep='\r', um das Wagenrücklauf-Symbol als Trennzeichen zu verwenden, was bedeutet, dass jedes Dokument mit einer neuen Zeile beginnt. Mit header=None wird die erste Zeile nicht als Kopfzeile betrachtet, und mit names=['Document'] benennen wir die einzige Spalte 'Document'. Das Ergebnis ist ein DataFrame mit einer einzigen Spalte namens 'Document', die 6 Dokumente (Sätze) enthält.
Vorverarbeitung des Korpus
Um den Korpus vorzuverarbeiten, erstellen wir zunächst eine Funktion zur Vorverarbeitung jedes einzelnen Dokuments:
123456789101112131415161718import 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
Wenden wir diese Funktion nun auf unser DataFrame für jedes Dokument an und erstellen eine Spalte mit bereinigten Dokumenten:
123456789101112131415161718192021222324252627import 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)
Wie Sie sehen können, wurde unser Korpus erfolgreich vorverarbeitet. Wir werden die vorverarbeitete Version dieses Korpus später im Kurs verwenden.
Danke für Ihr Feedback!