За какое время я прочту это?
Время — наш ценнейший ресурс, но мы часто забываем, что он, к сожалению, не бесконечный. А ты задумывался, сколько времени ты тратишь на чтение разных текстов: статей, журналов, книг и прочего? Давай попробуем это выяснить!
Время rtime, которое тебе нужно для прочтения, скажем статьи в интернете, вычислить несложно, нужно лишь поделить количество всех слов в тексте words на значение твоей средней скорости чтения wpm: $$rtime = \frac {words} {wpm}$$ А как же узнать свою скорость чтения? Да очень просто: берешь какой-нибудь небольшой текст (только учти, что сложный текст ты скорее всего будешь читать медленнее, чем текст с большим количеством знакомых тебе слов) и секундомер. Включаешь секундомер, читаешь текст, через минуту останавливаешь секундомер, считаешь сколько слов ты успел прочитать. Это количество и будет твоей скоростью чтения в минуту. Обычная скорость чтения на русском языке у взрослого человека составляет 180–230 слов в минуту (https://education.yandex.ru/journal/kak-bistro-chitat). Для надежности можешь повторить этот эксперимент несколько раз. Существует и другой способ — оценить скорость онлайн, например: https://skorochtenie.online/test. Для английского языка: https://thereadtime.com/reading-speed-test/, https://wpmtest.org/speed-reading-test/. Теперь, когда ты уже знаешь свою среднюю скорость чтения, ты легко сможешь вычислять необходимое время для чтения текстов. Подобные несложные расчеты можно выполнить с помощью калькулятора или в электронных таблицах, но, как мне кажется, интереснее сделать это на питоне (на языке программирования). Нет его на компьютере? Не расстраивайся! Его можно просто в браузере открыть https://www.online-python.com или загрузить в смартфон на андроиде https://www.qpython.org. Зная сколько слов в определенном тексте, найдем время:
import math
words = 120566
print(f'В тексте {words:_d} слов.')
wpm = 250
rtime = math.ceil(words / wpm)
hours = rtime // 60
minutes = rtime % 60
if hours == 0:
print(f'Время, необходимое для прочтения текста {minutes} минут(ы).')
else:
print(f'Время, необходимое для прочтения текста {hours} час(а, ов) и {minutes} минут(ы).')
Здесь и далее, значение времени, для приятного и понятного восприятия, преобразуется в часы и минуты. Если количество слов в тексте тебе не известно, но у тебя есть текстовый файл, тогда можно поступить вот так:
import math
filename = 'my_favorite.txt'
with open(filename, 'r', encoding='utf-8') as f:
text = f.read()
words = len(text.split())
print(f'В тексте {words:_d} слов.')
wpm = 250
rtime = math.ceil(words / wpm)
hours = rtime // 60
minutes = rtime % 60
if hours == 0:
print(f'Время, необходимое для прочтения текста {minutes} минут(ы).')
else:
print(f'Время, необходимое для прочтения текста {hours} час(а, ов) и {minutes} минут(ы).')
В линукс похожий результат ты также можешь получить использую awk. Следующий текст помести в файл и сохрани его с именем reading_time_calc.awk:
function ceil(x)
{
return int(x) + (x > int(x))
}
{
words += NF
}
END {
printf "В тексте %d слов.\n", words
wpm = 250;
rtime = ceil(words / wpm);
hours = int(rtime / 60);
minutes = rtime % 60;
if (hours == 0)
printf "Время, необходимое для прочтения текста %d минут(ы).", minutes
else
printf "Время, необходимое для прочтения текста %d час(а, ов) и %d минут(ы).", hours, minutes;
printf "\n"
}
Чтобы выполнить этот скрипт, просто набери в терминале:
awk -f reading_time_calc.awk my_favorite.txt
В бумажных журнале или книге можно подсчитать вручную количество слов в одной строке произвольной страницы, затем умножить на количество ее строк, и потом еще умножить на количество всех страниц:
Немного изменим наш код:
import math
words_in_line = 8
lines = 34
words_on_page = words_in_line * lines
pages = 382
words = words_on_page * pages
print(f'В тексте {words:_d} слов.')
wpm = 250
rtime = math.ceil(words / wpm)
hours = rtime // 60
minutes = rtime % 60
if hours == 0:
print(f'Время, необходимое для прочтения текста {minutes} минут(ы).')
else:
print(f'Время, необходимое для прочтения текста {hours} час(а, ов) и {minutes} минут(ы).')
А если тебе лень считать это вручную (пусть этим занимается машина — она ведь железная, а ты — нет), можно воспользоваться программой Tesseract OCR, предварительно установив ее на свой компьютер с виндовс (https://pypi.org/project/pytesseract/, https://github.com/tesseract-ocr/tesseract, https://codetoprosper.com/tesseract-ocr-for-windows). Ты можешь отсканировать произвольную страницу и с помощью данной программы распознать ее. Чтобы программа умела распознавать русские тексты, не забудь скачать с https://github.com/tesseract-ocr/tessdata файл rus.traineddata и положить его в папку tessdata. Вот код:
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Tesseract-OCR\tesseract.exe'
file_name = 'in.jpg'
img = Image.open(file_name)
text = pytesseract.image_to_string(img, lang='rus').rstrip('\n\r\x0c')
with open('out.txt', 'w', encoding='utf-8') as f:
f.write(text)
Если опять же у тебя линукс, чтобы установить Tesseract OCR выполни в терминале следующие команды:
sudo apt update
sudo apt install tesseract-ocr
Этого достаточно чтобы распознать текст на английском языке, но если наша цель — распознавание текстов на русском языке, то потребуется поставить еще один пакет:
sudo apt install tesseract-ocr-rus
Не хочешь устанавливать Tesseract OCR на компьютер? Можешь перейти на https://img2txt.com/ru, и проделать похожие действия в интернете. По правде говоря, качество распознавания не всегда получается удовлетворительным, поэтому тебе, возможно, придется немного поправить текст в полученном файле — убрать ненужные символы, переносы и т. п. После этого количество слов в файле можно подсчитать по ранее предложенному алгоритму с их считыванием из этого файла. Для журнала или книги просто умножь количество слов одной страницы на количество всех страниц:
import math
words_on_page = 275
pages = 382
words = words_on_page * pages
print(f'В тексте {words:_d} слов.')
wpm = 250
rtime = math.ceil(words / wpm)
hours = rtime // 60
minutes = rtime % 60
if hours == 0:
print(f'Время, необходимое для прочтения текста {minutes} минут(ы).')
else:
print(f'Время, необходимое для прочтения текста {hours} час(а, ов) и {minutes} минут(ы).')
Применяя эти нехитрые приемы, ты сможешь оценить время, которое потребуется тебе для прочтения любой статьи, журнала или книги. Но не стоит торопиться, читай вдумчиво. Кроме того, старайся всегда употреблять «свежую и качественно приготовленную пищу для ума», не трать свое драгоценное время на бесполезный «фастфуд».