Задача теста — определить ваш пассивный словарный запас (то есть количество слов, которые вы узнаете при чтении и на слух). Единственный способ сделать это точно — взять словарь потолще (тысяч на сто слов), отметить все слова, которые вы знаете, и посчитать их. Вряд ли найдется желающий пойти на подобное испытание. К счастью, современная теория тестов (IRT, Item Response Theory) предлагает альтернативный подход. Согласно этому подходу, словарный запас можно считать некоторой способностью, которая может быть выражена числом и измерена. Измерение — это серия тестовых слов, которые респондент отмечает как знакомые или незнакомые. Каждое тестовое слово имеет свою сложность (например, «кошка» — простое, «амбивалентность» — сложное), также выраженную числами. Зная сложности тестовых слов и ответы респондента, можно рассчитать его способность, то есть словарный запас.
Для того, чтобы сделать тест точным, но максимально коротким (нет ничего ценнее времени респондентов), была использована надстройка над современной теорией тестов — CAT (Computerized Adaptive Testing). По этой методике, способность респондента оценивается после каждого вопроса, на который он отвечает. Следующий вопрос подбирается исходя из этой оценки — если респондент отмечает сложное слово как знакомое, скорее всего, у него большой словарный запас, поэтому следующим вопросом он получает слово с высокой сложностью, и наоборот. Таким образом, каждое тестовое слово приносит в тест максимум информации. С каждым вопросом оценка словарного запаса становится все точнее; тест прекращается, когда она достигает заданного порога.
Частотный словарь
Для того чтобы получить оценку словарного запаса не в абстрактных «попугаях», а в словах, нужно сложность тестовых слов выразить также в словах. Это можно сделать, если отсортировать все слова русского языка по сложности, тогда порядковый номер тестового слова в этом словаре и будет его сложностью. Такие словари называются частотными. К сожалению, существующие частотные словари слишком малы, поэтому нам пришлось сделать свой, гораздо больше.
Для построения частотного словаря нужно две вещи. Первое — как можно более полный словарь русского языка; мы использовали словарь Хагена (134149 слов). Второе — корпус русского языка; мы использовали Национальный Корпус Русского Языка. Корпус состоит из большого количества (86 тысяч) текстов разной тематики — художественная литература, публицистика, научные и научно-популярные, религиозные и философские тексты, личная переписка, дневники; общий объем текстов — 230 миллионов слов. За счет большого объема и широкого охвата этот корпус представляет собой слепок современного (54% всех текстов были созданы после 1950-го года) русского языка. Для каждого слова из словаря Хагена с помощью корпуса мы нашли его частоту — меру того, как часто это слово употребляется в языке (частота обычно измеряется в количестве употреблений слова на миллион слов корпуса).
Что считалось словом?
При определении словарного запаса всегда встает вопрос — что считать словом? Считать ли слова «белый», «белить» и «отбеливатель» разными (ведь все они совершенно точно имеют разный смысл) или все же одним (ведь зная слово «белый» и имея некоторое лингвистическое чутье, о смысле остальных слов можно догадаться)? Включать ли в словарный запас только базовые слова, или их производные тоже? Общепринятого ответа на этот вопрос нет, поэтому мы решили учитывать все слова, включая производные формы.
Защита от неаккуратного прохождения
Тест строится на предположении, что респондент честно и внимательно отмечает знакомые cлова. К сожалению, это не всегда так. Чтобы распознавать случаи неаккуратного прохождения, мы ввели в тест две ступени защиты. Первая — это слова-ловушки. Такие слова звучат, как русские, но ничего не обозначают. Их нет ни в одном словаре; более того, даже поисковые системы не находят их в интернете. Вторая — это просьба уточнить значения некоторых слов, которые респондент отметил как знакомые. При этом на выбор ему предлагается четыре варианта, из которых только один правильный. В конце теста рассчитывается коэффициент внимательности. Для этого используется простая формула (x+y)/(ax+ay), где x — число слов-ловушек, которые респондент не отметил как знакомые (то есть «не попался»), ax — полное число слов-ловушек в тесте, y — число слов, значение которых респондент уточнил правильно, ay — полное число слов, значения которых нужно было уточнить.
Если коэффициент внимательности равен 100% — результаты теста сохраняются в базе данных для дальнейших исследований. Если меньше — мы не считаем их достоверными и не используем в исследованиях. При этом оценка словарного запаса, которую получает респондент, никак не модифицируется, но выдается словесное предупреждение о недостоверности результатов.
Технологии
Тест сконструирован по методикам Item Response Theory (однопараметрическая модель) и Computerized Adaptive Testing. Для оценки способности респондента на каждом шаге теста используется байесовская оценка, она же Expected a Posteriori. Для расчета сложности тестовых слов использовался метод Joint Maximum Likelihood. Бэкенд сайта написан на Python с использованием фреймворка Flask. Фронтенд написан на Vanilla JS и Bulma.
Заключение
Как вы уже, скорее всего, убедились (если прошли тест) — методика определения словарного запаса работает. По крайней мере, она дает некоторую достаточно разумную оценку. Чтобы улучшить эту оценку, я предлагаю двигаться в двух направлениях. Я, как автор, буду работать над методикой и повышать ее точность. А вы можете прочитать пару-тройку серьезных книг и пройти тест еще раз — результат вам обязательно понравится.