Anwendung der Textvorverarbeitung in der Praxis
Dokumente
Zunächst ist es wichtig, vor einem praktischen Beispiel der Textvorverarbeitung die zentralen Bestandteile eines Textkorpus zu verstehen: Dokumente.
Ein Dokument ist ein separates Textstück innerhalb eines Korpus, zum Beispiel eine E-Mail innerhalb eines 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 String-Variablen. 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://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. Wir verwenden header=None, damit die erste Zeile nicht als Kopfzeile betrachtet wird, und geben mit names=['Document'] den Namen der einzigen Spalte 'Document' an. 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://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
Awesome!
Completion rate improved to 3.45
Anwendung der Textvorverarbeitung in der Praxis
Swipe um das Menü anzuzeigen
Dokumente
Zunächst ist es wichtig, vor einem praktischen Beispiel der Textvorverarbeitung die zentralen Bestandteile eines Textkorpus zu verstehen: Dokumente.
Ein Dokument ist ein separates Textstück innerhalb eines Korpus, zum Beispiel eine E-Mail innerhalb eines 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 String-Variablen. 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://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. Wir verwenden header=None, damit die erste Zeile nicht als Kopfzeile betrachtet wird, und geben mit names=['Document'] den Namen der einzigen Spalte 'Document' an. 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://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!