8 июля группа из 28 ученых собралась в Утрехте на семинаре DH2019 по spaCy, быстрой и доступной библиотеке обработки естественного языка (NLP), которая объединяет современные технологии машинного обучения. Это была возможность узнать о spaCy и заполнить пробелы между потребностями сообщества и техническими возможностями. В этом посте будут сформулированы идеи семинара, пока они еще свежие. При этом он будет строиться на диалоге между учеными в области цифровых гуманитарных наук (DH) и сообществом разработчиков spaCy.

Семинар начался с вводного занятия, которое провел Сет Бернстайн из Высшей школы экономики в Москве. Подобно аналогичным библиотекам NLP, таким как Stanford NLP или Natural Language Toolkit (NLTK), spaCy позволяет компьютерам определять особенности человеческого языка, такие как части речи, типы слов и сущности (например, места, люди, эмоции). Без НЛП текст для компьютера - это просто последовательность символов. spaCy преобразует простой текст в объекты документа, диапазона и токена. Объект документа содержит исходный текст, а также списки составных предложений, сущностей и токенов. Каждый токен, в свою очередь, имеет более 60 атрибутов, включая корневую форму слова (лемму), тип объекта, часть речи, язык и множество другой соответствующей информации. Диапазон имеет аналогичные возможности для шаблонов и разделов текста. Имея всего три строки кода, текст теперь наполнен функциями для вычислительного анализа текста и языка.

from spacy.lang.en импортировать английский

nlp = английский ()

doc = nlp («8 июля группа из 28 ученых встретилась в Утрехте на семинаре DH2019 по spaCy ...»)

В качестве библиотеки spaCy отдает предпочтение простоте, быстрому экспериментированию и настройке. Для английского, немецкого и семи других языков прямо из коробки доступны различные предварительно обученные модели. Разработчики spaCy создали очень полезное приложение для визуализации и оценки того, подходят ли предварительно обученные модели для ваших задач распознавания именованных сущностей. Простой встроенный инструмент под названием displaCy позволяет легко увидеть аналогичные результаты для тегов частей речи, зависимостей и других результатов из ваших моделей.

Учитывая, что языковая модель определяет то, что компьютер читает в наших текстах, ключевой потребностью, озвученной участниками семинара, была способность формировать то, что модель способна видеть. От проекта к проекту нас интересуют разные элементы языка и содержания. Ни одна модель никогда не сможет вместить все возможные исследовательские проекты, поэтому нам больше всего нужен инструмент, который можно адаптировать к нашим текущим исследовательским целям. spaCy удовлетворяет эту потребность. С помощью функции set_extension () мы можем добавлять в модель новые атрибуты. В своем разделе семинара Дэвид Ласснер (TU Berlin) продемонстрировал, как добавлять настраиваемые атрибуты на уровне документа, диапазона и токена. Не менее важно, что Дэвид показал, как импортировать теги и атрибуты из документа TEI в модель spaCy с помощью противостоящего преобразователя, который он создал для семинара. TEI - отличный формат для хранения информации о тексте. Однако для неспециалистов может быть сложно работать с XML. Загрузив соответствующие теги в spaCy, мы можем быстро подготовить документы для вычислительного анализа.

Общей потребностью ученых DH является возможность загружать существующий документ TEI в языковую модель NLP, автоматически добавлять новую информацию с помощью модели (или моделей), а затем сохранять эту информацию обратно в файл TEI. Когда мы работаем с тысячами документов, может быть непрактично размечать каждый документ вручную. Даже начальный этап автоматизированной разметки может сделать работу, на которую у одного человека уйдут годы, и сделает документы доступными для начальных экспериментов. Неизбежно мы извлекаем уроки из первой итерации и вносим коррективы. Автоматическая маркировка позволяет экспериментировать и оценивать различные подходы к заданному исследовательскому вопросу.

Большинство предварительно подготовленных языковых моделей обучаются на текстах, которые принципиально не похожи на литературные и исторические документы, которые мы изучаем в цифровых гуманитарных науках. Например, модель, обученная на статьях Википедии 21-го века, не может точно идентифицировать топонимы в ранних современных документах. Швеция и Дания ошибочно определены как организации, а не как места. Нам нужен простой способ научить модель определять те элементы речи и содержания, которые имеют отношение к нашему исследованию. spaCy предлагает два возможных подхода к этой проблеме. Используя текст из проекта Perseus, мы создали список из 2000 ранне-современных географических названий. Затем мы преобразовали этот список в данные для обучения. Мы можем загрузить существующую модель, обучить ее нашей новой категории, а затем сохранить новую модель на диск.

