#!/usr/bin/perl use CGI qw( header param ); use Chatbot::Eliza; sub parse { my $data = shift; $data =~ tr/A-Z/a-z/; my @junk = qw( am is are was were be been have has had do does did can should may might must shall should will would to of the i ); my $junk; foreach $junk(@junk) { $data =~ s/($junk | $junk)//g; } $data =~ s/(\.|!)//g; return $data; } print header; print " chatbot \n"; print ''; my $gir = new Chatbot::Eliza "Gir", "brain"; my $babble = param("babble"); my $orig = $babble; if ($babble =~ /\?|you/) { 1; } else { my $jist = parse($babble); my @words = split(/ /, $jist); open(BRAIN,">>brain"); my $word; foreach $word(@words) { my $num = int(rand 10); my $mem = $orig; $mem =~ tr/A-Z/a-z/; $mem =~ s/my /your /g; $mem =~ s/i /you /g; $mem =~ s/mine /yours /g; print BRAIN "key: $word $num\n"; print BRAIN " decomp: *\n"; print BRAIN " reasmb: $mem\n"; } } my $response = $gir->transform( $orig ); print "Bot: $response\n"; print < You: HTML print '';