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

Я создал свой собственный набор данных, состоящий из различных твитов по теме «Гражданские беспорядки в Индии» (120 твитов с ярлыками), где 0 = нейтральный, 1 = положительный, 2 = отрицательный. Эта необработанная коллекция твитов состоит из хэштегов (#), ненужных ретвитов, упоминаний и знаков препинания, которые нельзя использовать в нашем алгоритме машинного обучения для обучения и тестирования. При этом алгоритм не сможет достаточно хорошо «обобщить» / понять твиты. Выше список библиотек, используемых в этом коде.

Вышеупомянутая часть изображает часть предварительной обработки кода. Мы загружаем набор данных с помощью pandas, pd.read_csv, function,. Итак, здесь мы начинаем с преобразования всех прописных букв в строчные. с последующим удалением хэштегов и упоминаний. Мы удаляем знаки препинания, стоп-слова, а также выполняем поиск корней. В большинстве случаев предварительной обработки я использовал анонимную функцию «лямбда» для итерации по фреймворку данных, чтобы предварительно обрабатывать твиты по отдельности.

После получения полностью обработанного набора данных твитов мы загружаем их в алгоритм машинного обучения. Мы назначаем столбец TWEETS в качестве вектора ввода, X и LABELS в качестве вектора вывода (метки) ... но перед этим, независимо от алгоритма. Используемый входной вектор должен быть в числовых символах, так как наш алгоритм не может понять строки для обучения и тестирования твитов, поэтому мы векторизуем твиты. Для векторизации мы используем метод Term Frequency-Inverse Document Frequency. После векторизации мы вводим наш алгоритм машинного обучения, который в нашем случае является классификатором опорных векторов. Мы импортируем библиотеку LinearSVC для алгоритма ML, библиотеку tfidfVectorizer для векторизации входного вектора перед подачей в алгоритм, библиотеку train_test_split для разделения набора данных из модуля sklearn для части кода ML.

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

Как упоминалось в предыдущем абзаце, нам нужно сосредоточиться на негативных твитах / обзорах (настроения класса 2), чтобы снизить уровень преступности и массовых беспорядков или улучшить качество продукции. две вышеупомянутые итерации являются лучшими показателями классификатора ML по набору данных, однако на некоторых итерациях я замечал плохие показатели F1, отзыв для всех классов, что связано с небольшим размером набора данных. Более крупные данные (~ 3000 твитов) могли бы быть более удобными для улучшения оценок, которые алгоритм видит все больше и больше экземпляров.

PS: tfidf = TfidfVectorizer (max_features = (13), ngram_range = (1,2)); в этой строке кода я уменьшил параметр max_features в достаточной степени, чтобы получить максимальную производительность классификатора.