在 AWS Glue 中使用 NLTK

Using NLTK in AWS Glue

我正在努力让脚本正常工作,想知道是否有其他人成功地做到了这一点。 我正在使用 Glue 执行 spark 脚本,并尝试使用 NLTK 模块来分析一些文本。我已经能够通过将 NLTK 模块上传到 s3 并为 Glue 附加 python 模块配置引用该位置来导入它。但是,我使用的是 word_tokenize 方法,该方法要求将 punkt 库下载到 nltk_data 目录中。

我已按照此 () 将 punkt 文件复制到 Glue 中的 tmp 目录。但是,如果我在交互式粘合会话中查看 tmp 文件夹,我看不到这些文件。当我 运行 word_tokenize 方法时,我收到一条错误消息,指出无法在默认位置找到该包(/usr/nltk_data 的变体)。

我打算将所需文件移动到 s3 中的 nltk 包中,并尝试重新编写 nltk 分词器以直接加载文件而不是 nltk_data 位置。但是想先在这里检查是否有人能够使它正常工作,因为这似乎很常见。

我对 NLTK 的经验有限,但我认为 nltk.download() 会将 punkt 放在正确的位置。

import nltk

print('nltk.__version__', nltk.__version__)

nltk.download('punkt')

from nltk import word_tokenize

print(word_tokenize('Glue is good, but it has some rough edges'))

来自日志

nltk.__version__ 3.6.3
[nltk_data] Downloading package punkt to /home/spark/nltk_data...
[nltk_data] Unzipping tokenizers/punkt.zip.
['Glue', 'is', 'good', ',', 'but', 'it', 'has', 'some', 'rough', 'edges']