Диагностика

Что такое диагностический датасет?

В проекте RussianGLUE оценка общего понимания языка начинается с набора тестов, отражающих различные языковые явления - Диагностического датасета. Этот набор оценивает понимание предложения через проблему причинно-следственных связей - Natural Language Inference (NLI).

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

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

Набор тестов на русском языке полностью совместим с исходным английским набором диагностических данных:https://super.gluebenchmark.com/diagnostics

Набор состоит из нескольких сотен пар предложений, размеченных соответствующими отношениями (есть логическое следствие - "entailment" или нет логического следствия - "not_entailment"), а также дополнительными метками различных лингвистических явлений, присутствующих в примерах.

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

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

Разметка лингвистических явлений включает как высокоуровневые, так и низкоуровневые категории. К высокоуровневым категориям относятся лексическая семантика, структура предиката-аргумента, логика, знание и здравый смысл. Каждая из них имеет несколько подкатегорий для конкретных языковых явлений такого рода. См. Раздел «Linguistic Categorization»

Содержание

  1. Формат данных
  2. Английский и русский набор тестов
  3. Значение категорий:
    • Логический вывод
    • Лексическая семантика
    • Логика
    • Предикатно-аргументная структура
    • Знание
  4. Уровень базовых моделей

Формат данных

Каждый пример теста в наборе диагностических данных имеет одинаковую структуру:

{
 'sentence1': "Кошка сидела на коврике.",
 'sentence2': "Кошка не сидела на коврике.",
 'label': 'not_entailment',
 'knowledge': '',
 'lexical-semantics': '',
 'logic': 'Negation',
 'predicate-argument-structure': ''
}

где

  1. "sentence1" and "sentence2" - два предложения для сравнения
  2. "Label" - обозначает разметку - есть ли между 2 предложениями отношение привязанности
  3. "Knowledge" включает в себя теги для обозначения здравого смысла и знаний о мире в примерах
  4. "Lexical-semantics" обозначает список тегов на семантических признаках, выраженных лексически - типы отрицания, квантификаторы, фактивность и т.д.
  5. "Logic" включает в себя различные логические операторы на естественном языке - условность, временность, дискурсы и т.д.
  6. "Predicate-argument-structure" включает морфосинтаксические особенности примеров, касающиеся предикатно-аргументной структуры - вида и времени глагола, синтаксических передвижений и т.д.

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

В этом наборе тестов все примеры также обогащены двумя конкретными тегами:

  1. 'prediction': 'entailment'|'not_entailment' - предсказывает ли базовая модель причинно-следственную между 2 предложениями или нет
  2. 'equal': True|False - правильно ли представлывает базовая модель или ошибается

Эти теги добавлены для дальнейшего удобства анализа - предлагаем использовать его при оценке вашей собственной модели [ссылка на код]

Английский и русский набор тестов

импорты необходимых библиотек

In [20]:
import pandas as pd
import warnings
warnings.simplefilter('ignore')


%matplotlib inline
import seaborn as sns
import matplotlib.pyplot as plt
#графики в svg выглядят более четкими
%config InlineBackend.figure_format = 'svg'

#увеличим дефолтный размер графиков
from pylab import rcParams
rcParams['figure.figsize'] = 8, 5
import pandas as pd

Сравнение результатов SuperGlue по диагностическому набору данных

Английская модель - bert-large-cased, обучена на RTE.

Русская модель - DeepPavlov/rubert-base-cased-conversational, обучена на русском RTE (короткая версия в 2000 примеров)

In [21]:
rus_df = pd.read_csv('AX-b-rus-pred.csv', index_col = 'idx').fillna('')
en_df = pd.read_csv('AX-b-en-pred.csv', index_col = 'idx').fillna('')
print('Russian accuracy: ', round(rus_df.equal.sum()/rus_df.shape[0],3))
print('English accuracy: ', round(en_df.equal.sum()/en_df.shape[0],3))
print('\nEntailment percent (label)', round(rus_df.label.value_counts()['entailment']/rus_df.shape[0],3))
print('Entailment percent (Russian)', round(rus_df.prediction.value_counts()['entailment']/rus_df.shape[0],3))
print('Entailment percent (English)', round(en_df.prediction.value_counts()['entailment']/en_df.shape[0],3))
Russian accuracy:  0.589
English accuracy:  0.539

