• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Книга
Рукописи. Редкие издания. Архивы. Из фондов Отдела редких книг и рукописей

Лифшиц А. Л., Мастерков А., Мастеркова А. и др.

Вып. 10. М.: Новый хронограф, 2017.

Статья
The Nature of Humor in Zoshchenko’s Short Stories

Apresyan V.

Variations, Literaturzeitschrift der Universität Zürich. 2017. Vol. 25. P. 41-56.

Глава в книге
Sprachliche Eigenschaften der naturwissenschaftlichen Fachsprache in der ersten Hälfte des 14. Jahrhunderts

Kashleva K.

In bk.: HiGeWiS-Tagung „Geschichte der Fach- und Wissenschaftssprachen. Identität, Differenz, Transfer“. 2017. P. 15-15.

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

Рассказы студентов магистратуры «Компьютерная лингвистика» о летней производственной практике в Semantic Hub и Институте проблем передачи информации РАН.

CC0 Creative Commons

Студенты второго курса магистерской программы «Компьютерная лингвистика» факультета гуманитарных наук НИУ ВШЭ поделились впечатлениями от производственной практики в компьютерно-лингвистических стартапах, крупных международных компаниях и серьезных исследовательских институтах. Во второй части практиканты рассказывают об опыте, полученном в компании Semantic Hub и в Институте проблем передачи информации РАН. Рассказы студентов сопровождаются комментариями и вопросами руководителя магистерской программы Анастасии Александровны Бонч-Осмоловской, прозвучавшими непосредственно во время выступлений. Первую часть рассказов можно почитать здесь.

Софья Никифорова и Сергей Михайлов

Мы проходили практику в небольшом стартапе Semantic Hub; в копании работают около двадцати человек. Они разрабатывают софт для решения конкретных задач множества заказчиков, которым нужно уложить данные в какую-либо онтологию. Например, есть крупная сеть фармакологических клиник, и в них накопилось много данных по лекарствам и по пациентам. Пока эти данные висят ненужным грузом, но они хотели бы эти данные использовать. В базе данных, допустим, тысячи или сотни тысяч документов, и чтобы их как-то красиво использовать, они идут в Semantic Hub, дают им эти данные и спрашивают: что можно из них извлечь, как их использовать. Или они приходят с конкретной задачей: мы хотим посмотреть, как обычно лечат такого-то больного в таких-то условиях. Соответственно, в большой базе данных могут найтись другие похожие больные, они находят методики решений.

А.А.: Данные могут быть в совершенно разных форматах, и одна история, если это просто цифры — есть разные идеи, как с ними работать. Но Semantic Hub занимается неструктурированными денными — это тексты, из которых нужно сделать цифры — что-то достать, чтобы уже это можно было посчитать и тогда уже использовать какие-то более известные методы того, как обрабатывать эти цифры. Это перевод не-структуры в структуру.

Сережа: Это одно из возможных применений NLP, и это то, чем раньше Semantic Hub активно занимался. Но прошло время, и сейчас они в основном работают с различными базами данных медицинских статей, в которых описываются какие-то тестовые разработки, и задача Semantic Hub — по заказам, которые к ним приходят, попытаться отобрать какие-то перспективные разработки. Соответственно, в разных сферах и на разном материале они это ищут. Чаще всего они работают с онтологиями.

У меня было два задания. Сначала это была базовая вещь (проверка того, что я вообще могу делать). Мне нужно было написать программу, которая скачивала все молекулы… Есть очень большой сайт, на котором гигантская лаборатория занимается продажей бактерий для различных испытаний, больниц, исследовательских центров и т.д. Мне нужно было написать краулер, который прошел бы по этому сайту и собрал бы все бактерии и всю и информацию о них. Я его написал, получилась база данных из около 70 000 молекул, я им отправил.

Со вторым заданием мне повезло, потому что руководитель моей практики — это одновременно мой научный руководитель, и я отчасти делал то, что было в моей курсовой работе. У меня была база данных статей, из которой я искал компоненты, которые получают из животных и растений, используемые для создания лекарств. Для этого использовалась среда GATE.

