【问题标题】:How to add NLTK corpora to a google cloud function?如何将 NLTK 语料库添加到谷歌云功能?
【发布时间】:2019-10-28 09:41:36
【问题描述】:

我正在尝试运行涉及使用 NLTK 的 Google 云功能。我添加了 文本块 == 0.15.3 nltk == 3.4.3 到requirement.txt。但是每次我运行脚本时它都会崩溃,并且日志显示“请使用 NLTK 下载器获取资源:”。

我知道我们需要下载 NLTK 语料库才能在本地系统中运行脚本。但不确定如何在 Google Cloud Functions 中下载它。任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • Akhil 你能分享一下你是如何解决这个问题的吗?我面临同样的问题。正确答案似乎没有抓住您面临的问题,因为您无法在云功能上以交互方式下载任何内容。
  • Mkey,因为我只需要使用文本 blob,我只需要下载 2 个语料库而不是整个语料库。所以我在脚本开头特别提到了 nltk.download('brown') 。最初它会减慢我的脚本速度(比如冷启动),但我能够使用它。另一种选择是将其部署在基本计算引擎而不是云功能中。希望这会有所帮助
  • 我居然解决了。答案是,至少在我的情况下,您需要像 nltk.download("twitter_samples", download_dir = "/nltk_data") 一样下载它;)
  • 很高兴知道这一点。如果可能,请将其添加为答案,以帮助其他面临相同问题的开发人员。

标签: python-3.x google-cloud-platform google-cloud-functions google-cloud-storage nltk


【解决方案1】:

这就是我通过 Travis 管道获取 nltk_data 的方式:

    # To install the core NLTK package
    pip install nltk   

    # Installs only the extra packages you need. You could also use 'all' instead. 
    python -m nltk.downloader punkt averaged_perceptron_tagger wordnet    

然后你可以将文件夹复制到你的函数文件夹中,然后将其压缩:

    mkdir -p function/nltk_data/
    cp -a ~/nltk_data/. function/nltk_data/
    cp -a path/to/your/code/. function/

请务必设置 NLTK_DATA 环境变量。因为我的文件夹结构是

    - nltk_data/
    - main.py
    - requirements.txt

我只需要设置NLTK_DATA=nltk_data,然后python就可以找到文件了。

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    有两种方法可以为用 Python 编写的云函数指定依赖项:使用 pip 包管理器的 requirements.txt 文件或将本地依赖项与函数一起打包。 There你可以找到说明。 另请查看this 链接以获取可能的解决方案。

    【讨论】:

    • 感谢您的建议。我尝试了这种方法,由于运行时间较长,我认为可能有另一种方法。非常感谢。
    猜你喜欢
    • 2019-07-13
    • 1970-01-01
    • 2019-02-06
    • 2019-05-12
    • 2021-01-25
    • 2017-11-14
    • 2020-05-18
    • 2016-10-15
    • 2019-12-08
    相关资源
    最近更新 更多