headcomputation.pl 2.12 KB
Newer Older
priyank's avatar
priyank committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
#!/usr/bin/perl

use Getopt::Long;
GetOptions("help!"=>\$help,"path=s"=>\$head_home,"input=s"=>\$input,"output=s",\$output);
print "Unprocessed by Getopt::Long\n" if $ARGV[0];
foreach (@ARGV) {
	print "$_\n";
	exit(0);
}

if($help eq 1)
{
	print "Head Computation  - Head Computation Version 1.6\n(30th May 2009)\n\n";
	print "usage : ./run-headCompute.pl --path=/home/headComputation-1.6 [-i inputfile|--input=\"input_file\"] [-o outputfile|--output=\"output_file\"] \n";
	print "\tIf the output file is not mentioned then the output will be printed to STDOUT\n";
	exit(0);
}

if($head_home eq "")
{
	print "Please Specify the Path as defined in --help\n";
	exit(0);

}


my $src=$head_home . "/src";
require "$head_home/API/shakti_tree_api.pl";
require "$head_home/API/feature_filter.pl";
require "$src/copy_np_head.pl";
require "$src/copy_vg_head.pl";
require "$src/single_quote_changeName-0.1.pl";


if ($input eq "")
{
  $input="/dev/stdin";
}


&read_story($input);

$numBody = &get_bodycount();
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);

#print STDERR "Paras : $numPara\n";

# 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 STDERR "\n $i no.of sent $numSent";

		#print STDERR "Para Number $i, Num Sentences $numSent\n";

		#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 STDERR "$sent";
		#	print "check--\n";
		#	&print_tree($sent);
			# Get the nodes of the sentence (words in our case)


			#Copy NP head
		#	&AddID($sent);
			&make_chunk_name($sent);
			&copy_np_head($sent,$head_home);
			#Copy NP VG head
			&copy_vg_head($sent,$head_home);

		}
	}
}

if($output eq "")
{
	&printstory();
}

if($output ne "")
{
	&printstory_file("$output");
}