Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
tech:checkscript [2021/08/20 09:06] dmitry_kalashnikov [Проверка текста с отрисовкой отчёта] |
tech:checkscript [2022/08/10 03:33] (текущий) dmitry_kalashnikov [Функция получения 7-балльной оценки] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Скрипт проверки (формат) ====== | ====== Скрипт проверки (формат) ====== | ||
- | Скрипт проверки можно скачать на [[constructor: | + | Скрипт проверки можно скачать на [[constructor: |
Скрипт с другими служебными файлами запакован в zip-архив. | Скрипт с другими служебными файлами запакован в zip-архив. | ||
Строка 15: | Строка 15: | ||
===== Программный интерфейс скрипта проверки ===== | ===== Программный интерфейс скрипта проверки ===== | ||
- | В js-файле содержатся две главные функция проверки: | + | В js-файле содержатся две главные функции проверки: |
- | ==== Проверка текста с отрисовкой отчёта ==== | + | ==== Проверка текста с отрисовкой отчёта |
- | <code javascript> | + | <code javascript> |
Параметры вызова: | Параметры вызова: | ||
- | * text — текст диктанта. | + | * '' |
- | * reportContainerDomElement — DOM-элемент, | + | * '' |
- | * onScoreCallback | + | * '' |
- | Модель | + | Модель |
- | + | ||
- | <code javascript> | + | |
- | + | ||
- | * ORFO — количество орфографических ошибок. | + | |
- | * PUNCT — количество пунктуационных ошибок. | + | |
- | * TYPO — количество опечаток (те ошибки, | + | |
- | * score — оценка за диктант (5-балльная для русского, | + | |
- | * isTotalDict | + | |
- | + | ||
- | ==== Проверка текста без отрисовки отчёта с получением подробной модели результата проверки ==== | + | |
- | + | ||
- | <code javascript> | + | |
- | + | ||
- | Параметры вызова: | + | |
- | + | ||
- | * text — текст диктанта | + | |
- | * onResult — функция, | + | |
- | + | ||
- | JSON-объект | + | |
<code javascript> | <code javascript> | ||
// Полная модель результата проверки | // Полная модель результата проверки | ||
interface Model { | interface Model { | ||
- | checkId: string; // Уникальный id проверки, | + | checkId: string, // Уникальный id проверки, |
titles: Text[][], // Результат проверки заголовка в виде двумерного массива (первая размерность делит текст на абзацы, | titles: Text[][], // Результат проверки заголовка в виде двумерного массива (первая размерность делит текст на абзацы, | ||
text: Text[][], // Результат проверки текста в виде двумерного массива (первая размерность делит текст на абзацы, | text: Text[][], // Результат проверки текста в виде двумерного массива (первая размерность делит текст на абзацы, | ||
Строка 80: | Строка 61: | ||
// Итоговое количество ошибок | // Итоговое количество ошибок | ||
export interface Summary { | export interface Summary { | ||
- | counts: ErrorCounts, | + | counts: ErrorCounts, |
- | score: number // Количество баллов (100 - 2*колич.орфографических ошибок - 1*колич.пунктуационных ошибок) | + | score: number, // оценка за диктант (5-балльная для русского, 100-балльная для английского). |
+ | wrongWordCount: | ||
} | } | ||
// Модель для подсчёта разных типов ошибок | // Модель для подсчёта разных типов ошибок | ||
export interface ErrorCounts { | export interface ErrorCounts { | ||
- | ORFO?: number; // количество орфографических ошибок | + | ORFO?: number, // количество орфографических ошибок |
- | PUNCT?: number; // количество пунктуационных ошибок | + | PUNCT?: number, // количество пунктуационных ошибок |
- | TYPO?: number; // количество опечаток | + | TYPO?: number // количество опечаток |
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Проверка текста без отрисовки отчёта с получением подробной модели результата проверки ==== | ||
+ | |||
+ | <code javascript> | ||
+ | |||
+ | Параметры вызова: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ==== Функция получения 7-балльной оценки ==== | ||
+ | |||
+ | Используется обычно для русских диктантов. | ||
+ | |||
+ | <code javascript> | ||
+ | |||
+ | Параметры вызова: | ||
+ | |||
+ | * '' | ||
+ | |||
+ | Поля возвращаемой модели: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ==== Получение и расчёт оценки ==== | ||
+ | |||
+ | При вычислении результата проверки считается количество баллов, | ||
+ | Алгоритм подсчета отличается для диктантов на русском и диктантов на английском языках. | ||
+ | |||
+ | * Для английских диктантов баллы считаются по 100-балльной шкале по формуле | ||
+ | * 100 * (1 — (количество слов с ошибками)/ | ||
+ | |||
+ | * Для русских диктантов баллы считаются по 4-балльной шкале по алгоритму тотального диктанта (орфографические ошибки/ | ||
+ | * «5»: 0/0, 0/1 | ||
+ | * «4»: 0/2 0/3 0/4 1/0 1/1 1/2 2/0 2/1 | ||
+ | * «3»: 0/5 0/6 0/7 0/8 1/3 1/4 1/5 1/6 1/7 2/2 2/3 2/4 2/5 2/6 3/0 3/1 3/2 3/3 3/4 3/5 4/0 4/1 4/2 4/3 4/4 | ||
+ | * «2»: в других случаях. | ||
===== Тестирование проверки ===== | ===== Тестирование проверки ===== | ||
Строка 102: | Строка 125: | ||
===== Тестовый скрипт для отладки ===== | ===== Тестовый скрипт для отладки ===== | ||
- | Для демонстрации работы можно взять пример скрипта тестового диктанта с " | + | Для демонстрации работы можно взять пример скрипта тестового русского или английского диктанта с " |
+ | |||
+ | ==== Диктант " | ||
+ | |||
+ | {{ :tech:checkdictant_vidumshik.zip |}} | ||
Текст диктанта для проверки: | Текст диктанта для проверки: | ||
- | < | + | < |
- | В тёмном еловом лесу с утра до позднего вечера хлопочут проворные белки. Поднимутся белки на вершину высокой ели, перемахнут с ветки на ветку, а потом спускаются на землю за орехами. В развилке елового сучка | + | С нами был девятилетний мальчик, и он гораздо лучше нас, взрослых, |
- | Поздней осенью переменит | + | |
+ | Он был выдумщик, | ||
+ | |||
+ | Мы делали вид, что верили ему. | ||
+ | |||
+ | Всё, что окружало нас, казалось необыкновенным: | ||
+ | |||
+ | Мальчик первый | ||
+ | |||
+ | |||
+ | ==== Диктант " | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Текст диктанта для проверки: | ||
+ | < | ||
+ | |||
+ | 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. | ||
+ | </ |