Вопрос или проблема
Я работаю над накоплением большой базы данных размеченных предложений для нескольких проектов/экспериментов. В настоящее время я использую только Википедию и проект Гутенберг в качестве источников данных. Между этими двумя источниками я ожидаю, что смогу извлечь миллионы предложений. Разметка этих предложений может быть другой задачей, но сейчас я меньше всего об этом беспокоюсь.
Моя главная необходимость заключается в поиске более широкого разнообразия предложений. Вопросы, восклицания, ругательства, разговоры и так далее. Мой проект включает несколько экспериментов с глубоким обучением, чтобы изучить различные типы предложений и структуры. Было бы полезно, если бы предложения были размечены.
Конечная цель моего проекта – это возможность выводить тип, структуру и связность предложения (с отдельными моделями). Генерировать бессмыслицу довольно легко, поэтому меня не так беспокоит поиск источников бессмысленных предложений.
Мое текущее беспокойство заключается в том, что подавляющее большинство предложений является декларативными (заявлениями), а не вопросительными, восклицательными или повелительными. Эта предвзятость в пользу декларативных предложений означает, что мои объемы образцов будут ограничены, если я не смогу найти источники вопросов, восклицаний и команд.
В качестве альтернативы я был бы открыт к предложениям о том, как генерировать необходимые мне данные.
В конечном итоге я остановился на проекте Гутенберг в качестве источника огромного количества данных. Я понял, что книги (художественная и нехудожественная литература) охватывают практически все варианты человеческой коммуникации, которые могут быть представлены в простом тексте. Я написал несколько скриптов для разбора текстовых файлов Гутенберга, а следующим шагом будет работа над опорной векторной машиной для классификации каждого отрывка как обычного контента или другого (например, заголовков, названий и т.д.).
https://www.gutenberg.org/wiki/Gutenberg:Information_About_Robot_Access_to_our_Pages
Ответ или решение
Для вашей задачи по накоплению обширной базы данных предложений, включает в себя не только декларативные, но и инквизиционные, восклицательные и императивные предложения, я предлагаю несколько источников, которые могут быть полезны для извлечения таких типов предложений.
1. Книги и Литература
Помимо Project Gutenberg, который вы уже используете, можно рассмотреть ресурс Internet Archive. Этот ресурс содержит миллионы книг, включая художественную и нехудожественную литературу, где присутствуют разнообразные предложения, включая диалоги, вопросы и восклицания.
- Internet Archive: https://archive.org/
2. Скрипты и Программирование
Ваш подход к написанию скриптов для парсинга текстов выглядит многообещающе. Стоит написать дополнительные скрипты для извлечения только тех частей текста, которые содержат вопросы или команды. Например, вы можете использовать регулярные выражения для поиска предложений, заканчивающихся на ‘?’ для вопросов и ‘!’ для восклицаний.
3. Онлайн-ресурсы и Базы Данных
Существуют специализированные платформы, такие как Common Crawl, которая предоставляет доступ к огромным объемам веб-данных. Это может быть полезно для извлечения разговорных предложений и вопросов в контексте диалогов на различных сайтах.
- Common Crawl: https://commoncrawl.org/
4. Форматы Работы с Диалогами
Вы можете использовать ресурсы, такие как OpenSubtitles или Dialogues Corpora, которые содержат субтитры и диалоги из фильмов и телепередач. Это может быть особенно полезно для получения восклицательных и императивных предложений, что будет максимально разнообразным в плане общения.
- OpenSubtitles: https://www.opensubtitles.org/
5. Создание Синтетических Данных
Если вам интересно генерировать специфические типы предложений, рассмотрите возможность использования языковых моделей, таких как GPT-3 или её аналогов. Эти модели способны генерировать предложения, включая вопросы и восклицания. Вы можете вмешиваться в процесс генерации, задавая исходные параметры и темы.
6. Сбор Данных на Социальных Платформах
Еще один способ получить более разнообразные предложения – использовать данные из социальных сетей (Twitter, Reddit и т.д.). Эти платформы наполняются повседневной коммуникацией, где можно встретить достаточно много вопросов, восклицаний и команд.
- Twitter API и Reddit API для извлечения данных.
Заключение
Создание базы данных с учетом разнообразия предложений — это сложная, но выполнимая задача. Важно учитывать, что использование комбинированного подхода, включающего ресурсы книг, субтитры, социальные сети и моделирование синтетических данных, будет наиболее эффективным для вашего проекта. Эффективная классификация и разметка данных потребует времени и усилий, но приведет к значительным результатам в ваших экспериментах с глубоким обучением.