Häufigkeitstabelle der ASCII - Zeichen

Hat irgend wer eine Häufigkeitstabelle der ASCII - Zeichen in der Deutschen Sprache bei der Hand, bzw. auf der Platte? Würde Sie dringend für eine Huffman Kompression brauchen.

Hat irgend wer eine Häufigkeitstabelle
der ASCII - Zeichen in der Deutschen
Sprache bei der Hand, bzw. auf der
Platte? Würde Sie dringend für eine
Huffman Kompression brauchen.

Am besten ermittelst du die Häufigkeit anhand der vorliegenden Texte selbst, denn „den“ deutschen Text gibt es nicht, und die publizierten Häufigkeitsangaben unterscheiden meist nicht zwischen Gross- und Kleinbuchstaben, lassen die Leerzeichen und Formatierungszeichen weg usw.

Mit dieser Routine kannst du die Häufigkeiten leicht selbst ermitteln. (Vorausgesetzt, du hast irgendwo VB(A):

Function Zeichenstatistik(FName As String)
Static Cnt(256) As Long, Lin As String, Res As String, \_
 L As Long, I As Long, J As Long, N As Long, Ch As String \* 1, \_
 MerkI As Long, VMax As Double, V As Double
 Open FName For Input As #1
 N = 0
 Do While Not EOF(1)
 Line Input #1, Lin
 L = Len(Lin)
 For I = 1 To L
 Ch = Mid(Lin, I, 1)
 Cnt(Asc(Ch)) = Cnt(Asc(Ch)) + 1
 Next I
 N = N + L
 Loop
 Res = ""
 Do
 MerkI = 0
 VMax = 0#
 For I = 1 To 255
 If Cnt(I) \> 0 Then
 V = Cnt(I) / N
 If V \> VMax Then
 VMax = V
 MerkI = I
 End If
 End If
 Next I
 If MerkI = 0 Then Exit Do
 Res = Res & vbCrLf & Chr(MerkI) & " (" & Format(MerkI, "000") & ") " & Format(VMax, "0.0000%")
 Cnt(MerkI) = 0
 Loop
 Zeichenstatistik = Mid(Res, 3)
 Close #1
End Function

Ein deutscher Beispieltext - ca 100 kByte Grimm, Heine, Grimmelshausen und Fontane aus http://gutenberg.aol.de - ergibt folgende Häufigkeiten:
(032) 15,0852%
e (101) 13,6435%
n (110) 8,2989%
i (105) 6,3114%
r (114) 5,4784%
s (115) 4,5574%
t (116) 4,5141%
a (097) 4,1927%
d (100) 3,9907%
h (104) 3,9277%
l (108) 3,0094%
u (117) 2,9911%
c (099) 2,6237%
g (103) 1,9980%
m (109) 1,9560%
o (111) 1,8248%
, (044) 1,5428%
b (098) 1,3762%
w (119) 1,1728%
f (102) 1,0272%
z (122) 0,9354%

  • (045) 0,8055%
    k (107) 0,8002%
    . (046) 0,6192%
    p (112) 0,5313%
    S (083) 0,5169%
    ü (252) 0,5129%
    v (118) 0,4920%
    ä (228) 0,4303%
    ß (223) 0,3542%
    H (072) 0,3148%
    A (065) 0,2768%
    D (068) 0,2676%
    K (075) 0,2676%
    ö (246) 0,2558%
    B (066) 0,2427%
    F (070) 0,2178%
    G (071) 0,2165%
    E (069) 0,2138%
    W (087) 0,2099%
    M (077) 0,1981%
    T (084) 0,1600%
    V (086) 0,1391%
    L (076) 0,1220%
    R (082) 0,1181%
    j (106) 0,1128%
    Z (090) 0,1076%
    P (080) 0,1063%
    ; (059) 0,1036%
    U (085) 0,0971%
    I (073) 0,0892%
    « (171) 0,0892%
    » (187) 0,0892%
    ’ (039) 0,0787%
    N (078) 0,0695%
    J (074) 0,0551%
    O (079) 0,0472%
    x (120) 0,0328%
    ! (033) 0,0302%

(058) 0,0249%

? (063) 0,0197%
C (067) 0,0157%
( (040) 0,0144%
) (041) 0,0144%
y (121) 0,0144%
Q (081) 0,0079%
q (113) 0,0066%
‹ (139) 0,0066%
› (155) 0,0066%
Ü (220) 0,0066%
é (233) 0,0052%
1 (049) 0,0026%
Ä (196) 0,0026%
2 (050) 0,0013%
3 (051) 0,0013%

Ein längerer englischer Beispieltext ergibt folgende relativen Häufigkeiten:

(032) 17,1673%
e (101) 9,7561%
t (116) 7,2040%
a (097) 6,3052%
o (111) 5,9017%
n (110) 5,4158%
h (104) 5,2389%
i (105) 5,1169%
s (115) 5,0849%
r (114) 4,3206%
d (100) 3,4580%
l (108) 3,2055%
u (117) 2,2427%
m (109) 1,8716%
w (119) 1,7815%
f (102) 1,7624%
c (099) 1,7275%
g (103) 1,5221%
, (044) 1,4910%
y (121) 1,4395%
p (112) 1,2493%
b (098) 1,0556%
. (046) 0,8199%
v (118) 0,7252%
k (107) 0,5610%
" (034) 0,4028%
I (073) 0,3675%

  • (045) 0,2946%
    ’ (039) 0,2537%
    T (084) 0,2043%
    A (065) 0,1815%
    H (072) 0,1419%
    B (066) 0,1101%
    ; (059) 0,1039%
    S (083) 0,1012%
    M (077) 0,0975%
    x (120) 0,0926%
    C (067) 0,0871%
    W (087) 0,0856%
    L (076) 0,0714%
    ? (063) 0,0691%
    G (071) 0,0685%
    j (106) 0,0669%
    ! (033) 0,0655%
    q (113) 0,0626%
    F (070) 0,0580%
    O (079) 0,0553%
    P (080) 0,0544%
    N (078) 0,0532%
    E (069) 0,0453%
    D (068) 0,0428%
    [ (091) 0,0377%
    ] (093) 0,0377%
    Y (089) 0,0316%
    R (082) 0,0304%
    1 (049) 0,0283%
    z (122) 0,0278%
    J (074) 0,0236%

(058) 0,0208%

V (086) 0,0197%
2 (050) 0,0152%
U (085) 0,0092%
K (075) 0,0083%
0 (048) 0,0069%
3 (051) 0,0068%
4 (052) 0,0043%
X (088) 0,0040%
( (040) 0,0038%
) (041) 0,0038%
5 (053) 0,0035%
6 (054) 0,0033%
8 (056) 0,0026%
_ (095) 0,0020%
Q (081) 0,0020%
7 (055) 0,0016%
9 (057) 0,0016%
Z (090) 0,0013%
{ (123) 0,0003%
} (125) 0,0003%
Ä (196) 0,0001%

Guten Rutsch
Reinhard

Danke Reinhard,

aber wenn die Häufigkeit jedes mal neu festgestellt wird, muß die Codetabelle mitgespeichert werden. Und weil ich aber in der Fachbereichsarbeit die Kompressionsrate durch zusätzliche Tabellen nicht verfälschen will, gehe ich den Weg mit einer fixen Häufigkeitstablle. Weniger effektiv aber zu Demonstrationszwecken durchaus geeignet.

Gruß
Bernh@rd