我想用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)
但是我收到此错误:
系统找不到指定的路径
我试着用nltk pos标记器标记一个单词:
word = "going"
pos = nltk.pos_tag(word)
print pos
Run Code Online (Sandbox Code Playgroud)
但输出是这样的:
[('g', 'NN'), ('o', 'VBD'), ('i', 'PRP'), ('n', 'VBP'), ('g', 'JJ')]
Run Code Online (Sandbox Code Playgroud)
它标记每个字母而不仅仅是一个字.
我该怎么做才能让它标记出来?
我有一些Python代码完全符合我的要求,但我也需要在Perl中使用类似的东西.
这是我的Python代码:
pool = multiprocessing.Pool()
for item in list:
pool.apply_async(myFunction, args=(item,))
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)
此代码在其自己的进程而不是线程中运行每个函数.同时运行的最大进程数等于逻辑核的数量.
我正在尝试从Python运行Perl脚本.我知道,如果运行终端Perl脚本,我希望Perl脚本的输出要写入的文件,我需要补充> results.txt后perl myCode.pl.这在终端中工作正常,但是当我尝试在Python中执行此操作时它不起作用.
这个代码:
import shlex
import subprocess
args_str = "perl myCode.pl > results.txt"
args = shlex.split(args_str)
subprocess.call(args)
Run Code Online (Sandbox Code Playgroud)
尽管> results.txt它没有输出到该文件但它确实输出到命令行.