Python to Perl - 计算术语相关性

时间:2018-04-19 15:42:10

标签: python-2.7 perl

我试图找到一种方法来计算Python中两个术语的相关性,但我只能找到计算相似度的方法。

我找到了 a Perl script似乎在做这项工作:

     use WordNet::Similarity::hso;

     use WordNet::QueryData;

     my $wn = WordNet::QueryData->new();

     my $object = WordNet::Similarity::hso->new($wn);

     my $value = $object->getRelatedness("car#n#1", "bus#n#2");

     ($error, $errorString) = $object->getError();

     die "$errorString\n" if($error);

     print "car (sense 1) <-> bus (sense 2) = $value\n";

我尝试围绕Perl脚本编写Python包装器:

import subprocess

set1 = 'church#n#1'
set2 = 'temple#n#1'
cmd = ['perl', './sample.pl', set1, set2]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)


for line in proc.stdout:
    if 'Similarity' in line:
        similarity = int(line.split("=")[-1])
print similarity

我已经从二进制文件中安装了perl v.5.26.1,但是当我运行我的Python脚本时,我得到了。

Traceback (most recent call last):
File "asdf/sshso.py", line 6, in <module> proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
File "C:\Python27\lib\subprocess.py", line 390, in __init__ errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 640, in _execute_child startupinfo)
WindowsError: [Error 2] Das System kann die angegebene Datei nicht finden

我知道我的Python / Perl组合有错误,无法正常工作。

我可以理解,因为Perl代码看起来并不复杂。我正在寻找一种方法将我的Python单词解析为Perl脚本并获取我计算的相关性值

我必须为44,000个项目执行此操作,因此性能非常重要。

0 个答案:

没有答案