mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-12-26 05:14:36 +03:00
42 lines
995 B
Perl
Executable File
42 lines
995 B
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
#
|
|
# Sample client for mosesserver, illustrating allignment info and
|
|
# report all factors
|
|
#
|
|
use strict;
|
|
use Encode;
|
|
use XMLRPC::Lite;
|
|
use utf8;
|
|
|
|
binmode(STDIN, ":utf8");
|
|
|
|
|
|
my $url = "http://localhost:8080/RPC2";
|
|
my $proxy = XMLRPC::Lite->proxy($url);
|
|
|
|
my $text;
|
|
while ($text = <STDIN>) {
|
|
#for (my $i = 0; $i < scalar(@doc); ++$i) {
|
|
# my $text = $doc[$i];
|
|
|
|
# Work-around for XMLRPC::Lite bug
|
|
#my $encoded = SOAP::Data->type(string => Encode::encode("utf8",$text));
|
|
my $encoded = SOAP::Data->type(string => $text);
|
|
|
|
my %param = ("text" => $encoded, "align" => "true", "report-all-factors" => "true");
|
|
my $result = $proxy->call("translate",\%param)->result;
|
|
print $result->{'text'} . "\n";
|
|
if ($result->{'align'}) {
|
|
print "Phrase alignments: \n";
|
|
my $aligns = $result->{'align'};
|
|
foreach my $align (@$aligns) {
|
|
print $align->{'tgt-start'} . "," . $align->{'src-start'} . ","
|
|
. $align->{'src-end'} . "\n";
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|