Анализ настроений Weibo и сканер, обнаружение водной армии стабильно с точностью 95%
О Weibo особо нечего сказать. Преимущество проведения анализа настроений заключается в том, что вы можете классифицировать пользователей по различным категориям и показывать им соответствующую рекламу или открыть свой мозг для мозгового штурма. Для этой задачи я выбрал анализ настроений, чтобы разделить пользователей на реальных пользователей и фанатов флота/маркетинга. Согласно большинству работ по обнаружению водной армии Weibo, метод, который они используют, в основном заключается в классификации пользователей путем выполнения логистической регрессии по различным показателям пользователей (степень подписки, количество подписчиков, среднее время твита и т. д.). Я думаю, что этот метод не очень точен и будет вести себя хаотично для разных наборов тестов. Я думаю, что такая задача нуждается в помощи моделей НЛП, потому что самая большая разница между военно-морскими силами и реальными людьми заключается в их поведенческой привычке писать твиты.
Прикрепите ссылку на гитхаб:GitHub.com/Тим ММ Г З/Вэй…
Мне нравится оказывать звездную поддержку
Главное сказано трижды:
Пожалуйста, используйте google colab, потому что вы хотите xx, пожалуйста, Baidu "нет xx, используйте colab"
Пожалуйста, используйте google colab, потому что вы хотите xx, пожалуйста, Baidu "нет xx, используйте colab"
Пожалуйста, используйте google colab, потому что вы хотите xx, пожалуйста, Baidu "нет xx, используйте colab"
Замените xx на другие слова, и я не буду много говорить о том, что такое xx, вы как программист должны сами догадаться.
Чтобы алхимия не сошла с ума, эта библиотека проституировала бесплатный TPU Google colab, обязательно используйте colab. Бросьте сюда две тетради,Это процедура испытаний ВМФ and Это процесс обучения и тестирования
Структура входа и выхода модели
输入
│── 用户信息指标:[关注数, 粉丝数, 互动数, 会员等级, 会员类别, 发微博总数, 微博等级, 是否认证, 认证类型]
│── 最新的第1条微博
│ │── 正文
│ │── 话题/超话
│ │── 被转发微博的特征:[话题/超话,有否视频及其关键信息?,有否照片及其关键信息?] 或者 "无转发"
│ └── 博文信息指标:[贴图数量,视频播放量,转发数,评论数,点赞数]
│── 最新的第2条微博
│── 最新的第...条微博
│── 最新的第n-1条微博
└── 最新的第n条微博
输出
│── 是真实用户
└── 是水军
архитектура модели
На мой взгляд, недостаточно анализировать пользователей только через случайный Weibo. Нам нужно проанализировать последовательные твиты от одного пользователя. То есть выполнить анализ настроений параллельно для каждых n твитов (я использую модель Bi-LSTM), затем поместить эти n выходных данных (попробуйте рассматривать их как токены предложения) в сеть и, наконец, получить классификацию. Кроме того, у людей есть привычка писать, например: некоторые люди публикуют радостный контент каждые три дня, а затем серьезный контент на следующий день, а некоторые люди могут публиковать только грустный контент каждый день. Предположим, Сяо Мин (Сяо Мин: «Почему это снова я? Найдите Сяогана»), последние 8 Weibo будут[счастливый, счастливый, счастливый, серьезный, счастливый, счастливый, счастливый, серьезный], так что мы знаем, что у него 2 серьезных твита из каждых 8 твитов. несмотря на то что[Серьезный, серьезный, счастливый, счастливый, счастливый, счастливый, счастливый, счастливый, счастливый]Имеют одинаковую частоту типов твитов, но из-за разного порядка «форма» этой последовательности отличается, мы не можем сказать, что это привычка Сяо Мина. потом[счастливый, счастливый, серьезный, счастливый, счастливый, счастливый, серьезный, счастливый]Просто последовательность смещена влево на единицу (неважно, на сколько единиц), но «форма» у нее та же, и можно сказать, что это привычка Сяо Мина. Таким образом, сеть, используемая для объединения n выходов, также будет рекуррентной моделью (я снова использую LSTM). Поскольку это вложенная параллельная модель LSTM, чтобы предотвратить исчезновение градиентов, большинство функций активации, которые я использую, — это Tanh, а на некоторых слоях выполняется отсев 40%, чтобы предотвратить переоснащение. Ниже представлена структура модели.
рептилия
У меня есть образец с 568 образцамиuser_idнабор данных (274 военно-морских и 294 реальных пользователя). Все образцы аннотируются путем ручной проверки, чтобы максимально обеспечить логику и распределение набора данных, тем самым объективно гарантируя честность и точность тестового набора. будетuser_idНабор данных вводится в мой код сканера, который затем выводит новый набор данных для модели (как указано выше, «Структура входных данных модели»). В то же время {body} и {topic/supertalk; характеристики ретвитов твитов} имеют очень разную грамматику, размер словарного запаса и длину предложений. Поэтому при встраивании я создал для них свои словари, которые так же могут заставить {topic/super-talk; особенности репоста Weibo} получить эффект уменьшения размерности перед входом во встраивание как one-hot encoding, что может убить двух зайцев одним выстрелом..
результат некоторых исходных данных
Скорость разделения тренировочного набора | точность набора тестов | микроблоги | базовый файл |
---|---|---|---|
85% | 98.84% | 20 | weibo_baselines |
50% | 90.14% | 20 | |
15% | 90.48% | 20 |
Словарь набора данных «20 Weibo» содержит 27890 токенов. Для каждого обучающего набора существуют разные словари. Например, когда обучающий набор составляет 85% набора данных, в словаре 25000 токенов. Когда он составляет 15%, то есть 10000 токенов. Однако, несмотря на то, что в тестовом наборе слишком много неизвестных токенов (словарей), точность на всех тестовых наборах по-прежнему превышает 90%.
Не по теме
Заинтересованные стороны могут пометить дополнительные наборы данных в следующем формате:
uid | Будь то флот |
---|---|
532871947 (написано) | 0 |
214839591 (написано) | 1 |
или другой анализ настроений
uid | Музыка | искусство | танец | ... |
---|---|---|---|---|
532871947 (написано) | 1 | 1 | 0 | ... |
214839591 (написано) | 0 | 1 | 1 | ... |
uid | степень симпатии к музыке |
---|---|
532871947 (написано) | 5 |
214839591 (написано) | 0 |