Entailment percent (label) 0.416
Entailment percent (Russian) 0.381
Entailment percent (English) 0.784
In [22]:
en_df.head()
Out[22]:
knowledge label lexical-semantics logic predicate-argument-structure sentence1 sentence2 prediction equal
idx
0 not_entailment Negation The cat sat on the mat. The cat did not sit on the mat. entailment False
1 not_entailment Negation The cat did not sit on the mat. The cat sat on the mat. entailment False
2 not_entailment Negation When you've got no snow, it's really hard to l... When you've got snow, it's really hard to lear... entailment False
3 not_entailment Negation When you've got snow, it's really hard to lear... When you've got no snow, it's really hard to l... entailment False
4 not_entailment Negation Out of the box, Ouya supports media apps such ... Out of the box, Ouya doesn't support media app... entailment False
In [23]:
rus_df.head()
Out[23]:
knowledge label lexical-semantics logic predicate-argument-structure sentence1 sentence2 prediction equal
idx
0 not_entailment Negation Кошка сидела на коврике. Кошка не сидела на коврике. not_entailment True
1 not_entailment Negation Кошка не сидела на коврике. Кошка сидела на коврике. not_entailment True
2 not_entailment Negation Когда у вас нет снега, очень сложно обучиться ... Когда у вас есть снег, очень сложно обучиться ... not_entailment True
3 not_entailment Negation Когда у вас есть снег, очень сложно обучиться ... Когда у вас нет снега, очень сложно обучиться ... not_entailment True
4 not_entailment Negation Сразу же после распаковки Ouya поддерживает му... Сразу же после распаковки Ouya не поддерживает... not_entailment True

Значение категорий:

с примерами

Entailment

= Причинно-следственная связь, логиический вывод, Natural Language Inference

Источники

  1. Задача Natural Language Inference - MultiNLI
  2. Задача Recognizing Textual Entailment - RTE

В целом, мы рассматриваем проблему NLI на базе суждения о том, что среднестатистический читатель может посчитать явным после прочтения предпосылки, без учета возможной прагматики примеров. Неизбежно появление множества случаев, которые не являются чистыми, буквально очевидными, но мы хотим создать системы, которые будут способны делать те же выводы, что и люди. Это особенно справедливо в случае задачи целеполагания на основе "здравого смысла" (commonsense reasoning), который часто опирается на возможный логический вывод. Мы стараемся исключить из данных сомнительные случаи и не используем никаких предложений, которые не являются грамматическими или семантически некорректными. В общем случае, используются стандарты, установленные в RTE Challenges, а также рекомендациями MultiNLI.

В каждой паре предложений (предпосылка и гипотеза), мы помечаем их одним из двух зависимых отношений:

  • Entailment: гипотеза утверждает что-то, что определенно верно в отношении ситуации/события в предпосылке.
  • Not Entailment: гипотеза утверждает что-то, что может быть правильным или определенно неверным в отношении ситуации/события в предпосылке.

    Эти определения по существу совпадают с теми, что были предоставлены разметчикам корпуса тестов MultiNLI. Создатели полагаются на предположение, что два предложения описывают одну и ту же ситуацию. Однако "ситуация" может включать несколько участников и действий, и степень детализации, при которой мы просим описанные ситуации быть одинаковыми, является несколько субъективной.

In [24]:
#English data
en_df['label'].value_counts()
Out[24]:
not_entailment    644
entailment        460
Name: label, dtype: int64
In [25]:
# Examples - Entailment

index = 3
d = en_df[en_df['label']=='entailment'].iloc[index].to_dict()
print('English Entailment:\n')
print(d['sentence1'])
print(d['sentence2'])
print('\nRussian Entailment:\n')
d = rus_df[rus_df['label']=='entailment'].iloc[index].to_dict()
print(d['sentence1'])
print(d['sentence2'])
English Entailment:

