SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] Lorem Ipsum generator?



"Thomas D" <sslug@sslug> writes:

> Jeg har set http://lipsum.com/ hvorpå der er en Lorem Ipsum generator
> skrevet i perl.
> Er der nogen af jer der kan forklare hvordan den er lavet?

Der er flere måder at lave det på.

En måde at gøre det på kan groft skitseres ved:

#!perl

# FOO markerer hhv ingenting i begyndelsen og slutningen.
use constant FOO = <something>;


# analyser data som man prøver at genererer. Det kan være
# H.C. Andersens værker eller forskellige Lorem Ipsum'er
sub tokenize { ... }

@tokens = (tokenize $inddata, FOO, FOO);

while (@tokens) {
    ($a, $b $c) = $b, $c, shift @tokens;
    $hash{$a}{$b}{$c}++
}

# Generer ny version:

($a, $b, $c) = (undef, undef, undef);

do {
    print $a;
    ($a, $b) = $b, $c;
    @nexts = ();
    push @nexts, ($_) x $hash{$a}{$b}{$_} for keys $hash{$a}{$b};
    $c = $nexts[rand @nexts];
} until (undefined $a);

__END__

Slutbetingelsen skal ændres så den ikek bliver af en tilfældig længde
og selve måden at gøre ting på kan optimeres meget, men ideen skulle
være synlig.

Man kan varierer lidt på hvor lange tupler man vil arbejde med. For
korte tupler giver for rodet tekst og for langee tupler låser sig for
meget fast på tekster der indgår i ens originalmateriale.

Afsnit, sætninger og lignende kan også håndteres specielt.


For at se resultatet på mere menneskelæsligt tekst kan man se på Per
Abrahamsens Mark Ove Kvæde <http://www.dina.dk/~abraham/mok/>, som jeg
mener er baseret på ovenstående principper.
    
-- 
 Peter Makholm     |    Yes, you can fight it, but in the end the ultimate
 sslug@sslug |                           goal of life is to have fun
 http://hacking.dk |                                     -- Linus Torvalds


 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:55
Denne side vedligeholdes af MHonArc .