Мне удалось получить данные, использованные в следующем анализе, благодаря любезности Ноа, создателя и сопровождающего TypeRacer Data, стороннего информационного центра для TypeRacer.

Вы когда-нибудь задумывались, что влияет на вашу скорость набора текста? Что ж, существуют различные ресурсы, которые могут помочь вам отточить вашу технику, но это не просто слепой набор текста и размещение пальцев.

Чаще всего мне задают этот вопрос - как мне улучшить скорость набора текста, чтобы достичь скорости более 100 слов в минуту?

Последовательность - ключ к успеху

В октябре 2015 года, пытаясь улучшить скорость набора текста, я наткнулся на Typeracer, веб-сайт, посвященный гонкам шрифтов против случайных людей в Интернете. Вряд ли я знал, что этот сайт генерирует золотую жилу данных, и я буду его соавтором. С тех пор я провел более 4000 гонок за последние 3 года, и мое улучшение с течением времени видно из следующего графика:

В 2015 году я начал с 58 слов в минуту (слов в минуту), а сейчас в среднем более 95 слов в минуту с максимальным результатом 128 слов в минуту.

Я провел более 3000 гонок в 2016 и 2017 годах вместе взятых. Это число могло быть легко превзойдено другими людьми на веб-сайте, но для меня это было чистое количество и постоянство, которые позволили мне поднять планку выше.

Прогресс со временем

Согласно моим данным о забегах, в среднем я играл 125 гонок в месяц, что помогало мне записывать самые частые слова в моей мышечной памяти.

Вы можете видеть спад в мае, июне и июле, когда я сдавал выпускные экзамены в конце года. После этого в последующие месяцы мой средний WPM постоянно увеличивался. Эти перерывы вроде как помогли мне оживить мою игру с набором текста.

2018 год является исключением, поскольку пространство выборки, на котором построен график, намного меньше, чем в другие годы. Как вы можете видеть на графике «Количество против года» выше, в 2018 году я сыграл всего 250 игр.

О данных

В гонках используется более 5200 активных текстов. Большинство этих текстов добавлены пользователями и в конечном итоге модерируются.

В 2017 г. наблюдался приток включения новых текстов в основном потому, что был толчок к увеличению количества текстов, когда пользователь жаловался на повторение и отсутствие разнообразия согласно этому блогу в январе 2017 года.

По состоянию на декабрь 2018 г. самый длинный текст с точки зрения количества символов составляет 861 символ, а самый короткий текст - 44 символа и представляет собой предложение, охватывающее все алфавиты в Английский -

The quick brown fox jumps over the lazy dog.

С каждым текстом связан рейтинг сложности, и в соответствии с FAQ он рассчитывается путем сначала оценки личного рейтинга сложности каждого текста для пользователя, а затем его усреднения по всем пользователям для получения общего рейтинг сложности для конкретного текста.

Для данных текстов он колеблется от 0,599 до 1,433 - чем выше значение, тем меньше сложность. Один из самых сложных текстов на сайте по рейтингу сложности -

"This man right here," McGuinness said, pointing at Kenna, "he\'s going to change the world." That was his instinctive feeling, and the manager of a band like U2 is a man who knows music.

в то время как самый простой текст для ввода -

They don't know that we know they know we know.

наивысший балл на веб-сайте - 3600 слов в минуту (слов в минуту) (что кажется невозможным даже с современной стенографической клавиатурой), в то время как текст, который имеет наименьший наивысший балл из 151 слов в минуту, достигнутый на -

Waiter: What is your name? Aladeen: Allison Burgers. Waiter: That's a made up name. What's your real name? Aladeen: My name is Ladiz. Waiter: Ladiz what? Aladeen: Ladiz Washroom. Waiter: So your name is like the sign. Ladies washroom? That is a made up name, what is your real name? I am interested. We are interested. Aladeen: Emplyes. Waiter: Emplyes what!? Aladeen: Emplyes Mustwashhands. Waiter: That is a made up name. What is your real name. Aladeen: Max. Waiter: Max what? Aladeen: Imumoccupancy120. Waiter: There's a number in the name? WHO ARE YOU!?

