代码之家  ›  专栏  ›  技术社区  ›  cardamom

AWS EC2实例在移动NLTK数据位置后似乎自毁

  •  0
  • cardamom  · 技术社区  · 7 年前

    因此,要做到这一点,通常只需要以下代码:

    import nltk
    nltk.download()
    

    这打开了一种用户界面,您可以在其中选择要下载的语料库或自然语言处理项目,以及是否更改目录以将其存储在其他地方。默认情况下,它生成目录 nltk_data/ 在您的主目录中,并将其放在那里。

    所以我一开始认为问题是文件夹需要Apache用户的权限 www-data 但这不起作用。然后注意到在Apache错误日志中,它在4个文件夹中进行了查找,但没有找到任何内容-其中一个是 /var/www/nltk_data 它们都不是它实际所在的主目录。记不起其他3。。

    我看了几个关于Stackoverflow的类似问题( 1 , 2 3 4 )但决定做一些更简单的事情。以下方面也是如此:

    sudo mkdir /var/www/nltk_data
    sudo cp -r nltk_data/   /var/www/
    

    问题:

    1. 可以将nltk_数据目录复制到Apache正在查找的/var/www吗?我应该再这样做吗?
    2. 如果这种情况再次发生,从我的本地终端,有没有办法在“安全”模式下重新启动它,这样我就可以进入那里,并尝试撤消我所做的任何杀死它的事情?(而不仅仅是有效地删除整个内容)

    现在可能会有另一个尝试,重新创建实例,可能4MB的ram不够我的应用程序和Apache一起使用,想知道这些事情的答案或任何其他相关提示,以便我下一步必须执行此nltk步骤。。

    1 回复  |  直到 7 年前
        1
  •  0
  •   cardamom    7 年前

    在建立了一个新实例后,我很感激地解决了这个问题,下面是如何解决的:

    sudo ln -sT /home/ubuntu/nltk_data  /usr/share/nltk_data
    

    我很高兴现在一切正常。一直在看 top 系统监视新实例,该实例略大于自毁实例,并注意到它从未使用超过约40%的内存,但在主脚本运行时,CPU长时间处于最大化状态。也许这就是杀死较小实例的原因。。

    当我最初安装stopwords时,它显示在这里: LookupError(外观错误):

    **********************************************************************
      Resource 'corpora/stopwords' not found.  Please use the NLTK
      Downloader to obtain the resource:  >>> nltk.download()
      Searched in:
        - '/home/ubuntu/nltk_data'
        - '/usr/share/nltk_data'
        - '/usr/local/share/nltk_data'
        - '/usr/lib/nltk_data'
        - '/usr/local/lib/nltk_data'
    **********************************************************************
    

    ] [pid 19:tid 13] [client 77..]   Resource 'corpora/stopwords' not found.  Please use the NLTK
    [Sat Jul 08 16:35:19.694759 2017] [wsgi:error] [pid 19437:tid 1..] [client 77..]   Downloader to obtain the resource:  >>> nltk.download()
    [Sat Jul 08 16:35:19.694762 2017] [wsgi:error] [pid 19437:tid 1..] [client 77..]   Searched in:
    [Sat Jul 08 16:35:19.694764 2017] [wsgi:error] [pid 19437:tid 1..] [client 77..]     - '/var/www/nltk_data'
    [Sat Jul 08 16:35:19.694766 2017] [wsgi:error] [pid 19437:tid 1..] [client 77..]     - '/usr/share/nltk_data'
    [Sat Jul 08 16:35:19.694768 2017] [wsgi:error] [pid 19437:tid 1..] [client 77..]     - '/usr/local/share/nltk_data'
    [Sat Jul 08 16:35:19.694770 2017] [wsgi:error] [pid 19437:tid 1..] [client 77..]     - '/usr/lib/nltk_data'
    [Sat Jul 08 16:35:19.694772 2017] [wsgi:error] [pid 19437:tid 1..] [client 77..]     - '/usr/local/lib/nltk_data'
    

    所以我认为链接比复制更安全,并且使用它 /usr/share/