Luc*_*ike 1 python nltk google-cloud-platform google-cloud-functions
有什么方法可以将Python的nltk.download('punkt')导入Google Cloud Functions吗?我发现手动将语句添加到 main.py 中的代码块中会显着减慢我的函数处理速度,因为每次运行时都必须下载 punkt。有没有什么方法可以通过以其他方式调用 punkt 来消除这种情况?
编辑#1:-我编辑了我的代码和程序结构以匹配巴拉克的建议,但我不断收到相同的错误:
Error: function terminated. Recommended action: inspect logs for termination reason. Details:
**********************************************************************
Resource [93mpunkt[0m not found.
Please use the NLTK Downloader to obtain the resource:
[31m>>> import nltk
>>> nltk.download('punkt')
[0m
For more information see: https://www.nltk.org/data.html
Attempted to load [93mtokenizers/punkt/PY3/english.pickle[0m
Searched in:
- '/tmp/nltk_data'
- '/env/nltk_data'
- '/env/share/nltk_data'
- '/env/lib/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- ''
**********************************************************************
Run Code Online (Sandbox Code Playgroud)
小智 5
将 nltk 添加到您的requirements.txt;
在本地计算机上安装 nltk(如果尚未安装):
pip install nltk
Run Code Online (Sandbox Code Playgroud)
然后下载 nltk_data 文件。就我的分词器而言,我需要Punkt分词器模块:
python -m nltk.downloader punkt
Run Code Online (Sandbox Code Playgroud)
将它们(它们位于 Roaming/ for Windows 中)复制到您的根文件夹(即与您的函数一起):
cp -r C:\Users\<USER>\AppData\Roaming\nltk_data\* YOUR\ROOT\FOLDER\nltk_data\
Run Code Online (Sandbox Code Playgroud)
在主要 python 函数的开头,或者在使用 nltk 之前,添加以下代码 - 基本上,它获取nltk_data 所在的路径,并告诉nltk查看此文件夹内部:
root = os.path.dirname(os.path.abspath(__file__))
download_dir = os.path.join(root, 'nltk_data')
os.chdir(download_dir)
nltk.data.path.append(download_dir)
Run Code Online (Sandbox Code Playgroud)
最后,提交/推送后(如果您使用的是 Cloud Source Repos),(重新)部署您的函数!
| 归档时间: |
|
| 查看次数: |
3651 次 |
| 最近记录: |