|
|
|
|
|
|
|
|
|
|
|
use warnings; |
|
use strict; |
|
|
|
my ($source_file,$target_file,$alignment_factors) = @ARGV; |
|
|
|
|
|
my (@SOURCE_FACTOR,@TARGET_FACTOR); |
|
if (defined($alignment_factors)) { |
|
my ($source,$target) = split(/\-/,$alignment_factors); |
|
@SOURCE_FACTOR = split(/,/,$source); |
|
@TARGET_FACTOR = split(/,/,$target); |
|
} |
|
|
|
|
|
open(SOURCE,$source_file); |
|
open(TARGET,$target_file); |
|
while(my $source = <SOURCE>) { |
|
my $target = <TARGET>; |
|
chop($source); |
|
chop($target); |
|
|
|
|
|
foreach my $line (\$source,\$target) { |
|
$$line =~ s/\<[^\>]+\>/ /g; |
|
$$line =~ s/\s+/ /g; |
|
$$line =~ s/^ //; |
|
$$line =~ s/ $//; |
|
} |
|
|
|
|
|
if (!defined($alignment_factors)) { |
|
print "$source ||| $target\n"; |
|
next; |
|
} |
|
|
|
foreach (split(/\s+/,$source)) { |
|
my @SOURCE_WORD = split(/\|/); |
|
for(my $i=0; $i<scalar(@SOURCE_FACTOR); $i++) { |
|
print "|" if $i; |
|
print "$SOURCE_WORD[$SOURCE_FACTOR[$i]]"; |
|
} |
|
print " "; |
|
} |
|
print "|||"; |
|
foreach (split(/\s+/,$target)) { |
|
print " "; |
|
my @TARGET_WORD = split(/\|/); |
|
for(my $i=0; $i<scalar(@TARGET_FACTOR); $i++) { |
|
print "|" if $i; |
|
print "$TARGET_WORD[$TARGET_FACTOR[$i]]"; |
|
} |
|
} |
|
print "\n"; |
|
} |
|
close(TARGET); |
|
close(SOURCE); |
|
|
|
|