Что такое GATE? Это специализированная платформа для обработки текстов, то есть это платформа, на которой можно осуществить всю предобработку текста, и из подготовленной информации с помощью специально описанных правил взять какие-то данные. Эти правила называются JAPE-правила, или JAPE rules. Я вывел простейшие шаблоны, базовые вещи. Например, я вылавливал название, после которого шло слово "decoction". "X decoction" — это «x-отвар», чего-то там отвар. То есть в статье могло быть написано: «В Китае в XV веке издревле такой-то отвар использовался для лечения того-то». Давайте в 21 веке добудем 500 тонн и попробуем что-нибудь сделать. Соответственно, из этой статьи нужно выцепить название этого самого состава. Есть разные упоминания “extract(s)” — с ним есть некоторые сложности, потому что это иногда и глагол. Более сложные правила: “we use the following types”, двоеточие и перечисление — нужно было выцепить названия, которые шли через запятую. Это уже более компьютерно-лингвистическая задача, потому что нужно выцепить по отдельности однородные члены предложения, следующие после определенного контекста. И все это прописывается в правилах.

Про себя я все рассказал, теперь про Соню. Мы работали в одном месте, в одно время, но на разных задачах. Соня тоже писала правила, только для химических формул, и вытаскивала INN (патентное имя), чтобы определять действующее вещество, которое зачастую бывает одно, в то время как содержащие его лекарства фармацевтические компании называют совершенно по-своему. Ее задача была разобраться, «Энцикловир» и «Зовиракс» — это два разных явления или одно и то же. Есть огромное количество правил… Соня пытается угадать то, что может входить в названия действующих веществ (например, греческие, латинские корни). Соня попробовала найти эти значимые морфемы и по ним находить INN. Было много неоднозначных сложных случаев, больше 400.

Яна Курмачева

Я тоже проходила практику в Semantic Hub, у меня была та же предметная область, что и у Сережи, но я работала и работаю с текстами патентов. Не целиком — меня в основном интересовала патентная формула, patent claim, то есть утверждение о признаках изобретения (его описание). Это не все-все патенты, а патенты только для двух лекарственных средств для лечения гепатита C. Я работала с английским языком.

Формулы делятся на независимые и зависимые. Первая формула независимая, она всегда идет в списке первой, а вторая — зависимая. То есть существует эвристика, которая помогает определить, какая зависимая, а какая независимая. Для автоматической обработки: если там встречается слово «claim», а за ним следует номер, то это уже зависимая формула. Одна формула — это одно предложение целиком.

Задача у меня была следующая: разработка формальной модели синтаксиса для патентной формулы в разделе. То есть нужно было написать правила, и я, так же как Сережа и Соня, работала в GATE и правила писала на JAPE, чтобы корректно вывести сегментацию. Сережа уже говорил, что GATE — это открытый фреймворк, там есть готовые инструменты: токенизаторы, сплиттеры, чанкеры и прочее, для семантической аннотации там можно работать с онтологиями, и можно взять уже готовый пайплайн.

А.А.: Я вам помогу уточнить, что такое JAPE. Это язык, который позволяет находить один кластер объектов и сопоставлять ему какой-то новый кластер объектов. Вы находите все слова (токены), которые написаны с большой буквы, и дальше называете их именами собственными. Дальше, когда пишете уже следующее правило, вы можете опираться на имя собственное, и дальше добавите еще что-то — это будет, к примеру, автор. Это очень удобный способ описания шаблонов и элементов, которые нужно найти, особенно в специализированной литературе.

Яна: Да, и текст не нужно аннотировать.

А.А.: Процесс разработки в GATE устроен так: сначала у нас работают уже готовые модули, которые выделяют токены, делят предложение, потом NLP POS tagger — они присваивают части речи, и потом NP-чанкеры — они выделяют минимальные синтаксические конструкции. Вся информация поступает к Яне как к инженеру, она уже есть, и дальше Яна пишет на JAPE правила и аннотации, то есть разметку, которая вся набирается оттуда. Это может быть токен, все предложение, глаголы и даже куски синтаксического разбора. И на JAPE можно задавать свои специфические значения, например, как-то проверять семантику.

