Как филолог компьютерной лингвистике учился

Как филолог компьютерной лингвистике учился

Сегодня мне пришёл диплом о профессиональной переподготовке по компьютерной лингвистике.

Целый год моей жизни был посвящён освоению Python, R, статистики, машинного обучения, а также бесконечным экспериментам и ошибкам, которые невозможно найти часа по три.

Всё начиналось с одной литературоведческой идеи.

Уже около трёх лет я думаю о том, как искать аллюзии и реминисценции в художественных текстах с помощью компьютерных методов. Филологу я могла объяснить свою идею минут за 10. А вот разговор с программистом вообще не строился, потому что у меня не хватало понятийного аппарата, чтобы сформулировать задачу на его языке.

Какие данные нужны? Что именно сравнивать? Как представить художественный текст в числах? Какие признаки должна учитывать модель? И, главное, какие вопросы вообще задавать человеку, который будет её создавать?

В таких случаях у меня обычно появляется одна мысль: ничего, я что-нибудь придумаю.

На этот раз я придумала пойти учиться компьютерной лингвистике.

Как объяснить машине, что тексты похожи

Вот сравнительно простой пример из моей диссертации.

У Юлии Жадовской есть стихотворение «Любовь»:

Она кротка и терпелива,
Порой смела, красноречива;
В ней нет ни хитрости, ни зла!
И милосерда и добра,
Она обиды забывает…

А в Евангелии, в тринадцатой главе Первого послания к Коринфянам сказано:

Любовь долготерпит, милосердствует, любовь не завидует, любовь не превозносится, не гордится… не раздражается, не мыслит зла…

Филолог сразу видит, что Жадовская опирается на библейский текст. Совпадают тема, мотивы и последовательность характеристик.

Теперь попробуем объяснить это машине.

Она не испытывает нашего радостного узнавания. Она видит последовательности символов, токены, частоты, числовые векторы и расстояния между ними. Значит, человеческое «похоже» нужно разложить на признаки, которые можно вычислить.

Со вторым примером всё ещё интереснее.

У Жадовской в стихотворении «Искушение» лирическая героиня пытается обратиться к молитве:

Напрасно я ищу спасительных молитв,
Напрасно их зову на грешные уста —
Душа моя земным, ничтожным занята!

У Пушкина лирический герой похож:

Напрасно я бегу к сионским высотам,
Грех алчный гонится за мною по пятам…

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

Обычный поиск совпадающих слов такую связь наверняка пропустит. Машине придётся каким-то образом добраться до уровня мотивов, семантики и образной структуры.

Это и есть моё непаханое поле .

Филолог высаживается на другую планету

К началу обучения я уже спокойно «техала» - так называют людей, которые работают в LaTeX. Освоение LaTeX когда-то было для меня мучительной ломкой, а со временем он стал моей любимой программой. Поэтому я решила проверить, что ещё способен выдержать мой филологический мозг.

Python поддался быстро. Сначала я забывала об отступах и возмущалась, что несколько пробелов могут решать судьбу всей программы. Потом привыкла.

С R произошло что-то удивительное. У меня было чувство, что я уже знала этот язык в прошлой жизни, просто временно забыла. Его логика сразу показалась мне естественной. Таблицы, данные, графики, статистика - всё это вызывало желание немедленно загрузить туда какое-нибудь стихотворение и что-нибудь в нём посчитать, что я и делала, при этом отвлекаясь от домашних заданий.

А потом началось машинное обучение.

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

А мне пришлось выстраивать новые логические связи и учиться думать непривычным способом. Все мои близкие знают, что я воспринимаю мир через метафоры, образы, оттенки и контексты. А машинное обучение - это вообще про другое, там нужно объяснить, из каких наблюдаемых признаков появился такой вывод и как его можно проверить.

Потом логические связи начали выстраиваться, термины перестали пугать. Стало понятно, что именно модели машинного обучения могут привести меня к задаче, ради которой я и пришла.

Большая работа ещё впереди, но теперь я хотя бы знаю, из каких деталей собирается мой будущий «космический корабль».

«Чисто тупо вставляете функцию сюда»

Самой неприятной оказалась математика.

В школе это был один из моих любимых предметов, но с момента выпуска прошло чуть меньше тридцати лет, поэтому мне нужно было доставать из глубин памяти то, что когда-то казалось очевидным.

Мне очень не нравилась манера объяснения материала, иногда я даже ворчала вслух на экран. Одна из фраз преподавателя стала для меня чем-то вроде анекдота или иллюстрации современного образования:

«Берёте эту функцию и чисто тупо вставляете сюда».

У меня прям появилась реальная возможность побурчать, что вот в наше время учили лучше.

Функцию я вставила. Правда, перед этим всё равно попыталась понять, зачем.

Как филолог компьютерной лингвистике учился

Мозг в режиме сканера

За этот год я попробовала всё, до чего смогла дотянуться. Мозг работал как сканер.

Стоило мне подумать: «Интересно, а можно посчитать в художественном тексте вот это?» - как я уже открывала ноутбук и начинала проверять. Я собирала корпуса, анализировала лексику и темы, строила графики, сравнивала тексты и наблюдала за эмоциональной динамикой.

Итоговой работой стало исследование «Тематическая структура лирики Ю. В. Жадовской в рукописном альбоме и прижизненных сборниках: машинный анализ корпуса». Я защитила его на отлично и скоро напишу об этом подробнее.

Диплом официально даёт мне право вести профессиональную деятельность в области компьютерной лингвистики, но мне важнее то, что я получила понятийный аппарат, за которым пришла. Теперь я могу объяснить программисту, какую филологическую задачу хочу решить, какие данные у меня есть, что должна учитывать модель и почему обычного поиска совпадающих слов будет недостаточно.

Я нашла сокровищницу

В последнее время я чувствую себя Кощеем, который чахнет над златом, ну или над корпусами художественных текстов. Иногда - Скруджем Макдаком, обнаружившим хранилище, только вместо золотых монет в нём лежат метрики, графики, словари, модели и сотни ещё не проверенных гипотез.

Сейчас список задач растёт быстрее, чем я успеваю их выполнять. В Umbrella Code уже ждут своей очереди больше пятисот черновиков постов. Я всё время нахожу что-то новое и думаю: «Так, а вот это мы сейчас тоже попробуем посчитать».

Когда вокруг меня стало слишком много физиков и программистов, моя уверенность в собственном профессионализме однажды слегка покачнулась. Теперь я гораздо спокойнее отношусь к разделению на гуманитариев и технарей. Мне больше не нужно выбирать одну территорию.

Я остаюсь филологом. Но сейчас у меня появилась новая профессиональная область, несколько языков программирования и возможность подойти к старым вопросам с другой стороны.

Диплом лежит передо мной. Большая модель для поиска аллюзий и реминисценций пока существует в будущем. Но между идеей и её реализацией уже нет пропасти, заполненной непонятными словами.

Есть маршрут. И я наконец понимаю, куда идти.

11