Le grattage WEB, le bouche-à-oreille et les critiques sont extraits de l'importation de MeCab et de Beautiful Soup. Faisons un nuage de mots et visualisons ce qui est écrit! C'est le contenu.
Par exemple, le «bouche-à-oreille» de Trip Advisor peut être utilisé comme un nuage de mots (visualisation de mots fréquemment utilisés ≒ sujets que de nombreuses personnes prennent la peine de mentionner dans le bouche-à-oreille). Il peut être intéressant de voir la différence en comparant la visualisation de Tokyo Tower et Sky Tree, et de Tokyo Tower et Tsutenkaku. .. .. C'est l'idée.
Faites quelque chose comme ça à partir du "bouche à oreille" dans le cadre rouge.
J'ai essayé le scraping WEB pour la première fois et j'ai même créé wordcloud, mais je vais vous présenter le site auquel j'ai fait référence à l'époque. Grattage du site d'avis pour connaître le nombre de mots [Pour les débutants] Essayez le web scraping avec Python Les ingénieurs actifs expliquent comment utiliser MeCab avec Python [pour les débutants] Utilisation de wordcloud avec Anaconda / Jupyter sous Windows (Astuces)
Tout d'abord, installez les bibliothèques requises. (Si vous l'avez déjà, veuillez l'ignorer.) Au fait, mon environnement est Windows 10, Anaconda (jupyter). Beautiful Soup、request、wordcloud Lancez Ancaonda Prompt et installez «Beautiful Soup» et «request».
conda install beautifulsoup4
conda install request
conda install -c conda-forge wordcloud
MeCab Téléchargez et installez "Paquet binaire pour MS-Windows" à partir du Site officiel. Dans ce cas, le dictionnaire est inclus depuis le début. Si vous vous y habituez, vous pouvez le remplacer par un autre dictionnaire. Il vous sera demandé le code de caractère lors de l'installation, mais à "UTF-8"! D'autres peuvent être laissés tels quels. Une fois l'installation terminée, définissez les variables d'environnement. · Rechercher des "détails du système" (probablement dans la fenêtre de recherche en bas à gauche de la barre des tâches) -Sélectionnez "Variables d'environnement" -Sélectionnez la variable d'environnement système "Path" -Cliquez sur Modifier et sélectionnez Nouveau -Entrez "C: \ Program Files (x86) \ MeCab \ bin" ・ Sélectionnez OK et fermez l'écran Les ingénieurs actifs expliquent comment utiliser MeCab avec Python [pour les débutants] a une procédure, alors jetez-y également un œil.
Maintenant que les préparatifs sont terminés, écrivons le code à partir d'ici. Première importation
import requests
from bs4 import BeautifulSoup
import re
import pandas as pd
Une fois que vous avez fait cela, accédez au site que vous souhaitez gratter. Dans cet exemple, Page de la tour de Tokyo de Trip advisor. Vérifiez les deux points suivants. ・ URL ・ Où est le code HTML que vous voulez gratter (bouche à oreille cette fois)?
Tout d'abord, vous pouvez voir l'URL telle quelle, je vais donc omettre l'explication. Ce dernier appuie sur "F12" pour lancer les outils de développement. Une fenêtre comme celle ci-dessus apparaîtra. De là, vous pouvez voir où et comment les avis sont stockés.
C'est facile à vérifier, cliquez sur "Maj + Ctrl + C" puis CLIQUEZ sur la partie bouche à oreille de l'article. Ensuite, la pièce correspondante est sélectionnée dans la fenêtre précédente. Vous pouvez voir que les avis sont stockés dans la classe q "IRsGHomP".
Après cela, spécifiez cette URL et cet emplacement dans le code et exécutez le scraping.
#Avis grattés par DF_Stocker dans la liste
df_list = []
#Grattage pour 20 pages.
pages = range(0, 100, 5)
for page in pages:
#Comme l'URL est légèrement différente entre la première page et la deuxième page et les suivantes, branchez par IF
if page == 0:
urlName = 'https://www.tripadvisor.jp/Attraction_Review-g14129730-d320047-Reviews-Tokyo_Tower-Shibakoen_Minato_Tokyo_Tokyo_Prefecture_Kanto.html'
else:
urlName = 'https://www.tripadvisor.jp/Attraction_Review-g14129730-d320047-Reviews-or' + str(page) + '-Tokyo_Tower-Shibakoen_Minato_Tokyo_Tokyo_Prefecture_Kanto.html'
url = requests.get(urlName)
soup = BeautifulSoup(url.content, "html.parser")
#Classe de balise q depuis HTML'IRsGHoPm'Spécifier
review = soup.find_all('q', class_ = 'IRsGHoPm')
#Stockez les avis extraits dans l'ordre
for i in range(len(review)):
_df = pd.DataFrame({'Number':i+1,
'review':[review[i].text]})
df_list.append(_df)
À ce stade, df_list doit contenir:
df_review = pd.concat(df_list).reset_index(drop=True)
print(df_review.shape)
df_review
Tout d'abord, importez MeCab et WordCloud
import MeCab
import matplotlib.pyplot as plt
from wordcloud import WordCloud
Entrez le code en vous référant à Grattage du site d'avis pour rechercher le nombre de mots.
#Préparation MeCab
tagger = MeCab.Tagger()
tagger.parse('')
#Combinez toutes les données textuelles
all_text= ""
for s in df_review['review']:
all_text += s
node = tagger.parseToNode(all_text)
#Extraire la nomenclature pour lister
word_list = []
while node:
word_type = node.feature.split(',')[0]
if word_type == 'nom':
word_list.append(node.surface)
node = node.next
#Convertir la liste en chaîne
word_chain = ' '.join(word_list)
Tout ce que vous avez à faire est d'exécuter wordcloud et c'est ok.
#Créer des mots vides (mots à exclure)
stopwords = ['']
#Création de nuage de mots
W = WordCloud(width=500, height=300, background_color='lightblue', colormap='inferno', font_path='C:\Windows\Fonts\yumin.ttf', stopwords = set(stopwords)).generate(word_chain)
plt.figure(figsize = (15, 12))
plt.imshow(W)
plt.axis('off')
plt.show()
Ensuite, il sera créé comme suit.
Cependant, "non", "koto" et "apprivoiser" ne sont pas nécessaires, je vais donc les supprimer. C'est là qu'intervient le mot-clé ci-dessus.
#Créer des mots vides (mots à exclure)
stopwords = ['de', 'chose', 'Pour']
#Création de nuage de mots
W = WordCloud(width=500, height=300, background_color='lightblue', colormap='inferno', font_path='C:\Windows\Fonts\yumin.ttf', stopwords = set(stopwords)).generate(word_chain)
plt.figure(figsize = (15, 12))
plt.imshow(W)
plt.axis('off')
plt.show()
Ensuite, ce sera comme suit.
Je peux comprendre quelque chose, je ne comprends rien. .. .. Qu'il y ait beaucoup de gens qui le comparent avec Sky Tree ou que beaucoup de gens disent "Je peux voir Sky Tree", il ne fait aucun doute que "Sky Tree" intéresse les utilisateurs de la Tokyo Tower. Ça y ressemble. Par conséquent, le bouche-à-oreille de Sky Tree est également un nuage de mots ci-dessous.
Ici, des mots comme «ascenseur» et «billet» qui n'étaient pas beaucoup mentionnés dans la tour de Tokyo (les lettres n'étaient pas grandes) ressortent. De plus, "Tokyo Tower" n'est pas perceptible. Cette zone semble être la différence entre Tokyo Tower et Sky Tree.
fin.
Il peut être intéressant de comparer votre entreprise avec la concurrence sur les sites de bouche à oreille d'entreprise tels que Open Work. Il semble qu'il y ait des choses qui peuvent être vues en comparant des installations similaires, comme une comparaison de bouche à oreille des cinq principaux dômes du dôme de Sapporo, du dôme de Tokyo, du dôme de Nagoya, du dôme d'Osaka et du dôme de Fukuoka. À propos, le scraping des travaux ouverts nécessite des paramètres d'en-tête. Voir ci-dessous pour plus de détails. [Python] 403 Forbidden: Que faire lorsque vous n'avez pas la permission d'accéder sur ce serveur
Recommended Posts