Как филолог компьютерной лингвистике учился
Сегодня мне пришёл диплом о профессиональной переподготовке по компьютерной лингвистике.
Целый год моей жизни был посвящён освоению Python, R, статистики, машинного обучения, а также бесконечным экспериментам и ошибкам, которые невозможно найти часа по три.
Всё начиналось с одной литературоведческой идеи.
Уже около трёх лет я думаю о том, как искать аллюзии и реминисценции в художественных текстах с помощью компьютерных методов. Филологу я могла объяснить свою идею минут за 10. А вот разговор с программистом вообще не строился, потому что у меня не хватало понятийного аппарата, чтобы сформулировать задачу на его языке.
Какие данные нужны? Что именно сравнивать? Как представить художественный текст в числах? Какие признаки должна учитывать модель? И, главное, какие вопросы вообще задавать человеку, который будет её создавать?
В таких случаях у меня обычно появляется одна мысль: ничего, я что-нибудь придумаю.
На этот раз я придумала пойти учиться компьютерной лингвистике.
Как объяснить машине, что тексты похожи
Вот сравнительно простой пример из моей диссертации.
У Юлии Жадовской есть стихотворение «Любовь»:
Она кротка и терпелива,
Порой смела, красноречива;
В ней нет ни хитрости, ни зла!
И милосерда и добра,
Она обиды забывает…
А в Евангелии, в тринадцатой главе Первого послания к Коринфянам сказано:
Любовь долготерпит, милосердствует, любовь не завидует, любовь не превозносится, не гордится… не раздражается, не мыслит зла…
Филолог сразу видит, что Жадовская опирается на библейский текст. Совпадают тема, мотивы и последовательность характеристик.
Теперь попробуем объяснить это машине.
Она не испытывает нашего радостного узнавания. Она видит последовательности символов, токены, частоты, числовые векторы и расстояния между ними. Значит, человеческое «похоже» нужно разложить на признаки, которые можно вычислить.
Со вторым примером всё ещё интереснее.
У Жадовской в стихотворении «Искушение» лирическая героиня пытается обратиться к молитве:
Напрасно я ищу спасительных молитв,
Напрасно их зову на грешные уста —
Душа моя земным, ничтожным занята!
У Пушкина лирический герой похож:
Напрасно я бегу к сионским высотам,
Грех алчный гонится за мною по пятам…
Тематика очень близкая, образы совершенно разные. У Жадовской возникают ночь, молитва, слёзы и внутренняя борьба. Пушкин превращает грех в голодного льва, преследующего добычу.
Обычный поиск совпадающих слов такую связь наверняка пропустит. Машине придётся каким-то образом добраться до уровня мотивов, семантики и образной структуры.
Это и есть моё непаханое поле .
Филолог высаживается на другую планету
К началу обучения я уже спокойно «техала» - так называют людей, которые работают в LaTeX. Освоение LaTeX когда-то было для меня мучительной ломкой, а со временем он стал моей любимой программой. Поэтому я решила проверить, что ещё способен выдержать мой филологический мозг.
Python поддался быстро. Сначала я забывала об отступах и возмущалась, что несколько пробелов могут решать судьбу всей программы. Потом привыкла.
С R произошло что-то удивительное. У меня было чувство, что я уже знала этот язык в прошлой жизни, просто временно забыла. Его логика сразу показалась мне естественной. Таблицы, данные, графики, статистика - всё это вызывало желание немедленно загрузить туда какое-нибудь стихотворение и что-нибудь в нём посчитать, что я и делала, при этом отвлекаясь от домашних заданий.
А потом началось машинное обучение.
Вот там я действительно оказалась на другой планете с инопланетянами. Вокруг ходили градиенты, классификаторы, обучающие выборки, функции потерь и прочие местные жители.
А мне пришлось выстраивать новые логические связи и учиться думать непривычным способом. Все мои близкие знают, что я воспринимаю мир через метафоры, образы, оттенки и контексты. А машинное обучение - это вообще про другое, там нужно объяснить, из каких наблюдаемых признаков появился такой вывод и как его можно проверить.
Потом логические связи начали выстраиваться, термины перестали пугать. Стало понятно, что именно модели машинного обучения могут привести меня к задаче, ради которой я и пришла.
Большая работа ещё впереди, но теперь я хотя бы знаю, из каких деталей собирается мой будущий «космический корабль».
«Чисто тупо вставляете функцию сюда»
Самой неприятной оказалась математика.
В школе это был один из моих любимых предметов, но с момента выпуска прошло чуть меньше тридцати лет, поэтому мне нужно было доставать из глубин памяти то, что когда-то казалось очевидным.
Мне очень не нравилась манера объяснения материала, иногда я даже ворчала вслух на экран. Одна из фраз преподавателя стала для меня чем-то вроде анекдота или иллюстрации современного образования:
«Берёте эту функцию и чисто тупо вставляете сюда».
У меня прям появилась реальная возможность побурчать, что вот в наше время учили лучше.
Функцию я вставила. Правда, перед этим всё равно попыталась понять, зачем.
Мозг в режиме сканера
За этот год я попробовала всё, до чего смогла дотянуться. Мозг работал как сканер.
Стоило мне подумать: «Интересно, а можно посчитать в художественном тексте вот это?» - как я уже открывала ноутбук и начинала проверять. Я собирала корпуса, анализировала лексику и темы, строила графики, сравнивала тексты и наблюдала за эмоциональной динамикой.
Итоговой работой стало исследование «Тематическая структура лирики Ю. В. Жадовской в рукописном альбоме и прижизненных сборниках: машинный анализ корпуса». Я защитила его на отлично и скоро напишу об этом подробнее.
Диплом официально даёт мне право вести профессиональную деятельность в области компьютерной лингвистики, но мне важнее то, что я получила понятийный аппарат, за которым пришла. Теперь я могу объяснить программисту, какую филологическую задачу хочу решить, какие данные у меня есть, что должна учитывать модель и почему обычного поиска совпадающих слов будет недостаточно.
Я нашла сокровищницу
В последнее время я чувствую себя Кощеем, который чахнет над златом, ну или над корпусами художественных текстов. Иногда - Скруджем Макдаком, обнаружившим хранилище, только вместо золотых монет в нём лежат метрики, графики, словари, модели и сотни ещё не проверенных гипотез.
Сейчас список задач растёт быстрее, чем я успеваю их выполнять. В Umbrella Code уже ждут своей очереди больше пятисот черновиков постов. Я всё время нахожу что-то новое и думаю: «Так, а вот это мы сейчас тоже попробуем посчитать».
Когда вокруг меня стало слишком много физиков и программистов, моя уверенность в собственном профессионализме однажды слегка покачнулась. Теперь я гораздо спокойнее отношусь к разделению на гуманитариев и технарей. Мне больше не нужно выбирать одну территорию.
Я остаюсь филологом. Но сейчас у меня появилась новая профессиональная область, несколько языков программирования и возможность подойти к старым вопросам с другой стороны.
Диплом лежит передо мной. Большая модель для поиска аллюзий и реминисценций пока существует в будущем. Но между идеей и её реализацией уже нет пропасти, заполненной непонятными словами.
Есть маршрут. И я наконец понимаю, куда идти.