如何解决斯坦福自然语言处理器的 Perl 模块的"connection refused"错误



我正在学习Perl中的一些NLP模块。我已经安装了Text::NLP::Stanford::EntityExtract(由于以下引用的refused connection错误,我不得不强制安装(。

我还下载并安装了所需的Java文件,并运行了以下命令:

java -server -mx400m -cp stanford-ner.jar edu.stanford.nlp.ie.NERServer -loadClassifier classifiers/english.all.3class.distsim.crf.ser.gz 1234

回复是:

Loading classifier from classifiers/english.all.3class.distsim.crf.ser.gz ... done [1.1 sec].

所以它似乎起了作用。

但是,当我直接从POD运行模块的代码时:

#!/usr/bin/env perl -w
use strict;
use Text::NLP::Stanford::EntityExtract;
my $ner = Text::NLP::Stanford::EntityExtract->new;
my $server = $ner->server;
my @txt = ("Some textnn", "Treated as \n\n delimited paragraphs");
my @tagged_text = $ner->get_entities(@txt);
my $entities = $ner->entities_list($txt[0]); # rather complicated
# @AOA based data
# structure for further
# processing

我得到以下错误:

Connection refused at /Users/me/perl5/perlbrew/perls/perl-5.24.1/lib/site_perl/5.24.4/Text/NLP/Stanford/EntityExtract.pm line 84.

不确定我能做些什么来解决这个问题。当我运行lsof -n -i:1234 | grep LISTEN时,我没有得到任何响应,所以看起来服务器没有运行。

我进行了端口扫描,结果发现服务在我的机器上运行的是端口4465,而不是端口1234。README.txt文件已过期,或者README.txt中命令末尾的1234不是我想象的端口。

最新更新