Writing Java is not too different from programming with handcuffs.
Writing Java is similar to programming with handcuffs.

Russian Entailment:

Написание кода на Java не слишком отличается от программирования в наручниках.
Написание кода на Java подобно программированию в наручниках.
In [26]:
# Examples - Not Entailment

index = 3
d = en_df[en_df['label']=='not_entailment'].iloc[index].to_dict()
print('English - Not Entailment:\n')
print(d['sentence1'])
print(d['sentence2'])
print('\nRussian - Not Entailment:\n')
d = rus_df[rus_df['label']=='not_entailment'].iloc[index].to_dict()
print(d['sentence1'])
print(d['sentence2'])
English - Not Entailment:

When you've got snow, it's really hard to learn a snow sport so we looked at all the different ways I could mimic being on snow without actually being on snow.
When you've got no snow, it's really hard to learn a snow sport so we looked at all the different ways I could mimic being on snow without actually being on snow.

Russian - Not Entailment:

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

Лексическая семантика

Аспекты значения слов

In [27]:
en_df['lexical-semantics'].value_counts()
Out[27]:
                                  736
Lexical entailment                134
Factivity                          64
Quantifiers                        46
Named entities                     36
Symmetry/Collectivity              28
Redundancy                         26
Morphological negation             26
Lexical entailment;Quantifiers      4
Lexical entailment;Factivity        2
Factivity;Quantifiers               2
Name: lexical-semantics, dtype: int64

Логический вывод

Причинно-следственное отношение может быть выражено не только на уровне предложения, но и на уровне лексики. Например, мы говорим, что "собака" лексически влечет за собой "животное", потому что все, что является собакой, также является животным, а "собака" лексически противоречит "кошке", потому что невозможно быть одновременно обоими. Это относится ко всем частям речи (существительные, прилагательные, глаголы, многие предлоги и т. Д.), И взаимосвязь между лексическим и предложенным влечением была глубоко изучена, например, в системах естественной логики. Эта связь часто зависит от монотонности в языке, поэтому многие примеры Lexical Entailment также будут помечены одной из категорий Monotone, хотя мы не делаем этого в каждом случае.

Falcon Heavy это самая маленькая ракета со времён ракеты-носителя NASA "Сатурн V", которая использовалась для полет на Луну в 1970-е годы.
Falcon Heavy это самая большая ракета со времён ракеты-носителя NASA "Сатурн V", которая использовалась для полет на Луну в 1970-е годы.

Морфологическое отрицание

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