Это привело меня к вопросу -

Что влияет на нашу скорость набора текста?

Хотя внешние факторы (клавиатура, положение пальцев, слепой набор, положение запястья и т. Д.) Действительно способствуют повышению нашей скорости, на этот раз мы сосредоточимся на тексте.

Приведенные выше фрагменты текста указывают на изменение скорости / сложности из-за увеличения количества знаков препинания, заглавных букв и длины текста.

На следующем графике показано изменение скорости по трем вышеупомянутым факторам для подмножества набранных мной текстов.

Из приведенного выше графика видно, что -

  1. По мере увеличения длины текста ваша обычная скорость неизбежно снижается. Такие факторы, как выносливость и концентрация, влияют на нашу способность поддерживать скорость на протяжении всего упражнения. Это как марафон против спринта.
  2. Знаки препинания в текстах становятся препятствием, потому что вам придется перемещаться по клавиатуре на большее расстояние, чтобы дотянуться до этих клавиш. А иногда необходимо использовать дополнительную клавишу «Shift». Если вы не запомнили все знаки препинания на клавиатуре, это обязательно снизит вашу скорость.
  3. Точно так же заглавные буквы требуют использования «Shift» или «Caps», что заставляет человека относительно замедляться.

Можем ли мы предсказать скорость набора текста только по тексту?

Теперь, когда мы установили некоторые функции, которые напрямую влияют на скорость набора текста, мы можем использовать их вместе с самим предложением, чтобы предсказать скорость набора текста.

Я предложил эту задачу прогнозирования как задачу классификации, разделив расы на три класса:

  1. Между 75 и 85 слов в минуту (1171 выборка)
  2. От 85 до 95 слов в минуту (960 отсчетов)
  3. Выше 95 (446 образцов)

По большей части я выбрал эти классы с оптимистичным предположением, что даже мои худшие гонки не будут опускаться ниже 75 слов в минуту. Согласно моим гоночным данным, моя скорость опускалась ниже 75 слов в минуту только 50 раз из 1650 гонок, в которых я играл за период 2017 и 2018 годов.

Для преобразования предложений в их векторное представление я использовал простой sklearn TfidfVectorizer. Поскольку все слова в предложении полезны для нашего анализа, я не исключил стоп-слова, а также отключил функцию строчных букв в векторизаторе. В конце концов я объединил все следующие функции и сопоставил их с тремя классами:

  1. Разреженная матрица признаков, рассчитанная с помощью TfidfVectorizer
  2. Длина текста
  3. Количество знаков препинания
  4. Количество заглавных букв
  5. Рейтинг сложности

Используя логистическую регрессию, мне удалось достичь точности 49,8%, что довольно плохо и лучше, чем случайный шанс 33,33%.

Вся суть этого упражнения в том, чтобы изучить, какие функции могут быть полезны для оценки скорости набора текста. При той точности, которая достигается с использованием текущих функций и модели, кажется, что нам потребуется больше функций и лучшая модель, чтобы получить оценку точности спуска.

Вывод

  1. Мы узнали, как последовательная практика может помочь улучшить вашу скорость набора текста.
  2. Мы также увидели влияние знаков препинания, прописных букв и длины текста на общую скорость набора.
  3. И мы выяснили, могут ли эти функции быть полезными в простой задаче классификации.

Будущее

Лучшие функции можно извлечь, пропустив предложения через LSTM для получения промежуточных функций. Это позволит нам включить порядок слов в тексте как функцию. Это поможет модели выучить часто встречающиеся сочетания слов.

Еще один способ укрепить модель - это кормить словами, которые часто неправильно набираются. Более сложные, но полезные данные - это время полета между двумя буквами. Эти данные также могут быть использованы для построения поведенческих профилей нажатия клавиш каждого человека.

Все данные и код этого блога можно найти здесь.