О Расширении Словаря Эмоционально Заряженных Слов На Основе Сообщений В Твиттере

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

сети.

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

глянь сюда ).

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

Но здесь возникает проблема: такие словари редки, малы и могут устареть; более того, они не соответствуют «живому» языку общения в социальных сетях.

сети.

Представляется правомерным добавлять новые слова в имеющиеся словари, приписывая им при этом эмоциональность твитов, в которых эти слова встречаются (точнее, среднее арифметическое всех твитов, содержащих данное слово).

Собственно, такая задача и предлагается к решению в курсе «Введение в науку о данных» .

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



Рейтинг твитов

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

Сам твит выглядит так (словарь списков словарей.

), текст выделен жирным шрифтом {u'contributors': None, u'truncated': False, u'text': u" Приятно знать, что ты больше не исчезнешь от меня.

", u'in_reply_to_status_id': Нет, u'id': 608365231232978944L, u'favorite_count': 0, u'source': u' Твиттер для iPhone ', u'retweeted': False, u'coordinates': None, u'timestamp_ms': u'1433880548662', u'entities': {u'user_mentions': [], u'symbols': [], u' тенденции': [], u'hashtags': [], u'urls': []}, u'in_reply_to_screen_name': Нет, u'id_str': u'608365231232978944', u'retweet_count': 0, u'in_reply_to_user_id ': Нет, в "избранном": False, u'user': {u'follow_request_sent': Нет, u'profile_use_background_image': False, u'default_profile_image': False, u'id': 906813948, u'verified': Ложь, u'profile_image_url_https': u' https://pbs.twimg.com/profile_images/608142391472570368/b0RxTzZS_normal.jpg ', u'profile_sidebar_fill_color': u'000000', u'profile_text_color': u'000000', u'followers_count': 186, u'profile_sidebar_border_color': u'000000', u'id_str': u'906813948', u 'profile_background_color': u'000000', u'listed_count': 0, u'profile_background_image_url_https': u' https://abs.twimg.com/images/themes/theme1/bg.png ', u'utc_offset': -18000, u'statuses_count': 1197, u'description': u"Что-то с тобой заставляет меня улыбаться", u'friends_count': 184, u'location': u'CCTX' , u'profile_link_color': u'AF65D4', u'profile_image_url': u' http://pbs.twimg.com/profile_images/608142391472570368/b0RxTzZS_normal.jpg ', u'following': Нет, u'geo_enabled': True, u'profile_banner_url': u' https://pbs.twimg.com/profile_banners/906813948/1431466945 ', u'profile_background_image_url': u' http://abs.twimg.com/images/themes/theme1/bg.png ', u'name': u'Abigail Garcia', u'lang': u'en', u'profile_background_tile': False, u'favourites_count': 8431, u'screen_name': u'AbigailG_23', u'notifications ': Нет, u'url': Нет, u'created_at': u'Пятница, 26 октября 21:33:39 +0000 2012', u'contributors_enabled': False, u'time_zone': u'Центральное время (США и Канада)', u'protected': False, u'default_profile': False, u'is_translator': False}, u'geo': Нет, u'in_reply_to_user_id_str': Нет, u'possible_sensitivity': False, u'lang ': u'en', u'created_at': u'Tue Jun 09 20:09:08 +0000 2015', u'filter_level': u'low', u'in_reply_to_status_id_str': Нет, u'place': Нет } Лучше сохранить только сам текст для экономии места.

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

Следующая часть — оценка твитов на основе словаря.

Я использовал словарь на 2500 слов, каждому слову присвоено значение от -5 до 5. Схема рейтинга твитов:

О расширении словаря эмоционально заряженных слов на основе сообщений в Твиттере

Конечно, такой подход не дает точной оценки отдельных твитов, но оценка эмоциональности большого количества сообщений зачастую бывает достаточно точной (см.

цитированную выше статью).

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

Схема составления нового словаря:

О расширении словаря эмоционально заряженных слов на основе сообщений в Твиттере



Сравнение словарей

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

Поскольку словари интересны не сами по себе, а тем, как они будут оценивать последующие твиты, я сравнил их по тому, как они оценивают самостоятельную серию твитов.

Для каждого словаря можно создать вектор, i-я координата которого — это оценка словарем i-го твита из серии.

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



Параметры, которые были рассчитаны

корреляция - чем ближе к +1, тем лучше.

Словари с корреляцией, равной +1, «ведут себя» так же.

средняя разница векторов — насколько в среднем различалась оценка твитов двумя словарями стандартное отклонение среднего — для расчета вероятности того, что разница в рейтинге твита по двум словарям является «случайной» ошибкой.



Что случилось

Если словари созданы на основе 8 тысяч твитов, то: корреляция - 0,66 средняя разница - 0,105 стандартное отклонение - 0,042 То есть отклонение средней разницы от нуля (при условии, что ошибка случайная) равно 2,5 стандартного отклонения, что, конечно, слишком много.

Но в принципе можно сказать, что словари оценивают аналогично.

Если взять базу в размере 60 тысяч твитов для каждого словаря, то результаты будут гораздо лучше: корреляция - 0,89 средняя разница - 0,00086 стандартное отклонение - 0,0080 То есть отклонение средней разницы от нуля равно 0,1 стандартного отклонения, что позволяет сделать вывод, что ошибка (разница) является «случайной».

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

На практике это означает, что 30 минут загрузки потока Twitter (60 тысяч отфильтрованных сообщений) позволяют получить новый, расширенный словарь с количеством слов 16,5 тысяч вместо 2,5 в исходном словаре.

Дальнейшая работа заключается в проверке того, что такой расширенный словарь будет не только «уникальным», но и корректным: например, встроить процедуру корректировки значений по некоторой известной базе или процедуру окончательной проверки полученного словаря с помощью неиспользованная часть исходного словаря.

Теги: #анализ данных #анализ текста #Twitter #Интеллектуальный анализ данных

Вместе с данным постом часто просматривают: