Pull to refresh

Comments 13

Интересный проект, но ко многим фразам эмоциональный окрас/позитивность негативность зависят от контекста и ситуации. «Моросящий дождик» вторую неделю подряд — это плохая погода, а моросящий дождик после жары — это очень хорошая погода. «Жаркое марево» — на мой вкус хорошей погодой быть не может, но исходя из описания —
хорошая погода (солнышко, безоблачное небо) или плохая погода (дождь, слякоть, буря)
— большие сомнения к чему это относить.
стоять на своём — это что-то положительное, отрицательное или нейтральное?

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

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

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

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

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

эффект «среднего по больнице»… Тут возникает другая проблема — даже если мы захватим в разметке такие детали, то как их объяснить машине? Необходим компромисс между простотой и точностью, чтобы данными разметки можно было пользоваться на практике. Но, возможно, на последующих итерациях удастся учитывать и такого рода детали.
Тема интересная, сам в эту сторону думал. ИМХО Я бы добавил к ответам опцию "в одном из значений", "близко к этому" т.к. попадались где такое напрашивалось из-за возможных разных значений слова\выражения.
Местами не совсем понятно, зачем оценочное суждение? Кое-что просто факт и в оценке не нуждается.
Штормовые волны — это хорошая погода? По идее плохая, но я от такого тащусь и для меня хорошая. Это личные предпочтения. Нет ни хорошей, ни плохой погоды, есть отношение к ней конкретного человека. Незачем тащить в бота личное отношение.
«Знакомец» и «Изменник» — это физический объект? В принципе их таки можно пощупать, но это характеристика другого физического объекта.
Я бы добавил к ответам опцию «в одном из значений», «близко к этому» т.к. попадались где такое напрашивалось из-за возможных разных значений слова\выражения.

Всё верно. По науке стоило взять толковый словарь, обозначить конкретное значение слова и размечать уже его. Как сделано, например, в оригинальном WordNet'е. Но это усложняет весь процесс — нужно вчитываться в трактовки, нужно размечать больше значений. Мы пошли на компромисс и не стали так делать в версии #1.

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

И самый главный аргумент. Даже если мы разведём значения, как в тексте понять где какое? Автоматика умеет это делать, но не всегда хорошо.

В общем придерживаемся принципа keep it simple, особенно в ранних версиях.

Местами не совсем понятно, зачем оценочное суждение? Кое-что просто факт и в оценке не нуждается.

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

Штормовые волны — это хорошая погода? По идее плохая, но я от такого тащусь и для меня хорошая. Это личные предпочтения. Нет ни хорошей, ни плохой погоды, есть отношение к ней конкретного человека. Незачем тащить в бота личное отношение.

В среднем — это плохая погода. Кто-то скажет, что хорошая, но статистика это мнение перебьёт. Если будет 50/50 — перед нами интересный случай. Задача собрать как раз субъективные (!) оценки. Делать по ним выводы — задача самого бота и исследователей.

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

У нас сейчас не стоит задачи создать идеальную разметку. Для этого в принципе недостаточно информации. Цель другая — сдвинуться с мёртвой точки, под неё заточена вся механика.

«Знакомец» и «Изменник» — это физический объект? В принципе их таки можно пощупать, но это характеристика другого физического объекта.

Нет в языке абсолютных понятий. Подавляющее большинство слов по семантике — микс из атомарных смыслов, эмоций и оценок. Например:

На лице полковника мелькнула лёгкая улыбка.

Здесь полковник — это человек. Но не просто человек, а уточнённый — имеющий звание полковника армии. Поэтому полковник является, безусловно, физическим объектом.

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

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

Возможно немного укрупнить всё-таки стоит. Спасибо за наблюдение!

А можно пример, как это будет использоваться?

Отличный вопрос, ответить можно было бы целой статьёй. Но постараюсь кратко.

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

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

Более сложная задача — разметить выражения, т.к. в комбинации некоторые слова могут менять оценку. Это тоже делаем.

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