{% trans 'Brexit is a reversible decision, Sir Mike Rake, the chairman of WorldPay and ex-chairman of BT group, said as calls for a second EU referendum were sparked last week.
Brexit is an irreversible decision, Sir Mike Rake, the chairman of WorldPay and ex-chairman of BT group, said as calls for a second EU referendum were sparked last week.' %}

Фактивность

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

Все спичи – это политические публичные выступления.
  Джоан сомневается, что все спичи – это политические публичные выступления.

Во многих случаях это определяется лексическими триггерами (обычно глаголами или наречиями) в предложении. Например,

  • Я признаю, что из X следует X
  • Я не признаю, что их X следует X
  • Я верю, что из X не следует X
  • "Я отказываюсь делать X" противоречит "Я делаю X"
  • "Я не отказываюсь делать X" не противоречит "Я делаю X"
  • "Я почти закончил X" противоречит "Я закончил X"
  • "Я только что закончил X" имеет следствие "Я закончил X" В русской лингвистической традиции такие конструкции определяются на основе импликативного типа глагола [А.Зализняк 1988]Конструкции, подобные примеру с "Я признаю", в датасете считаются фактивными, если предпосылка (пресуппозиция) сохраняется даже при отрицании. Конструкции, подобные вышеприведенным с "Я отказываюсь", в датасете считаются импликативными, и они чувствительны к отрицанию. Существуют также случаи, когда предложение (не) влечет за собой существование субъекта, упомянутого в нем, например,
  • "Я нашел единорога" имеет следствие "Единороги существуют"
  • "Я ищу единорога" не обязательно имеет следствие "Единороги существуют" Чтения, в которых сущность не обязательно существует, часто называют интенциональными прочтениями, поскольку они, похоже, имеют дело со свойствами, обозначенными описанием (его намерением), а не сводятся к набору сущностей, которые соответствуют описанию (его расширению, которое в случаях небытия будет пустым). Мы помещаем все примеры, связанные с этими явлениями, отметкой Factivity. Несмотря на то, что от контекста часто зависит, определяется ли вложенное суждение или существование сущности общим утверждением, очень часто оно сильно зависит от лексических триггеров, поэтому мы помещаем категорию в лексическую семантику.

Симметрия/Коллективность

Некоторые предложения обозначают симметричные отношения, а другие нет; например,

  • "Джон женился на Мари" влечет за собой "Мари вышла замуж за Джона"
  • "Джону нравится Мари" не влечет за собой "Мари нравится Джон"

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

  • "Джон встретил Гари" влечет за собой "Джон и Гари встретились"

    Является ли отношение симметричным, часто определяется по вершине группы - глаголу (например, "жениться" или "встречать"), поэтому мы классифицируем это явление в рамках лексической семантики.

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

Избыточность

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

Том и Адам громко шептались в театре.
Том и Адам шептались в театре.

Именованные сущности

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

Стороны пришли к соглашению после их встречи в Европе.
Стороны пришли к соглашению после их встречи в Стокгольме.

Квантификаторы

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

Рассмотрим все слова из контекста как положительные примеры – и много негативных наугад из словаря.
Рассмотрим некоторые слова из контекста как положительные примеры – и несколько негативных наугад из словаря.

Логика

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

In [28]:
en_df['logic'].value_counts()
Out[28]:
                                          740
Negation                                   54
Upward monotone                            30
Intervals/Numbers                          30
Temporal                                   28
Double negation                            26
Downward monotone                          26
Conjunction                                24
Disjunction                                22
Non-monotone                               22
Conditionals                               22
Universal                                  14
Existential                                14
Disjunction;Negation                        6
Conjunction;Negation                        6
Intervals/Numbers;Non-monotone              6
Disjunction;Conditionals;Negation           4
Disjunction;Conjunction                     4
Negation;Conditionals                       4
Temporal;Conjunction                        2
Downward monotone;Conditionals              2
Universal;Negation                          2
Downward monotone;Existential;Negation      2
Double negation;Negation                    2
Conjunction;Upward monotone                 2
Existential;Negation                        2
Disjunction;Non-monotone                    2
Universal;Conjunction                       2
Existential;Upward monotone                 2
Temporal;Intervals/Numbers                  2
Name: logic, dtype: int64

Пропозициональная структура

Отрицание, Двойное отрицание, Конъюнкты, Дизъюнкты, Условные конструкции

Все основные операции логики высказываний появляются в естественном языке, и мы помечаем их там, где они соответствуют нашим примерам:

Negation:"Кот сидит на коврике" противоречит "Кот не сидит на коврике."

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

Double negation:На рынке невозможно не ориентироваться, влечет за собой "На рынке можно ориентроваться".

Рынок станет сложнее, но на нём будет возможно ориентироваться.
Рынок станет сложнее, но на нём не будет невозможно ориентироваться.

Conjunction:Температура и консистенция снега верны, значит и утверждение "температура верна" истино.

Пациент несёт часть ответственности за успех лечения.
Оба, и врач и пациент, несут часть ответственности за успех лечения.

Disjunction:"Жизнь - это либо смелое приключение, либо ничто", включает "Жизнь - это смелое приключение", но не означает утверждение "Жизнь - ничто".

Они слепо доверяют партнёрам.
Реализуется одна из двух ожидаемых возможностей: либо они слепо доверяют партнёрам, либо у них конфликт интересов.

Conditionals:Условные конструкции немного сложнее, потому что их использование в языке не всегда отражает их значение в логике. Например, они могут использоваться на более высоком уровне, чем утверждение по вопросу: "Если вы думаете об этом, это идеальная тактика обратной психологии" влечет за собой "Это идеальная тактика обратной психологии"

У Педро нет ослов.
Если у Педро нет ослов, он не может их бить.

Квантификаторы

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

Universal:Утверждение "У всех попугаев есть два крыла" влечет за собой, "Мой попугай имеет два крыла", но обратно не применимо.

Ни у кого нет набора жизненных принципов.
У каждого свой набор жизненных принципов.

Existential:Утверждение "У некоторых попугаев есть два крыла", не значит, что "Мой попугай имеет два крыла".

Никто не знает, как размножаются черепахи.
Сьюзен знает, как размножаются черепахи.

Монотонность

Восходящая монотонность, Нисходящая монотонность, Немонотонность

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

  • "У меня есть домашняя белка" значит "у меня есть домашнее животное", но не значит "у меня есть счастливая домашняя белка".
  • "У меня нет домашних белок" не влечет за собой "у меня нет домашних животных", но влечет за собой "у меня нет счастливых домашних белок".
  • "У меня есть ровно одна домашняя белка" не значит ни "у меня есть ровно одно домашнее животное", ни "у меня ровно одна счастливая домашняя белка".

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

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

Дополнительные логические структуры:

Интервалы/Числа, Время Есть некоторые аспекты рассуждения более высокого уровня, которые традиционно моделировались с использованием логики; они включают в себя математические рассуждения, зависящие от чисел, и временные рассуждения.

Интервалы/Числа:"Я выпил больше двух бутылок сегодня вечером", подразумеват "Я выпил больше одной бутылки"

Я не достиг своих целей в 1995 году.
Я не могу достичь своих целей каждый год, начиная с 1997, а сейчас 2008.

Время"Мэри ушла до того, как вошел Джон", влечет за собой "Джон вошел после того, как Мэри ушла".

Джон вошёл после того, как Мэри ушла.
Мэри ушла до того, как Джон вошёл.

Предикатно-аргументная структура

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

In [29]:
en_df['predicate-argument-structure'].value_counts()
Out[29]:
                                              680
Prepositional phrases                          56
Core args                                      48
Intersectivity                                 44
Anaphora/Coreference                           42
Coordination scope                             34
Active/Passive                                 32
Ellipsis/Implicits                             28
Nominalization                                 26
Relative clauses                               24
Datives                                        20
Genitives/Partitives                           18
Restrictivity                                  18
Coordination scope;Prepositional phrases        6
Core args;Anaphora/Coreference                  4
Relative clauses;Restrictivity                  4
Anaphora/Coreference;Prepositional phrases      4
Ellipsis/Implicits;Anaphora/Coreference         4
Restrictivity;Anaphora/Coreference              2
Nominalization;Genitives/Partitives             2
Relative clauses;Anaphora/Coreference           2
Restrictivity;Relative clauses                  2
Active/Passive;Prepositional phrases            2
Intersectivity;Ellipsis/Implicits               2
Name: predicate-argument-structure, dtype: int64

Синтаксическая неоднозначность: относительные клаузы, управление¶

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

Мао был председателем Коммунистической партии с момента её прихода к власти в 1949 году и до своей смерти в 1976 году.
Этот шаг знаменует конец системы, созданной  Дэн Сяопином в 1980-х годах, чтобы предотвратить появление очередного Мао, который был председателем Коммунистической партии с момента её прихода к власти в 1949 году и до своей смерти в 1976 году.

Предложные группы

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

В воскресенье у Джейн была вечеринка.
У Джейн была вечеринка в воскресенье.

Основные аргументы

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

  • "Джейк разбил вазу" значит "ваза разбилась"
  • "Джейк разбил вазу" не значит "Джейк разбился".

Другие перестановки основных аргументов, такие как в Symmetry / Collectivity, также попадают под метку Core Arguments.

Чередования: активный/пассивный залог, генитив/партитив, номинализация, дативные конструкции

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

  • активный/пассивный залог: "I saw him" (Я увидел его) равно "He was seen by me" (Он был увиден мной) и имеет следствие "He was seen" (Его увидели).
  • генитив/партитив: "the elephants foot" (нога слона) равно "the foot of the elephant" (слоновья нога).
  • номинализация: "I caused him to submit his resignation" (Я вынудил его подать в отставку) влечет "I caused the submission of his resignation" (Я повлек его отставку).v
  • дативные конструкции: "I baked him a cake" (Я испек ему торт) влечет "I baked a cake for him"(Я испек торт для него) и "I baked a cake" (Я испек торт), но не влечет "I baked him" (Я испек его).

Эллипсис

Часто аргумент глагола или другого предиката в тексте опускается (исключается), а читатель заполняет пробел сам. Мы можем построить примеры причинно-следственной связи, явно заполнив пробел правильными или неправильными соответствиями. Например:

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

Анафора / Кореференция

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

Джордж упал в воду.
Джордж пошел к озеру, чтобы поймать рыбу, но упал в воду.

Интерсективность

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

  • Интерсекция: "он скрипач, и старый хирург" влечет за собой "он старый скрипач, и он хирург".
  • Неинтерсектвность: "он скрипач, и опытный хирург" не влечет за собой "он - умелый скрипач".
  • Неинтерсектвность: "он фальшивый хирург" не влечет за собой "он хирург"

    Как правило, интерсективное использование модификатора, как "пожилой" у "пожилых людей", является тем, которое можно интерпретировать как обращение к набору сущностей с обоими свойствами (они пожилые и являются людьми). Лингвисты часто формализуют это, используя пересечение множеств, отсюда и берется название. Явление связано с фактивностью; например, подделка может рассматриваться как противоположный модификатор, и эти примеры будут помечены как таковые. Однако мы решили классифицировать интерсективность в структуре предикат-аргумент, а не в лексической семантике, потому что, как правило, одно и то же слово допускает как интерсективное, так и неинтерсективное употребление, поэтому интерсективность можно рассматривать как неоднозначность аргументной структуры.

Рестриктивность

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

  • Рестриктивное: "я закончил всю домашнюю работу на сегодня" не означает "я закончил всю домашнюю работу"
  • Нерестриктивное: "я избавился от всех этих надоедливых клопов" влечет за собой "я избавился от всех этих клопов".

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

Неоднозначность в рестриктивности часто используется в определенных видах шуток.

Знание

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

In [30]:
en_df['knowledge'].value_counts()
Out[30]:
                   820
Common sense       150
World knowledge    134
Name: knowledge, dtype: int64

Знание

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

  • "Это статья как будто из ИА Панорама" влечет "Эта статья читается как сатира".
  • "Реакция была сильно экзотермической" влечет "Реакционная среда стала очень горячей".
  • "Есть удивительные походы вокруг горы Фудзи" влечет "Есть удивительные походы в Японии", влечет "Есть удивительные походы в Непале".

Здравый смысл

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

  • "Объявление об отъезде Тиллерсона вызвало шок во всем мире" противоречит "люди по всему миру были готовы к отъезду Тиллерсона."
  • "Марк Симс встречается со своим парикмахером раз в неделю, в течение нескольких лет" влечет стрижку раз в неделю Марка Симса в течение нескольких лет.
  • "Колибри действительно привлекают ярко-оранжевый и красный (следовательно, кормушки, как правило, такие цвета)" влечет "Желающие покормить колибри обычно окрашены так, чтобы привлечь их".

Уровень базовых моделей по категориям

In [31]:
print('Russian accuracy: ', round(rus_df.equal.sum()/rus_df.shape[0],3))
print('English accuracy: ', round(en_df.equal.sum()/en_df.shape[0],3))
print('\nEntailment percent (label)', round(rus_df.label.value_counts()['entailment']/rus_df.shape[0],3))
print('Entailment percent (Russian)', round(rus_df.prediction.value_counts()['entailment']/rus_df.shape[0],3))
print('Entailment percent (English)', round(en_df.prediction.value_counts()['entailment']/en_df.shape[0],3))
Russian accuracy:  0.589
English accuracy:  0.539

Entailment percent (label) 0.416
Entailment percent (Russian) 0.381
Entailment percent (English) 0.784

Точность русской модели выше, чем у английской. К тому же распределение лейблов русской модели (38,1% Entailment) также значительной ближе к оригинальному (41,6% Entailment), чем у английской (78,4%).

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

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

Далее русская и английская модели сравнивались между собой по трем признакам: logic, lexical-semantics и predicate-argument-structure. При этом для каждого признака при анализе были оставлены только те группы, в которых число примеров больше 10 (так как не вполне корректно считать статистиски при очень маленьком количестве примеров, они могут оказаться непоказательными и даже misleading).

Сравнение моделей по категориям

In [32]:
def group_dataframe_by_label(df, label):
    df_short = df[df.logic.isin(df[label].value_counts().head(13).index)]
    df_short.equal = df_short.equal.map({False:0, True:1})
    df_short.label = df_short.label.map({'not_entailment':0, 'entailment':1})
    df_short.prediction = df_short.prediction.map({'not_entailment':0, 'entailment':1})
    df_short['ss'] = [1] *df_short.shape[0]
    res_df = df_short[[label,'equal','label','prediction', 'ss']].groupby(label).sum()
    for col in ['equal', 'label', 'prediction']:
        res_df[col] = res_df[col]/res_df.ss
    res_df.sort_values('equal', ascending = False)
    return res_df

Логика

Английская диагностика

In [33]:
res_df = group_dataframe_by_label(en_df, 'logic')
sns.heatmap(res_df[['equal', 'label', 'prediction']].rename(columns = {'equal':'correct_pred'}), annot=True)
Out[33]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f5248d4f898>

Русская диагностика

In [34]:
sns.heatmap(group_dataframe_by_label(rus_df, 'logic')[['equal', 'label', 'prediction']].rename(columns = {'equal':'correct_pred'}), annot=True)
Out[34]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f5248da9be0>

Логика

Русская модель значительно лучше справилась сNegation, Disjunction и Non-monotone, но совершенно просела на Double negation. Последнее, возможно связано с особенностями русского языка.

Лексическая семантика

Английская диагностика

In [35]:
sns.heatmap(group_dataframe_by_label(en_df, 'lexical-semantics')[['equal', 'label', 'prediction']].rename(columns = {'equal':'correct_pred'}), annot=True)
Out[35]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f5248b84208>

Русская диагностика

In [36]:
sns.heatmap(group_dataframe_by_label(rus_df, 'lexical-semantics')[['equal', 'label', 'prediction']].rename(columns = {'equal':'correct_pred'}), annot=True)
Out[36]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f5248a9f128>

Лексическая семантика

Русская модель намного лучше английской разобралась с Quantifiers и Factivity, но не справилась сMorphological negation и Named entities.

Предикатно-аргументная структура

Английская диагностика

In [37]:
sns.heatmap(group_dataframe_by_label(en_df, 'predicate-argument-structure')[['equal', 'label', 'prediction']].rename(columns = {'equal':'correct_pred'}), annot=True)
Out[37]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f52489e7278>

Русская диагностика

In [38]:
sns.heatmap(group_dataframe_by_label(rus_df, 'predicate-argument-structure')[['equal', 'label', 'prediction']].rename(columns = {'equal':'correct_pred'}), annot=True)
Out[38]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f52488f0a90>

Предикатно-аргументная структура

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

Знание

Английская диагностика

In [21]:
sns.heatmap(group_dataframe_by_label(en_df, 'knowledge')[['equal', 'label', 'prediction']].rename(columns = {'equal':'correct_pred'}), annot=True)
Out[21]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f05490ac048>

Русская диагностика

In [20]:
sns.heatmap(group_dataframe_by_label(rus_df, 'knowledge')[['equal', 'label', 'prediction']].rename(columns = {'equal':'correct_pred'}), annot=True)
Out[20]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f0549186748>
In [ ]: