Zeichenfrequenzanalysetool
Zählt die Häufigkeit jedes Zeichens in Ihrem Text
Optionen
排序
Was ist Zeichenfrequenzanalyse?
Die Zeichenhäufigkeitsanalyse zählt, wie oft jedes Zeichen in einem Text vorkommt und welchen Anteil es am Gesamttext hat. Sie betrachtet nicht nur Buchstaben, sondern je nach Eingabe auch Zahlen, Satzzeichen, Leerzeichen, CJK-Zeichen, Symbole und seltene Steuerzeichen. Das ist nützlich für Kryptografieübungen, einfache Substitutionsanalyse, Textprofiling, Datenbereinigung, Encoding-Prüfung, Kompressionsideen und Qualitätskontrolle von importierten Daten. Auffällige Häufigkeiten können auf kopierte Formatzeichen, falsch dekodierte Texte oder unerwartete Sprachen hinweisen. Die Auswertung erklärt nicht automatisch die Ursache, gibt aber eine schnelle, messbare Übersicht über die tatsächliche Zeichenverteilung. Bei veröffentlichten oder mehrsprachigen Inhalten sollte das Ergebnis wegen Sprache, Zeichensatz, Kontext und Sonderfällen kurz gegengelesen werden.
Anleitung
Anleitung
- Text im Eingabefeld eingeben oder einfügen
- Das System zählt automatisch jedes Zeichen und seine Häufigkeit
- Ergebnisse mit den Sortieroptionen nach Zeichen oder Anzahl ordnen
- Optionen anpassen (Groß-/Kleinschreibung, Leerzeichen, Zeilenumbrüche)
Zählbereich
- Legen Sie vor dem Textvergleich fest, ob Leerzeichen, Satzzeichen, Groß-/Kleinschreibung und Zeilenumbrüche mitgezählt werden sollen.
- Beachten Sie bei mehrsprachigem Text, dass Emojis, zusammengesetzte Zeichen und CJK-Zeichen sich nicht wie einzelne lateinische Buchstaben verhalten.
Anwendungsfälle
Technisches Prinzip
Die Zeichenfrequenzanalyse zählt das Vorkommen jedes Zeichens in einem Text. Die Implementierung verwendet eine Hash-Tabelle (typischerweise eine Map in JavaScript): 1) den Text zeichenweise durchlaufen, 2) für jedes Zeichen den Zähler in der Map erhöhen, 3) die Einträge nach Anzahl absteigend sortieren, 4) das Histogramm rendern (die 10–20 häufigsten Zeichen, der Rest in einem Sammelbehälter). Der Algorithmus ist O(N) in der Länge des Textes, wobei N die Anzahl der Zeichen ist, und der dominante Aufwand ist der Map-Lookup und die Erhöhung (in V8 und SpiderMonkey im Normalfall praktisch kostenlos). Eine nützliche Nuance: Was zählt als Zeichen? In JavaScript gibt .length die Anzahl der UTF-16-Codeeinheiten zurück, nicht die der Unicode-Codepoints. Ein Zeichen außerhalb der Basic Multilingual Plane (Emoji, seltene CJK-Ideogramme) wird als Surrogate-Paar (zwei Codeeinheiten) kodiert, und eine naive Codeeinheiten-Zählung überschätzt, indem jede Surrogate-Hälfte als separates Zeichen behandelt wird. Die Seite verwendet Array.from(text) oder Intl.Segmenter zur Iteration über Codepoints (oder Graphemcluster), was die richtige Definition eines Zeichens für die meisten Anwendungsfälle ist. Eine nützliche Anwendung: Die Frequenzanalyse ist die klassische Technik zum Brechen von Substitutionschiffren (Caesar, Vigenere, einfache Substitution). Die englische Buchstabenhäufigkeitsverteilung ist wohlbekannt (E, T, A, O, I, N, S, H, R sind die häufigsten, in dieser ungefähren Reihenfolge), und eine Substitutionschiffre erhält die Häufigkeitsverteilung, sodass das häufigste Chiffretextzeichen wahrscheinlich E entspricht, das zweithäufigste T und so weiter. Die Seite ist ein Lehrmittel, kein Kryptanalyse-Werkzeug, aber die Technik ist dieselbe. Ein Hinweis zu Unicode: Für CJK-Sprachen hängt die Zeichenfrequenzverteilung vom Korpus ab (moderner Roman, klassische Poesie, technischer Text) und vom Analyselevel (Zeichen, Wort, Bigramm, Trigramm). Eine Frequenzanalyse eines modernen chinesischen Romans ergibt eine andere Verteilung als eine Frequenzanalyse der Analerten. Die Seite ist korpusunabhängig, sodass der Benutzer sie auf jeden Text anwenden kann.
- Hash-Tabelle (Map in JS): Text durchlaufen, Zähler erhöhen, nach Anzahl absteigend sortieren, Histogramm rendern; O(N) in Textlänge mit sehr schnellem Aufwand pro Zeichen.
- Surrogate Pairs: Ein Zeichen außerhalb der BMP (Emoji, seltenes CJK) sind zwei UTF-16-Codeeinheiten; naive Codeeinheiten-Zählung überschätzt; Array.from oder Intl.Segmenter verwenden.
- Substitutionschiffren-Kryptanalyse: Englische Buchstabenhäufigkeit E, T, A, O, I, N, S, H, R (häufigste in dieser Reihenfolge); eine Substitutionschiffre erhält die Verteilung.
- CJK-Frequenz: hängt vom Korpus ab (moderner Roman, klassische Poesie, technischer Text) und vom Analyselevel (Zeichen, Wort, Bigramm); die Seite ist korpusunabhängig.
- Top-N und Sammelbehälter: Die Seite rendert standardmäßig die 10–20 häufigsten Zeichen mit einem Sammelbehälter für den Rest; nützlich zur Erkennung von Mustern in dichten Texten.
- Groß-/Kleinschreibung: Die Seite bietet einen Umschalter für Groß-/Kleinschreibungsempfindlichkeit; Englisch ist typischerweise nicht empfindlich (E und e sind derselbe Buchstabe, nur unterschiedliche Formen), CJK ist immer nicht empfindlich (kein Konzept von Groß-/Kleinschreibung).
- Performance: O(N) für das Zählen, O(K log K) für das Sortieren von K verschiedenen Zeichen; die Seite verarbeitet Texte mit 1 Million Zeichen in deutlich unter einer Sekunde, was das Produktionsmuster ist.
Beispiele
Analyse englischer Texte
Eingabe "hello world" → Ergebnis: 'l' kommt 3-mal vor (27,3 %), 'o' kommt 2-mal vor (18,2 %)Analyse chinesischer Texte
Eingabe "我爱中国我爱北京" → Ergebnis: '我' und '爱' kommen je 2-mal vor (25 %)Vergleich der Häufigkeitsverteilung
Englischer Text: 'e' am häufigsten mit ~12,7 %; Chinesisch: '的' am häufigsten mit ~4 %FAQ
Was zählt der Analyzer?
Jedes eindeutige Zeichen und wie oft es vorkommt, sortiert nach Häufigkeit. Nützlich für Kryptoanalyse (englischer Text hat vorhersehbare Buchstabenhäufigkeiten, beginnend mit E, T, A, O), Textprofile und das Auffinden unerwarteter Zeichen in einem kopierten Dokument.
Werden Leerzeichen mitgezählt?
Standardmäßig ja – Leerzeichen, Tabulatoren und Zeilenumbrüche bekommen jeweils eine eigene Zeile. Schalte 'Whitespace ignorieren' ein, wenn du nur druckbare Zeichen möchtest. Whitespace ist in natürlichsprachlichem Text typischerweise das häufigste 'Zeichen' (etwa 20 %).
Unterscheidet die Zählung Groß- und Kleinschreibung?
Standardmäßig ja – 'A' und 'a' werden getrennt gezählt. Schalte 'Groß-/Kleinschreibung ignorieren' ein, um sie zusammenzufassen, was bei Sprachanalyse üblich ist. Bei Code- oder Hash-Inspektion ist die Unterscheidung wichtig.
Funktioniert es für Chinesisch, Japanisch und Koreanisch?
Ja. Jedes CJK-Zeichen wird einzeln gezählt. Die Häufigkeitstabelle eines chinesischen Absatzes zeigt naturgemäß hunderte verschiedener Zeichen, weil Chinesisch kein gemeinsames Alphabet hat. Das Tool verarbeitet Unicode korrekt über Grapheme-Cluster-Zählung.
Kann ich die Häufigkeit in Prozent sehen?
Ja, die Seite zeigt typischerweise sowohl Anzahl als auch prozentualen Anteil. Praktisch, um Buchstabenverteilungen mit bekannten Referenzverteilungen abzugleichen, etwa beim Knacken einfacher Substitutionschiffren.
Warum ergeben die Prozente keine 100 %?
Rundung. Jeder Wert wird auf eine feste Zahl an Nachkommastellen gerundet; die Summe der gerundeten Prozente kann um wenige Zehntel von 100 % abweichen. Summiere die Rohzählungen für die exakte Gesamtzahl.
Wird mein Text hochgeladen?
Nein. Die Häufigkeitsanalyse läuft in deinem Browser. Eingefügter Text wird nicht übertragen.