Пересечение контекстных полей для слов УЖАС и ВОСТОРГ
пришел в <УЖАС/ВОСТОРГ> 11207
в <УЖАС/ВОСТОРГ> от 10314
в <УЖАС/ВОСТОРГ>е от 9606
от <УЖАС/ВОСТОРГ>а и 8632
пришла в <УЖАС/ВОСТОРГ> 7830
была в <УЖАС/ВОСТОРГ>е 5715
и с <УЖАС/ВОСТОРГ>ом 5711
с <УЖАС/ВОСТОРГ>ом и 5432
был в <УЖАС/ВОСТОРГ>е 4987
Я в <УЖАС/ВОСТОРГ>е 4839
в <УЖАС/ВОСТОРГ> и 4421
пришли в <УЖАС/ВОСТОРГ> 4139
я в <УЖАС/ВОСТОРГ>е 3977
в <УЖАС/ВОСТОРГ>е и 3760
его в <УЖАС/ВОСТОРГ> 3478
себя от <УЖАС/ВОСТОРГ>а 3059
меня в <УЖАС/ВОСТОРГ> 3044
<УЖАС/ВОСТОРГ>е от того 3005
с таким <УЖАС/ВОСТОРГ>ом 2573
бы в <УЖАС/ВОСТОРГ> 2346
в такой <УЖАС/ВОСТОРГ> 2205
он с <УЖАС/ВОСТОРГ>ом 2205
ее в <УЖАС/ВОСТОРГ> 2105
он в <УЖАС/ВОСТОРГ>е 2066
были в <УЖАС/ВОСТОРГ>е 1936
и в <УЖАС/ВОСТОРГ>е 1847
<УЖАС/ВОСТОРГ> от того 1816
просто в <УЖАС/ВОСТОРГ>е 1790
я с <УЖАС/ВОСТОРГ>ом 1698
она с <УЖАС/ВОСТОРГ>ом 1459
в неописуемый <УЖАС/ВОСТОРГ> 1378
приходил в <УЖАС/ВОСТОРГ> 1372
с нескрываемым <УЖАС/ВОСТОРГ>ом 1267
приводит в <УЖАС/ВОСТОРГ> 1202
она в <УЖАС/ВОСТОРГ>е 1198
приходит в <УЖАС/ВОСТОРГ> 1120
<УЖАС/ВОСТОРГ> при виде 1112
придет в <УЖАС/ВОСТОРГ> 1097
от <УЖАС/ВОСТОРГ>а при 1093
Он с <УЖАС/ВОСТОРГ>ом 1076
<УЖАС/ВОСТОРГ>а при виде 1052


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

Синтактико-семантический анализ. С точки зрения грамматики предложение:

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

совершенно корректно. При этом вне контекста фантастического романа оно начисто лишено смысла. Но как это понять машине? Простой ответ — использовать сочетаемость слов. Скорее всего стакан чая — частотная фраза, а стакан радости — нет. Но у этого подхода, как и у всех остальных статистических методов есть слабое место — данные. Например, возьмём фразу:

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

Всё, что нужно знать человеку для понимания этой фразы это то, что саке — японский напиток. Да пёс с ним с японским. Напиток. Всё! Более того, человек может и сам сделать вывод о том, что скорее всего сакэ — какой-то напиток исходя из контекста. Потом загуглить и убедиться в своей правоте.

Может ли это сделать машина? Запросто. Но для этого ей нужно понимать, что общего между чаем, кофе, соком, водой и т.д. Для этого мы и создаём тезаурус — граф концептов нашего мира.

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

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

Стратегическая цель. Тут всё просто. Вы исследователь и хотите заняться семантикой — изучением смысла слов. Но для этого вам нужны инструменты — тот же тезаурус, эмоциональная и оценочная разметка. Вы идёте в интернет и не находите этих ресурсов. Или их мало. Или они закрытые. А для английского языка всё есть. Скачивай и начинай работать.

Сложно преуспеть в технологиях, когда каждому исследователю или инженеру приходится тратить силы на создание базовых инструментов. Если для морфологической разметки и синтаксического анализа арсенал средств ещё имеется, то в плане семантики всё не так радужно. (Здесь хочется послать лучи добра проектам OpenCorpora.org, Викисловарю, YARN, RusVectōrēs и другим создателям открытых языковых данных — без вас было бы совсем грустно.)

Здесь у нас есть огромный опыт использования технологического плеча — когда 95% работы делает машина, 5% — человек. Это сразу даёт двадцатикратный прирост в производительности, который по мере обучения компьютера возрастает ещё больше. На примере Научи бота! мы хотим показать, что создавать лингвистические данные — это не так долго и дорого, как кажется с первого взгляда ;)
Попытка научить понимать контекст через разметку может оказаться тупиковой.
Поскольку в жизни среднестатистической речи нет, не пробовали сделать клон? Данные почты, мессенжера, речи прогнать через нейросеть, чтобы получить бота с характером конкретного человека, его привычками, его контекстом?

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


Человеку семантическая и эмоциональная разметка доступны естественным образом: посредством органов чувств. Мы знаем, где хорошо и где плохо, где физический мир, а где фантазия. Потом переносим понятия между мирами — тяжёлый в значении трудный, взорвать [блогосферу] в значении создать бурное обсуждение.


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


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


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

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

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

Sign up to leave a comment.

Articles

Change theme settings