首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django中维护全局资源

在Django中维护全局资源
EN

Stack Overflow用户
提问于 2015-06-11 04:16:00
回答 1查看 106关注 0票数 0

我正在写一个涉及一些自然语言处理的原型系统。所以我使用的是nltk中的Stanford解析器。

因此,在view函数中,我将调用一个函数,该函数将加载解析器,并解析句子。但是重复加载这个解析器完全是浪费资源和时间。有没有办法在全球范围内维护解析器,并在我想要的任何时候使用它。

代码语言:javascript
复制
os.environ['STANFORD_PARSER'] = os.path.join(
    os.path.expanduser('~'), 'stanford-parser/stanford-parser.jar')
os.environ['STANFORD_MODELS'] = os.path.join(
    os.path.expanduser('~'), 'stanford-parser/stanford-parser-3.5.2-models.jar')
parser = nltk.parse.stanford.StanfordParser(
    model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")
parsed = parser.parse(sentence_which_differs_from_time_to_time)
EN

回答 1

Stack Overflow用户

发布于 2015-06-11 06:29:49

将解析器创建代码放在模块级别(例如,在views.py中),而不是放在函数内部。它将在第一次导入模块时调用一次。

当然,根据您的服务器的工作方式,可能会有多个实例在运行,因此代码将在每次启动新进程时运行。如果启动时间是一个真正需要考虑的问题,那么您可能希望考虑在单独的进程中运行它并使用IPC。

但通常在模块导入时运行代码就足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30766448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档