Длина текста превышает максимальную - как ее увеличить? - PullRequest
0 голосов
/ 29 января 2020
  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 для моделей требуется примерно 1 ГБ временной памяти на 100 000 символов на входе. Это означает, что длинные тексты могут вызвать ошибки выделения памяти. Если вы не используете парсер или NER, возможно, безопасно увеличить предел nlp.max_length. Ограничение - количество символов, поэтому вы можете проверить, не слишком ли длинны ваши входные данные, выбрав len(text).

Как увеличить длину?

1 Ответ

0 голосов
/ 29 января 2020

CrazyTokenizer специально создан для твитов и онлайн-комментариев, поэтому длинные тексты не должны появляться. Я полагаю, ваши данные - это один твит на строку, поэтому лучше всего подавать токенайзеру по одной строке:

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)
...