在AWS Lambda中使用NLTK語料庫(特別是停用詞)時遇到困難。我知道需要下載語料庫,並使用NLTK.download('stopwords')來完成,並將它們包含在用於上載nltk_data/corpora/stopwords中的lambda模塊的zip文件中。在Python中使用帶有AWS Lambda函數的NLTK語料庫
在代碼中的用法如下:
from nltk.corpus import stopwords
stopwords = stopwords.words('english')
nltk.data.path.append("/nltk_data")
這從拉姆達日誌輸出
module initialization error:
**********************************************************************
Resource u'corpora/stopwords' not found. Please use the NLTK
Downloader to obtain the resource: >>> nltk.download()
Searched in:
- '/home/sbx_user1062/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- '/nltk_data'
**********************************************************************
我還試圖直接通過包括
加載數據返回以下錯誤nltk.data.load("/nltk_data/corpora/stopwords/english")
這產生了一個不同的錯誤,低於
module initialization error: Could not determine format for file:///stopwords/english based on its file
extension; use the "format" argument to specify the format explicitly.
它有可能從Lambda zip加載數據時出現問題,需要它存儲在外部..說在S3上,但這似乎有點奇怪。
任何想法什麼格式
有沒有人知道我可能會出錯?
試'停用詞= nltk.corpus.stopwords.words(「英語」)'和在代碼塊,它看起來像它看起來在corpora.stopwords的'nltk_data'文件夾,但中間/不見了。這可能只是一個目錄地址問題。不是100%確定這會起作用,因爲我看不到您的系統或文件,但它看起來不錯。 – sconfluentus
使用完整路徑,例如'/ home/sbx_user1062/nltk_data'並嘗試:http://stackoverflow.com/a/22987374/610569 – alvas
如果沒有任何效果,請參閱'magically_find_nltk_data()'from http://stackoverflow.com/questions/36382937/nltk- doesnt-add-nltk-data-to-search-path/36383314#36383314 – alvas