`` **我在生产中遇到这个错误,我在本地没有遇到它。 **
[ERROR] 2023-08-07T16:26:11.466Z fb1bc7be-4061-455a-97b5-bb15babb27e5
/analyze_language [POST] 上的异常 回溯(最近一次调用最后一次):
文件“/var/task/flask/app.py”,第 2190 行,wsgi_app
response = self.full_dispatch_request()
文件“/var/task/flask/app.py”,第 1486 行,在 full_dispatch_request 中
rv = self.handle_user_exception(e)
文件“/var/task/flask_cors/extension.py”,第 176 行,在wrapped_function中
return cors_after_request(app.make_response(f(*args, **kwargs)))
文件“/var/task/flask/app.py”,第 1484 行,在 full_dispatch_request 中
rv = self.dispatch_request()
文件“/var/task/flask/app.py”,第 1469 行,dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
文件“./api/index.py”,第 96 行,analyze_language
tenses_and_persons_detected = detect_tenses_and_persons(input_paragraph)
文件“./api/index.py”,第 49 行,在 detector_tenses_and_persons 中
tokens = word_tokenize(paragraph)
文件“/var/task/nltk/tokenize/init.py”,第 129 行,word_tokenize
sentences = [text] if preserve_line else sent_tokenize(text, language)
文件“/var/task/nltk/tokenize/init.py”,第 106 行,sent_tokenize
tokenizer = load(f"tokenizers/punkt/{language}.pickle")
文件“/var/task/nltk/data.py”,第 750 行,加载中
opened_resource = _open(resource_url)
文件“/var/task/nltk/data.py”,第 876 行,在 _open 中
return find(path_, path + [""]).open()
文件“/var/task/nltk/data.py”,第 583 行,在 find 中
raise LookupError(resource_not_found)
查找错误:
资源 [93mpunkt[0m 未找到。
请使用NLTK下载器获取资源:
[31m>>> 导入nltk
nltk.download('punkt')
尝试加载[93mtokenizers/punkt/PY3/english.pickle[0m
搜索于:
- '/home/sbx_user1051/nltk_data'
- '/var/lang/nltk_data'
- '/var/lang/share/nltk_data'
- '/var/lang/lib/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
if __name__ == "__main__":
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
nlp = spacy.load('en_core_web_sm')
app.run(debug=True)
`
您的错误是linux服务器无法找到punkt模块。
我不确定这是否有帮助,但还是尝试一下:
nltk.download('punkt')
后,检查punkt模块是否确实下载:import nltk
if 'punkt' in nltk.data.find('tokenizers'):
print("The 'punkt' tokenizer is available.")
else:
print("The 'punkt' tokenizer is not available.")
- '/home/sbx_user1051/nltk_data'
- '/var/lang/nltk_data'
- '/var/lang/share/nltk_data'
- '/var/lang/lib/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
如果没有,请尝试将其复制到其中之一,最好是您的用户
sbx_user1051
的目录。因为读取该文件可能存在权限问题。
punkt
像这些并尝试提到的一些方法:import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')