В этом репозитории выложены толко датасеты, которые я создавал (обычно автоматически, иногда с ручной правкой) для решения разных задач с текстами на русском языке.
Датасеты используются для тренировки чат-бота. Они содержат короткие предложения, извлеченные из большого текстового корпуса, а также некоторые паттерны и словосочетания.
В архиве templates.clause_with_np.100000.zip находится часть датасета с сэмплами следующего вида:
52669 есть#NP,Nom,Sing#.
25839 есть#NP,Nom,Plur#.
18371 NP,Masc,Nom,Sing#пожал#NP,Ins#.
17709 NP,Masc,Nom,Sing#покачал#NP,Ins#.
Первый столбец - частота. Всего было собрано примерно 21 миллион предложений.
Второй столбец содержит результат shallow parsing'а, в котором именные группы заменены подстановочными масками вида NP,тэги. Задается падеж, а также число и грамматический род в случаях, когда это необходимо для правильного согласования с глаголом. Например, запись NP,Nom,Sing описывает группу существительного в именительном падеже и единственном числе. Символ '#' используется как разделитель слов и чанков.
Архив PRN+PreposAdj+V.zip содержит сэмплы вида:
Я на автобус опоздаю
Я из автобуса пришел
Мы из автобуса вышли
Я из автобуса вышла
Я из автобуса видел
Я на автобусах езжу
Они на автобусах приезжают
Мы на автобусах объездили
Архив adv+verb.zip содержит пары наречие+глагол в личной форме:
ПРЯМО АРЕСТОВАЛИ
ЛИЧНО атаковал
Немо атаковал
Ровно атаковала
Сегодня АТАКУЕТ
Ближе аттестует
Юрко ахнул
Архив adj+noun.zip содержит сэмплы типа:
ПОЧЕТНЫМ АБОНЕНТОМ
Вашим абонентом
Калининским абонентом
Калининградских аборигенов
Тунисских аборигенов
Байкальских аборигенов
Марсианских аборигенов
Голландские аборигены
Более новая и расширенная версия этого набора, собранная другим способом, находится в архиве patterns.adj_noun.zip. Этот датасет имеет выглядит так:
8 смутное предчувствие
8 городская полиция
8 среднеазиатские государства
8 чудесное средство
8 <<<null>>> претендентка
8 испанский король
Токен <<>> вместо прилагательного означает, что существительное употреблено без атрибутирующего прилагательного. Такие записи нужны для правильной маргинализации частот употребления словосочетаний.
Архив prep+noun.zip содержит такие паттерны:
У аборигенных народов
У аборигенных кобыл
Из аборигенных пород
С помощью аборигенов
На аборигенов
Для аборигенов
От аборигенов
У аборигенов
Архив patterns.noun_gen.zip содержит паттерны из двух существительных, из которых второе в родительном падеже:
4 французские <<<null>>>
4 дворец фестивалей
4 названье мест
4 классы вагонов
4 доступность магазина
Обратите внимание, что если в исходном предложении у генитива были подчиненные прилагательные или PP, то они в этом датасете будут удалены. Токен <<>> в столбце генитива обозначает ситуацию, когда первое существительное употреблено без генитива. Эти записи упрощают маргинализацию частот.
Архив patterns.noun_np_gen.zip содержит паттерны из существительного и полного правого генитива:
окно браузера
течение дня
укус медведки
изюминка такой процедуры
суть декларации
рецепт вкусного молочного коктейля
музыка самого высокого уровня
Архив S+V.zip содержит образцы такого вида:
Мы абсолютно не отказали.
Мужчина абсолютно не пострадал.
Они абсолютно совпадают.
Михаил абсолютно не рисковал.
Я абсолютно не выспалась.
Они абсолютно не сочетаются.
Я абсолютно не обижусь...
В архиве S+V+INF.zip находятся такие образцы:
Заславский бахвалился превратить
Ленка бегает поспать
Она бегает умываться
Альбина бегает мерить
Вы бегаете жаловаться
Димка бегал фотографироваться
Архив S+V+INDOBJ.zip содержит автоматически собранные паттерны подлежащее+глагол+предлог+существительное:
Встревоженный аббат пошел навстречу мэру.
Бывший аббат превратился в настоятеля.
Старый Абдуррахман прохаживался возле дома.
Лопоухий абориген по-прежнему был в прострации.
Высокий абориген вернулся с граблями;
Сморщенный абориген сидел за столиком.
В архиве S+V+ACCUS.zip находятся сэмплы такого вида:
Мой агент кинул меня.
Ричард аккуратно поднял Диану.
Леха аккуратно снял Аленку...
Они активируют новые мины!
Адмирал активно поддержал нас.
Архив S+V+INSTR.zip содержит сэмплы:
Я вертел ими
Они вертели ими
Вы вертели мной
Он вертит нами
Она вертит тобой
Она вертит мной
Он вертит ими
Она вертит ими
Архив S+INSTR+V.zip содержит такие сэмплы:
Я тобой брезгую
Они ими бреются
Они ими вдохновляются
Мы ими вертим
Она тобой вертит
Он мной вертит
Он ими вертит
Остальные сэмплы - законченные предложения. Для удобства тренировки диалоговых моделей эти данные разбиты на 3 группы:
Я только продаю!
Я не курю.
Я НЕ ОТПРАВЛЯЮ!
Я заклеил моментом.
Ездил только я.
Как ты поступишь?
Ты это читаешь?
Где ты живешь?
Док ты есть.
Ты видишь меня.
Фонарь имел металлическую скобу.
Щенок ищет добрых хозяев.
Массажные головки имеют встроенный нагрев
Бусины переливаются очень красиво!
Предложения в датасетах facts4_1s.txt, facts5_1s.txt, facts5_2s.txt, facts4.txt, facts6_1s.txt, facts6_2s.txt отсортированы с помощью кода sort_facts_by_LSA_tSNE.py. Идея сортировки следующая. Для предложений в файле сначала выполняем LSA, получая векторы длиной 60 (см. константу LSA_DIMS в коде). Затем эти векторы встраиваются в одномерное пространство с помощью t-SNE, так что в итоге для каждого предложения получается действительное число, такое, что декартово-близкие в LSA-пространстве предложения имеют небольшую разность этих tsne-чисел. Далее сортируем предложения согласно t-SNE значения и сохраняем получающийся список.
Предложения в остальных файлах отсортированы программой sort_samples_by_kenlm.py в порядке убывания вероятности. Вероятность предложения получается с помощью предварительно обученной 3-грамной языковой модели KenLM.
Отдельно выложен файл questions_2s.txt с вопросами, содержащими финитный глагол в форме 2 лица единственного числа. Эти вопросы собраны из большого корпуса с текстами, наскрапленными с форумов, субтитрами и так далее. Для удобства сэмплы отсортированы по финитному глаголу:
Берёшь 15 долларов ?
Берёшь денёк на отгул?
Берёшь отпуск за свой счёт?
Берёшь с собой что-нибудь на букву «К»?
Беспокоишься за меня?
Беспокоишься из-за Питера?
Беспокоишься из-за чего?
Вопросы отобраны автоматически с помощью POS Tagger'а и могут содержать небольшое количество ошибочных сэмплов.
Задача и датасет описаны на официальной странице соревнования. Исходный датасет, предоставленный организаторами, доступен по ссылке. С помощью скрипта extract_anaphora.py были раскрыты анафоры, в результате чего получился более простой для тренировки чатбота датасет. Например, фрагмент данных:
1 159 Кругом кругом R
1 166 она она P-3fsnn одинокую дачу
1 170 была быть Vmis-sfa-e
1 175 обнесена обнесена Vmps-sfpsp
1 184 высоким высокий Afpmsif
1 192 забором забор Ncmsin
Видно, что местоимение "она" раскрывается в словосочетание "одинокая дача". Приведение раскрытого словосочетания к правильной грамматической форме оставлено для следующего этапа.
Данные собраны для решения задачи конкурса ClassicAI. Использованы открытые данные - Википедия и Викисловарь. В случаях, когда ударение известно только для одной нормальной формы слова (леммы), я использовал таблицы словоизменения в грамматическом словаре и генерировал записи с отметкой ударности. При этом подразумевается, что позиция ударения в слове не меняется при его склонении или спряжении. Для некоторого количества слов в русском языке это не так, например:
р^еки (именительный падеж множественное число)
рек^и (родительный падеж единственное число)
В таких случаях в датасете будет один из вариантов ударения.
Новая версия русскоязычных диалогов - более 130 Мб, собранных из художественной литературы и подобных источников. В диалогах есть некоторое, относительное небольшое, количество оставшегося после автоматической чистки мусора.
Старая версия - Автоматически собранные русскоязычные диалоги
Датасеты содержат числовые оценки того, насколько слова чаще употребляются вместе, чем порознь. Подробности о содержимом и способе получения датасетов см. на отдельной странице.
Пары предложений в этих сэмплах могут быть полезны для тренировки моделей в составе чат-бота. Данные выглядят так:
Я часто захожу ! ты часто заходишь !
Я сам перезвоню . ты сам перезвонишь .
Я Вам перезвоню ! ты Вам перезвонишь !
Я не пью . ты не пьешь .
В каждой строке находятся два предложения, отделенные символом табуляции.
Датасеты сгенерированы автоматически из большого корпуса предложений.
Триады "предпосылка-вопрос-ответ" для предложений длиной 3 слова
Триады "предпосылка-вопрос-ответ" для предложений длиной 4 слова
Пример данных в вышеуказанных файлах:
T: Собственник заключает договор аренды
Q: собственник заключает что?
A: договор аренды
T: Спереди стоит защитное бронестекло
Q: где защитное бронестекло стоит?
A: спереди
Каждая группа предпосылка-вопрос-ответ отделена пустыми строками. Перед предпосылкой стоит метка T:, перед вопросом метка Q:, перед ответом метка A:
В архиве - список словоформ и их лемм, взятый из Грамматического Словаря Русского Языка. Некоторое количество (несколько процентов) слов имеют неоднозначную лемматизацию, например РОЙ - глагол РЫТЬ или существительное РОЙ. В таких случаях нужно учитывать контекст слова. К примеру, так работает библиотека для лемматизации rulemma.
Датасет содержит предложения, в которых выделены NP-чанки. Первое поле в каждой записи содержит метку принадлежности слова:
0 - не принадлежит NP-чанку
1 - начало NP-чанка
2 - продолжение NP-чанка
Разметка получена автоматической конвертацией из dependencies и может содержать некоторые артефакты.
Перестановочные перефразировки
Частоты слов с учетом частей речи