Глава 2. Автоматическое выявление вербальной агрессии на материале записей с блог-платформы «Живой Журнал»
Автоматизирование выявления вербальной агрессии в текстах кроме применения различных алгоритмов для классификации текстов предполагает обращение к методам корпусной лингвистики. Следовательно, прежде чем приступить к применению подобных алгоритмов для решения данного аспекта настоящего исследования необходимо скомпилировать корпус записей блогов Интернет-пользователей, а также составить тональный словарь.
Для составления тонального словаря были отобраны такие языковые единицы, которые могут указывать на вербальную агрессию в записи блога. Выбор таких языковых единиц проходил в ходе анализа записей пользователей Интернета на русскоязычной блог-платформе «Живой Журнал» при помощи корпусного менеджера AntConc. Выбор данной блог-платформы обусловлен международным интересом к ведению записей, что предоставляет большое количество материала для проведения исследования, а также популярностью данного блога среди русскоязычного населения. Кроме того, ведение персонального блога характерно не только для обычных граждан, но и для многих известных личностей, а также для общественных движений, организаций, политических деятелей и партий.
Выбор записей проводился по следующим критериям:
· Временной критерий. Рассматриваются записи, написанные в период с 1 января 2017 года по 10 мая 2019 года.
· Актуальность. В записях Интернет блогов освещены события и явления в мире, актуальные на данный момент: выборы президента РФ (2018), выборы президента Украины (2019), боевые действия на территории Сирии и Украины, террористические акты, феминизм и т.д.
· Проблематика. Интерес предоставляют записи в блогах, в которых обсуждаются актуальные вопросы.
В ходе данной работы было собрано 1400 записей на различные тематики с блог-платформы «Живой Журнал», содержащие в себе агрессию по отношению к какому-либо явлению или событию. Для автоматического определения вербальной агрессии полученные при помощи программы записи были разделены на тренировочную и тестовую выборку. Разделение записей было произведено в случайном порядке в соотношении 80% к 20%, где 80% записей были отнесены к тренировочной выборке, а 20% - к тестовой. Таким образом, в тренировочный корпус вошло 1120 случайных записей.
2.1 Автоматический сбор записей Интернет-пользователей блог-платформы «Живой Журнал»
В пункте 3 Главы 1 было отмечено, что не любое собрание текстов может считаться корпусом, поэтому перед тем, как начать компилирование корпуса, необходимо определить критерии отбора записей.
Во-первых, необходимо, чтобы в корпусе в полной мере было отражено явление, изучаемое в данном исследовании. Для этого необходимо определить, в каких записях вероятнее всего будет наблюдаться вербальная агрессия. В Главе 1 шла речь о взаимосвязи понятий «вербальная агрессия» и «интолерантность», поэтому логично будет предположить, что вербальная агрессия будет обнаружена в тех записях, тематика которых соответствует видам интолерантности: политической, религиозной, расовой и т.д. Поиск подобных записей проходил по таким тегам, которые могли вывести на записи, содержащие негативное отношение к какой-либо теме. Так, для поиска записей про политику были использованы такие теги, как «Россия», «США», «Путин», «Трамп», «Сирия», «Украина», про религию - «Ислам», «Джихад», «Исламисты» и т.д.
Кроме того, репрезентативность корпуса текстов обеспечивается за счет скачивания текстов блогов разных авторов, что обеспечивает разнообразие стилей ведения блога, а также подходов к выражению мыслей.
Во-вторых, ранее также было отмечено, что каждый текст корпуса должен сопровождаться информацией о нем (метаданными). В каждой скачанной записи приведены данные о его авторе, заголовке, дате публикации и собственно текст записи.
Наконец, в ходе ручного анализа корпуса каждый текст будет определен в подкорпус с «отрицательными» записями, т.е. теми записями, в тексте которых была обнаружена вербальная агрессия, или с «положительными» записями, т.е. теми записями, в тексте которых вербальной агрессии обнаружено не было.
Скачивание записей с блог-платформы «Живой Журнал» было реализовано при помощи краулера, программы на языке программирования Python, которая взаимодействует с окружающей средой посредством сетевых протоколов и автоматически скачивает нужную информацию из Интернета. Пример кода программы для реализации данной задачи на примере записей с тегом «феминизм» приведен в Приложении 1.
В ходе работы веб-краулера было собрано более 3000 записей, опубликованных в период с 1 января 2017 года по 10 мая 2019 года, однако только 1400 из них вошли в корпус текстов для выявления вербальной агрессии. Это можно объяснить тем, что во время автоматического скачивания блогов были также скачены записи, содержащие только мультимедийный материал, а это значит, что данные записи не могут быть использованы для проведения дальнейшего исследования в силу отсутствия текста.
В силу того, что структура каждого блога на блог-платформе «Живой Журнал» уникальна, был написан такая программа для краулинга, которая скачивает весь текст на веб-странице. Таким образом, в скаченные тексты изначально вошли также данные о меню веб-страницы, тексты рекламы и комментарии.
Помимо этого, из текстов также были удалены теги. Теги в данном случае не несут информативной ценности, поэтому от них следует избавиться. В Приложении 2 приведен код программы, в ходе которой из текста удаляется данная информация.
После компилирования корпуса была проведена нормализация всех 1400 скаченных записей.
2.2 Обработка текстов корпуса
Прежде чем приступить к нормализации записей необходимо удалить из всех текстов стоп-слова, что позволит избавиться от слов, не имеющих значительного семантического смысла. Для осуществления данного этапа работы воспользуемся существующим списком стоп-слов, доступных в библиотеке nltk. Код, в котором осуществляется удаление стоп-слов, приведен в Приложении 3.
|
1. |
в |
27572 |
|
|
2. |
и |
21797 |
|
|
3. |
на |
13932 |
|
|
4. |
не |
9304 |
|
|
5. |
что |
9124 |
|
|
6. |
с |
9097 |
|
|
7. |
по |
5302 |
|
|
8. |
как |
4510 |
|
|
9. |
к |
4121 |
|
|
10. |
а |
3783 |
До удаления стоп-слов корпус состоял из 718818 токенов. Список 10 самых частотных слов во всем корпусе до их удаления выглядел следующим образом:
Список стоп-слов nltk состоит из 151 слов, после удаления которых число токенов во всем корпусе сократилось до 521806 токенов, а список 10 самых частотных слов стал следующим:
Стоит отметить, что не все стоп-слова удалось удалить. В частности, на десятой позиции во втором списке можно заметить предлог «в». Его появление в списке можно объяснить возможным отсутствием пробелов между знаком препинания, завершающее предыдущее предложение, и стоп-словом. Корпусный менеджер AntConc при составлении списка частотных слов игнорирует знаки препинания, поэтому данный предлог и, возможно, некоторые другие стоп-слова не удалились из корпуса.
|
1. |
это |
3450 |
|
|
2. |
сша |
2845 |
|
|
3. |
colonelcassad |
1701 |
|
|
4. |
сирии |
1567 |
|
|
5. |
то |
1537 |
|
|
6. |
года |
1450 |
|
|
7. |
которые |
1403 |
|
|
8. |
канал |
1380 |
|
|
9. |
telegram |
1339 |
|
|
10. |
в |
1324 |
Нормализация полученных записей была реализована за счет еще одной программы на языке программирования Python. В Приложении 4 приведен код данной программы. Для ее работы были использованы библиотеки re и pymystem3.
Нормализация текста подразумевает его лемматизацию и приведение к нижнему регистру. Это необходимо для того, чтобы минимизировать количество вхождений в тональном словаре, а также снизить число рассматриваемых словоформ в составленном корпусе. Например, вместо нескольких вариантов слова агрессивный таких, как агрессивная, агрессивное, агрессивную и т.д., в тональный словарь войдет только слово агрессивный.
Кроме того, уменьшение объема тонального словаря приводит к уменьшению времени работы алгоритма. Тем меньше данных компьютеру нужно преобразовать в числа (вероятности в данном исследовании), тем быстрее тот или иной алгоритм определит тональность текста.
Приведем список первых 10 частотных слов после лемматизации. Стоит уточнить, что удаление стоп-слов проводилось до того, как были обнаружены записи, содержащие заголовок и мультимедийный материал.
|
1. |
который |
3860 |
|
|
2. |
это |
3808 |
|
|
3. |
год |
2548 |
|
|
4. |
свой |
2134 |
|
|
5. |
россия |
1696 |
|
|
6. |
сша |
1598 |
|
|
7. |
человек |
1486 |
|
|
8. |
украина |
1339 |
|
|
9. |
мочь |
1145 |
|
|
10. |
страна |
1121 |
В том случае, если запись содержит только заголовок, проводилась проверка на количество переменных в списке с предложениями, чтобы не удалить сам заголовок. К тому же были удалены записи, в которых количество слов не превышало трех. Все нормализованные файлы были сохранены в отдельную папку (new).
2.3 Распределение текстов корпуса по тональности
Как уже говорилось ранее, в тренировочный корпус вошло 1120 записей с блог-платформы «Живой Журнал». Именно с ними будет проводиться работа по созданию тонального словаря для данной блог-платформы.
В данных записях встречались проявления вербальной агрессии на политическую, религиозную, сексуально-ориентационную, гендерную, расовую и этническую тематики. Подавляющее большинство составили записи на политическую (77%) и религиозную (31%) тематики. Такие результаты можно объяснить тем, что политические, религиозные проблемы являются наиболее актуальными в период с 1 января 2017 года до 10 мая 2019 года.
В рамках данного исследования перед составлением тонального словаря был проведен ручной анализ тональности данных записей: каждая из них была размечена и добавлена либо в «положительный», либо в «отрицательный» корпус на основе стилистической окраски употребленных языковых единиц, при этом 587 записей (42%) попало в «отрицательный» корпус.
В отличие от исследований, о которых речь шла в Главе 1 пункте 3.1, в данной работе помечаются как отрицательные или положительные сами тексты, а не позиции в тональном словаре. Это сделано с той целью, чтобы алгоритм, применяемый в данном исследовании (наивный байесовский классификатор), подсчитал вероятность «агрессивности» языковой единицы, не основываясь на предварительной оценке самой единицы. Такой подход применяется потому, что не всегда языковая единица с заведомо отрицательной или положительной коннотацией свидетельствует о той же коннотации текста в целом.
Приведем несколько примеров тестов, вошедших в «отрицательный» корпус.
Автор: colonelcassad
Дата публикации: 24 января 2017 года
Название: Размежевание
Отрывки текста:
РФ с конца 2015 года без особого успеха пыталась добиться от США, чтобы они разделили боевиков на "умеренных" и "неумеренных", чтобы было понятно, с кем можно вести переговоры, а кого будут "мочить в сортирах".
За 2016-й год, удалось согласовать вопрос только по "Ан-Нусре", которую и США и Турция признали "неумеренной" и против которой хотя бы на словах обязались вести боевые действия. "Джунд-аль-Акса" оказалась в этом узком списке по причине неадекватности своих лидеров…
Таким образом "Джунд-аль-Акса" в число "умеренных" не попала по причине собственной упоротости. "Коллеги" ныне их рассматривают как "бешенных собак", с которыми лучше дела не иметь.
Важное отличие от прежних встреч - это реальные боевики и за их представителями стоит реальная военная сила (порядка 25-35 тыс. штыков), а не свора обычных сирийских эмигрантов на подкорме у Вашингтона или Эр-Рияда.
Поэтому и возникают сложности с тем, чтобы усадить все это "зеленое" кодло за стол переговоров, так как одни на деле всегода готовы выполнить волю внешних хозяев.
На деле, полного разделения "умеренных" и "неумеренных" еще не произошло - из легального поля выпали пока что лишь наиболее отъявленные "отморозки"…
В данном тексте явно выражена вербальная агрессия, которая направлена на описание каких-либо отдельных личностей или организаций или на описание их действий. Среди языковых единиц, указывающих на вербальную агрессию при описании организации или отдельных личностей, можно отметить следующие языковые единицы: неадекватность лидеров, собственная упоротость, бешенные собаки, свора эмигрантов на подкорме, все это кодло, отъявленные «отморозки». В данных примерах агрессия выражена как эксплицитно с использованием эмоционально-окрашенной лексики, так и имплицитно. При описании действий этих организаций или личностей были использованы такие выражения, как мочить в сортирах и готовы выполнить волю внешних хозяев, которые в дополнении к различным наименованиям организаций или личностей, указывают на проявление агрессии со стороны автора.