Сбор данных с сайта электронной коммерции и их анализ
Введение:
Анализ настроений — это мощная техника обработки естественного языка (NLP), которая позволяет нам определить настроение или эмоциональный тон данного текста. В этом мини-проекте мы рассмотрим, как выполнять анализ тональности с помощью библиотеки Vader в Python. Мы собираем отзывы клиентов с веб-сайта, сохраняем их в файл Excel, а затем применяем анализ настроений с помощью библиотеки Vader, чтобы классифицировать отзывы как положительные, отрицательные или нейтральные.
Шаг 1:
Импорт необходимых библиотек и ресурсов Для начала импортируем необходимые библиотеки: Requests, BeautifulSoup, pandas и nltk. Мы также загружаем ресурс «vader_lexicon» из библиотеки NLTK, который необходим для анализа настроений с помощью Vader.
import requests from bs4 import BeautifulSoup import pandas as pd from nltk.sentiment.vader import SentimentIntensityAnalyzer import nltk nltk.download('vader_lexicon')
Шаг 2. Извлечение отзывов клиентов
Начнем с определения URL-адреса веб-страницы, содержащей отзывы клиентов. Используя библиотеку запросов, мы отправляем запрос GET на URL-адрес и получаем содержимое HTML. Затем мы создаем объект BeautifulSoup для анализа содержимого HTML.
url = 'https://www.flipkart.com/hamtex-polycotton-double-bed-cover/product-reviews/itma5c9f08efe504?pid=BCVG2ZGSDZ3WSGTF&lid=LSTBCVG2ZGSDZ3WSGTFDBZ9IO&marketplace=FLIPKART' response = requests.get(url) content = response.content soup = BeautifulSoup(content, 'html.parser')
Шаг 3. Извлечение отзывов Далее
Мы идентифицируем элемент контейнера, который содержит обзоры, используя имя его класса. Мы находим все div-обзоры внутри контейнера и перебираем их. Для каждого div обзора мы извлекаем текст из третьего дочернего элемента div и сохраняем его в списке.
reviews_container = soup.find('div', {'class': '_1YokD2 _3Mn1Gg col-9-12'}) review_divs = reviews_container.find_all('div', {'class': 't-ZTKy'}) reviews = [] for child in review_divs: third_div = child.div.div text = third_div.text.strip() reviews.append(text)
Шаг 4. Сохранение отзывов в файл Excel
Мы создаем кадр данных pandas, используя собранные отзывы, и сохраняем его в файл Excel с помощью функции to_excel(). Этот шаг позволяет нам иметь структурированный набор данных для дальнейшего анализа.
# Save the reviews to an Excel file in current directory data = pd.DataFrame({'review': reviews}) data.to_excel('reviews.xlsx', index=False)
Шаг 5. Анализ настроений
Использование Вейдера Мы определяем вспомогательную функцию сентимент_Вейдер, которая применяет анализ тональности Вейдера из класса SentimentIntensityAnalyzer к заданному тексту. Он вычисляет общую оценку полярности и классифицирует настроения как положительные, отрицательные или нейтральные на основе составной оценки.
def sentiment_Vader(text): over_all_polarity = sid.polarity_scores(text) if over_all_polarity['compound'] >= 0.05: return "positive" elif over_all_polarity['compound'] <= -0.05: return "negative" else: return "neutral"
Шаг 6. Применение анализа настроений к отзывам
Используя функцию sentient_Vader, мы применяем анализ тональности к каждому отзыву в DataFrame, создавая новый столбец под названием «полярность». Полярность определяется на основе оценки тональности, возвращаемой библиотекой Vader.
# Apply sentiment analysis using VADER sid = SentimentIntensityAnalyzer() data['polarity'] = data['review'].apply(lambda review: sentiment_Vader(review))
Шаг 7. Наконец, сохранение результата в файл Excel
Мы сохраняем обновленный DataFrame с результатами анализа настроений в новый файл Excel с помощью функции to_excel(). Этот файл будет содержать исходные отзывы вместе с соответствующей полярностью настроений.
result_data = data.to_excel('G:/..../sentiment_result.xlsx')
Полный код указан в моей учетной записи Github. Пожалуйста, не стесняйтесь посетить.
Вывод:
В этом мини-проекте мы продемонстрировали, как выполнять анализ тональности с помощью библиотеки Vader на Python. Извлекая отзывы клиентов, сохраняя их в файл Excel и применяя анализ тональности с помощью библиотеки Vader, мы можем получить ценную информацию о тональности отзывов. Этот подход можно применять к различным областям, таким как обзоры продуктов, анализ настроений в социальных сетях и анализ отзывов клиентов. Библиотека Vader в сочетании с методами парсинга веб-страниц предоставляет мощный набор инструментов для анализа настроений и позволяет нам быстро и эффективно анализировать большие объемы текстовых данных.