Tuesday, October 02, 2007

In 80 Tagen um die Welt - Tag 1

Sooo, heute beginnt die 80-tägige Reise aus "In 80 Tagen um die Welt" von Jules Verne. Jan Theofel hat die Aktion mit der täglichen Bloggerei initiiert. Er und zwei weitere Blogger werden ihre Einträge unter http://www.die-80-tage-blogger.de veröffentlichen. Ich werde die Reise mit einer losen Sammlung von Perl-Modulen begleiten.

Den Start möchte ich mit DateTime::Format::Natural::Lang::EN machen, da die Reise in London beginnt. Das Modul ist Teil der Distribution DateTime::Format::Natural. Damit lassen sich "natürlichsprachliche" Zeitangaben in ein "Kalenderformat" umwandeln.

Interessant wird es natürlich so richtig, wenn man es mit anderen Parsing-Techniken verbindet und so aus einem Fließtext viele Informationen sammeln kann. So könnte man das Modul - in Verbindung mit anderen Modulen - zum sogenannten Data-Mining verwenden...

Hier ein kleines Beispiel, wie man es machen könnte:
#!/usr/bin/perl

use strict;
use warnings;
use DateTime::Format::Natural;

my $string = 'today Phileas Fogg started his tour around the world';
my $parser = DateTime::Format::Natural->new(
lang => 'en',
);


my $date = "";
for my $word ( split / /, $string ){
my $dt = $parser->parse_datetime( $word );
next unless $parser->success;
$date = sprintf "%02d.%02d.%04d",
$dt->day,
$dt->month,
$dt->year;
}

print "Die 80-Tage-Blogger starten am $date\n";

Natürlich funktioniert das jetzt nur am heutigen Tag richtig. Also bräuchte man für ein sinnvolles Data-Mining noch einen Bezugspunkt dazu, was "today" ist...

No comments: