Сбор данных с сайта электронной коммерции и их анализ

Введение:

Анализ настроений — это мощная техника обработки естественного языка (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 в сочетании с методами парсинга веб-страниц предоставляет мощный набор инструментов для анализа настроений и позволяет нам быстро и эффективно анализировать большие объемы текстовых данных.