Сара Келли

Исследователи образования и политики давно интересуются тем, как школьная политика в отношении дисциплины влияет на учащихся. От опасений по поводу конвейера из школы в тюрьму до негодования по поводу детсадовцев в наручниках до опасений по поводу расовых различий в применении дисциплины — растущий объем литературы стремился лучше понять влияние политики школьной дисциплины. Однако исследованию воздействия школьной политики часто препятствует отсутствие данных: политика, как правило, устанавливается на районном уровне, и отсутствует национальная база данных таких программных документов (не говоря уже о структурированных данных о том, что содержит каждая политика).

Мы стремились опробовать подход, чтобы восполнить этот пробел, протестировав автоматизированный подход к извлечению информации из документов школьной политики. Таким образом, наш фундаментальный исследовательский вопрос звучал так: «Можем ли мы использовать обработку естественного языка для извлечения специфических особенностей из сложного, неструктурированного текста школьной дисциплинарной политики?» Наша цель состояла в том, чтобы создать компьютерный эквивалент армии научных сотрудников, читающих эти политики и кодирующих определенные элементы политики. Например, мы хотели, чтобы наш «автоматизированный научный сотрудник» мог посмотреть на политику и сказать нам, запрещает ли она использование телесных наказаний, вводит ли она схему ужесточения наказаний за повторные нарушения и/или запрещает ли использование сдерживания в качестве форма наказания.

Этот сложный процесс можно разбить на этапы:

Нулевой шаг: сбор данных. Для этого проекта мы использовали существующую библиотеку политик школьного округа по дисциплине, которая была собрана вручную (используя проверенный метод найди ассистента-исследователя-иди-на-веб-сайт) для выборка из 432 районов. Политика каждого округа содержалась в серии файлов (несколько файлов на округ, обычно 10–30), а политики, относящиеся к школьной дисциплине, были отобраны путем включения всех политик с терминами, связанными с законом, полицией, исключением, отстранением от занятий и дисциплиной.

Шаг 1.Обработка текста. Политики школьной дисциплины были загружены с веб-сайтов школьных округов в различных форматах, включая настоящие PDF-файлы, документы Word и PDF-файлы отсканированных документов (т. е. изображения текста). Для чтения в тексте в этих различных форматах: документы Word были прочитаны в текст с использованием библиотеки docx Python, а машиночитаемые PDF-файлы были прочитаны с помощью Py2PDF. В нескольких случаях документ казался машиночитаемым, но при просмотре прочитанный текст был серьезно искажен и полон неправильных специальных символов. Эти случаи были автоматически идентифицированы и включены в нечитаемый компьютером текст для оптического распознавания символов. Для нечитаемых компьютером PDF-файлов мы использовали библиотеку оптического распознавания символов pytesseract для извлечения текста; ручная проверка этого текста показала в целом хорошее качество.

Шаг 2.Определите релевантные фрагменты. Ключевой трудностью в работе с этими политиками был большой объем информации, не относящейся к нашим целям, что затрудняет как машинное, так и человеческое кодирование. Чтобы преодолеть эту трудность, мы определили списки ключевых слов, связанных с каждым элементом политики, и использовали эти ключевые слова для выбора потенциально релевантных фрагментов текста. Например, чтобы посмотреть на политику в отношении сдержанности и изоляции, мы искали несколько предложений вокруг любого появления терминов «сдержанность», «сдержанность», «уединение» или «уединение». Этот подход работал особенно хорошо, потому что язык в политиках такого типа довольно стандартизирован — в менее юридическом контексте больше внимания нужно было бы уделить охвату всего диапазона терминов, которые люди могут использовать, говоря о той же теме. Это дало очень большое количество отдельных фрагментов, которые были потенциально релевантными конкретным элементам политики, которые мы стремились закодировать.

Шаг третий:начальное кодирование на основе правил. Первым этапом кодирования текстовых фрагментов была разработка начального «угадывания» на основе правил для каждой политики. Например, при кодировании того, запрещает ли политика механическое сдерживание учащихся, мы угадали «да» для фрагментов, которые (а) относились к «механическому» сдерживанию или ограничению «движения», (б) включали по крайней мере одно из нашего списка отрицаний ( например, «не разрешать*», «запрещать», «запрещать») и (c) не включали термины, относящиеся к автобусам (поскольку многие фрагменты, относящиеся к ограничениям, касались требований к ремням безопасности и аналогичным «фиксаторам» в транспорте) . Это грубое кодирование, основанное на правилах, было полезно, потому что подавляющее большинство фрагментов на самом деле не относились к каждой отдельной теме, и, чтобы свести к минимуму нагрузку на программистов-людей, мы хотели убедиться, что контент действительно релевантен.

Шаг четвертый. Кодирование предварительно закодированных фрагментов вручную. Выборка фрагментов была выбрана для каждого конкретного элемента политики (включая большую плотность фрагментов, которые наш код на основе правил выбрал как релевантные). Программисту-человеку дали электронную таблицу с фрагментами, кодируемым элементом политики и исходным предположением на основе правил. Затем они могли обновить это предположение, прочитав этот фрагмент; если фрагмент был непонятным, он помечался для дальнейшего изучения экспертами по школьной дисциплине.

Шаг пятый.Машинное обучение. Затем ручное кодирование с четвертого шага считывалось и сравнивалось с догадками, основанными на правилах. Для некоторых конкретных элементов политики кодирование на основе правил было точным (по сравнению с кодированием фрагментов кода людьми) >99% времени. В этих случаях, которые обычно характеризовались очень похожими и конкретными формулировками, вероятно, соответствующими государственным и национальным стандартам, кодирование на основе правил использовалось напрямую. Для остальных политик текст фрагментов был векторизован с использованием векторизации обратной частоты документа (TF-IDF), а затем передан в модель случайного леса, предсказывающую, указывает ли фрагмент на присутствие этого конкретного элемента политики.

Шаг шестой.Перекодирование вручную. Для большинства переменных точность перекрестной проверки и баллы F1 были очень высокими (в основном > 95%), вероятно, из-за краткости и специфики текста. Для некоторых переменных модель еще не точно записывала закономерности. Для этих переменных была вручную закодирована дополнительная выборка фрагментов, которые были добавлены в набор обучающих данных. Это позволило точно определить даже эти сложные для моделирования элементы политики.

Шаг седьмой: Применение ко всему набору данных. Затем алгоритмы, обученные на шагах пять и шесть, были применены к полному набору фрагментов, созданных на основе политик всех школ в нашей выборке. Затем коды для каждого фрагмента были объединены на уровне округа, в результате чего была получена оценка на уровне округа «встречался ли этот конкретный элемент политики в каком-либо фрагменте политики этого округа?».

Шаг восьмой:оценка. Оценка кодирования на уровне округа является сложной задачей, поскольку кодирование наличия определенного элемента в дисциплинарной политике округа требует много времени, требуя, чтобы кодировщик прочитал всю (часто очень длинную и сложную) политику, обращая внимание на ряд различных конкретных элементы, которые необходимо закодировать. Таким образом, к сожалению, в бюджет этого проекта не входило ручное кодирование большого количества политик округа. Вместо этого нам пришлось полагаться на (а) ручное кодирование во всех 400+ округах для небольшого подмножества элементов политики, которые уже были созданы как часть предыдущего проекта, и (б) ручное кодирование всех наших элементов политики для подвыборка из 30 районов. Результаты были очень обнадеживающими: точность была выше 85% для всех элементов политики, кроме одного, и чаще всего около 95%. Оценки F1 были столь же высокими (что неудивительно, потому что проблем с балансом классов было меньше, чем мы ожидали для большинства переменных).

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