«Aus der Neo-Welt»

edit SideBar

N-Gramm-Logger

Für das X Window System (NetBSD, Linux und so weiter).

Voraussetzungen

Auf Systemen, die hauptsächlich für Programmierer gedacht sind, sollen alle benötigten Komponenten vorhanden sein. Auf anderen müssen unter Umständen noch Pakete mit „Header-Files“ nachinstalliert werden. Auf Ubuntu heissen diese Pakete:

  • Paket libx11-dev
  • Paket libxtst-dev

Kompilieren

Im einfachsten Fall (zum Beispiel bei Ubuntu) reicht:

 g++ ngrammlogger.c -lXtst -lX11 -o ngrammlogger

Bei anderen Systemen muss man gegebenenfalls die Pfade zu den Header-Files und zu den Libraries angeben.

Anwendung

Den Logger kann man auf zwei Arten benutzen:

  • Ohne Argument (./ngrammlogger) gibt er Bigrammzeiten auf die Standardausgabe. Ausgegeben werden die XKB-Tastennamen, zwischen denen jeweils die Zeit zwischen den Anschlägen steht (in Millisekunden).
  • Mit einem Filenamen als Argument werden die Zeiten intern aufsummiert und regelmässig in dieses File geschrieben. Wenn das File schon existiert wird es beim Programmstart eingelesen. Damit kann man über mehrere X-Sitzungen hinweg Statistik sammeln. Das Format ist ähnlich wie beim Aufruf ohne Filename, nur dass am Anfang noch die Häufigkeit steht, mit der das N-Gramm vorgekommen ist, die Zeiten über alle diese Vorkommen summiert sind, und die Zeilen durch die summierten Produkte der Zeiten abgeschlossen werden.

N-Gramme, die langsam getippt werden, gehen in die Statistik nicht ein, um zu vermeiden, dass Arbeitspausen die Ergebnisse verfälschen. N lässt sich vor dem Kompilieren am Anfang des Files einstellen, ebenso der Schwellwert für «langsam».

Apropos «Logger»: Das Programm sieht alle Tastaturanschläge, auch die beim Tippen von Passwörtern. Man kann das Loggen unterbrechen, indem man dem Logger ein SIGUSR1 schickt:

  pkill -USR1 ngrammlogger

und mit SIGUSR2 später wieder aufnehmen:

  pkill -USR2 ngrammlogger

Es ist zu empfehlen, ngrammlogger mit Ctrl-C (wenn man das Programm im Vordergrund in einem Terminal laufen lässt) oder mit SIGTERM zu beenden:

  pkill ngrammlogger

Andernfalls verliert man die Statistik für maximal die letzten 1000 N-Gramme.

Download

Version 1.3 2012/05/05: Eine leicht erweiterte Version des Loggers, die auch die quadrierten Summen aufsammelt. Damit kann man Varianzen berechnen und abschätzen, wie genau man einen gegebenen Zeitwert überhaupt nehmen kann.

Attach:ngramlogger.zip