Это старая версия документа!
Скрипт проверки (формат)
Скрипт проверки можно скачать на странице диктанта.
Скрипт с другими служебными файлами запакован в zip-архив.
В архиве содержится четыре файла:
js-файл (checkDictantScript_5f4404764b32fa3c9bd23dc0.js)
— сам скрипт проверки диктанта;css-файл (checkDictantScript_5f4404764b32fa3c9bd23dc0.css)
— содержит, соответственно, стили для показа отчёта о проверке.txt-файл (checkDictantInfo_5f4404764b32fa3c9bd23dc0.txt)
— общая информация о диктанте: название, путь в Учительской, дата выгрузки;HTML-файл (checkDictantExample_5f4404764b32fa3c9bd23dc0.html)
— тестовая страница для проверки скрипта.
Каждый файл имеет в своём названии уникальный идентификатор диктанта dictID (например: 5f4404764b32fa3c9bd23dc0
), который следует сохранять для передачи написанных диктантов в систему для импорта.
Программный интерфейс скрипта проверки
В js-файле содержатся две главные функция проверки:
Проверка текста с отрисовкой отчёта
function checkTextWithResultModelAndShowReport(text, reportContainerDomElement, onScoreCallback)
Параметры вызова:
- text — текст диктанта.
- reportContainerDomElement — DOM-элемент, где нужно нарисовать отчёт.
- onScoreCallback = function(fullCheckResultModel, score) — функция, в которую будет переданы: fullCheckResultModel — полная JSON-модель результата проверки и score — JSON-объект с данными о проверке.
Модель score имеет следующий вид:
{errors: {ORFO:number, PUNCT: number, TYPO: number}, score: number, isTotalDict: boolean}
- ORFO — количество орфографических ошибок.
- PUNCT — количество пунктуационных ошибок.
- TYPO — количество опечаток (те ошибки, на которые нет разметки).
- score — оценка за диктант (5-балльная для русского, 100-балльная для английского).
- isTotalDict — похож ли переданный текст на оригинальный текст диктанта.
Проверка текста без отрисовки отчёта с получением подробной модели результата проверки
function checkTextWithoutShowReport(text: string, onResult: function(model: Model))
Параметры вызова:
- text — текст диктанта
- onResult — функция, в которую будет передан JSON-объект с подробными данными о результате проверки.
JSON-объект имеет следующий вид:
// Полная модель результата проверки interface Model { checkId: string; // Уникальный id проверки, генерится при каждом вызове алгоритма проверки titles: Text[][], // Результат проверки заголовка в виде двумерного массива (первая размерность делит текст на абзацы, вторая делит параграф по ошибкам ) text: Text[][], // Результат проверки текста в виде двумерного массива (первая размерность делит текст на абзацы, вторая делит параграф по ошибкам ) errors: Errors, // Контейнер информации об ошибках summary: Summary, // Итоговое количество ошибок isDictantText: boolean, // Похож ли проверяемый текст на текст диктанта errorList: LexemeError[] // список ошибок с данными, помогающими построить карту ошибок } // Модель проверенного куска текста interface Text { id?: string, text: string, // кусок текста counts?: ErrorCounts, // количество ошибок в куске текста error?: string, // ссылка на идентификатор ошибок в контейнере ошибок position?: string | number // Позиция куска текста } // Контейнер информации об ошибках в виде KeyValue на массив ошибок export type Errors = { [key: string]: Error[]; } // Подробное описание ошибки export interface Error { id?: string, kind: string, // Тип ошибки () title: string, // Html текст из диктанта (правильное написание) с выделением части, в которой пользователь сделал ошибку тэгами <i></i> (например <i>в т</i>ечение) description: string // Html текст для пояснения правила, которое было нарушено } // Итоговое количество ошибок export interface Summary { counts: ErrorCounts, // Суммарное количество ошибок score: number // Количество баллов (100 - 2*колич.орфографических ошибок - 1*колич.пунктуационных ошибок) } // Модель для подсчёта разных типов ошибок export interface ErrorCounts { ORFO?: number; // количество орфографических ошибок PUNCT?: number; // количество пунктуационных ошибок TYPO?: number; // количество опечаток }
Тестирование проверки
Содержащийся в архиве HTML-файл можно использовать для проверки текста диктанта и, соответственно, для проверки актуальности выгруженного скрипта. Для этого нужно:
- открыть HTML-файл в браузере;
- вставить в поле ввода текст диктанта с умышленно сделанными ошибками;
- нажать кнопку «Проверить»;
- оценить результат проверки.
Тестовый скрипт для отладки
Для демонстрации работы можно взять пример скрипта тестового диктанта с «черновой» разметкой checkdictant_5ed9d6caefb14f76c3f47e5e.zip
Текст диктанта для проверки:
Белка В тёмном еловом лесу с утра до позднего вечера хлопочут проворные белки. Поднимутся белки на вершину высокой ели, перемахнут с ветки на ветку, а потом спускаются на землю за орехами. В развилке елового сучка белочка развесила сушить подосиновик, маленькие опенки. В лесных кладовых спрятала отборные орехи. Поздней осенью переменит белка свое красное платье на серую зимнюю шубку. В вершине густой ели устроила белочка тёплое гнездо. Там она воспитывает бельчат, зимой спасается от лютых морозов и холодных ветров. Самый весёлый зверек в наших лесах – это шустрая белка.