如何在Google Colab上运行Standford Corenlp服务器?

时间:2019-12-05 10:54:18

标签: stanford-nlp google-colaboratory

我想使用stanford corenlp来获取句子的依赖解析器。为了在python中使用stanford corenlp,我们需要在Google Colab中执行以下步骤:

  1. 安装Java
  

导入操作系统

     

!apt-get install openjdk-8-jdk-headless -qq> / dev / null

     

os.environ [“ JAVA_HOME”] =“ / usr / lib / jvm / java-8-openjdk-amd64”

  1. 下载stanford-corenlp-full-2018-10-05并将其解压缩。
  

!wget http://nlp.stanford.edu/software/stanford-corenlp-full-2018-10-05.zip

     

!unzip stanford-corenlp-full-2018-10-05.zip

  1. 使用“ cd”命令将目录更改为stanford-corenlp-full-2018-10-05文件夹。
  2. 在当前目录中运行此命令:
  

“ java -mx4g -cp” *“ edu.stanford.nlp.pipeline.StanfordCoreNLPServer   端口9001-超时75000“

之后,stanford-corenlp服务器将在'http://localhost:9001'上运行

当我尝试遵循帖子@上的答案时 how to run stanford corenlp server on google colab? 我最终得到响应:


端口9001已关闭,正在重试...

端口9001已关闭,正在重试...

端口9001已关闭,正在重试...

端口9001已关闭,正在重试...


在其他两个Google colab .ipynb之间可以连接的其他技术或教程吗?

1 个答案:

答案 0 :(得分:0)

从张量板手册中取出一页。

在后台运行standford核心

LOGDIR = '/tmp/log'
get_ipython().system_raw(
    'java -mx8g -cp "*" 
    edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9001 ->timeout 60000 &'
    .format(LOGDIR)
)

使用ngrok将流量隧道传输到本地主机

! wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
! unzip ngrok-stable-linux-amd64.zip
get_ipython().system_raw('./ngrok http 9001 &')

检索公共网址

! curl -s http://localhost:4040/api/tunnels | python3 -c \
    "import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"

从上方获取返回的网址,并更新PyCoreNLP.py default_url

URL_DEFAULT =“ http://localhost:9000” <-在此处替换上面的URL 保存文件... 然后在Google Colab本地在后台运行服务器