#!/usr/athena/bin/perl my %schars = ( '~' => 'tilde', '`' => 'backtick', '!' => 'exclamation', '@' => 'at', '#' => 'pound', '\$' => 'dollar', '%' => 'percent', '\^' => 'carat', '&' => 'and', '\*' => 'astrisk', '\(' => 'lparenthesis', '\)' => 'rparenthesis', '_' => 'underscore', '-' => 'hyphen', '\+' => 'plus', '=' => 'equals', '\[' => 'lbracket', '\]' => 'rbracket', '\{' => 'lbrace', '\}' => 'rbrace', '\\\\' => 'backslash', '\|' => 'pipe', ';' => 'semicolon', ':' => 'colon', '\'' => 'quote', '"' => 'doublequote', '<' => 'lessthan', '>' => 'greaterthan', ',' => 'comma', '\.' => 'period', '/' => 'slash', '\?' => 'question' ); my @pwords; my @words; my @nwords; my %freqtable; while (my $line = ) { chomp ($line); $line = lc ($line); foreach my $schar (keys %schars) { $line =~ s/$schar/ char$schars{$schar} /g; } $line =~ s/\s+/ /g; $line =~ s/^\s+//g; $line =~ s/\s+$//g; next if ($line =~ /^$/); @pwords = @words; @words = @nwords; @nwords = split (/\s+/, $line); next if ($#pwords == -1); for ($c = 0; $c <= $#words; $c++) { my $pword; my $cword; my $nword; if ($c == 0) { $pword = $pwords[$#pwords]; } else { $pword = $words[$c - 1]; } if ($c == $#words) { $nword = $nwords[0]; } else { $nword = $words[$c + 1]; } $cword = $words[$c]; if (!(defined ($freqtable{$cword}))) { $freqtable{$cword} = (); $freqtable{$cword}->[0] = 0; $freqtable{$cword}->[1] = { }; $freqtable{$cword}->[2] = { }; } $freqtable{$cword}->[1]->{$pword} = 0 if (!(defined ($freqtable{$cword}->[1]->{$pword}))); $freqtable{$cword}->[2]->{$nword} = 0 if (!(defined ($freqtable{$cword}->[2]->{$nword}))); $freqtable{$cword}->[2]->{$nword}++; $freqtable{$cword}->[1]->{$pword}++; $freqtable{$cword}->[0]++; } } foreach my $cword (sort keys %freqtable) { print "$cword\t$freqtable{$cword}->[0]:\n"; print "\tleft hand side:\n"; foreach my $pword (sort keys %{$freqtable{$cword}->[1]}) { print "\t\t$pword\t"; print $freqtable{$cword}->[1]->{$pword}; print "\n"; } print "\tright hand side:\n"; foreach my $nword (sort keys %{$freqtable{$cword}->[2]}) { print "\t\t$nword\t"; print $freqtable{$cword}->[2]->{$nword}; print "\n"; } print "\n"; }