Рубрика:
Наука и технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
КОТЕНЕВ Д.Д., студент, Национальный исследовательский университет «Высшая школа экономики», г. Москва, danilkotenev@yandex.ru
КАНИЩЕВ В.В., студент, Национальный исследовательский университет «Высшая школа экономики», г. Москва, vetasindi@yandex.ru
Разработка автоматизированного программного обеспечения для анализа текстов русских музыкальных исполнителей
С развитием способов дистрибуции музыкальных произведений они приобретают все большую популярность, и на сегодняшний день музыка является неотъемлемой частью жизни многих людей. Зачастую слушатели не задумываются надособенностями текстов песен, а ведь он придает музыкальному произведению смысловую нагрузку, поэтому при его анализе можно изучить специфику жанра и отличия между ними. Для этого в данной работе было разработано программное обеспечение для автоматической выгрузки текстов песен из сети Интернет, а также для их анализа и поиска характерных жанровых особенностей
Одним из ключевых моментов в методике анализа текста является выбор единицы анализа. В качестве нее могут выступать различные лингвистические единицы, такие как морфема, лексема, фонема, словосочетание и даже предложение.
Еще одним вариантом выбора единицы анализа являются n-граммы. Под ними понимаются последовательность слов или букв определенной длины. Как правило, используются n-граммы длиной в два или три объекта, они называются биграммы и триграммы соответственно.
Независимо от выбора единицы анализа к ним предъявляются следующие требования: они должны быть однозначно опознаваемы в тексте и иметь важность для их последующей интерпретации.
В работе использовалась модель «мешок слов» – это модель, в которой порядок слов в документе не имеет значения, а важно лишь их количества. Эта модель была выбрана, поскольку связь слов друг с другом для извлечения ключевых слов жанра не важна, эта модель проста в обращении, а слова можно легко и однозначно извлечь из текста.
В качестве метода анализа текста был выбран контент-анализ – это самый часто используемый метод, который имеет много вариаций в различных методиках [1]. С помощью него можно провести качественный и количественный анализ содержания текста и выявить какие-либо численные закономерности для их последующей интерпретации.
Сутью данного метода является оценка частотного распределения единиц анализа (слов, словосочетаний, n-грамм) относительно общего объема текста. Выходными данными являются относительный вес, частота встречаемости единиц анализа в тексте, вероятность встречаемости и прочие характеристики, на основе которых можно сделать качественные или количественные выводы о подтверждении или опровержении предполагаемой гипотезы.
Прежде чем анализировать тексты песен, необходимо их загрузить из сети Интернет. В качестве анализируемых были выбраны три наиболее популярных жанра: рок, рэп и поп. Тексты песен этих жанров будут скачиваться с сайтов [2, 3, 4]при помощи программного обеспечения (далее – ПО), разработанного на языке программирования PHP, и библиотеки для него под названием php simple html dom, которая позволяет осуществлять поиск по DOM-дереву веб-страницы.
Для того чтобы успешно выгрузить текст песни с сайта, нужно найти элемент, в котором он хранится. Это можно сделать при помощи встроенного в браузер инструмента для анализа структуры веб-страницы, например, тексты песен рок-жанра хранятся в теге td class=main-body.
Тексты песен сохраняются в отдельные файлы для каждого исполнителя, при этом файлы хранятся в папке соответствующего жанра.
Также стоит учитывать, что при долгой работе скрипта сайт может ограничить доступ к нему из-за слишком частых постоянных запросов. Чтобы устранить это ограничение, можно либо установить задержку перед выполнением каждого запроса, либо воспользоваться VPN-сервисом и вновь продолжить скачивать тексты песен.
Еще одним нюансом при скачивании текстов песен являются имена файлов, в которые они будут сохраняться, чьи названия являются псевдонимами исполнителей. Но у некоторых групп в названии могут содержаться символы, которые немогут быть использованы в имени файла, например «25/17» – здесь есть слэш, который не может входить в название файла. Поэтому предварительно все символы, которые не могут содержаться в названии, были удалены при помощи регулярного выражения.
Сначала были считаны тексты каждого жанра из файлов, которые были скачаны при помощи разработанного ранее ПО. Объем скачанной выборки составил для рок-жанра 10 879 041 символ, для рэпа – 28 251 829 символов, а для поп-жанра– 3 574 074.
После этого текст был разбит на токены. Токен – это объект, который создается из лексемы. Например, предложение «на дворе трава, на траве дрова, не руби дрова на траве двора» содержит 12 токенов: на, дворе, трава, на, траве, дрова, не, руби, дрова, на, траве, двора. Разбиение было проведено с использованием RegexpTokenizer из библиотеки для обработки текстов nltk (Natural Language ToolKit). При разбиении на токены стоит учитывать то, что некоторые слова состоят издвух слов, разделенных дефисом.
Затем было проведено построение распределения частей речи по жанрам. Цель – узнать долю слов каждой части речи в текстах каждого жанра и посмотреть на значимые отличия, если таковые будут обнаружены.
Для того чтобы узнать, к какой части речи принадлежит слово, был использован морфологический анализатор pymorphy2. В его функционал входит как определение части речи слова, так и постановка слова в начальную форму, чтопригодится далее. Был создан список с частями речи для каждого жанра, для которого нужно посчитать количество слов каждой части речи. Для этого был применен FreqDist из библиотеки nltk, который позволяет создать частотный словарь из массива. Данные о количестве слов каждой части речи в абсолютном виде являются не наглядными, поэтому они были приведены в относительную форму.
В результаты анализа таблицы 1 можно сделать вывод о том, что в текстах песен поп-жанра заметно меньшее количество существительных, однако это может быть связано с тем, что объем текстов поп-песен недостаточно большой посравнению с текстами остальных жанров. Также можно увидеть, что распределения частей речи в текстах рок- и рэп-жанров практически не отличаются, а вот в текстах поп-песен заметен ряд отличий. В них меньше существительных посравнению с текстами двух остальных жанров, зато больше частиц, а также больше местоимений.
Таблица 1. Относительный вес каждой части речи в каждом жанре
|
рок |
рэп |
поп |
Глагол (инфинитив) |
0.0264 |
0.0273 |
0.0288 |
Имя существительное |
0.2832 |
0.2755 |
0.2200 |
Числительное |
0.0030 |
0.0033 |
0.0032 |
Частица |
0.0521 |
0.0623 |
0.0683 |
Компаратив |
0.0046 |
0.0057 |
0.0067 |
Имя прилагательное (краткое) |
0.0115 |
0.0124 |
0.0094 |
Наречие |
0.0573 |
0.0603 |
0.0626 |
Деепричастие |
0.0061 |
0.0061 |
0.0046 |
Глагол (личная форма) |
0.1409 |
0.1330 |
0.1502 |
Причастие (полное) |
0.0044 |
0.0034 |
0.0019 |
Предикатив |
0.0060 |
0.0064 |
0.0078 |
Междометие |
0.0060 |
0.0054 |
0.0051 |
Союз |
0.0921 |
0.1002 |
0.0968 |
Местоимение-существительное |
0.1032 |
0.0956 |
0.1434 |
Ни один из перечисленных |
0.0073 |
0.0045 |
0.0024 |
Предлог |
0.0958 |
0.1003 |
0.0924 |
Причастие (краткое) |
0.0029 |
0.0036 |
0.0026 |
Имя прилагательное (полное) |
0.0972 |
0.0946 |
0.0940 |
Потребовалось проверить гипотезу о том, связан ли этот перекос в распределении с меньшим объемом текстов. Для этого нужно установить количество слов, меньше которого ошибка становится велика. Была посчитана средняя ошибка покаждой части речи. За ошибку было принято отклонение результата от значения, полученного при анализе всей выборки. Затем был построен график зависимости средней ошибки от количества слов (см. рис. 1) с использованием генерации с помощью функции случайных выборок и подсчета их ошибок.
Рисунок 1. График зависимости ошибки от количества токенов
Исходя из расчетов ошибка начинает быстрее возрастать при количестве токенов меньше 400 000, а при количестве меньше 200 000 она резко увеличивается. Количество токенов в коллекции поп-текстов 580 000, что больше порогового значения, значит, их количество на результаты не повлияло.
Следующей задачей является поиск наиболее специфичных для жанра слов, то есть таких слов, которые часто встречаются в текстах песен этого жанра и при этом редко встречаются в текстах русского корпуса. Для этого был применен уже использовавшийся ранее морфологический анализатор pymorphy2. После чего при помощи FreqDist был создан частотный словарь слов для каждого жанра.
Однако полученный результат не дал никакого представления о специфике жанра, потому что самые популярные слова – словесный шум. Чтобы избавиться от него, была проведена очистка от стоп-слов. Стоп-слова – это те слова, которые часто встречаются в русском языке и не несут смысловой нагрузки. Их список был взят на сайте [5], а также туда было добавлено слово «припев», так как оно часто встречается в текстах и к ним не относится. После очистки от стоп-слов заметная часть выборки была удалена, что говорит о большом количестве стоп-слов в текстах.
Для того чтобы выделить слова, именно характерные для конкретного жанра, нужно сравнивать частоту встречаемости слова в текстах песен жанра с частотой встречаемости слова в текстах русского корпуса. Частотный список текстов корпуса был взят в открытом корпусе русского языка [6]. Все слова из частотного списка были приведены в начальную форму, а затем посчитан индекс характерности слова для жанра по формуле , где Ntext – это частота встречаемости слова в текстах данного жанра, а Ncorpus – частота встречаемости слова в корпусе. При этом для того, чтобы избежать того, что редко встречаемые слова станут искажать результаты, было введено ограничение на минимальное количество вхождений слова в оба корпуса в размере 15. После расчета индекса жанровости для всех слов были выбраны по 15 для каждого жанра с самым высоким индексом жанровости, результат приведен в таблице 2.
Таблица 2. Слова с самым высоким индексом жанровости
рок |
рэп |
поп |
твой |
битый |
рассвет |
рассвет |
твой |
твой |
лететь |
трек |
лететь |
тень |
че |
любовь |
покоить |
знаешь |
отпускать |
эх |
дым |
скучать |
прочь |
лететь |
сердце |
сниться |
биться |
танцевать |
небо |
нету |
мечта |
сон |
рассвет |
знаешь |
снег |
тупо |
простить |
танцевать |
переть |
навсегда |
пепел |
дарить |
нежный |
тишина |
боль |
дышать |
слеза |
слеза |
биться |
Полученные слова действительно характеризуют тексты песен определенного жанра. В списке слов для песен рэп-жанра преобладают сленговые и разговорные слова, такие как «че», «битый», «трек». А в текстах поп-песен преобладают слова любовно-лирической тематики, например, «любовь», «скучать», «сердце», что и характеризует тексты песен поп-жанра, следовательно, результат также совпал с ожидаемым. Также можно заметить, что слова «рассвет» и «твой» присутствуют в списках всех трех жанров. Можно предположить, что это возникло из-за того, что эти слова редко встречаются в частотном списке русского языка, однако редкие слова были отсеяны, например слово «твой» встречается в корпусе языка 169 раз, что довольно много для слова с высоким индексом жанровости. Отсюда можно сделать вывод, что есть слова, которые заметно чаще встречаются в песнях, чем в обычных текстах.
В данной работе был применен контент-анализ для исследования жанровых особенностей текстов песен русских музыкальных исполнителей. Было разработано ПО, позволяющее выгружать из сети Интернет тексты песен трех музыкальных жанров. Проанализированы и найдены отличия в распределении частей речи в различных жанрах и обнаружено, что в текстах поп-песен встречается на 20% меньше существительных и больше частиц и местоимений посравнению с текстами других рассматриваемых жанров. Для текстов песен рок- и рэп-жанров существенных отличий в распределении частей речи не было обнаружено, что говорит о схожести этих жанров. Также были найдены наиболее специфичные для каждого жанра слова, и результат совпал с ожидаемым представлением об их особенностях.
- Митина О. В., Евдокименко А. С. Методы анализа текста: методологические основания и программная реализация / О.В. Митина, А.С. Евдокименко // Вестник Южно-Уральского государственного университета. Серия: Психология. –2010. – № 40 (216). – С. 29-35.
- Тексты песен русских рок-групп [Электронный ресурс]. – Режим доступа: http://rockk.ru/ (Дата обращения: 23.03.2017).
- Рэп-тексты – исполнители [Электронный ресурс]. – Режим доступа: http://rap-game.ru/index/ispolniteli/0-64 (Дата обращения: 28.03.2017).
- Pop-музыка: тексты песен [Электронный ресурс]. – Режим доступа: http://muzoton.ru/pop/ (Дата обращения: 02.04.2017).
- YANDEX: stopwords [Электронный ресурс]. – Режим доступа: https://www.artlebedev.ru/yandex/site/saved/stopword.html (Дата обращения: 14.04.2017).
- OpenCorpora: открытый корпус русского языка [Электронный ресурс]. – Режим доступа: http://opencorpora.org/?page=downloads (Дата обращения: 19.04.2017).
Ключевые слова: анализ текстов, контент-анализ, анализ данных, парсинг.
Development of the Automated Software for Analysis of Texts of Russian Musical Performers
Kotenev D.D., Student, National Research University Higher School of Economics, Moscow, danilkotenev@yandex.ru
Kanishchev V.V., Student, National Research University Higher School of Economics, Moscow, vetasindi@yandex.ru
Abstract: With the development of ways to distribute musical compositions they become more and more popular and today music is essential part of many people’s lives. Often listeners underestimate significance of lyrics despite that it gives the song semantic load, therefore its analysis allows to examine genre features and differences between them. For that purpose in this paper automated software for downloading lyrics from the Internet, their analysis and examining genre features was developed.
Keywords: text analysis, content analysis, data analysis, parsing.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|