File size: 1,184 Bytes
158b61b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env perl
#
# This file is part of moses.  Its use is licensed under the GNU Lesser General
# Public License version 2.1 or, at your option, any later version.

use warnings;
use strict;
use Getopt::Long "GetOptions";

my $MORF_DIR;
my $MODEL;
my $TMP_DIR = ".";

GetOptions("morfessor-dir=s" => \$MORF_DIR,
           "model=s" => \$MODEL,
           "tmpdir=s" => \$TMP_DIR);

die("Must provide --model=s argument") if (!defined($MODEL));

my $cmd = "";

my $ESC_FILE = "$TMP_DIR/morf.esc.$$";

$cmd = "cat /dev/stdin | sed s/^#/HASH/ > $ESC_FILE";
print STDERR "Executing: $cmd\n";
`$cmd`;

$cmd = "";
if (defined($MORF_DIR)) {
  $cmd .= "PYTHONPATH=$MORF_DIR  $MORF_DIR/scripts/";
}

my $OUT_FILE = "$TMP_DIR/morf.out.$$";
$cmd .= "morfessor-segment "
       ."-L $MODEL "
       ."--output-format \"{analysis} \" "
       ."--output-format-separator \" \" "
       ."--output-newlines "
       ."$ESC_FILE "
       ."| sed 's/ \$//' | sed s/^HASH/#/ > $OUT_FILE";
print STDERR "Executing: $cmd\n";
`$cmd`;


open(FILE, $OUT_FILE) or die("Can't open file $OUT_FILE");
while (my $line = <FILE>) {
    print "$line";
}
close(FILE);

unlink($OUT_FILE);
unlink($ESC_FILE);