Яна: На что я сегментировала: чисто визуально в патентной формуле выделяются преамбула, переход, или ограничительная часть, и отличительная часть. Они уже как-то описаны в правовых документах, и выделить их довольно несложно. Преамбула — это класс изобретения и его основные особенности: "pharmaceutical composition" — это преамбула, "comprising" — переход, который связывает преамбулу с отличительной частью. Набор этих переходов не совсем стандартный, он зависит от типа патентной формулы.

После перехода идет отличительная часть: чем переход отличается от прототипа (чем стул на трех ногах отличается от стандартного стула на четырех). Сегментировать я решила в таком порядке: выделять сначала переход, потом преамбулу и потом отличительную часть, потому что этот переход проще выделить — не всегда нужно писать правило на JAPE, можно с помощью регулярных выражений. Чтобы облегчить обработку данных, можно сделать препроцессинг. В самой патентной формуле могут быть в скобках ссылки на рисунки, которые меня совсем не интересуют. Эти скобки могут путать пунктуацию, а она довольно важна.

Патентная формула — это всегда одно предложение, в нем бывают пункты, и нужно, чтобы точка после цифры, опять же, не помечалась как конец предложения. Даже в этом малом количестве патентов — всего для двух лекарственных средств — мне встретились несколько категорий: например, "process claim" — процесс приготовления это средства, "product claim" — это определенное химическое вещество, и нужно выбрать определенный паттерн, чтобы потом его извлекать.

Независимая и зависимая формулы отличаются: независимая подлиннее и посложнее. Например, в варианте для product claim перечисляются определенные пункты, и если мы выделим эти пункты в определенные юниты, то мы сможем проще извлекать информацию. Если для каждой конкретной категории писать правила, то мы можем попробовать выделить общие правила для всех. Я решила, что можно выделить claim «ключевое слово». Это первая именная группа: артикль, существительное и между ними прилагательное. И, соответственно, переход выделяется тоже отдельно, и дальше уже пункты. Паттерн зависимой формулы другой, мы можем его разбить на две части: первая — это отсылка к предыдущим формулам, а вторая — уточнение.

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

Матвей Колбасов

Я был на практике в лаборатории ИППИ РАН, где делают систему «ЭТАП-3». Изначально это машинный переводчик, но сейчас он развился в более сложную систему, которая берет на вход текст, анализирует его, делает некоторый логический вывод, и которой можно потом задавать вопросы. «ЭТАП» отвечает на это очень неплохо, мне это продемонстрировали.

Когда меня попросили рассказать о себе, оказалось, что несмотря на лингвистическое тестовое задание, задачи у руководителя были подготовлены далеко не лингвистические, и он попросил еще времени на подготовку подходящих задач. В итоге я делал в их машине онтологию про футбол. Игроки, матчи, стадионы, лиги — все это нужно было скачать, сделать в их формате, связать. Для этого мне нужно было пользоваться DBpedia и языком SPARQL для запросов к онтологиям. DBpedia — это большое хранилище с информации из Википедии. Там нельзя просто так править, в отличие от Википедии, и основная информация хранится в табличке.

А.А.: А главное про DBpedia — это то, что такое место, где вся информация закодирована на определенном семантическом языке, то есть она представлена в машиночитаемом виде, например: name: Иван Иванович Иванов; born: 1900-01-01. Это информация, которая или внутри спрятана в разметке Википедии, или была добавлена в DBpedia вручную. Это большой склад «википедийных» фактов с удобной разметкой.

Матфей: Да, это такой здоровенный информационный граф. И для него мне нужен был SPARQL, в котором я долго разбирался, а теперь он мне понадобился в проекте Tolstoy Digital, где я привязываю сущности тоже к DBpedia.

А.А.: А что SPARQL позволяет?

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

Записала Надежда Катричева, 1 курс ОП «Компьютерная лингвистика»