4 perl
我想用ROUGE分析我的摘要.到目前为止,我已经编写了一个perl脚本来在命令行上运行ROUGE,这是我到目前为止所做的:
#!/usr/bin/perl
use warnings;
use Cwd;
$curdir=getcwd;
$ROUGE="/ROUGE-1.5.5.pl";
chdir("sample-test");
$cmd="$ROUGE -e /data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a DUC2002ROUGE.in.26.spl.xm> /sample-output/salam.out";
print $cmd,"\n";
system($cmd);
chdir($curdir);
Run Code Online (Sandbox Code Playgroud)
但是我收到此错误:
系统找不到指定的路径
问题是,这/ROUGE-1.5.5.pl是一个绝对文件路径,表明该文件位于根目录中.你说它与运行的Perl程序位于同一个目录中,所以你需要./ROUGE-1.5.5.pl或者只是ROUGE-1.5.5.pl
这个程序修复了问题并插入了几个漏洞.我使用abs_path函数from Cwd将程序,数据,输入和输出名称转换为绝对路径; 执行隐式检查文件存在,并让我避免chdir这只是混淆事情.我还添加了一个粗略的诊断,system以提供一些暗示它失败的原因
#!/usr/bin/perl
use strict;
use warnings 'all';
use Cwd qw/ getcwd abs_path /;
my $ROUGE = abs_path('ROUGE-1.5.5.pl');
my $data = abs_path('data');
my $input = abs_path('sample-test/DUC2002ROUGE.in.26.spl.xm');
my $output = abs_path('sample-output/salam.out');
my $cmd = qq{"$ROUGE" -e "$data" -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a "$input" > "$output"};
print $cmd, "\n";
system($cmd) == 0 or die qq{system() failed: $?};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |