Natural Language Processing
Einführung in die Verarbeitung natürlicher Sprache: Von Tokenisierung bis zu modernen Transformer-Modellen
21. Oktober 2025
25 Min Lesezeit
AI learning Team
Was ist Natural Language Processing?
Natural Language Processing (NLP) ist ein Teilgebiet der Künstlichen Intelligenz, das sich mit der Interaktion zwischen Computern und menschlicher Sprache befasst. NLP ermöglicht es Maschinen, Text und gesprochene Sprache zu verstehen, zu interpretieren und zu generieren.
Moderne NLP-Anwendungen reichen von Chatbots und Sprachassistenten über maschinelle Übersetzung bis hin zu Sentiment-Analyse und automatischer Textzusammenfassung. Die Entwicklung von Transformer-Modellen wie BERT und GPT hat das Feld revolutioniert.
Die Revolution durch Transformers
Seit der Einführung der Transformer-Architektur im Jahr 2017 hat sich NLP dramatisch weiterentwickelt. Modelle wie GPT-4, BERT und T5 erreichen heute menschenähnliche Leistung bei vielen Sprachaufgaben.
Text-Preprocessing und Tokenisierung
Bevor wir Text mit Machine Learning verarbeiten können, müssen wir ihn in eine Form bringen, die Algorithmen verstehen können. Dies beginnt mit der Tokenisierung.
import nltk
from nltk.tokenize import word_tokenize, sent_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer, WordNetLemmatizer
text = """Natural Language Processing ermöglicht es Computern,
menschliche Sprache zu verstehen und zu verarbeiten."""
tokens = word_tokenize(text.lower())
print(f"Tokens: {tokens}")
stop_words = set(stopwords.words('german'))
filtered_tokens = [w for w in tokens if w not in stop_words]
lemmatizer = WordNetLemmatizer()
lemmatized = [lemmatizer.lemmatize(token) for token in filtered_tokens]
print(f"Verarbeitete Tokens: {lemmatized}")
Preprocessing-Schritte
- Tokenisierung: Text in einzelne Wörter oder Sätze aufteilen
- Normalisierung: Kleinschreibung, Entfernung von Satzzeichen
- Stopwort-Entfernung: Häufige Wörter ohne Bedeutung entfernen
- Stemming/Lemmatisierung: Wörter auf ihre Grundform reduzieren
Word Embeddings
Word Embeddings sind dichte Vektorrepräsentationen von Wörtern, die semantische Beziehungen erfassen. Word2Vec und GloVe waren frühe Durchbrüche, während moderne Ansätze wie BERT kontextuelle Embeddings liefern.
from gensim.models import Word2Vec
import numpy as np
sentences = [
['künstliche', 'intelligenz', 'lernen'],
['machine', 'learning', 'algorithmen'],
['deep', 'learning', 'neuronale', 'netze']
]
model = Word2Vec(
sentences=sentences,
vector_size=100,
window=5,
min_count=1,
workers=4
)
similar_words = model.wv.most_similar('learning', topn=3)
print(f"Ähnliche Wörter: {similar_words}")
vector = model.wv['intelligenz']
print(f"Embedding-Vektor Shape: {vector.shape}")
Transformer-Modelle mit Hugging Face
Die Hugging Face Transformers-Bibliothek bietet einfachen Zugang zu state-of-the-art NLP-Modellen. Hier ist ein Beispiel für Sentiment-Analyse:
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
sentiment_analyzer = pipeline(
"sentiment-analysis",
model="nlptown/bert-base-multilingual-uncased-sentiment"
)
texts = [
"Dieser KI-Kurs ist ausgezeichnet!",
"Die Erklärungen sind nicht sehr klar."
]
results = sentiment_analyzer(texts)
for text, result in zip(texts, results):
print(f"Text: {text}")
print(f"Sentiment: {result['label']}, Score: {result['score']:.4f}\n")
tokenizer = AutoTokenizer.from_pretrained("bert-base-german-cased")
model = AutoModelForSequenceClassification.from_pretrained(
"bert-base-german-cased",
num_labels=2
)
inputs = tokenizer(
"KI-Technologie verändert die Welt",
return_tensors="pt",
padding=True,
truncation=True
)
Pre-trained Models nutzen
Transfer Learning mit vortrainierten Modellen spart Zeit und Rechenressourcen. Modelle wie BERT wurden auf riesigen Textkorpora trainiert und können für spezifische Aufgaben feinabgestimmt werden.
Named Entity Recognition (NER)
NER ist die Aufgabe, benannte Entitäten wie Personen, Organisationen und Orte in Text zu identifizieren und zu klassifizieren.
from transformers import pipeline
ner = pipeline(
"ner",
model="dbmdz/bert-large-cased-finetuned-conll03-german",
aggregation_strategy="simple"
)
text = """Die ETH Zürich ist eine führende technische Universität.
Professor Albert Einstein lehrte dort Physik."""
entities = ner(text)
for entity in entities:
print(f"Entität: {entity['word']}")
print(f"Typ: {entity['entity_group']}")
print(f"Score: {entity['score']:.4f}\n")
Best Practices für NLP-Projekte
Erfolgreiche NLP-Implementierungen erfordern sorgfältige Planung und Durchführung. Hier sind bewährte Praktiken:
Wichtige Empfehlungen
- Datenqualität: Saubere, repräsentative Trainingsdaten sind entscheidend
- Sprachspezifische Modelle: Nutzen Sie Modelle für Deutsch bei deutschen Texten
- Evaluation: Verwenden Sie F1-Score, Precision und Recall für Klassifikation
- Kontextlänge: Beachten Sie die maximale Sequenzlänge von Modellen
- Fine-tuning: Passen Sie vortrainierte Modelle an Ihre spezifische Aufgabe an
from transformers import Trainer, TrainingArguments
from datasets import load_dataset
dataset = load_dataset("imdb")
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=16,
per_device_eval_batch_size=64,
warmup_steps=500,
weight_decay=0.01,
logging_dir="./logs",
evaluation_strategy="epoch",
save_strategy="epoch",
load_best_model_at_end=True
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["test"]
)
trainer.train()
Fazit
Natural Language Processing hat sich zu einem der spannendsten Bereiche der KI entwickelt. Mit modernen Frameworks und vortrainierten Modellen können Sie bereits mit grundlegenden Programmierkenntnissen leistungsfähige Sprachanwendungen erstellen.
Der Schlüssel zum Erfolg liegt darin, mit einfachen Projekten zu beginnen und schrittweise komplexere Aufgaben anzugehen. Experimentieren Sie mit verschiedenen Modellen und Techniken, um ein Gefühl für deren Stärken und Schwächen zu entwickeln.
Nächste Schritte
Vertiefen Sie Ihr NLP-Wissen mit fortgeschrittenen Themen wie Question Answering, Text Generation und multimodalen Modellen. Die Hugging Face Dokumentation ist eine hervorragende Ressource für weiterführendes Lernen!