Эта статья изначально была опубликована в посте neurotech Africa blog.

Как специалист по работе с данными может определить, положительное или отрицательное отношение к суахили в социальных сетях?

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

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

«Почему я должен вам доверять?» Объяснение предсказаний любого классификатора ~ Марко Тулио Рибейро, Самир Сингх и Карлос Гестрин.

Кисуахили — это лингва-франка, на котором говорят около 150 миллионов человек в Восточной Африке. Это официальный язык в Танзании, ДРК, Кении и Уганде. В социальных сетях носители суахили склонны выражаться на своем местном диалекте.

Создание классификатора настроений в социальных сетях на суахили

Анализ настроений опирается на множественные значения слов и культурные знания, и на него могут влиять возраст, пол и социально-экономический статус. В сегодняшней задаче я буду использовать наборы данных из Твиттера, изначально размещенные в серии хаков для обработки естественного языка Google zindi Africa, с целью классификации того, является ли предложение на суахили положительным, отрицательным или нейтральным.

Набор данных содержит три столбца: id как уникальный идентификатор уникального твита на суахили, tweets содержащий фактический текст твита на суахили, и labels ярлык твита на суахили, отрицательный (-1), нейтральный (0), положительный (1) с 2263 наблюдениями.

Как насчет распространения лейбла?

Большинство собранных твитов нейтральны, что показывает, что наши ярлыки несбалансированы.

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

  1. удаление небуквенно-цифрового текста.
  2. удаление стоп-слов
  3. перевод всех твитов в нижний регистр.
  4. удаление знаков препинания, ссылок, смайликов и пробелов.
  5. маркировать текст на основе каждого слова.
  6. последняя часть заключается в добавлении всех чистых твитов в новые столбцы с именем `clean_tweets`.

Обратите внимание: nltk не состоит из стоп-слов на суахили, но вы должны создать свой собственный список и применить его к твитам. Я только что создал файл CSV с парой стоп-слов на суахили, таких как na, Kwa, kama, lakini, ya, take и т. д., которые я буду применять здесь.

Стоп-слова — это набор часто используемых слов на любом языке. Например, в английском языке «the», «is» и «and» легко можно было бы назвать стоп-словами. В приложениях НЛП и интеллектуального анализа текста стоп-слова используются для устранения неважных слов, что позволяет приложениям вместо этого сосредоточиться на важных словах.

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

Теперь твиты чисты и готовы к дальнейшей обработке

Пришло время поработать над анализом твитов на суахили, обратив внимание на полярность и субъективность. Но ждать! что означают полярность и субъективность?

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

Полярность настроения для элемента определяет ориентацию выраженного настроения, т. Е. Он определяет, выражает ли текст положительное, отрицательное или нейтральное отношение пользователя к рассматриваемому объекту.

Субъективность — это мера того, насколько текст соответствует действительности, в диапазоне от 0 (чистый факт) до 1 (чистое мнение).

Я буду использовать `textblob` для анализа твитов.

Теперь попробуем агрегировать общую полярность и субъективность всего набора данных.

Общая полярность данных твита составляет 0,01.

Общая субъективность данных твитов составляет 0,03.

Общая полярность данных твитов указывает на то, что твиты довольно нейтральны.

Давайте попробуем визуализировать распределение полярности и субъективности каждого класса независимо друг от друга.

Теперь мы идем,

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

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

habari, leo, siku, namba — самые частые слова в общем содержании твитов.

В твитах отрицательного класса чаще всего используются слова watu, leo и siku, в твитах нейтрального класса чаще всего используются слова habari, kazi и mtu, а в твитах положительного класса чаще всего используются слова habari, leo, asante.

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

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

Большой! Я обучил наш классификатор настроениям в социальных сетях на суахили, и теперь пришло время оценить производительность нашей модели.

С отчетом о классификации производительность не очень хорошая, наша модель имеет точность 60%.

Интерпретируемость результатов

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

Чем выше интерпретируемость модели машинного обучения, тем легче кому-то понять, почему были сделаны те или иные решения или прогнозы. Модель лучше интерпретируется, чем другая модель, если ее решения легче понять человеку, чем решения из другой модели.

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

Итак, приведенное выше наблюдение показывает, что вероятность положительного класса выше (0,47) по сравнению с другими классами, и причина решения по словам serikali, mwisho и vyema еще в нашей предыдущей визуализации наиболее частых слов для положительного класс, чтобы заключить решение классификатора.

Приведенное выше наблюдение показывает, что вероятность нейтрального класса выше (0,72) по сравнению с двумя другими классами, а причина решения исходит от слов walimu, walikuwa и mwanzoni.

Приведенное выше наблюдение показывает, что оба из трех классов имеют сопоставимый вес, но из-за высокого веса слова polisi твит предсказывает отрицательный класс.

Как компании могут извлечь выгоду из анализа настроений клиентов?

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

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

Последние мысли

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

Полный код, использованный в этой статье, можно найти в репозитории GitHub.