gpt4 book ai didi

python - Lambda 不支持 NLTK 文件大小

转载 作者:太空狗 更新时间:2023-10-30 02:38:30 25 4
gpt4 key购买 nike

我正在编写一个 python 脚本来分析一段文本并以 JSON 格式返回数据。我正在使用 NLTK 来分析数据。基本上,这是我的流程:

创建端点(API 网关)-> 调用我的 lambda 函数 -> 返回所需数据的 JSON。

我写了我的脚本,部署到 lambda 但我遇到了这个问题:

Resource \u001b[93mpunkt\u001b[0m not found. Please use the NLTK Downloader to obtain the resource:

\u001b[31m>>> import nltk nltk.download('punkt') \u001b[0m
Searched in: - '/home/sbx_user1058/nltk_data' - '/usr/share/nltk_data' - '/usr/local/share/nltk_data' - '/usr/lib/nltk_data' - '/usr/local/lib/nltk_data' - '/var/lang/nltk_data' - '/var/lang/lib/nltk_data'

即使在下载“punkt”之后,我的脚本仍然出现同样的错误。我在这里尝试了解决方案:

Optimizing python script extracting and processing large data files

但问题是,nltk_data 文件夹很大,而 lambda 有大小限制。

我该如何解决这个问题?或者我还能在哪里使用我的脚本并仍然集成 API 调用?

我正在使用无服务器部署我的 python 脚本。

最佳答案

您可以做两件事:

  1. 错误似乎是路径未正确定义,是否可以将其设置为 env 变量?

sys.path.append(os.path.abspath('/var/task/nltk_data/')

或者这样

  1. 运行 nltk.download() 后,将其复制到 AWS lambda 应用程序的根文件夹中。 (将目录命名为“nltk_data”。)

  2. 在 lambda 函数仪表板(在 AWS 控制台中)中,添加 NLTK_DATA=./nltk_data 作为 key-var 环境变量。


  1. 减少 nltk 下载的大小,因为您不需要所有这些。

    1. 删除所有压缩文件,只保留需要的部分,例如:停用词。可以将其移至:save nltk_data/corpora/stopwords 并删除其余部分。

    2. 或者如果您需要分词器,请保存到 nltk_data/tokenizers/punkt。其中大部分可以单独下载:python -m nltk.downloader punkt,然后复制文件。

关于python - Lambda 不支持 NLTK 文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46846295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com