#!/usr/bin/perl open F, "r/alt12dicts/2of12id.txt" or die; while () { s/\r?\n$// or die; # (uncommon flag, base word, part of speach, inflected forms) ($d,$w,$p,$a) = /^([-@\+]?)(\w+) (.).*: ?(.*?)$/ or die; $d =~ tr/+//d; next if $d; # @a0 = split / /, $a; splice @a0, -1, 0, "'" if $p eq 'V' && @a0 >= 3; # insert placeholder @a = (); foreach (@a0) { s/ {.+?}//g; s/ \(.+?\)//g; s/ \| / /g; s/ \/ / /g; push @a, (split / /, $_); } @a = grep {!/^[@~!-]/} @a; # remove questionable entries # @a now conatins a list of valid inflected forms @a0 = grep {$_ ne "'"} @a; # @a0 is now the same as @a except for the placeholder entries next unless @a0; $words = join("\n",$w, @a0)."\n"; if ($p eq 'V' && @a >= 4) { while ($a[0] ne "'") {local $_ = shift @a; $lookup{$_} .= $words} shift @a; } push @a, "$w\'s" if $p eq 'N'; $words = join("\n",$w, @a)."\n"; foreach (@a) {$lookup{$_} .= $words} } open F, "working/possessive-also.lst"; while () { chop; $lookup{"$_\'s"} .= "$_\n"; } while () { print; chop; print $lookup{$_}; }