Научно-технический вебинар «Автоматическое обнаружение смысла слов в коллокациях»

1 декабря 2020, 18:00 MCK

О вебинаре

  • Спикер

    Ольга Колесникова, Преподаватель и научный сотрудник Национального политехнического института, г. Мехико, Мексика

  • Тема

    Научно-технический вебинар «Автоматическое обнаружение смысла слов в коллокациях»

  • Подробнее про вебинар

    Одна из основных задач автоматической обработки естественного языка – обнаружение смысла слов. Главная трудность этой задачи – многозначность слов, изменение их значения в зависимости от контекста. Доклад посвящен обнаружению значения слов, используемых в коллокациях – устойчивых словосочетаниях. Смысл слов в коллокациях представлен лексическими функциями – одной из фундаментальных концепций теории «Смысл-Текст» И. А. Мельчука. Для обнаружения лексических функций используется машинное обучение и нейронные сети.

    Видео: https://youtu.be/uXibbGw1kHI

    Презентация: https://drive.google.com/file/d/13x82DnY0wmC7YSmH0CsK_TVJKHtHwy7f/view?usp=sharing

    (00:00:00) (Начало записи) 

    Николай Михайловский: Я Николай Михайловский, и у нас очередной научно-технический вебинар, который «НТР» производит вместе с Высшей IT-школой Томского государственного университета. У нас в гостях Ольга Колесникова, Национальный политехнический институт Мехико, и она нам будет рассказывать про автоматическое обнаружение смысла слов в коллокациях. Ольга, передаю вам слово. Соответственно, вопросы можно во время доклада задавать в виде текста, в вопросах в QNA и в чате. После выступления можно будет эти вопросы задавать вживую голосом, поднимая руку, и я буду размьючивать, давать слово тем, кто поднял руку, если нужно. Ольга, пожалуйста.

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

    Я уже 14 лет живу и работаю в Мексике, приехала сюда, чтобы учиться в аспирантуре по темам автоматической обработки естественного языка. После того как я закончила аспирантуру, я здесь осталась, и теперь преподаю в институте и занимаюсь исследованиями, продолжаю заниматься исследованием по этой теме, автоматическое обнаружение смысла слов в коллокациях. Но, поскольку я живу в Мексике, и конечно, каждая сторона заинтересована в развитии обработки своего языка, поэтому мое исследование я сделала на материале испанского языка. Мы будем видеть примеры испанских коллокаций. Но все объяснение я стараюсь сделать по-русски, поскольку всю литературу я изучаю на английском языке, и сама пишу статьи на английском языке, чтобы опубликовать в международных журналах, и иметь больше общения с различными исследованиями, то, конечно мне иногда трудно найти подходящий русский вариант какого-то термина, который я выучила в свое время на английском языке, но я буду стараться все эти термины говорить по-русски, хотя я знаю, что в этой области терминология с трудом поддается переводу, и некоторые слова так и употребляются в нашем русскоязычном общении, употребляются на английском языке.

    Сначала мы поговорим о том, что такое коллокация, чтобы было понятно, о чем идет речь. Итак, коллокация – это определенный тип устойчивых словосочетаний, в котором слова изменяют свой привычный смысл. Простой пример коллокации – это словосочетание «принять решение». Здесь слово «решение» применяется в своем привычном смысле, решение, то есть постановление какое-то, ответ на какую-то проблему, однако глагол «принять» здесь изменяет свое значение. Типичное значение глагола «принять» в соответствии с Большим толковым словарем под редакцией Кузнецова, это «взять из рук у того, кто дает, отдает, или взять, что дают». Однако мы видим, что в словосочетании «принять решение» глагол «принять» не имеет этого типичного значения. В этом словосочетании глагол имеет значение «совершить, осуществить» решение.

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

    Итак, такая проблема проявляется, например, в задаче машинного перевода.

    (00:04:59)

    Если посмотреть, как переводятся эти глаголы в глагольно-именных коллокациях, «ввести условие», «воплотить идею», «делать замечание», «достигать эффекта», «обратить внимание», «разрабатывать методы», «соблюдать условия», «устанавливать отношения», если перевести эти глаголы автоматически, то, скорее всего, выходят типичные значения этих глаголов. Когда переводятся коллокации, то если мы возьмем пример коллокации «принять решение», и посмотрим его перевод Google Переводчике, то мы увидим, что это словосочетание переводится как make decision, однако если перевести отдельно глагол «принять», то, скорее всего, на английском он будет звучать как except. Также синонимы этого глагола, например, «взять» переводится как take, «совершить» переводится как perform или commit, «осуществить» будет переводиться как carry out. Однако если мы переводим коллокацию «принять решение», то ни один из этих глаголов, except, take, perform, carry out не появится в переводе словосочетания make decision, то есть это словосочетание переводится как единое целое, представляет собой самостоятельную единицу перевода. Здесь глагол make совсем не соответствует переводу глагола «принять», если мы возьмем его по отдельности. Смысл словосочетания «принять решение», он не композиционный, то есть слово «принять» и слово «решение» не переводятся по отдельности, и смысл словосочетания не складывается из двух этих переводов. Такой не композиционный смысл – это один из главных признаков словосочетаний, которые называются коллокации.

    Коллокации имеют различные структуры. На этом слайде вы видите коллокации, которые состоят из глагола и существительного в винительном падеже без предлога. Это глагольно-именные коллокации. Есть и другие типы глагольно-именных коллокаций, например, глагол плюс существительное в косвенных падежах, с предлогом или без предлога. Например, «привести к выводу» или «служить примером».

    Другой подтип глагольно-именных коллокаций – это существительное плюс глагол и, возможно, предлог. Например, «результат достигается», «упор делается».

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

    Есть и другие виды коллокаций, но здесь мы упомянули самые типичные примеры и структуры этих словосочетаний.

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

    Здесь вы видите пример коллокации на испанском языке impartir clase, что я бы перевела как «проводить занятия».

    (00:10:06)

    Но в словаре «Мультитран», в его испанско-русской части, вы видите, что impartir clase переводится как «давать уроки», но это impartir clases, во множественном числе, а также imparter materia, materia – это «предмет» или «дисциплина», и глагол impartir переводится словом «преподавать», «преподавать» или «давать». Не очень я согласна с этим переводом, для меня самый естественный перевод этой коллокации на русский язык – это «проводить занятия». Но, тем не менее, это некоторые варианты перевода.

    Здесь вы видите коллокацию impartir clase в предложении. Предложение здесь на испанском языке, и я его перевела в Google Переводчике на русский язык. Этот перевод так звучит: «Завтра этот класс будет вести профессор Иванов, темой которого будут компьютерный системы».

    На мой взгляд, здесь хорошо проявляется эта проблема перевода коллокаций. Если бы я была переводчиком, на месте переводчика я бы перевела это предложение: «Профессор Иванов завтра проведет это занятие, темой которого будут компьютерные системы». «Вести класс», перевод, который здесь предложен, хотя, конечно, понятен смысл этого словосочетания, и нам понятен смысл предложения, однако, на мой взгляд, этот перевод не очень естественный для русского языка, такой не очень гладкий, и понятно, что он более буквальный, пословный, чем передача смысла этого предложения. Согласование здесь не очень, «темой которого будут компьютерные системы», здесь нужно подумать, слово «которого» к чему относится, то ли к профессору, то ли к классу. Понятно, что к классу, конечно, по содержанию, но пуристы в области русского языка, наверное, сделают замечание о том, что «компьютерные системы» нужно перевести как «вычислительные системы», хотя «компьютерные системы или технологии» уже распространенный вариант перевода computer systems или sistemas computacionales здесь на испанском языке.

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

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

    В области естественного языка коллокации, их обнаружение и их семантическая интерпретация, то есть извлечение смысла представляет собой очень трудную задачу. Здесь мы видим начало статьи, которая посвящена так называемым многословным выражениям. Коллокации – это один из видов этих многословных выражений. Здесь авторы назвали эти многословные выражения a pain in the neck in NLP.

    (00:15:01)

    Это для автоматической обработки языка головная боль, головная боль для каждого, кто занимается автоматической обработкой языка, так можно перевести это идиоматическое выражение a pain in the neck. Конечно, если мы автоматически переведем это выражение как «боль в шее» для автоматической обработки языка, для нас это будет непонятно, что здесь имеется в виду. Для нас проблема – это «головная боль», а для англоязычных это «боль в шее».

    Теперь, когда мы определили, что такое коллокация, поговорим о том, что такое смысл в автоматической обработке текста и вообще смысл, как его понимают исследователи. Конечно, вопрос смысла – это очень сложный вопрос, и его рассматривает с точки зрения различных наук – философии, логики, онтологии, теории познания, с точки зрения психологии, с точки зрения лингвистики, семантики и семиотики и, конечно, компьютерных технологий. Здесь, конечно, можно много говорить об этом, но когда уже делаешь какую-то работу, необходимо принять определенный взгляд, какое-то определенное мнение и определение что такое смысл. Мы в нашей работе приняли определение смысла, которое дается в теории «Смысл ⇔ Текст». Эта теория разработана была Игорем Александровичем Мельчуком совместно с Александром Константиновичем Жолковским и Юрием Дерениковичем Апресяном. Эта теория также продолжает развиваться и сейчас, развивают ее представители московской семантической школы – Игорь Михайлович Богуславский, Леонид Лейбович Иомдин, Лидия Николаевна Иорданская, а также различные исследователи стран Европы и Канады.

    Здесь вы видите обложку основного труда, где изложено содержание теории «Смысл ⇔ Текст», под авторством Мельчука, «Опыт теории лингвистических моделей «Смысл ⇔ Текст».

    В теории «Смысл ⇔ Текст» смысл определяется как общее содержание множества равнозначных высказываний. Например, здесь вы видите три предложения: «Он решил участвовать в конкурсе», «Он принял решение участвовать в конкурсе» и «Он решил принять участие в конкурсе», и можно предложить другие варианты парафразы этого же предложения. То общее содержание, которое находится во всех этих трех предложениях, и является смыслом этого текста. Таково определение смысла в теории «Смысл ⇔ Текст», это общее содержание множества равнозначных высказываний или инвариант, семантический инвариант, который содержится во множестве равнозначных высказываний.

    Смысл в теории «Смысл ⇔ Текст» представляется в конечном итоге после анализа текста в виде семантического графа. Здесь вы видите пример из книги Мельчука «Опыт теории лингвистических моделей «Смысл ⇔ Текст», и мы видим семантическое представление предложения «Косте удалось победить» какого-то человека, Х, в U, каком-то конкурсе, каком-то соревновании. Здесь мы видим, что узлы в этом графе – это слова, некоторые слова, мы видим, имеют такое абстрактное значение, например, слово «каузировать», «иметь место», «действовать», то есть это слова, которые здесь, в этом предложении, не содержатся. Дело в том, что в узлах этого графа находятся так называемые семантические атомы, или элементарные значения, из которых затем складывается смысл слов. Например, «Костя» представляется как один мужчина по имени Костя.

    (00:19:57)

    Ребра в этом графе представляют собой отношения между словами, между понятиями. Дальше, «удалось победить» здесь представляется, как что-то каузирует, какие-то ресурсы, которые есть у Кости, они действуют и каузируют его победу. Выделение этих смысловых атомов или элементарных смыслов – это большой труд, который необходимо провести, чтобы затем построить такой семантический граф. Конечно, очень хочется построить его автоматически. Есть, конечно, много работ, которые занимаются генерацией семантических графов, но пока еще результаты довольно далеки от совершенства. К тому же, здесь очень привлекательная идея в том, чтобы выявлять смысл слов и предложения в виде элементарных смыслов, набор которых довольно ограничен. Но, поскольку их можно комбинировать, появляются при этом более сложные смыслы. Вот такое представление смысла в виде графа эксплицитно, оно недвусмысленно, и его можно затем использовать для различных задач – для извлечения информации из текста, для ответов на вопросы, для машинного перевода и для многих других, для решения многих других проблем.

    Итак, здесь представлены элементарные смыслы, из которых затем складывается смысл слов. Но мы хотим извлечь смысл из коллокаций. Как известно, в коллокациях смысл слов изменяется. Каким же образом представить их в таком эксплицитном, формальном виде? Для этого в теории «Смысл ⇔ Текст» предложено другое понятие, которое называется «лексическая функция». Лексическая функция – это функция в математическом смысле, которая формулируется, чтобы формально представить семантически синтаксическую структуру коллокации.

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

    Итак, здесь вы видите, что коллокация «принять решение» представлена как функция, аргумент у нее слово «решение», то есть свободный компонент, а значение этой функции – «принять».

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

    (00:25:01)

    Но мы видим, что каждый свободный компонент этой коллокации, то есть «решение», «шаг», «борьбу», для выражения этого общего смысла, «реализовывать», выбирает свой собственный специфический глагол. Слово «решение» выбирает глагол «принимать», а не глагол «делать» или «оказывать». Существительное «шаг» выбирает глагол «делать», а не «осуществлять», например. Существительное «борьба» выбирает глагол «вести» и так далее. Хотя глаголы очень разные, но, поскольку они выражают общий абстрактный смысл, их даже можно назвать, я бы их назвала синонимичными, синонимы в этих всех коллокациях. Эти различные коллокации можно обобщить в виде структуры, агенс реализовывает то, что выражает существительное. Агенс – это то лицо, то явление, которое и осуществляет действия, выражаемые глаголами здесь в этих коллокациях. Агенс – это основная семантическая роль в языке.

    Итак, мы видели, что все эти коллокации выражают общее абстрактное значение или структуру «агенс реализовывает то, что выражает существительное». Это общее значение присваивается лексической функцией, и ей дается название Oper, от латинского слова operari, что значит «реализовывать». Справа от названия этой функции Oper находится индекс, единица, этот индекс обозначает, что первый участник ситуации, извиняюсь тут за ошибку, первый участник ситуации, то есть агенс этого действия, выражается подлежащим в глаголах, в предложениях, где употребляются эти коллокации. Здесь, например, мы видим это предложение: «Директор (то есть агенс) принял решение участвовать в тендере». Директор – это то лицо, которое непосредственно осуществляет действие принятия решения, то есть реализовывает это действие.

    Теперь мы видим, как каждая коллокация, «принимать решение», «вести борьбу», «делать шаг», «оказывать помощь», формальным образом представлены как лексическая функция Oper1, где существительное является аргументом функции, и это существительное генерирует значение этой функции, и для каждого существительного генерируется специфический глагол, который выражает один и тот же абстрактный смысл – реализовывать то, что выражает это существительное. Это лексическая функция Oper1. Есть и другие лексические функции, то есть при анализе смысла коллокаций выделяются и другие абстрактные общие смыслы, например, лексическая функция Oper2. Здесь действие тоже обозначает реализацию, реализацию того, что выражено существительным, однако структура здесь другая, не агенс здесь реализовывает действие, а пациенс, то есть лицо, которое подвергается воздействию этого действия. Пациенс подвергается воздействию того, что выражает существительное.

    Примеры этой функции – «подвергаться влиянию», «получать травму», «находить поддержку», «встречать сопротивление». Здесь мы видим внизу, тоже здесь извиняюсь за ошибку, справа здесь Oper2 нужно было поставить, Oper2 от «влияния» это глагол «подвергаться», от «поддержки» – «находить», от «травмы» – «получать», и от «сопротивления» – «встречать». Это другая функция, Oper2.

    (00:30:03)

    Всего выделяются примерно 60 лексических функций для различных структур коллокаций, и их определения, их список с их определениями и примерами можно найти, например, в книге Апресяна «Лексическая семантика», в той книге, о которой мы изначально говорили, Мельчука, «Опыт лингвистических моделей «Смысл ⇔ Текст», а также на английском языке, здесь внизу находится ссылка, труд Мельчука на английском языке, посвященный лексическим функциями, здесь дается список лексических функций, для каждой функции объясняется ее значение, и даются примеры на английском языке.

    Здесь, в этой таблице, мы видим несколько примеров других лексических функций, например, функция Func1, от латинского слова function, «исполнение». Эта функция генерирует глагол, который соединяет название ситуации, то есть существительное в качестве подлежащего с названием агенса в качестве дополнения. Например, «влияние на b исходит от а», или «предложение поступает от кого-то».

    Далее, следующая лексическая функция, Oper1. Как вы видите, здесь два семантических элементарных компонента, Incep, от латинского глагола incipere, то есть «начинать», и Oper1, это функция, которую мы уже видели, означает «реализовывать». Смысл этой функции – начинать реализовывать то, что выражено существительным. Здесь мы видим, что функции бывает простые, как, например, Oper1 или Func1, а эта функция композиционная, она складывается из нескольких элементарных, таких абстрактных смыслов. Примеры этой функции, IncepOper1 – «приходить к власти», «погружаться в грезы».

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

    Следующая функция, Caus1Func1, это автокаузатив агенса, то есть агенс сам производит для себя это действие. Пример – «накликать беду на себя».

    Последний пример, это функция Liqu1Func1, это автоликидатив агенса, то есть агенс сам останавливает действие, которое воздействует на него самого. Пример здесь – «откинуть сомнения».

    Для того, чтобы выполнить нашу работу на материале испанского языка, мы составили корпус лексических функций. Здесь мы осуществили несколько таких этапов, в этой работе. Сначала из корпуса, который называется Spanish Web Corpus, который заключает много текстов на испанском языке, автоматически извлекли словосочетания глагол плюс существительное. Spanish Web Corpus находится в таком программном обеспечении, доступ к которому осуществляется по Интернету, и он находится на сайте, который здесь указан, и это программное обеспечение называется Sketch Engine. Оно широко используется многими, кто занимается обработкой естественного языка, и там находятся корпуса на многих языках, в том числе и на русском, а также содержатся необходимые функции и набор программ, которые обрабатывают эти тексты.

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

    (00:34:59)

    Список мы упорядочили по частоте, и взяли 1000 наиболее частотных словосочетаний. Затем каждому глаголу и существительному мы присвоили номер его значения из Spanish WordNet, не хватает одной буквы. WordNet – это такой электронный словарь или таксономия, которая создана в виде графа. В узлах графа находятся слова, и ребра этого графа представляют собой отношения между словами. Для чего мы это сделали? Номер значения определяет смысл слова, и этот смысл мы хотели использовать затем для семантического представления словосочетаний. Об этом мы поговорим немного позже.

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

    Здесь показаны эти этапы более наглядно. Слева находится изначальный список, глагол плюс существительное, справа каждого словосочетания находится его частота, сколько раз оно употребляется в Spanish Web Corpus. Справа находится наш размеченный список, в первой колонке лексическая функция указана для коллокации, или, если это свободное словосочетание, то здесь указан акроним FWC, что значит free word combination. Но поскольку эти словосочетания были извлечены автоматически, то при извлечении, конечно, попадались такие словосочетания, которые не являются коллокациями и не имеют никакого смысла, то есть являются ошибками извлечения, и они помечены здесь как error.

    Во второй колонке здесь мы видим глагол, затем в третьей колонке находится номер значения этого глагола в словаре Spanish WordNet, затем в следующей колонке находится существительное, затем идет номер и значение этого существительного и частота этого словосочетания в Spanish Web Corpus.

    Этот корпус или словарь лексических функций находится в открытом доступе. Здесь вы видите скриншот страницы Александра Гельбуха, это мой научный руководитель. Мы вместе занимаемся с ним этой темой, автоматическим обнаружением смыслов в коллокациях. Можно скачать здесь этот корпус, эти примеры, и продолжать эти исследования.

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

    После того, как мы определили лексические функции, мы составили такую таблицу, какие вообще лексические функции встретились в тысяче словосочетаний глагол плюс существительное в испанском языке. Здесь лексическая функция указана в первом столбце, затем идет количество примеров, количество коллокаций этой лексической функции, и затем частота этой коллокации в Spanish Web Corpus. Лексические функции здесь разнообразны. Конечно, говорить о смысле каждой здесь мы не можем, поэтому повторяю, что список лексических функций с объяснениями их значения и с примерами вы можете найти в указанных выше работах.

    Здесь мы видим, что эти лексические функции, то есть коллокации, имеют большую частоту. Поэтому проблема, допустим, которая встречается в переводе этих коллокаций или при автоматической генерации текста, она имеется.

    (00:40:08)

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

    Итак, это некоторые статистические данные по лексическим функциям в нашей работе. здесь вы видите примеры лексических функций с объяснениями их значения на английском языке, с примерами коллокаций на испанском, и английский перевод этих коллокаций. Поскольку мы хотели применять методы машинного обучения для затем определения… извлечения смысла коллокаций, их обнаружения, то для таких алгоритмов машинного обучения необходимо иметь достаточное количество примеров. Поэтому мы выбрали эти восемь лексических функций, поскольку по этим функциям мы имеем достаточное количество примеров. Самое большое для функции Oper1, 266 коллокаций. Остальные лексические функции представлены очень маленьким набором примеров, поэтому пока мы с ними не работали. Эти восемь лексических функций мы обнаруживали автоматически в наших экспериментах.

    Здесь представлен общий такой pipeline или этапы обработки данных и машинного обучения. На входе мы видим примеры лексических функций. Здесь я скажу, что машинное обучение мы применяли для тренировки классификаторов, и определение лексической функции, эту задачу мы определили как классификация коллокаций на два класса. Например, если мы хотим обнаружить лексическую функцию Oper1, то примеры Oper1 представлены как положительные, а все остальные примеры других лексических функций представлены как отрицательные примеры, то есть классификация идет на два класса: коллокация принадлежит Oper1 или не принадлежит Oper1. Так как мы классифицировали коллокации для каждой лексической функции, то есть классификация идет бинарная, положительный класс – это такая-то лексическая функция, или отрицательный класс.

    На входе этого pipeline находятся примеры лексических функций. Затем необходимо провести предварительную обработку текста, на английском это preprocessing. Эти тексты необходимо далее представить в виде векторов, то есть слова необходимо затем представить в численном виде, чтобы затем алгоритм машинного обучения мог вычислять класс, к которому относится та или иная коллокация, класс, то есть какую-то лексическую функцию. После тренировки классификатора на входе подаются лексические функции без указания класса, и классификатор автоматически присваивает той или иной коллокации функцию или говорит, что коллокация эта не принадлежит этой функции.

    Теперь поговорим о каждом этапе отдельно. Предварительная обработка текстов или preprocessing заключается также в нескольких этапах. Первый этап – это разбивка строки текста на слова, это называется токенизация. Затем из текста удаляются служебные слова, это союзы, предлоги, указатели, например, местоимения «этот», «это», удаляются знаки пунктуации и другие нерелевантные символы.

    (00:45:01)

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

    Затем производится такой процесс, который называется лемматизация. Смысл этого процесса заключается в том, чтобы слова, которые представлены различными формами морфологическими, заменить на начальную форму этого слова, на основную форму, которая называется лемма. Здесь вы видите пример различных форм глагола «решать»: «решаю», «решаем», «решили». Все эти формы заменяются на неопределенную форму глагола «решать». Или если мы видим различные формы прилагательного «высокий» – «высокое», «высокие», «высокая», «выше», то они все заменяются на прилагательное «высокий», это единственное число, мужской род. Для чего это делается? Дело в том, что слова в словосочетании мы затем представляем в виде векторов. В векторах мы используем числа, которые мы хотим, мы хотим, чтобы эти числа как можно ближе отражали, как можно лучше отражали смысл или семантику этих слов. Эти числа получаются в основном на базе частотности этих слов. Здесь я привела пример частоты различных форм глагола «решать». Если мы хотим, чтобы это число, это частота отражала смысл, то, смотрите этот смысл как бы разбивается на несколько слов: «решаю», частота 2, «решаем», частота 1, «решили», частота 5. Машина воспринимает эти слова как самостоятельные, независимые друг от друга смыслы, и мы видим что их частоты различны. На самом деле, все эти формы представляют один-единственный смысл, который выражен здесь неопределенной формой глагола «решать», и мы видим, что на самом-то деле частота этого смысла – 8, а не какое-то другое число. Таким образом, лемматизация, то есть замена различных форм одного и того же слова его начальной формой, которая называется лемма, позволяет более точно отразить частоту употребления смысла, а не просто слова как набора букв.

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

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

    (00:50:02)

    Например, токенизация. Кажется, что это очень простая задача, взять строку текста, разбить ее на слова. Однако и здесь есть свои проблемы. Здесь вы видите, как разбита на слова строка текста на испанском языке, функция split в Python, и вы видите, например, что не все слова, не все строки разбиваются хорошо, к ним приклеиваются знаки препинания, не всегда отделяется здесь двоеточие, не всегда отделяется точка, эти диагонали здесь тоже приклеены к буквам. Это такая функция Python, так она работает.

    Другая функция, которая разбивает строку на слова, это функция word_tokenize в очень популярным таком программном обеспечении для обработки естественного языка, которое называется Natural Language Toolkit или NLTK. Здесь мы видим, что он действует лучше, работает лучше, чем функция split в Python. Здесь например, точка, двоеточие, мы видим, они отделяются от букв, хотя диагонали продолжают оставаться такими приклеенными к этим буквам.

    Наконец, третий вариант токенизации – это такой класс в этом же программном обеспечении NLTK, который называется PlaintextCorpusReader. Здесь вы видите, что уже эти диагонали отделяются от слов, от буквенных комбинаций, хотя тоже некоторые здесь недостатки мы можем наблюдать, например, нижнее подчеркивание остается приклеенным к этим буквам или к цифрам. Такая простая задача, как разбивка строки текста на слова, она тоже имеет свои проблемы, и нужно очень внимательно подбирать функцию, которая будет это делать, или самим нужно ее написать, для того, чтобы дальнейшие этапы автоматической обработки были более качественными.

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

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

    (00:55:00)

    Это могут быть слова, которые часто встречаются благодаря какой-то определенной тематике текста. Например, если текст посвящен компьютерам, то слово «компьютер» или связанные с ним слова будут просто часто встречаться в контексте любой коллокации. Поэтому необходимо модифицировать частоту слов в тексте, чтобы те слова, которые слишком часто встречаются, уменьшили как бы свое влияние на определение смысла коллокации, и наоборот, мы хотим увеличить значимость слов, которые редко встречаются в контексте коллокации, значит, они могут помочь определить эти коллокации автоматически. Для этого употребляется функция, которая называется «частота термина» или Term Frequency на английском языке, и она обозначается как TF. Очень часто эта функция – это логарифм от частоты в тексте плюс единица, эта оранжевая линия. Мы замечаем, что редко встречающиеся слова практически берутся в своей частоте начальной, но если частота этого слова очень возрастает, то мы видим, что эта функция уменьшает значение, значимость этих слов.

    Кроме того, иногда неважна нам частота в тексте, а важно присутствие или отсутствие этого слова в контексте, тогда в качестве частоты термина употребляется булева функция, и слово присутствует или слово отсутствует.

    Другой способ увеличить значимость редко встречающихся слов – это другая функция, которая называется «обратная частота документов» или Inverse Document Frequency. Если слово встречается в очень большом количестве текстов, это значит, оно нам не поможет определить смысл коллокации, то есть нужно уменьшить влияние этого слова на определение смысла коллокации. А если слово встречается в небольшом количестве текстов, тогда значение этого слова нужно повысить. Здесь мы видим функцию, которая вычисляет так называемую значимость слова в зависимости от количества документов или текстов, где встречается это слово. Если оно встречается в маленьком количестве текстов, например всего в одном, вы видите что его значимость достигает максимума, или значимость достигает минимума в данном случае, если это слово встречается во всех текстах.

    Эти две функции, частота термина и обратная частота документов, их смысл в том, чтобы как раз уменьшить значимость часто встречающихся слов в одном документе или в нескольких документах и повысить значимость редких слов. Обычно берется значение TF, и умножается на значение IDF, и эти числа помещаются в векторы, которые представляют смысл коллокации. Частоты мы берем от слов, которые употребляются в контексте, то есть мы хотим посмотреть, насколько контекст каждой коллокации поможет нам автоматически определить лексическую функцию.

    Кроме того, существуют и другие векторные представления слов и словосочетаний, которые называются word embeddings, есть различные функции, которые имплементированы в различные алгоритмы, нейронные сети, которые генерируют такие векторные представления. Мы использовали векторные представления GloVe. Word embeddings генерируются нейронными сетями различных конфигураций на базе контекста слов. Здесь в векторы помещаются числа, которые не поддаются уже интерпретации.

    (00:59:58)

    Раньше мы видели, что эти числа определяются на основе частоты слов, и можно посмотреть и понять, что если значение большое, число большое, значит, это число значимое для определения лексической функции. Если величина маленькая, значит, слово это не так важно для определения функции. Числа здесь, которые находятся в word embeddings, они уже не… мы их не можем интерпретировать, это числа которые каким-то образом выражают смысл этих слов в контексте. Затем использование этих векторов является достаточно эффективным для решения различных задач обработки естественного языка, но интерпретировать их уже невозможно.

    Затем наши векторные представления мы использовали для определения лексических функций в нейронных сетях трех архитектур. Сначала мы использовали многослойный персептрон, multilayered perceptron, и затем другой персептрон, когда векторные представления коллокации мы конкатенировали, concatenated input embeddings perceptron. Наконец, использовали также архитектуру, которая описана в статье, здесь указана ссылка, и мы приспособили, адаптировали эту нейронную сеть для нашей задачи. Это глубокая нейронная сеть, где используются кодификатор и декодификатор.

    Многослойный персептрон представлен здесь в виде этого рисунка. Здесь мы использовали всего одно слово в левом контексте свободного элемента коллокации и в правом контексте свободного элемента коллокации. Мы натренировали эту сеть так, чтобы она генерировала зависимый элемент коллокации, принадлежащий какой-то определенной лексической функции.

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

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

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

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

    (01:04:59)

    Наивысшие здесь результаты – немного, чуть больше 58%. Количественный показатель, который используется здесь для анализа работы этих сетей – это параметр, показатель, который называется F1 это среднее геометрическое от других двух количественных показателей, которые называются «точность» и «полнота». Это показатели, которые обычно используются для анализа работы алгоритмов машинного обучения, на английском они звучат как precision и recall. Мы видим, что контекст, хотя и помогает немного обнаружить лексические функции, но не очень успешно.

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

    Затем мы использовали другое векторное представление лексических функций. Первое у нас было, мы собрали слова, которые представляют контекст наших коллокаций, и составили, сгенерировали word embeddings. Другое векторное представление мы сгенерировали на основе семантической информации. Эта семантическая информация представлена гиперонимами глагола и существительного. Для этого как раз мы и определяли значения слов, каждого глагола и каждого существительного, в словаре Spanish WordNet. Гиперонимы – это слова с более общим значением. Например, гипероним слова «береза» – «дерево», а гипероним слова «дерево» – это «растение». Гипероним глагола «строить» – «созидать», а гипероним глагола «созидать» – «делать». Эти гиперонимы мы извлекли из словаря WordNet, который представляет собой дерево, где узлы – слова, а ребра – это семантические отношения, такие, как синонимия, антонимия, гиперонимия, меронимия и другие. Нас интересовало гиперонимия для каждого глагола, и для каждого существительного мы собрали гиперонимы. Это пример из словаря WordNet, и здесь представлены два значения слова decision, «решение», decisión на испанском языке. Конечно, в зависимости от значения слова, гиперонимы его разные, поэтому нам было важно определить значение слова, чтобы правильно извлечь гиперонимы.

    Затем, собрав все гиперонимы, мы увидели, что глаголы, общее число гиперонимов всех наших глаголов составляет 798, и общее число гиперонимов для существительных составляет 311, и теперь наше векторное представление будет состоять из 1110 позиций. Каждая позиция обозначает тот или иной гипероним, и числа на каждой позиции – это единица, если гипероним присутствует при представлении этой коллокации, если это гипероним глагола или существительного в этой коллокации, и если этот гипероним отсутствует, то употребляется здесь ноль. Каждая коллокация, здесь ниже мы видим два примера этих векторов, каждая колокация представлена этими векторами длиной 1110 элементов, и в зависимости от позиции единицы мы видим, какие гиперонимы здесь присутствуют.

    (01:09:59)

    Для определения, обнаружения лексических функций мы использовали различные алгоритмы машинного обучения. Здесь мы видим результаты, также показатель, численный показатель успешности того или иного алгоритма здесь тот же самый, F1, это среднее геометрическое от точности и полноты. Мы видим, что эти результаты значительно выше. Самый высокий результат, это алгоритм байесовской логистической регрессии, 87,3%, это очень хороший результат, высокий, и красным помечены алгоритмы, которые классически _____ (01:10:49) с помощью индукции правил, с помощью построения деревьев принятия решений. Мы видим, что большинство этих алгоритмов, которые показали самый высокий результат, они относятся к типу индукции правил. В основном лексические функции обнаруживаются алгоритмами, которые индуцируют правила.

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

    На этом я завершаю свое выступление, это все, что я хотела сказать о нашей работе. Большое спасибо.

    Николай Михайловский: Спасибо, Ольга, за подробный рассказ. У нас есть вопросы. У нас очень подробный, длинный вопрос Евгений Терентьев, убежавший, к сожалению, от нас, задает. Давайте я зачитаю. Если честно, я не совсем понимаю постановку вопроса, которая здесь у Евгения фигурирует, но, тем ни менее, может быть, мы с вместе с вами разберемся в том, что он спрашивает. «Можно ли сказать, что в разных языковых группах сложность определения семантического инварианта и смысла слова разная? Насколько я понимаю, в языках романской и финно-угорской группы смысл слова определяется еще и этимологией», тут непонятно, «что приводит к некоей чувственно-интуитивной интерпретации смысла. Например, в китайском языке такой проблемы не должно быть в похожих случаях. Можно ли сказать, что смысл слова во многом зависит от структуры и морфологии, и даже истории возникновения слова?»

    Ольга Колесникова: Да, конечно, безусловно, можно так сказать, естественно. Если опять ориентироваться на теорию «Смысл ⇔ Текст», смысл модели, которая предлагается в этой теории, это извлечь из текста смысл в таком, не знаю, можно ли так сказать, голом виде, то есть эксплицитном и абстрактном виде.

    (01:15:00)

    Эти семантические атомы определяются каким-то образом, допустим, на английском языке необходимо использовать какой-то промежуточный язык, чтобы определить смысл так, чтобы он был понятен для носителя любого языка. Конечно, исследователи, которые понимают, о чем идет речь. Если мы будем генерировать в таком виде семантические графы, то есть используя эти семантические атомы, какое-то такое общее, абстрактное представление смысла, если мы хотим затем этот семантический граф трансформировать в текст на естественном языке, то эта трансформация должна происходить с учетом как раз этих особенностей каждого естественного языка. Каждый язык по-своему выражает этот смысл. Поскольку я работаю с коллокациями, здесь я пыталась каким-то образом объяснить, что если, допустим, в русском языке мы «принимаем решение», в английском языке мы «делаем решение», make decision. В испанском языке мы используем глагол tomar, который очень близок к русскому глаголы «принимать». В китайском языке будет использоваться совершенно другой глагол, а может, вообще даже не словосочетание глагол плюс существительное, потому что «принимать решение» вообще можно перевести одним глаголом «решать» или словосочетанием из двух, из трех слов и так далее, зависит от каждого естественного языка. По логике этой теории, для каждого естественного языка нужно создать такую модель, которая бы объясняла, как семантические атомы и смысл, который представлен семантическим графом, как он трансформируется в структуры каждого отдельного естественного языка. Да, и здесь зависит от этимологии, зависит от многих других факторов.

    Николай Михайловский: Если возвращаться к вопросу Евгения, можно ли сказать, что в разных языковых группах сложность определения семантического инварианта и смысла слова разная?

    Ольга Колесникова: Знаете, сложность для кого, как говорится, да?

    Николай Михайловский: Сложность – это вычислительная сложность в первую очередь. Для меня интерпретация слова «сложность» здесь достаточно очевидна, хотя, на самом деле, можно задаваться вопросом, о какой сложности вообще этот вопрос.

    Ольга Колесникова: Низкий будет показатель определения этого явления или высокий?

    Николай Михайловский: Скажем так, долго ли считать? Хотя, может быть, Евгений на самом деле здесь имел в виду что-то другое, это мои реинтерпретации того, что он спросил. Понятно, что они неточны, вероятно.

    Ольга Колесникова: Если использовать представление, которое мы использовали, например, контекст этого смысла в тексте, или гиперонимы, то, я думаю, сложность не должна изменяться. В принципе, если мы используем контекст, то этот метод более-менее независим от языка, с которым мы работаем, поскольку мы имеем текст, это набор, просто набор слов, последовательность слов. В каком-то месте стоит то явление, которое мы хотим выявить, определить его смысл. Мы берем контекст его, окружение, справа, слева слова, строим их векторное представление, и определяем его смысл в том виде, в котором мы этот смысл хотим найти. Я думаю, сложность будет такая же, как и в русском языке, как и в испанском языке.

    Николай Михайловский: Хорошо, спасибо. Второй вопрос от Евгения.

    (01:19:58)

    «Проводились ли какие-то работы совместно со специалистами по нейрофизиологии? Все-таки изначально автором образа и определения является наш мозг».

    Ольга Колесникова: Нет, такие работы мы не проводили. Наша работа сосредоточена только на тексте, без привлечения каких-то других результатов.

    Николай Михайловский: Спасибо. Третий вопрос от Евгения. «Пробовали ли вы для повышения точности определения смысла представляясь контекст коллокаций в виде набора паттернов или глобальных лексических функций высшего порядка, которые уже внутри себя содержат обнаруженную коллокацию? В отличие от графов и векторов это была бы уже трехмерная объемная структура».

    Ольга Колесникова: Нет, такого тоже мы не делали, но интересно было бы подумать, как это можно реализовать. Пока не представляю, честно говоря.

    Николай Михайловский: Если честно, я тоже не вполне понимаю все словосочетания, которые здесь упомянуты, потому что, что такое «лексические функции высшего порядка», мне тоже не совсем понятно.

    Александр Златокрылец спрашивает: «Как вы векторизуете слова, имеющие одинаковое написание разного смысла, омонимы?»

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

    С другой стороны, конечно, работая с такими коллокациями, которые мы видели, типа «принимать решение», «вести борьбу», «проводить занятия» во многих случаях контекст коллокаций очень похожий. Этим объясняются довольно низкие результаты определения смысла при помощи контекста. Однако можно вести работу дальше, допустим, собирать контекст из большего количества текстов, контекст, допустим можно увеличивать, вместо одного слова слева и одного слова справа использовать четыре слова слева, четыре слова справа. Затем, как-то лучше предварительно обрабатывать текст или чистить его от нерелевантных различных структур или комбинаций слов или букв и так далее. Дальше думать, как улучшить эти методы.

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

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

    (01:24:57)

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

    Николай Михайловский: На современном уровне есть такая штука, как механизм внимания, который относительно эффективно с этими вещами поступает уже за вас.

    Ольга Колесникова: Да-да-да.

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

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

    Ольга Колесникова: Нет, вручную. Конечно, есть автоматические способы определения, свободное это словосочетание или коллокация, и есть очень много этих способов. Но мы хотели сделать этот корпус как можно более точным. Даже если автоматически определять, коллокация это или нет, допустим, сгенерировать такой список, все равно мы хотели его проверить вручную, чтобы наши данные были как можно более точными.

    Николай Михайловский: Станислав Копулькин, если правильно я произношу фамилию, если неправильно, извиняюсь, спрашивает: «Пробовали ли…» А, Станислав у нас поднял руку, давайте мы ему дадим просто голос, чтобы он человечьим голосом с нами разговаривал.

    Станислав Копулкин: Здравствуйте, я представлюсь, Станислав Копулкин, без мягкого знака. Я задал вопрос в чате, приведя ссылку на «Википедию», это просто самая точная формулировка. В основе теории категорий построены… есть работы, пробующие описывать лингвистику и, соответственно, я привел ссылку на… Там есть статья в «Википедии», Categorial grammar, а есть Combinatory categorial grammar, это уже такой более… уже так строго прописанный инструмент, четкий, поэтому я ссылка дал и на нее. Пробовали ли вы с этим работать? Еще есть Pregroup, это тоже интересно бы узнать.

    Ольга Колесникова: Да, насколько я понимаю здесь будет определяться смысл с использованием правил этой грамматики, да?

    Станислав Копулкин: Да.

    Ольга Колесникова: Это другой подход к вообще автоматической обработке языка. Мы работали в направлении статистического подхода, то есть на основе частотности слов или других численных выражений, смысла слов, при помощи, допустим, нейронных сетей. Это использование правил или так называемая символическая обработка естественного языка – это другое направление, пока мы в этом направлении не шли. Как я уже сказала, пока в современных технологиях по естественному языку больше ценятся методы, где как можно меньше привлекаются правила, грамматики, словари и тому подобные ресурсы, сделанные вручную. Все хотят автоматически все определять, только на основе какого-то исходного текста, и хотим, чтобы наши алгоритмы вообще не зависели от того, какой это язык, русский или китайский, или испанский и так далее. Поэтому мы пока в этом направлении смотрели, и такие подходы грамматические пока не использовали.

    Станислав Копулкин: Спасибо.

    Николай Михайловский: У меня еще есть один вопрос. Например, мы умеем определять смысл слов в коллокациях. Как нам это знание использовать, например, в системе автоматического перевода, которая, по сути, является end-to-end-системой, которая от конца до конца дифференцируемая, то есть в которой у нас, имея нейронные сети на входе и на выходе, как в такой системе использовать то знание, то умение, которое вы получаете относительно смысла слов в коллокациях, например?

    (01:30:17)

    Ольга Колесникова: Здесь, конечно, все зависит от методов, которые применяются для перевода, и они очень разнообразны. Пока я вижу смысл в том, чтобы обнаружить эту коллокацию и подобрать ей адекватный перевод в целевом языке.

    Николай Михайловский: О’кей. Александр Златокрылец спрашивает нас: «Интуитивно кажется, что вектор больше подходит для обозначения смысла слова, чем одномерное число, по крайней мере, в задачах, где используется семантическое расстояние между словами. В ваших исследованиях эти два подхода являются разными направлениями, или вы их каким-то образом комбинируете?»

    Ольга Колесникова: Я не очень поняла, что значит «смысл представить числом».

    Николай Михайловский: Александр, давайте мы вам дадим возможность полноценно сказать. Теперь вы можете задать свой вопрос.

    Александр Златокрылец: Вы говорили, что вы пользуетесь специальными словарями, Spanish… Не помню, как он назывался. Насколько я понял, там семантика слова заменялась числом, то есть векторизация, не векторизация, точнее, а заменялась одним числом. Вы в табличках показываете эти числа.

    Ольга Колесникова: Это не число, это… Сейчас я покажу. Это номер смысла в словаре.

    Александр Златокрылец: Номер смысла, то есть смысл вместо вектора был числом. Получается, в одних местах вы показывали, что вы используете векторизацию, то есть векторы сложные, а здесь, в этих исследованиях, вы использовали числа, просто число. Это два разных направления, или вы их комбинируете в конце концов, эти два метода?

    Ольга Колесникова: Нет, это два разных направления, два разных метода. Сначала мы пытались определить смысл при помощи контекста, и вектор, представлял он контекст.

    Александр Златокрылец: Я понял, спасибо.

    Ольга Колесникова: А второй метод – это мы определили номер смысла слова в словаре, и в зависимости от этого смысла мы извлекаем гиперонимы.

    Александр Златокрылец: Эти два направления не пересекающиеся?

    Ольга Колесникова: Нет, не пересекающиеся, да. Вот здесь видно, что наверху написано decisión1, это смысл номер один, здесь, вот это число один. Нам нужно было понять, чтобы извлечь вот этот гипероним, который находится ниже. А есть другой смысл слова, decisión2 здесь написано, и там уже другой совсем гипероним, например, «выбирать». Первый смысл – это мнение, а второй смысл – это выбор.

    Александр Златокрылец: Я понял. Здесь число использовать удобнее просто в этих исследованиях.

    Ольга Колесникова: Ага, конечно.

    Александр Златокрылец: Ясно. Спасибо.

    Ольга Колесникова: Пожалуйста.

    (01:34:03) (Конец записи)