package ILMT::KAN::HIN::Prune; use strict; use warnings; use Dir::Self; use Data::Dumper; use ILMT::KAN::HIN::SSFAPI::feature_filter; use ILMT::KAN::HIN::SSFAPI::shakti_tree_api; use ILMT::KAN::HIN::Prune::prune_on_pos; use ILMT::KAN::HIN::Prune::prune_on_case; sub process { my %par = @_; my $input = $par{'data'}; my $db_file = __DIR__ . "/Prune/mapping.dat"; read_story(\$input); my $body; my $numBody = get_bodycount(); my $result; for(my($bodyNum)=1;$bodyNum<=$numBody;$bodyNum++) { $body = get_body($bodyNum,$body); # Count the number of Paragraphs in the story my($numPara) = get_paracount($body); # Iterate through paragraphs in the story for(my($i)=1;$i<=$numPara;$i++) { my($para); # Read Paragraph $para = get_para($i); # Count the number of sentences in this paragraph my($numSent) = get_sentcount($para); #print $numSent."\n"; # Iterate through sentences in the paragraph for(my($j)=1;$j<=$numSent;$j++) { #print " ... Processing sent $j\n"; # Read the sentence which is in SSF format my($sent) = get_sent($para,$j); # print_tree($sent); prune_on_pos($db_file,$sent); prune_on_case($sent); } } } open OUTFILE, '>', \$result or die $!; select(OUTFILE); printstory(); select(STDOUT); return $result; } 1;