|
Thread Textnormalisierung...Hilfe!
(18 answers)
Opened by Gast at 2008-06-26 17:45
Ein Ansatz der alle Wörter am Satzanfang ersetzt, falls sie öfter klein als großgeschrieben nicht am Satzanfang vorkommen:
[code]#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $text = 'Hier steht ein langer Text , in dem das erste Wort klein gemacht werden soll , so wie hier .'; print "Input:\n$text\n\n"; my @words = split ' ', $text; my %words; my %starting_words = map { my$t = $words[$_]; $words{$t}--; $t => $_ } grep { $words{$words[$_]}++; $words[$_-1] =~ /^[\.!\?]$/ } 0 .. $#words; foreach my $key ( keys %starting_words ) { my $lckey = lcfirst $key; if ( exists $words{$lckey} && ( $words{$lckey} > $words{$key} ) ) { $words[$starting_words{$key}] = $lckey; } # if } # foreach print "Output:\n", join( ' ', @words ), "\n"; <STDIN>; __END__ |