Использование SparkNLP, чтобы определить, является ли автором тролль

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

Обнаружение поддельной учетной записи в Твиттере более чем тривиально. Но для начала нужно определить, может ли учетная запись быть классифицирована как тролль. Интернет-тролль или онлайн-хулиган преднамеренно пытается оскорбить, создать проблемы или напрямую атаковать людей, публикуя уничижительные комментарии в постах на Facebook, в блогах, под видео на YouTube, на форумах и в других социальных сетях, таких как Twitter и Instagram, — Endsleigh .co.uk»

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

Первое, что я делаю, это извлекаю твиты, которые могу найти у Элтона Джона. Я надеюсь, что все характеристики моего помеченного набора данных из FiveThirtyEight доступны в данных, которые я могу получить напрямую из Twitter.

Эта запись относится к функциям, которые я буду искать в исходных немаркированных данных Twitter.

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

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

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

Account_category — это функция, которая сообщает нам, можем ли мы рассматривать учетную запись как учетную запись тролля.

Я не очень верю, что регион для Твиттера очень надежен, поэтому исключим его из обучающей выборки.

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

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

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

Я начал с простого алгоритма логистической регрессии, точность которого составила около 65%. Я варьировал количество случайных строк от 100 до 500 000 и все равно получил точность около 67%.

Кажется, что точность ограничивается примерно 70%, если рассматривать только сам текст с использованием других алгоритмов, таких как повышение градиента.

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

Я попытался использовать другой набор функций, чтобы предсказать, является ли твиттер троллем или нет. Количество подписчиков, число подписчиков учетной записи и количество твитов делают действительно точную работу по прогнозированию учетной записи тролля. Уровень точности достиг почти 97% с использованием алгоритма градиентного усиления.

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

Ответ на поставленный в заголовке вопрос - нет. Элтон Джон не ведет аккаунт тролля.