#!/usr/bin/perl use strict; use Lingua::LinkParser; ## Demonstrates a parse with extended options. my $parser = new Lingua::LinkParser; while (1) { print "Enter a sentence: "; my $text = ; $parser->opts( 'max_sentence_length' => 70, 'panic_mode' => 1, 'max_parse_time' => 30, 'linkage_limit' => 1000, 'short_length' => 10, 'disjunct_cost' => 2, 'min_null_count' => 0, 'max_null_count' => 0, ); print "short: ", $parser->opts('short_length'), "\n"; print "max_time: ", $parser->opts('max_parse_time'), "\n"; my $sentence = $parser->create_sentence($text); print "linkages found: ", $sentence->num_linkages, "\n"; if ($sentence->num_linkages == 0) { $parser->opts('min_null_count' => 1, 'max_null_count' => $sentence->length); print "length: ", $sentence->length, "\n"; $sentence = $parser->create_sentence($text); print "null linkages found: ", $sentence->num_linkages, "\n"; if ($sentence->num_linkages == 0) { $parser->opts('disjunct_cost' => 3, 'min_null_count' => 1, 'max_null_count' => 30, 'max_parse_time' => 60, 'islands_ok' => 1, 'short_length' => 6, 'all_short_connectors' => 1, 'linkage_limit' => 100 ); my $sentence = $parser->create_sentence($text); print "panic linkages found: ", $sentence->num_linkages, "\n"; } } for my $i (1 .. $sentence->num_linkages) { my $linkage = $sentence->linkage($i); $linkage->compute_union; my $sublinkage = $linkage->sublinkage($linkage->num_sublinkages); print $parser->get_diagram($sublinkage), "\n"; } }