Ich habe vor kurzem angefangen, Text Mining zu studieren, aber es fiel mir schwer, weil ich keine guten Beispieldaten erhalten konnte. Einige Leute haben möglicherweise die gleichen Probleme wie sie selbst, daher werde ich einen Artikel über Versuch und Irrtum schreiben, bis ich selbst Beispieldaten vorbereitet habe.
Außerdem analysiere ich häufig ** kostenlose Beschreibungen (Impressionen, Anfragen usw.) ** von Fragebögen bei der Arbeit. Mein Ziel ist es daher, so viele Daten wie möglich in einem ähnlichen Format zu erhalten.
Aozora Bunko, das häufig in Text Mining-Büchern verwendet wird, ist eine Website, die literarische Werke enthält, deren Urheberrecht verschwunden ist. Da es jedoch den Fragebogendaten nicht ähnlich ist, werde ich es diesmal nicht tun.
Erwägen Sie das Scraping von Websites, auf denen Unternehmensbewertungen erfasst werden, z. B. OpenWork und Job Change Conference. Es scheint sehr interessant zu sein, aber dieses Mal habe ich beschlossen, dass es einen großen Nachteil haben würde und habe darauf verzichtet.
Wenn Sie die vom Unternehmen durchgeführte Impression-Posting-Kampagne verwenden, können Sie Daten abrufen, die der kostenlosen Beschreibung des Fragebogens ähneln (z. B. Star Wars. -cp.html) und so weiter). Wenn ich es mir jedoch anschaue, ist die Gewohnheit von Twitter ziemlich stark, so dass ich dies auch nicht tun werde.
Wenn Sie Bewertungen für ein bestimmtes Produkt extrahieren können, erhalten Sie wahrscheinlich Daten, die der kostenlosen Beschreibung des Fragebogens ähneln. Es gibt verschiedene Typen wie Amazon, Rakuten Ichiba, Yahoo! Shopping, aber ** Yahoo! Shopping Product Review Search API ** scheint in der Lage zu sein, Bewertungen durch Angabe des JAN-Codes [^ 1] zu erhalten! Ich kann mir keine offensichtlichen Nachteile vorstellen, daher werde ich diese API dieses Mal verwenden **.
[^ 1]: Sie können es sich vorerst als Barcode-Nummer vorstellen.
Die Anwendungs-ID erhalten Sie unter hier. Wenn Sie diesen Artikel nur reproduzieren möchten, müssen Sie sich nicht mit den folgenden Einstellungen herumschlagen (ich konnte die Site-URL als "http: // example.com /" registrieren).
Führen Sie ab hier Python aus. Ersetzen Sie "appid" durch die zuvor erhaltene Anwendungs-ID (diese kann auf dem Verwaltungsbildschirm als Client-ID bezeichnet werden). Im Folgenden werden vorerst nur die Produktbewertung (rate
) und der Bewertungstext ( description
) abgerufen. Wenn Sie jedoch Lust dazu haben, können Sie weitere Informationen erhalten (siehe [Offizielles Dokument](https: // für Details). Überprüfen Sie developer.yahoo.co.jp/webapi/shopping/shopping/v1/reviewsearch.html). Sie können nur bis zu 50 Elemente gleichzeitig erhalten. Wenn Sie jedoch mehr benötigen, sollten Sie den Start um 50 verschieben und wiederholen.
import requests
import json
import pandas as pd
url = "https://shopping.yahooapis.jp/ShoppingWebService/V1/json/reviewSearch"
payload = {
"appid": "XXXXXXXXXX",
"jan": "4902777323176", #Zabas-Protein
"results": 50, # default... 10, max... 50
# "start": 1
}
res = json.loads(requests.get(url, params=payload).text)["ResultSet"]["Result"]
rate = [x["Ratings"]["Rate"] for x in res if x["Description"] != ""] #Auswertung
description = [x["Description"] for x in res if x["Description"] != ""] #Rezension
df = pd.DataFrame({
"rate": rate,
"description": description,
})
df.to_csv("review.csv", header=True, index=False)
Wenn Sie den obigen Code ausführen, wird eine Datei mit dem Namen "review.csv" erstellt, die Sie nach Belieben analysieren können. Wenn ich es vorerst in der Tabelle öffne und überprüfe, sieht es so aus. Überraschenderweise besteht der Eindruck, dass es mehr Bewertungen zur Lieferung gibt als das Produkt selbst. Es wäre interessant, Bewertungen mit hoher und niedriger Bewertung zu vergleichen und zu analysieren.
Jetzt können Sie endlich Text Mining studieren ...