Как классифицировать твиты (поддерживающие и не поддерживающие) для прогнозирования результатов выборов - PullRequest
1 голос
/ 19 марта 2020

Идея

Я собираю твиты, рассказывающие о трех основных кандидатах на пост президента США в ноябре. После сбора твитов из разных штатов, я буду оценивать эти твиты, а затем анализировать последователей / сторонников каждого кандидата по различным аспектам.

Проблема

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

То, что я пытался

Я пытался использовать библиотеку под названием textblob . Получив твит, он возвращает кортеж формы Sentiment (полярность, субъективность). Полярность - это число с плавающей точкой, которое находится в диапазоне [-1,1], где 1 означает положительное утверждение, а -1 означает отрицательное утверждение. Этот метод не дает разумных результатов вообще при применении. Например, учитывая твит вроде «Дональд Трамп ужасен! Я все еще поддерживаю его, хотя.» , он возвращает полярность -1.0 (отрицательно), что не имеет никакого смысла совсем.

Дальнейшие исследования

Я искал больше примеров и нашел this . В этом примере автор использует словарь настроения (из inte rnet), а затем назначает настроение каждому твиту. Я планирую внимательно посмотреть на эту статью и применить метод, используемый там.

Мои вопросы

  • Как правильно классифицировать эти твиты? Должен ли я рассмотреть тот, который я упомянул в разделе дальнейших исследований?
  • Что если твит содержит оба имени? что-то вроде «Трамп победит Байдена». Как что-то подобное будет оцениваться с использованием метода c?

1 Ответ

0 голосов
/ 19 марта 2020

Анализ настроений - это топика c НЛП (обработка естественного языка). Что вас интересует, так это НЛП, который является одной из многих интересных отраслей машинного обучения.

Ваш подход к оценке полярности твита верен. Так как у вас есть 3 разных кандидата ака. ярлыки, это более интересная проблема.

Я бы сохранял массив чувств длины 3 для каждого твита, чтобы вычислить весовые коэффициенты для каждого кандидата. Например; твит типа "А это плохо. Б будет гораздо лучше! Но тоже C может тоже?" может выдать [-1, 0,8, 0,4].

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

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

Самым простым будет что-то вроде: разобрать все слова из твита, увеличить их значения на карте ha sh с метками и нормализовать. Теперь у вас есть карта ha sh, содержащая значение настроения для каждого слова.

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

...