Это старая версия документа!


Скрипт проверки (формат)

Скрипт проверки можно скачать на странице диктанта. Тестовый скрипт можно скачать ниже.

Скрипт с другими служебными файлами запакован в zip-архив.

В архиве содержится четыре файла:

  1. js-файл (checkDictantScript_5f4404764b32fa3c9bd23dc0.js) — сам скрипт проверки диктанта;
  2. css-файл (checkDictantScript_5f4404764b32fa3c9bd23dc0.css) — содержит, соответственно, стили для показа отчёта о проверке.
  3. txt-файл (checkDictantInfo_5f4404764b32fa3c9bd23dc0.txt) — общая информация о диктанте: название, путь в Учительской, дата выгрузки;
  4. HTML-файл (checkDictantExample_5f4404764b32fa3c9bd23dc0.html) — тестовая страница для проверки скрипта.

Каждый файл имеет в своём названии уникальный идентификатор диктанта dictID (например: 5f4404764b32fa3c9bd23dc0), который следует сохранять для передачи написанных диктантов в систему для импорта.

В js-файле содержатся две главные функции проверки:

function checkTextWithResultModelAndShowReport(text, reportContainerDomElement, onResultModelCallback)

Параметры вызова:

  • text — текст диктанта.
  • reportContainerDomElement — DOM-элемент, где нужно нарисовать отчёт.
  • onResultModelCallback = function(fullCheckResultModel: Model) — функция, в которую будет передана fullCheckResultModel — полная модель результата проверки.

Модель fullCheckResultModel имеет следующий вид:

// Полная модель результата проверки
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, // оценка за диктант (5-балльная для русского, 100-балльная для английского).
        wrongWordCount: number // число неверно написанных слов в диктанте
}
// Модель для подсчёта разных типов ошибок
export interface ErrorCounts {
	ORFO?: number, // количество орфографических ошибок
	PUNCT?: number, // количество пунктуационных ошибок
	TYPO?: number // количество опечаток          
}
function checkTextWithoutShowReport(text: string, onResult: function(fullCheckResultModel: Model))

Параметры вызова:

  • text — текст диктанта
  • onResult — функция, в которую будет передана модель fullCheckResultModel с подробными данными о результате проверки (см. описание выше).

Содержащийся в архиве HTML-файл можно использовать для проверки текста диктанта и, соответственно, для проверки актуальности выгруженного скрипта. Для этого нужно:

  • открыть HTML-файл в браузере;
  • вставить в поле ввода текст диктанта с умышленно сделанными ошибками;
  • нажать кнопку «Проверить»;
  • оценить результат проверки.

Для демонстрации работы можно взять пример скрипта тестового русского или английского диктанта с «черновой» разметкой.

dictant_belka_5ed9d6caefb14f76c3f47e5e.zip

Текст диктанта для проверки:

Белка
В тёмном еловом лесу с утра до позднего вечера хлопочут проворные белки. Поднимутся белки на вершину высокой ели, перемахнут с ветки на ветку, а потом спускаются на землю за орехами. В развилке елового сучка белочка развесила сушить подосиновик, маленькие опенки. В лесных кладовых спрятала отборные орехи.
Поздней осенью переменит белка свое красное платье на серую зимнюю шубку. В вершине густой ели устроила белочка тёплое гнездо. Там она воспитывает бельчат, зимой спасается от лютых морозов и холодных ветров. Самый весёлый зверек в наших лесах – это шустрая белка.

checkdictant_robots_and_people.zip

Текст диктанта для проверки:

Robots and people

This is Anna. She is sixty-nine years old. Anna is in a supermarket. She is with a robot. This robot can see, and it can speak. It can move, but it cannot run. It can carry things. Now it is carrying Anna’s bags.

Robots are clever. They can help people in their lives.
  • /opt/bitnami/dokuwiki/data/attic/tech/checkscript.1651127516.txt.gz
  • Последнее изменение: 2022/04/28 06:31
  • dmitry_kalashnikov