Entwickler-Ecke

Algorithmen, Optimierung und Assembler - "deutschheit" eines Textes


zemy - Fr 19.08.05 12:38
Titel: "deutschheit" eines Textes
hat jemannd ne Idee (bzw. schon ne passenden Algo), wie man einen String überprüfen kann, wie sehr er der deutschen Sprache ähnelt. Also zum Beispiel über Bi-, Tri-, Tetragramme oder ähnliche Späße. Am besten mit ner Skala (z.B. 'QQQQQQQQQQQQ' = 0; 'ERGEHTSPAZIEREN' = 0.856321)

MfG Zemy


CK_CK - Fr 19.08.05 12:56

Hi!
Wie wär's, wenn du die relative Häufigkeit der Buchstaben überprüfst...
In einem deutschen Text sieht die Buchstabenverteilung folgendermaßen aus:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
0,1470 - E
0,0884 - N
0,0686 - R
0,0638 - I
0,0539 - S
0,0473 - T
0,0439 - D
0,0436 - H
0,0433 - A
0,0319 - U
0,0293 - L
0,0267 - C
0,0267 - G
0,0213 - M
0,0160 - B
0,0142 - W
0,0142 - Z
0,0136 - F
0,0136 - O
0,0096 - K
0,0074 - V
0,0050 - P
0,0016 - J
0,0002 - Y
0,0001 - X
0,0001 - Q


(Ich brauchte das damals um einen verschlüsselten Text zu entschlüsseln...)

CK_CK


jaenicke - Fr 19.08.05 13:02

Ganz einfache Möglichkeit (auch einfach zu realisieren):
Im Internet nach Durchschnittswerten für die Buchstabenverteilung in deutschen Texten suchen und dies dann vergleichen (funktioniert allerdings nur mit längeren Texten).

Eine andere wäre, bestimmte im Deutschen häufig verwendete Phrasen und Buchstabenkombinationen, zum Beispiel er, au, oi, ö, ü, ä abzuprüfen und ungewöhnliche als schlechtes Zeichen zu deuten (zr, rst, wrt, ...), und dann noch mehrfache Buchstaben suchen...

Was du da mit Tetragrammen meinst, weiß ich allerdings nicht, ...


Spaceguide - Fr 19.08.05 13:43

Das mit der Entropiemessung ist schon ganz gut.

http://www.heise.de/newsticker/meldung/24359


zemy - Sa 20.08.05 15:12

user profile iconSpaceguide hat folgendes geschrieben:
Das mit der Entropiemessung ist schon ganz gut.

http://www.heise.de/newsticker/meldung/24359

Hey, klingt ja ganz interessant. Werde mich mal damit beschäftigen.

user profile iconjaenicke hat folgendes geschrieben:
Ganz einfache Möglichkeit (auch einfach zu realisieren):
Im Internet nach Durchschnittswerten für die Buchstabenverteilung in deutschen Texten suchen und dies dann vergleichen (funktioniert allerdings nur mit längeren Texten).

Eine andere wäre, bestimmte im Deutschen häufig verwendete Phrasen und Buchstabenkombinationen, zum Beispiel er, au, oi, ö, ü, ä abzuprüfen und ungewöhnliche als schlechtes Zeichen zu deuten (zr, rst, wrt, ...), und dann noch mehrfache Buchstaben suchen...

Was du da mit Tetragrammen meinst, weiß ich allerdings nicht, ...

Ist ja auch wieder die Suche nach Bi und Trigramen. Ist zwar ein guter Anhaltspunkt, bringt einen aber nicht unbedingt ans Ziel. Ach ja, und Tetragramme sind wie Trigramme, nur eben mit 4 Buchstaben ;)

MfG Zemy

[EDIT]
Habe mich ein bischen Schlau gelesen und ein bissel rumprobiert. Dabei habe ich mich für den LZW-Algorythmus [http://de.wikipedia.org/wiki/LZW] entschieden bzw mich davon inspirieren lassen. Wills ja nicht wirklich speichern. Bekomme auch schon die ersten brauchbaren Ergebnisse. Danke nochmal für die Hilfe..