February 2, 2010
filed under genevainformation, germany, rant
Einige haben vielleicht mitbekommen, daß zwei tapfere Streiter und ich gemeinsam ein Buch über OpenNMS schreiben (kommt im April heraus).
Zur Zeit befinden wir uns in der Endphase. Da wir alle drei unterschiedliche Schreibstile haben, stellt sich die Frage wie man die Qualität kontrollieren kann. Eine besonders nervige Sache sind die langen Bandwurmsätze. Die schreibt man meistens dann, wenn man etwas kompliziertes erklären will. Der Nachteil ist allein, daß die komplizierte Erklärung der komplizierten Sache nur noch schwer verständlich ist.
Das Buch ist aber ein wenig umfangreicher – diese Sätze durch “Herauslesen” zu finden geht zwar, kostet aber viel Zeit.
Mit etwas Perl und Liebe kann man sich diese Arbeit allerdings deutlich vereinfachen: Das Perl-Modul Lingua::DE::Sentence zerlegt einen Text unter Berücksichtigung der deutschen Grammatik in Sätze. In diesen Sätzen zähle ich die “,” und die “und”. Das Ergebnis ist dann eine Gewichtung. Ist der Satz zu schwer, wird er auf STDOUT ausgedruckt. Dann kann der Bearbeiter entscheiden, ob etwas geändert werden sollte oder nicht.
Der Teil Code, der die Hauptarbeit erledigt sieht so aus:
my $sentences = get_sentences($text);
foreach (@$sentences) {
&check_sentence($_);
}
sub check_sentence {
my $sentence=$_;
my $length=length($sentence);
my $comma,$und="";
$und= () = $sentence =~ /\ und\ /g;
$comma= () = $sentence =~ /\,\ /g;
my $weight=$und+$comma;
if ($weight > 3) {$counter++;print "Sentence possibly too long, weight $weight.\n$sentence\n\n"};
}
Die regulären Ausdrücke (regular expressions) zählen die Übeltäter. Der Rest ist Perl 101 :)
Comments are closed.
no comments
RSS /