Ratgeber · Engine & Algorithmus
Wie sich Sätze ähneln: Mihalcea-Tarau, Cosine und Jaccard im Vergleich
Jeder graphbasierte Summarizer steht und fällt mit seiner Similarity-Funktion. Mihalcea-Tarau, Cosine über Wortvektoren oder Jaccard, jede Wahl bringt andere Stärken. Eine technische Detailansicht ohne unnötigen Ballast.
Die drei Kandidaten
Bevor wir vergleichen, hier die drei Formeln in einer Zeile pro Stück.
Mihalcea-Tarau-Similarity (EMNLP 2004):
sim(S_i, S_j) = |gemeinsame Wörter| / (log|S_i| + log|S_j|)
Jaccard-Similarity (Paul Jaccard, 1912):
sim(S_i, S_j) = |S_i geschnitten S_j| / |S_i vereinigt S_j|
Cosine-Similarity über TF-IDF-Vektoren (Salton und McGill, 1983):
sim(S_i, S_j) = (V_i mal V_j) / (|V_i| mal |V_j|)
Drei Philosophien: Mihalcea-Tarau zählt gemeinsame Wörter und normalisiert mit dem Logarithmus. Jaccard betrachtet Sätze als Mengen. Cosine projiziert Sätze in einen Vektorraum und misst den Winkel.
Mihalcea-Tarau: Pragmatik mit Logarithmus
Die Mihalcea-Tarau-Formel ist die in TextRank-Implementierungen am häufigsten genutzte. Im Original-EMNLP-Paper schreiben die Autoren, sie hätten Cosine-basierte Varianten getestet, aber Mihalcea-Tarau habe ähnlich gute Ergebnisse bei deutlich geringerem Berechnungsaufwand geliefert.
Die log-Normalisierung im Nenner ist der Clou. Ohne sie würde gelten: Längere Sätze haben tendenziell mehr gemeinsame Wörter mit anderen, also höhere Similarity. Der Algorithmus würde lange Sätze bevorzugen. Mit log wird der Effekt gedämpft, weil der Logarithmus sublinear wächst. Ein Satz mit 10 Wörtern hat log(10) = 2,3, ein Satz mit 100 Wörtern log(100) = 4,6. Die Längen unterscheiden sich um Faktor 10, der Normalisierer nur um Faktor 2.
Wichtig: Mihalcea-Tarau funktioniert ohne TF-IDF und ohne Wortvektoren. Es braucht nur eine Tokenisierung (Wörter aus Sätzen rauslösen), einen Stopwortfilter und eine Lowercase-Normalisierung. Das macht die Formel ideal für Browser-Implementierungen, wo zusätzliche Datasets unwillkommen sind.
Jaccard: Die ehrlichste Wahl
Paul Jaccards Formel von 1912 (ursprünglich für die Verbreitung von Pflanzenarten in den Alpen) ist die simpelste der drei. Sie sagt: Schaue dir die Vereinigung beider Wortmengen an, vergleiche, wieviele Wörter beide gemeinsam haben. Ein Wert von 0 bedeutet keine gemeinsamen Wörter, ein Wert von 1 bedeutet identische Wortmengen.
Vorteil: Die Formel ist mathematisch sauber und in jedem Lehrbuch zu Mengentheorie erklärt. Sie ist symmetrisch, sie ist zwischen 0 und 1 beschränkt, sie ist intuitiv. Wenn zwei Sätze 5 von 10 Wörtern teilen, ist Jaccard 5/15 (Schnittmenge 5, Vereinigung 10 + 10 - 5 = 15) gleich 0.33.
Nachteil: Keine Längen-Normalisierung. Ein kurzer Satz hat schon strukturell weniger Wörter, also weniger Chance auf gemeinsame Wörter mit langen Sätzen. Außerdem behandelt Jaccard alle Wörter gleich: das Wort “Klimawandel” zählt genauso wie “auch”, obwohl ersteres viel aussagekräftiger ist.
Cosine über TF-IDF: Der Goldstandard im Information Retrieval
Salton und McGill haben Cosine-Similarity in den 1980ern als Standard für Information Retrieval etabliert. Die Idee: Stelle jeden Satz als Vektor dar, wo jede Dimension ein Wort im Vokabular ist. Der Wert in einer Dimension ist die TF-IDF-Gewichtung des Wortes im Satz. TF ist die Termfrequenz (wie oft kommt das Wort im Satz vor), IDF die inverse Dokumentfrequenz (wie selten ist das Wort im gesamten Korpus).
tfidf(w, S, D) = tf(w, S) * log(|D| / |{S' aus D : w in S'}|)
Der TF-IDF-Anteil ist die eigentliche Stärke: Häufige Wörter wie der, die, ist bekommen niedrige Gewichte, seltene wie Klimaresilienz oder Quantenkohärenz hohe. Damit fließen die wirklich charakteristischen Wörter stärker in die Similarity ein.
LexRank (Erkan und Radev, JAIR 2004) nutzt genau diese Cosine-TF-IDF-Variante. Im Paper wird gezeigt, dass sie auf DUC-2003-Daten signifikant bessere Resultate liefert als simple Wortzählungen. Die Kehrseite: TF-IDF braucht ein Korpus. In einem Browser-Tool, das nur einen Text auf einmal verarbeitet, ist das Korpus der Text selbst, dann wirkt TF-IDF schwach. Auf Servern mit dauerhafter Korpus-Sammlung wirkt es voll.
Konkretes Rechenbeispiel
Drei deutsche Sätze, jeweils mit Stopwort-Filter:
Satz A: “Klimawandel beschleunigt Eisschmelze in der Arktis.” Nach Filter: {klimawandel, beschleunigt, eisschmelze, arktis} (4 Wörter)
Satz B: “Die Arktis verliert jährlich Eis durch Klimawandel.” Nach Filter: {arktis, verliert, jährlich, eis, klimawandel} (5 Wörter)
Satz C: “Wirtschaftswachstum führte 2025 zu höheren Aktienkursen.” Nach Filter: {wirtschaftswachstum, führte, 2025, höheren, aktienkursen} (5 Wörter)
Gemeinsame Wörter A und B: {klimawandel, arktis}, also 2. Gemeinsame Wörter A und C: {}, also 0.
Mihalcea-Tarau A und B: 2 / (log(4) + log(5)) = 2 / (1.39 + 1.61) = 2 / 3.00 = 0.67 Mihalcea-Tarau A und C: 0 / (log(4) + log(5)) = 0
Jaccard A und B: 2 / 7 (Schnitt 2, Vereinigung 9 - 2 = 7) = 0.29 Jaccard A und C: 0 / 9 = 0
Cosine TF-IDF A und B: Abhängig vom Korpus, typisch zwischen 0.4 und 0.7. Cosine TF-IDF A und C: 0, weil keine gemeinsamen Wörter.
Alle drei erkennen: A und B sind thematisch verwandt, A und C nicht. Aber die absoluten Werte unterscheiden sich. Das spielt im TextRank-Graph eine Rolle, weil Kantengewichte direkt in die Iteration einfließen.
Performance-Vergleich
Bei einem Text mit 100 Sätzen muss die Similarity zwischen jeweils zwei Sätzen berechnet werden, das sind 100 mal 99 / 2 gleich 4950 Vergleiche. Jeder Vergleich braucht eine Tokenisierung (oder Cache-Lookup) und die Formel.
| Formel | Komplexität pro Vergleich | Speicher |
|---|---|---|
| Mihalcea-Tarau | O( | S_i |
| Jaccard | O( | S_i |
| Cosine TF-IDF | O( | V |
Mihalcea-Tarau und Jaccard sind praktisch gleich schnell. Cosine TF-IDF ist asymptotisch ähnlich, aber in der Praxis langsamer, weil die TF-IDF-Berechnung Vorbereitungskosten hat.
Vorverarbeitung: Wie Tokenisierung das Ergebnis beeinflusst
Bevor irgendeine Similarity-Formel angewendet werden kann, muss der Satz tokenisiert werden, also in Wörter zerlegt. Das klingt trivial, ist es aber nicht. Im Deutschen entscheiden Details: Wird “Klima-Politik” als ein Token (mit Bindestrich) oder zwei (Klima und Politik) behandelt? Werden Umlaute normalisiert (“über” zu “ueber”)? Werden Zahlen mitgezählt? Werden Anführungszeichen gestrippt?
Jeder dieser Entscheidungen verändert die Wortmengen-Schnittmengen. Ein Beispiel: Satz A enthält “Klimapolitik”, Satz B enthält “Klima-Politik”. Mit naiver Tokenisierung haben sie keinen gemeinsamen Token. Mit einer normalisierten Variante (Bindestriche entfernen, Lowercase) haben sie einen. Die Similarity-Werte können sich dadurch um Faktor 2 oder mehr unterscheiden.
Auf text-zusammenfassen.de werden folgende Schritte angewendet: Lowercase-Konversion, Strippen von Satzzeichen außer Bindestrichen, Trennung an Leerzeichen, dann Stopwortfilter. Das ist ein Standard-Workflow, der für deutsche Texte gute Ergebnisse liefert. Komplexere Verfahren wie Lemmatisierung (Reduktion von “lief”, “läuft”, “laufen” auf “laufen”) würden noch bessere Ergebnisse liefern, brauchen aber externe Bibliotheken oder vortrainierte Modelle.
Was bei mehrsprachigen Texten passiert
Eine oft unterschätzte Frage: Wie verhalten sich die Similarity-Maße bei mehrsprachigen Inputs? Wenn ein deutscher Text englische Zitate enthält, hat das Auswirkungen auf alle drei Formeln.
Mihalcea-Tarau: Die Stopwortliste filtert nur deutsche Stopwörter. Englische Stopwörter (the, of, and) bleiben in den Wortmengen und können Similarities zwischen deutsch-englischen Mischsätzen künstlich erhöhen. Konkret: Zwei Sätze, die beide ein englisches Zitat enthalten, werden überproportional ähnlich gerankt, auch wenn der inhaltliche Kern verschieden ist.
Jaccard: Hat dasselbe Problem, ohne Längen-Normalisierung. Bei zwei kurzen Sätzen mit gleichem englischem Wort kann der Jaccard-Score schnell auf 0.5 oder höher klettern.
Cosine TF-IDF: Theoretisch robuster, weil häufige Wörter durch IDF gedämpft werden. In der Praxis aber abhängig vom Korpus: Wenn das Korpus überwiegend deutsch ist, haben englische Wörter ein hohes IDF und wirken übermäßig stark.
Pragmatische Lösung: Mehrsprachige Stopwortliste verwenden (deutsche + englische zusammen) oder den Text vor dem Summarizer in monolingualen Teile splitten.
Word-Embeddings als vierte Option
Eine moderne Alternative zu den drei klassischen Formeln sind Word-Embeddings. Mikolov et al haben 2013 word2vec eingeführt (NeurIPS 2013), Pennington et al 2014 GloVe, Bojanowski et al 2017 fastText. Alle drei produzieren Wortvektoren, in denen semantisch ähnliche Wörter geometrisch nahe beieinander liegen. Synonyme wie “Auto” und “Wagen” haben eine hohe Cosine-Similarity in diesem Vektorraum.
Für Satz-Similarity gibt es zwei Wege. Einfach: Vektoren der Wörter im Satz mitteln, das ergibt einen Satzvektor. Dann Cosine zwischen Satzvektoren. Sophistiziert: Sentence-BERT (Reimers und Gurevych, EMNLP 2019), das speziell für Satzrepräsentationen trainiert wurde.
Vorteil: Synonyme werden erkannt, semantische Nähe gemessen. Ein Satz über “Auto” und einer über “Wagen” werden auch dann als ähnlich erkannt, wenn sie keine gemeinsamen Wörter haben.
Nachteil: Die Wortvektoren sind groß. Ein deutsches fastText-Modell hat 2 GB, BERT-Modelle 400 MB bis 1.3 GB. Im Browser zu laden, dauert mehrere Sekunden. Für Server-basierte Summarizer ist das kein Problem, für Browser-Tools macht es den Approach unpraktisch.
Wann welche Wahl in produktiven Tools?
Drei typische Szenarien und die jeweils beste Similarity-Wahl.
Browser-basiertes Single-Document-Tool (wie text-zusammenfassen.de): Mihalcea-Tarau. Keine externen Ressourcen, schnelle Berechnung, gute Ergebnisse bei typischen deutschen Texten.
Server-basierter Multi-Document-Summarizer für Recherche: Cosine TF-IDF. Das Korpus liegt vor (alle gesammelten Dokumente), TF-IDF kann seine Stärken ausspielen, sparsere Graphs durch Threshold-Filterung.
Forschungsprototyp mit Fokus auf Genauigkeit: Sentence-BERT-basierte Cosine. Höchste Qualität, dafür höchster Berechnungsaufwand und Modell-Größe. Lohnt sich, wenn jede Prozent-Punkt-Verbesserung in ROUGE zählt.
In allen drei Szenarien gilt: Die Wahl des Similarity-Maßes ist eines der wenigen Stellrädchen, mit dem sich die Qualität eines extraktiven Summarizers signifikant beeinflussen lässt. Mit dem PageRank-Algorithmus selbst gibt es wenig Variationsspielraum, dort sind Damping und Konvergenz-Kriterium die einzigen Parameter.
Was hängenbleibt
Mihalcea-Tarau ist der pragmatische Standard für TextRank-Implementierungen im Browser, weil sie längen-robust ist und ohne Korpus auskommt. Jaccard ist mathematisch ehrlicher, aber ohne Längen-Normalisierung. Cosine über TF-IDF ist der akademische Goldstandard, braucht aber ein Korpus und ist auf Single-Page-Tools schwer zu implementieren. Wer einen extraktiven Summarizer schreibt, fährt mit Mihalcea-Tarau in 95 Prozent der Fälle gut.
FAQ
Häufige Fragen
Welche Similarity nutzt text-zusammenfassen.de?
Auf text-zusammenfassen.de wird die Mihalcea-Tarau-Similarity verwendet, mit deutscher Stopwortliste und Lowercase-Normalisierung. Diese Variante stammt direkt aus dem EMNLP-2004-Paper und hat sich für Browser-Implementierungen bewährt, weil sie ohne TF-IDF-Berechnung über das gesamte Korpus auskommt. TF-IDF würde voraussetzen, dass man eine Sammlung von Texten hat, gegen die man die Term-Frequenzen normalisiert. In einem Single-Page-Tool ohne Server steht diese Sammlung nicht zur Verfügung.
Ist Cosine-Similarity über Word-Embeddings besser als alle drei?
Im Forschungssetting oft ja, in der Browser-Praxis nein. Wer fastText- oder GloVe-Vektoren lädt, bekommt eine semantisch sinnvolle Similarity: Synonyme wie Auto und Wagen werden als ähnlich erkannt. Aber: Die Vektoren sind groß, ein deutsches fastText-Modell hat etwa 2 GB. Das im Browser zu laden, dauert mehrere Sekunden und blockiert die Tool-Nutzung. Auf Servern lohnt sich der Aufwand für Suche oder Question-Answering, für eine extraktive Zusammenfassung selten.
Warum nicht einfach Jaccard verwenden?
Jaccard ist mathematisch der ehrlichste Maßstab: Anzahl gemeinsamer Wörter geteilt durch Vereinigung. Aber Jaccard hat zwei Schwächen für Summarization. Erstens normalisiert er nicht für Satzlänge, kurze Sätze haben fast immer einen niedrigen Jaccard-Score gegen längere. Zweitens bestraft er häufige Wörter nicht. Die Mihalcea-Tarau-Normalisierung mit log|S_i| + log|S_j| ist eine elegante Antwort darauf. Sie macht den Score robuster gegen Satzlängen-Variation, ohne TF-IDF-Komplexität einzuführen.
Was passiert bei sehr kurzen oder sehr langen Sätzen?
Bei Sätzen unter 3 Wörtern (nach Stopwort-Filter) wird jede Similarity-Formel instabil. Die Mihalcea-Tarau-Normalisierung mit log liefert dann Werte nahe Null oder unendlich, je nach Implementierung. Auf text-zusammenfassen.de werden Sätze unter 5 Wörtern aus dem Graph ausgeschlossen, um diesen Effekt zu vermeiden. Bei sehr langen Sätzen (über 50 Wörter) wird der Score nicht instabil, sondern eher zu hoch, weil die Wahrscheinlichkeit gemeinsamer Wörter mit anderen Sätzen mit der Länge wächst. Auch hier ist die log-Normalisierung sinnvoll.
Wie groß wird die Similarity-Matrix in der Praxis?
Die Matrix wächst mit n im Quadrat. Bei 100 Sätzen sind das 10000 Einträge, bei 500 Sätzen 250000. Die Matrix ist symmetrisch, man kann also nur die obere Dreiecksmatrix speichern und kommt auf die Hälfte. JavaScript-Arrays mit 250000 Floats sind etwa 2 MB groß. Das ist im Browser problemlos handhabbar. Erst bei mehreren tausend Sätzen wird die Berechnung spürbar langsam, weil jeder der n im Quadrat Vergleiche eine Tokenisierung und einen Lookup durchläuft. Für typische Web-Artikel ist die Performance vernachlässigbar.
Quellen
Worauf dieser Ratgeber sich stützt
- Mihalcea & Tarau, TextRank: Bringing Order into Texts, EMNLP 2004
- Erkan & Radev, LexRank: Graph-based Lexical Centrality, JAIR 22 (2004)
- Salton & McGill, Introduction to Modern Information Retrieval, McGraw-Hill 1983
- Jaccard, Étude comparative de la distribution florale, Bulletin de la Société Vaudoise 1912
- Mikolov et al, Distributed Representations of Words and Phrases, NeurIPS 2013
Verwandte Ratgeber