Вопрос или проблема
Текстовый майнинг обзоров продуктов Amazon с использованием программы R. Я не смог извлечь отзывы конкретного продукта (например, если у iPhone 11 есть 6k отзывов, мне нужно извлечь все из них). Я получаю только один столбец с меткой x.
Пожалуйста, дайте мне знать, где нужно внести необходимые изменения. Мне они нужны для проведения анализа настроений.
install.packages("rvest")
library(rvest)
install.packages("xml2")
library(xml2)
install.packages("magrittr")
library(magrittr)
url <-"https://www.amazon.in/Apple-iPhone-11-128GB-Black/product-reviews/B07XVLW7YK/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews"
apple <- NULL
for(i in 1:100)
{
murl <- read_html(as.character(paste(url,i,sep = "=")))
rev <- murl%>%
html_nodes(".review-text")%>%
html_text()
apple <- c(apple,rev)
}
Измените свой URL на:
url <- "https://www.amazon.in/Apple-iPhone-11-128GB-Black/product-reviews/B07XVLW7YK/ref=cm_cr_arp_d_paging_btm_next_2?ie=UTF8&reviewerType=all_reviews&pageNumber"
Иначе, как ваш текущий код выполняет, вы продолжаете цикл только на первой странице отзывов.
Ответ или решение
Текстовый майнинг отзывов о продукции на Amazon с использованием языка программирования R может быть весьма эффективным инструментом для анализа мнений пользователей и выявления тенденций. Такая задача может быть использована, например, для проведения анализа настроений, чтобы понять, какова реакция потребителей на конкретный продукт, в данном случае — iPhone 11. Однако у вас возникли сложности с извлечением всех отзывов для конкретного продукта, и сейчас я помогу проанализировать вашу стратегию, предложив более эффективный подход.
Теоретический аспект
Text mining, или текстовый майнинг, — это процесс извлечения полезной информации из текстовых данных. В контексте Amazon это значит, что мы хотим извлечь текст отзывов покупателей для проведения дальнейшего анализа. Однако сбор данных с действительно большого ресурса, как Amazon, может представлять некоторые технические сложности, особенно когда дело касается многостраничных источников данных.
Основной трудностью извлечения данных с Amazon является динамическая загрузка страниц и защита от непреднамеренного сканирования, что сложно обойти с помощью базовых инструментов. Важно также правильно строить URL-адреса страниц с отзывами, чтобы обходить их необходимо последовательно, загружая все доступное количество.
Пример
Ваша оригинальная реализация имела некоторые недочеты, связанные с некорректным формированием URL-адреса для последующих страниц отзывов. Давайте рассмотрим пример, где мы исправляем данную ошибку, сосредотачиваясь на правильном построении запроса к страницам.
install.packages("rvest")
library(rvest)
install.packages("xml2")
library(xml2)
install.packages("magrittr")
library(magrittr)
# Корректный URL должен учитывать пагинацию отзывов
base_url <- "https://www.amazon.in/Apple-iPhone-11-128GB-Black/product-reviews/B07XVLW7YK/ref=cm_cr_arp_d_paging_btm_next_"
review_suffix <- "?ie=UTF8&reviewerType=all_reviews&pageNumber="
# Создадим пустой вектор для хранения всех отзывов
apple_reviews <- c()
# Обходим 100 страниц отзывов
for (i in 1:100) {
# Формируем URL с учетом номера страницы
page_url <- paste0(base_url, review_suffix, i)
# Загружаем HTML страницы
page <- read_html(page_url)
# Извлекаем текст отзывов с помощью HTML-селекторов
reviews <- page %>%
html_nodes(".review-text-content span") %>%
html_text(trim = TRUE)
# Объединяем результаты в один вектор
apple_reviews <- c(apple_reviews, reviews)
}
# Проверка первых нескольких отзывов
head(apple_reviews)
Применение и анализ
Исправив URL-адрес, вы можете успешно извлечь все отзывы для конкретного продукта и выполнить любой дальнейший анализ, такой как оценка настроений. Такие библиотеки R, как sentimentr
, могут помочь классифицировать отзывы как положительные, отрицательные или нейтральные, что может служить ценным источником информации для бизнеса.
Важные аспекты:
-
Этика сбора данных: Стоит помнить об этическом аспекте сбора данных. Amazon имеет свои политики использования. Важно соблюдать эти правила, чтобы избежать блокировки учетной записи или судебных исков.
-
Ограничения API и защита от ботов: Amazon активно борется с неправомерным сбором данных. Советуем следить за лимитами запросов, чтобы избежать блокировок.
-
Подготовка данных: Извлеченные данные требуют подготовки — очистки от HTML-тегов, ненужных символов, проверки дублирования и преобразования в пригодный формат для анализа.
Заключение
Использование R для текстового анализа отзывов на Amazon может быть чрезвычайно полезным инструментом для анализа настроений и выявления ключевой информации о продуктах. Однако важно уделять внимание техническим аспектам, таким как корректная обработка URL-адресов, этика извлечения данных и подготовка информации для анализа. Если учесть все эти факторы, вы сможете достичь поставленной цели и получить подробное понимание того, как продукт воспринимается пользователями.