【问题标题】:Text length exeeds maximum - How to increase it?文本长度超过最大值 - 如何增加它?
【发布时间】:2020-01-29 19:02:06
【问题描述】:
  import nltk
  from urllib import request
  from redditscore.tokenizer import CrazyTokenizer
  tokenizer = CrazyTokenizer()
  url = "http://www.site.uottawa.ca/~diana/csi5386/A1_2020/microblog2011.txt"
  response = request.urlopen(url)
  raw = response.read().decode('utf-8-sig')
  tokenizer.tokenize(raw)

我正在尝试对 url 中的数据进行标记,并且在运行时出现以下错误 ValueError: [E088] 长度为 5190319 的文本超过最大值 1000000。v2.x 解析器和 NER 模型在输入中每 100,000 个字符需要大约 1GB 的临时内存。这意味着长文本可能会导致内存分配错误。如果您不使用解析器或 NER,则增加 nlp.max_length 限制可能是安全的。限制是字符数,因此您可以通过检查len(text)来检查您的输入是否太长。

如何增加长度?

【问题讨论】:

  • 您无法理解错误消息的哪一部分?

标签: nlp tokenize


【解决方案1】:

CrazyTokenizer是专门为推文和在线cmets制作的,所以不应该出现很长的文本。我猜您的数据是每行一条推文,因此最好的方法是一次向您的标记器提供一行:

from urllib import request
from redditscore.tokenizer import CrazyTokenizer
tokenizer = CrazyTokenizer()
url = "http://www.site.uottawa.ca/~diana/csi5386/A1_2020/microblog2011.txt"
for line in request.urlopen(url):
    tokens = tokenizer.tokenize(line.decode('utf-8'))
    print(tokens)

【讨论】:

  • 这很有帮助
  • 如果能帮助您解决问题,请随时接受答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
  • 2019-10-21
  • 2011-04-25
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多