小编典典

POS标记性能降低。我可以做一些预热吗?

python

我正在使用NLTK在Web请求中对twitter的杂文进行POS标签。如您所知,Django会为每个请求实例化一个请求处理程序。

我注意到了这一点:对于一个请求(约200条推文),第一个推文需要〜18秒来标记,而所有后续推文都需要〜120毫秒来标记。我该怎么做才能加快流程?

我可以做一个“预热请求”,以便为每个请求加载模块数据吗?

class MyRequestHandler(BaseHandler):
    def read(self, request): #this runs for a GET request
        #...in a loop:
            tokens = nltk.word_tokenize( tweet)
            tagged = nltk.pos_tag( tokens)

阅读 131

收藏
2020-12-20

共1个答案

小编典典

最初的18秒是POS标记器从磁盘上解开到RAM中。如果要解决此问题,请在请求函数之外自行加载标记器。

import nltk.data, nltk.tag
tagger = nltk.data.load(nltk.tag._POS_TAGGER)

然后替换nltk.pos_tagtagger.tag。代价是应用程序启动现在将花费+18秒。

2020-12-20