Lingua-NATools

 view release on metacpan or  search on metacpan

cgis/nat-dict.cgi  view on Meta::CPAN


function go(l,c) {
  if (parseInt(navigator.appVersion)>=4)
    if (navigator.userAgent.indexOf("MSIE")>0) { //IE 4+
      var sel=document.selection.createRange();
      sel.expand("word");
      window.location="nat-dict.cgi?corpus=" + c + "&" + l + "=" + escape(sel.text)
    } else // NS4+
      window.location="nat-dict.cgi?corpus=" + c + "&" + l + "=" + escape(document.getSelection())
}

function help() {
   window.open('nat-dict.cgi?HELP=1','NAT-QI Quick Help',
               'menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no');
}
EOS




print Lingua::NATools::CGI::my_header(jscript => $JSCRIPT);

print <<'EOH';
  <style>
   div.right { text-align: right }
   td.color  { font-weight: bold; text-align: right; width: 10%; border: solid 1px #000; padding: 2px }
   td.oc     { text-align: right; width: 10%; border: solid 1px #000; padding: 2px; }
   a         { font-weight: bold; text-decoration: none; }
   a:visited { color: #009; }
   a:hover   { text-decoration: underline; }
   .body { margin-left: 10%; margin-right: 10%; }
   .form { background-color: #efe;
           margin-bottom: 10px;
           margin-left: 10%;
           margin-right: 10%;
           border: solid 1px #000;
           text-align: center;
   }
  </style>
EOH


if (param("HELP")) {
  print Lingua::NATools::CGI::close_window();
  print_help();
  print Lingua::NATools::CGI::my_footer();
  exit;
}



print div({-class=>"hlpbt",
           -onclick=>"help()"}, "Help");

print h1("NATools Probabilistic Dictionaries Browsing Interface");

print start_form({-class=>"main"});;
print "<table>";
print Tr(td({-rowspan=>'2'},submit("Search")),
	 td({-rowspan=>'2'},"&nbsp;&nbsp;&nbsp"),
	 td({-style=>"text-align: left"},"corpus",popup_menu(-onchange=>"changeLanguages();",
                                                             -name=>'crp',
                                                             -id => 'crp',
									      -default => $name,
									      -values=>[keys %$corpora]) ),
	 td({-rowspan=>'2'},"&nbsp;&nbsp;&nbsp"),
       td(["search ".span({id=>"source"}, $corpora->{$name}{source})." language: ", textfield("l1")]));

print Tr(td({-align=>'left'},label(checkbox(-name=>'compact', -checked=>1,
					    -value=>'ON', -label=>' compact mode'))),
        td([
            "search ".span({id=>"target"}, $corpora->{$name}{target})." language: ",
	     textfield("l2"),
	    ]));


print "</table>";
print end_form;

if ($crp) {
  if (param("compact")) {
    if ((param("l1") || param("l2"))) {
      my $results;
      my $word;
      my $dir;

      if (param("l1")) {
	$dir = "~>";
	$word = param("l1");
      }
      if (param("l2")) {
	$word = param("l2");
	$dir = "<~";
      }

      $word = lc($word);
      $results = $server->ptd({crp=>$crp,direction => $dir},$word);

      # FIXME
      exit if (!$results);

      print h1($name);
      print div({-style=>"text-align: center"},
                a({-style=>"font-size: small;", -href=>"nat-about.cgi?corpus=$crp"},"meta-information")).br;

      print h2({-style=>"text-align: center"},"$word ($results->[0])");
      print div({-style=>"text-align: center"},
                "[", a({-href=>"nat-ngrams.cgi?corpus=$crp&".(($dir eq "~>")?"l1":"l2")."=$word"},"n-grams"), "]");
      print "<div style=\"text-align: center\"><table class='results' cellspacing='0'>\n";

      print Tr(th({-class=>'first'},"Level 1"), th({colspan => 8},"Level 2"));
      for (sort {$results->[1]{$b} <=> $results->[1]{$a}} keys %{$results->[1]}) {
	my $od = $dir eq "~>"?"<~":"~>";
	my $l1 = $dir eq "~>"?"l2":"l1";
	my $l2 = $l1  eq "l1"?"l2":"l1";
	my $or = $server->ptd({crp=>$crp,direction => $od}, $_);

	print "<tr>\n";
	print td({style=>'background-color: #eeeeee; border-bottom: dotted 1px #999999; border-right: dotted 1px #999999'},
		 [table(Tr(td(small(sprintf("%.2f %%",
					    defined($results->[1]{$_})?100*$results->[1]{$_}:0)))),



( run in 1.251 second using v1.01-cache-2.11-cpan-364913b4093 )