当前位置: 首页 > 面试题库 >

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

昝浩阔
2023-03-14
问题内容

我正在使用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)

问题答案:

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

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

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



 类似资料:
  • 问题内容: 如何找到包含自然语言工具包(nltk)使用的所有可能pos标记的列表? 问题答案: 这本书有一个注释,说明如何在标签集上寻求帮助,例如: 其他人可能相似。(注意:也许您首先需要为此从下载助手的“ 模型” 部分进行下载)

  • 我使用的是SonarQube版本-6.7.7(LTS)和Python language analyzer插件版本-。 成功地完成了声纳分析,然后我可以看到“重构这个功能,将其认知复杂度从17降低到允许的15”相关问题被标记为关键问题。 我觉得这个问题应该归入主要(或)次要类别,但不是关键问题。

  • 我正在使用一个嵌入式数据源(ApacheCommonsDBCP1.3),JDBC3DB2JCC,进行Spring批处理。用于BD2数据库和JDK1的jar。5.我知道DBCP2。x已经发布,但由于现有系统(JDK1.5),我现在无法升级。 数据库配置: 我注意到,如果将validationQuery属性与testOnBorrow、testOnReturn和testWhileIdle一起使用,则完成

  • 问题内容: 我试图找到可以传递给标签属性的所有可能值的列表。 我知道我也可以从.js文件中传递函数名,但是我只需要JSF附带的函数名即可。 我只知道单击鼠标悬停和键入,但是我敢肯定还有更多。只是不知道在哪里可以找到它们。 问题答案: 的属性 至少可以保存HTML J组件所生成的HTML元素的所有受支持的DOM事件。一种简单的查找方法是检查JSF标记库文档中感兴趣的JSF输入组件的所有属性,然后删除

  • 我想通过在动词前加一个“X”来标记动词在句子中的位置。我的函数采取以下步骤来实现这一点。 找到动词。我使用spaCy进行POS标记。SpaCy输出一个我称之为的POS标签列表,其中句子中的每个单词都表示为一个标签。 将句子也转换为列表。 确定POS列表中动词标签(例如)的索引。 在索引处插入所需的“X”标记到句子列表中。 第4步假设列表的长度与句子列表的长度相同。通常情况下是这样的,除非spaCy

  • 似乎在训练OpenNLP命名实体识别时,它只使用文字标记的流(数组),没有任何附加功能。 是否有办法为每个令牌提供额外的功能,以便将语音部分和预先存在的命名实体(其他类型)考虑在内?