Классификация текста — это процесс присвоения предопределенной категории или метки предложениям, абзацам, текстовым отчетам или другим формам неструктурированного текста. Группа инструментов Анализ текста в наборе инструментов GeoAI содержит инструменты, которые используют методы обработки естественного языка (NLP) для обучения моделей классификации текста, а также для использования моделей для классификации текста.
Инструмент Обучение модели классификации текста обучает модели NLP для классификации текста на основе известных классов или категорий, предоставленных как часть обучающего набора данных. Обученные модели можно использовать с инструментом Классифицировать текст при помощи глубокого обучения для классификации однотипного текста по этим категориям.
Возможное применение
Ниже приведены потенциальные варианты применения этого инструмента:
- Неполные адреса можно классифицировать по стране, которой они принадлежат. Это может помочь назначить соответствующий локатор для более точного геокодирования этих адресов.
- Твиты с геолокацией можно классифицировать по тому, указывают ли они на сомнения в отношении вакцины. Это может помочь определить области, где просветительские кампании должны ориентироваться на повышение доверия населения и распространение вакцины.
- Классификация видов преступлений на основе сообщений о происшествиях. Это может помочь понять закономерности путем агрегирования преступлений по категориям и способствовать планированию мер по исправлению ситуации.
Модели классификации текста в ArcGIS основаны на архитектуре Transformer, предложенной Васвани и соавторами в основополагающей статье “Внимание — это все, что вам нужно“. Это позволяет моделям быть более точными и распараллеливаемыми, при этом требуя меньше размеченных данных для обучения.
Внутри ArcGIS модели классификации текста представляют собой глубокие нейронные сети, состоящие из двух компонентов:
- Кодировщик — кодировщик служит опорой модели и преобразует входной текст в представление объекта в виде векторов фиксированного размера. В модели используются известные кодировщики, такие как BERT, ALBERT и RoBERTa, основанные на архитектуре преобразования и предварительно обученные на больших объемах текста.
- Классификатор — классификатор служит головой модели и классифицирует представления объектов по нескольким категориям. Классификатор часто представляет собой простой линейный слой в нейронной сети.
Примечание:
Модели NLP могут эффективно использоваться при автоматизации анализа больших объемов неструктурированного текста. Как и в случае с моделями другого типа, убедитесь, что они применяются к соответствующим задачам с надлежащим уровнем человеческого контроля и прозрачности в отношении типа модели и обучающих наборов данных, используемых для обучения модели.
Используйте модели классификации текста
Инструмент Классифицировать текст при помощи глубокого обучения можно использовать для применения обученной модели классификации текста к неструктурированному тексту и его классификации по заранее определенным типам. Вы можете использовать предварительно обученные модели классификации текста из ArcGIS Living Atlas of the World или обучать пользовательские модели с помощью инструмента Обучение модели классификации текста.
Входными данными для инструмента Классифицировать текст при помощи глубокого обучения является класс пространственных объектов или таблица, содержащая текст, подлежащий классификации. Входной моделью может быть файл определения модели Esri JSON (.emd) или пакет модели глубокого обучения (.dlpk). Модель содержит путь к файлу модели глубокого обучения (содержащему веса модели) и другие параметры модели. Некоторые модели могут иметь дополнительные аргументы модели.
Инструмент создает поле во входной таблице, содержащее метку класса или категории, присвоенную моделью для входного текста.
Хотя инструмент может запускаться на центральном процессоре, для обработки рекомендуется использовать графический процессор, поскольку глубокое обучение требует больших вычислительных ресурсов. Чтобы запустить этот инструмент с помощью графического процессора, установите для параметра среды Тип процессора значение GPU. Если у вас более одного графического процессора, вместо этого задайте параметр среды GPU ID.
Обучить модели классификации текста
Инструмент Обучение модели классификации текста можно использовать для обучения моделей NLP для классификации текста. Этот инструмент использует подход машинного обучения и обучает модель, предоставляя ей обучающие выборки, состоящие из пар входного текста и отмеченных классов. Обучение моделей NLP требует больших вычислительных ресурсов, рекомендуется использовать графический процессор.
Обучающие данные предоставляются в виде входной таблицы, которая содержит текстовое поле, действующее как предикторная переменная, и поле метки, содержащее метку целевого класса для каждого входного текста в таблице.
При обучении модели классификации текста вы можете либо обучить модель с нуля, либо настроить обученную модель. В целом, языковые модели, использующие архитектуру преобразования, считаются малоэффективными для изучения.
Однако если у вас есть доступ к предварительно обученной модели классификации текста с тем же набором целевых классов, что и в обучающих примерах, вы можете точно настроить ее на новых обучающих данных. Точная настройка существующей модели часто выполняется быстрее, чем обучение новой модели, также этот процесс требует меньшего количества обучающих выборок. При точной настройке предварительно обученной модели убедитесь, что вы используете ту же опорную модель, которая использовалась в предварительно обученной модели.
Предварительно обученная модель может быть файлом определения модели Esri или файлом пакета глубокого обучения. Выходная модель также сохраняется в этих форматах в указанной папке Выходная модель.
Обучение моделей глубокого обучения представляет собой итеративный процесс, в котором входные обучающие данные несколько раз пропускаются через нейронную сеть. Каждый обучающий проход по всем обучающим данным известен как эпоха. Параметр Максимальное число эпох указывает максимальное количество раз, когда обучающие данные просматриваются моделью во время ее обучения. Это зависит от обучаемой модели, сложности задачи и количества обучающих выборок. Если у вас много обучающих выборок, вы можете использовать небольшое значение. В общем, это хорошая идея - продолжать обучение в течение нескольких эпох снова и снова, пока потери при проверке продолжают снижаться.
Параметр Опорная модель указывает предварительно сконфигурированную нейронную сеть, которая служит кодировщиком для модели и извлекает представления объектов входного текста. Эта модель поддерживает кодировщики на основе BERT, ALBERT и RoBERTa, основанные на архитектуре преобразования и предварительно обученные на больших объемах текста полуконтролируемым образом. Эти кодировщики хорошо понимают язык и могут представлять входной текст в виде векторов фиксированной длины, которые служат входными данными для заголовка классификации модели.
Обучение модели происходит пакетами, а параметр Размер пакета указывает количество обучающих выборок, которые обрабатываются для обучения одновременно. Увеличение размера пакета может повысить производительность инструмента. Однако при увеличении размера пакета используется больше памяти. Если во время обучения модели возникает ошибка нехватки памяти, используйте меньший размер пакета.
Параметр Скорость обучения — один из самых важных гиперпараметров. Это скорость, с которой вес модели корректируется во время обучения. Если вы укажете низкую скорость обучения, модель будет улучшаться медленно, и обучение может занять много времени, что приведет к излишней трате времени и ресурсов. Высокая скорость обучения может быть контрпродуктивной, и модель может плохо обучаться. При высоких скоростях обучения веса модели могут резко измениться, что приведет к ошибочным результатам. Часто лучше не указывать значение параметра Скорость обучения, так как инструмент использует автоматический определитель скорости обучения, основанный на статье Лесли Н. Смит "Циклические скорости обучения для обучения нейронных сетей".
Инструмент использует часть обучающих данных (по умолчанию 10 процентов) в качестве проверочного набора. Параметр Процент для проверки позволяет настроить количество обучающих данных, которые будут использоваться для проверки.
По умолчанию инструмент использует метод ранней остановки, который приводит к остановке обучения модели, когда в последующие эпохи обучения модель больше не улучшается. Вы можете отключить это поведение, сняв отметку с параметра Завершить, когда модель перестанет улучшаться.
Вы также можете указать, будут ли закреплены опорные слои в предварительно обученной модели, чтобы веса и смещения оставались такими, как они были изначально разработаны. По умолчанию слои опорной модели не закрепляются, а веса и смещения значения Опорная модель могут изменяться, чтобы соответствовать обучающим выборкам. Это требует больше времени для обработки, но обычно дает лучшие результаты.
Текстовые данные часто содержат шум в виде тегов HTML и URL-адресов. Вы можете использовать параметры Удалить HTML-теги и Удалить URL-адреса для предварительной обработки текста и удаления тегов перед обработкой.
Справочная информация
Васвани, Ашиш, Ноам Шазир, Ники Пармар, Якоб Ушкорейт, Ллион Джонс, Айдан Н. Гомес, Лукаш Кайзер и Илья Полосухин. "Attention Is All You Need." 6 декабря, 2017. https://arxiv.org/abs/1706.03762.
Девлин, Джейкоб, Мин-Вей Чанг, Кентон Ли и Кристина Тутанова. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." 24 мая, 2019. https://doi.org/10.48550/arxiv.1810.04805.
"Encoder models." https://huggingface.co/course/chapter1/5?fw=pt.
Браун, Том Б. и др. "Language Models are Few-Shot Learners". 22 июля, 2020. https://doi.org/10.48550/arxiv.2005.14165.
Смит, Лесли Н. "Cyclical Learning Rates for Training Neural Networks." 4 апреля, 2017. https://doi.org/10.48550/arxiv.1506.01186.