Следующий раздел вел Эндрю Янко из Хаверфордского колледжа. Мы использовали инструмент Prodigy, созданный командой spaCy. Prodigy - это инструмент аннотации для машинного обучения. Это инструмент, который облегчает активное взаимодействие между человеком-аннотатором и моделью. Человек может вручную показать модельные примеры интересующего элемента. Исходные термины предлагают дополнительные примеры того, что мы хотели бы, чтобы модель узнала. Во время обучения Prodigy сортирует результаты модели и запрашивает информацию у пользователя. Если, например, только 50% уверенности в том, что «English Realme» - это место, исследователь попросит дать ответ «да» или «нет». «English wolle [шерсть]» тоже место? Нет это не так. Разворачивается диалог между ученым и моделью. Интересно наблюдать, как модель задает вопросы и учится (или не учится). Для тех, кто разочарован таинственным «черным ящиком» машинного обучения, Prodigy предлагает уникальную возможность участвовать в диалоге и обучать машинным моделям тех аспектов текста, которые имеют отношение к вашему исследованию. Имея всего 2000 образцов семян, взятых из Персия, и 200 аннотаций, мы смогли обучить модель ранним современным английским топонимам примерно за 20 минут. Модель способна правильно определять места, которых не было в обучающих данных, и с текстами, которые она никогда не видела.

В разделе обсуждения семинара к нам присоединились Мэтью Хоннибал и Инес Монтани, которые являются создателями и основными разработчиками spaCy и Prodigy. Это дало возможность академическим исследователям поделиться своей работой и интересами с обслуживающим персоналом библиотеки. Хотя ученые DH предпочитают программное обеспечение с открытым исходным кодом, мы редко участвуем в обсуждениях сообщества, которые устанавливают потребности и приоритеты для будущих разработок. В ходе семинара и наших обсуждений возникло несколько потребностей, которые могут служить руководством для будущей работы.

  • Многие ученые в области цифровых гуманитарных наук используют разметку TEI для обогащения текстов информацией. Это может включать лексические особенности, а также конкретные идентификаторы людей, мест и организаций. На нашем семинаре возникла потребность в сценариях для преобразования в формат TEI / XML и обратно в предпочитаемый spaCy формат JSONL для обучающих данных и файлов шаблонов. Дэвид Ласснер написал отличный standoff converter, который преобразует документы TEI в обычный текст, сохраняя при этом информацию в разметке. Дальнейшая работа с этими сценариями упростит задачу преобразования TEI в форматы, необходимые для шаблонов семян spaCy и обучающих данных. Они упростят запись данных обратно в TEI.
  • Некоторые участники семинара работают с языками, для которых не существует какой-либо языковой модели. Хотя документация spaCy о том, как добавить язык, достаточно хороша, можно предпринять дополнительные усилия, чтобы объяснить процесс и сделать создание пользовательских языковых моделей более доступным для ученых DH. Текущая работа в Haverford по обучению языковой модели для Zapotec может стать эффективным примером и отправной точкой.
  • Создание и редактирование TEI требует значительного опыта в предметной области, а также знания XML и редакторов XML, таких как Oxygen. Материалы семинара содержат сценарии для добавления аннотаций с помощью Prodigy и сохранения их как разметки TEI. Для простых тегов это не проблема. Однако обычно нам нужно добавить не только ‹person›, но и идентификатор человека и другие атрибуты тега.

‹Человек секс =" интерсекс "роль =" бог "возраст =" бессмертный "›

‹PersName› Гермафродиты ‹/persName›

‹PersName xml: lang =” grc ”› Ἑρμαφρόδιτος ‹/persName›

Необходима дальнейшая работа, чтобы найти способы удовлетворить эту потребность с помощью простого инструмента аннотации, доступного как студентам, так и преподавателям. Brat, INCEpTION и аналогичные инструменты предлагают потенциальную альтернативу, но участникам семинара было сложно изучить их и использовать в своей работе. Один из подходов - использовать функцию связывания именованных сущностей spaCy для извлечения информации из базы знаний для обогащения наших тегов TEI. Например, ученик выделит Hermaphroditos в тексте, а пол, роль и греческое имя будут автоматически загружены из DBpedia.

будущая работа

Мастерская DH2019 spaCy установила и частично удовлетворила потребность в простых инструментах и ​​четких инструкциях для работы с TEI и spaCy. Мы можем обработать текст с помощью индивидуальных моделей и сохранить результаты обратно в TEI. Отдельные исследователи и небольшие группы могут настраивать и обучать модели, соответствующие их конкретным исследовательским целям. Эти процессы можно дополнительно упростить и добавить в пакет. Представьте, что вы просто набираете pip install spacy-tei и можете загружать документы TEI для анализа с помощью spaCy и Prodigy.

Также существует потребность в простых инструкциях и рабочем процессе для создания моделей для новых языков. В течение следующего года мы должны работать над добавлением новых языковых моделей для менее распространенных языков и оценить возможность проведения последующего семинара на DH2020 в Оттаве.

Дэвид, Сет и я хотели бы поблагодарить всех, кто посетил семинар. Наши записные книжки и материалы можно найти здесь. Мы надеемся, что дали вам инструменты и знания, которые понадобятся вам для использования spaCy в своей работе. Пожалуйста, будь на связи. Большое спасибо Мэтту и Инес за то, что присоединились к нам. Будем рады продолжить разговор!