In einer Zeit, in der Informationen im Überfluss vorhanden sind, gewinnt die Fähigkeit, Texte effizient zusammenzufassen, immer mehr an Bedeutung.
Ziel dieses Projekts ist die Entwicklung eines Python-Programms, das mithilfe der Natural Language Toolkit (NLTK)-Bibliothek eine extraktive Textzusammenfassung erstellt.
Das Programm soll aus einem längeren Text die wichtigsten Informationen extrahieren und als kurze Zusammenfassung ausgeben.
Als Grundlage dient ein bereitgestellter Text zum Thema Climate Science.
Grundsätzlich unterscheidet man zwei Arten der automatischen Textzusammenfassung.
Bei der extraktiven Zusammenfassung werden vorhandene Sätze oder Textabschnitte aus dem Originaltext ausgewählt.
- Verwendet ausschließlich vorhandene Sätze
- Keine Generierung neuer Inhalte
- Einfach zu implementieren
- Bewahrt Originalität und Kontext des Textes
- Einfache Umsetzung
- Hohe Genauigkeit
- Originalformulierungen bleiben erhalten
Bei der abstraktiven Zusammenfassung wird der Inhalt neu formuliert.
- Erzeugt neue Formulierungen
- Nutzt Methoden der Natural Language Generation (NLG)
- Höhere Flexibilität
- Kreativere Zusammenfassungen
- Deutlich komplexere Implementierung
- Höheres Risiko grammatikalischer oder semantischer Fehler
| Extraktiv | Abstraktiv |
|---|---|
| Verwendet Originaltext | Erzeugt neue Formulierungen |
| Einfach umzusetzen | Komplex umzusetzen |
| Originalkontext bleibt erhalten | Kreativere Ergebnisse |
| Weniger Rechenaufwand | Höherer Rechenaufwand |
In diesem Projekt wird ausschließlich eine extraktive Textzusammenfassung erstellt.
Dafür wird ein Text über Climate Science analysiert.
Die Zusammenfassung wird in mehreren Schritten erzeugt.
- Text tokenisieren
- Satzzeichen und Stopwords entfernen
- Worthäufigkeiten bestimmen
- Wortfrequenzen normalisieren
- Text in einzelne Sätze aufteilen
- Sentence Score berechnen
- Die besten 20 % der Sätze auswählen
- Zusammenfassung erzeugen
- NLTK installieren
word_tokenize()kennenlernensent_tokenize()kennenlernen- Stopwords verwenden
Eine Funktion erstellen, die
- den Text tokenisiert
- Satzzeichen entfernt
- Stopwords entfernt
Als Ergebnis soll eine bereinigte Tokenliste entstehen.
Für jedes Wort wird die Häufigkeit bestimmt.
Anschließend werden
- das häufigste Wort gesucht
- alle Worthäufigkeiten normalisiert
Hierfür soll ein Dictionary verwendet werden.
Für jeden Satz wird ein Score berechnet.
Der Sentence Count ergibt sich aus der Summe der normalisierten Wortfrequenzen aller Wörter im Satz.
Dictionary
{
"Climate": 3,
"Science": 1,
"Weather": 5,
"Cars": 2
}