J'ai récemment commencé à étudier le text mining, mais j'ai eu du mal car je ne pouvais pas obtenir de bons échantillons de données. Certaines personnes peuvent avoir les mêmes problèmes qu'eux-mêmes, alors j'écrirai un article sur les essais et erreurs jusqu'à ce que je prépare moi-même des exemples de données.
De plus, j'analyse souvent ** des descriptions gratuites (impressions, demandes, etc.) ** de questionnaires au travail, mon objectif est donc d'obtenir autant que possible des données dans un format similaire.
Aozora Bunko, qui est souvent vu dans les livres de text mining, est un site Web qui contient des œuvres littéraires dont le droit d'auteur a disparu. Cependant, comme ce n'est pas similaire aux données du questionnaire, je ne le ferai pas cette fois.
Pensez à gratter les sites qui collectent les notes des entreprises, tels que OpenWork et Job Change Conference. Cela semble très intéressant, mais cette fois, j'ai décidé que cela aurait un gros inconvénient et j'ai décidé d'y renoncer.
Si vous utilisez la campagne de publication d'impressions menée par l'entreprise, vous pouvez obtenir des données similaires à la description gratuite du questionnaire (par exemple, Star Wars -cp.html) et ainsi de suite). Cependant, quand je le regarde, l'habitude de Twitter est assez forte, donc je ne le ferai pas non plus.
Si vous pouvez extraire des avis pour un produit spécifique, vous obtiendrez probablement des données similaires à la description gratuite du questionnaire. Il existe différents types comme Amazon, Rakuten Ichiba, Yahoo! Shopping, mais ** Yahoo! Shopping Product Review Search API ** semble pouvoir obtenir des avis en spécifiant le code JAN [^ 1]! Je ne vois aucun inconvénient évident, je vais donc utiliser cette API cette fois **.
[^ 1]: Vous pouvez le considérer comme un numéro de code à barres pour le moment.
Obtenez l'ID de l'application en vous référant à ici. Si vous souhaitez simplement reproduire cet article, vous n'avez pas à vous soucier des paramètres ci-dessous (j'ai pu enregistrer l'URL du site en tant que http: // example.com /
).
À partir de là, exécutez en Python. Remplacez ʻappid par l'ID d'application que vous avez obtenu précédemment (il peut être répertorié comme ID client sur l'écran d'administration). Dans ce qui suit, seuls la note du produit (
rate) et le texte de l'avis (
description) sont obtenus pour le moment, mais si vous en avez envie, vous pouvez obtenir plus d'informations (voir [Document officiel](https: // pour plus de détails). Vérifiez developer.yahoo.co.jp/webapi/shopping/shopping/v1/reviewsearch.html). Vous ne pouvez obtenir que 50 éléments à la fois, mais si vous avez besoin de plus que cela, vous pouvez décaler
start` de 50 et répéter.
import requests
import json
import pandas as pd
url = "https://shopping.yahooapis.jp/ShoppingWebService/V1/json/reviewSearch"
payload = {
"appid": "XXXXXXXXXX",
"jan": "4902777323176", #Protéine Zabas
"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"] != ""] #Évaluation
description = [x["Description"] for x in res if x["Description"] != ""] #La revue
df = pd.DataFrame({
"rate": rate,
"description": description,
})
df.to_csv("review.csv", header=True, index=False)
L'exécution du code ci-dessus créera un fichier appelé review.csv
, et vous pourrez l'analyser comme vous le souhaitez. Pour le moment, lorsque je l'ouvre dans la feuille de calcul et que je la vérifie, cela ressemble à ceci. Étonnamment, l'impression est qu'il y a plus d'avis sur la livraison que sur le produit lui-même. Il serait intéressant de comparer et d'analyser les avis les mieux notés et les moins bien notés.
Maintenant, vous pouvez enfin étudier l'exploration de texte ...