Aus dem Import von MeCab und Beautiful Soup werden WEB-Scraping, Mundpropaganda und Bewertungen extrahiert. Machen wir es zu einer Wortwolke und visualisieren wir, was geschrieben steht! Es ist der Inhalt.
Beispielsweise kann "Mundpropaganda" von Trip Advisor als Wortwolke verwendet werden (Visualisierung häufig verwendeter Wörter - Themen, die viele Menschen in Mundpropaganda erwähnen möchten). Es kann interessant sein, den Unterschied beim Vergleich der Visualisierung von Tokyo Tower und Sky Tree sowie Tokyo Tower und Tsutenkaku zu sehen. .. .. Ist die Idee.
Machen Sie so etwas aus der Mundpropaganda im roten Rahmen.
Ich habe zum ersten Mal WEB-Scraping ausprobiert und sogar Wordcloud erstellt, aber ich werde die Site vorstellen, auf die ich mich zu diesem Zeitpunkt zuerst bezogen habe. Durchsuchen der Überprüfungssite, um die Anzahl der Wörter herauszufinden [Für Anfänger] Versuchen Sie Web-Scraping mit Python Aktive Ingenieure erklären, wie MeCab mit Python verwendet wird [für Anfänger] Verwenden von Wordcloud mit Anaconda / Jupyter unter Windows (Tipps)
Installieren Sie zunächst die erforderlichen Bibliotheken. (Wenn Sie es bereits haben, überspringen Sie es bitte.)
Meine Umgebung ist übrigens Windows 10, Anaconda (Jupiter).
Beautiful Soup、request、wordcloud
Starten Sie Ancaonda Prompt und installieren Sie Beautiful Soup
und request
.
conda install beautifulsoup4
conda install request
conda install -c conda-forge wordcloud
MeCab Laden Sie das "Binärpaket für MS-Windows" von der offiziellen Website herunter und installieren Sie es. In diesem Fall ist das Wörterbuch von Anfang an enthalten. Wenn Sie sich daran gewöhnt haben, können Sie es in ein anderes Wörterbuch ändern. Sie werden während der Installation nach dem Zeichencode gefragt, aber nach "UTF-8"! Andere können so gelassen werden, wie sie sind. Legen Sie nach Abschluss der Installation die Umgebungsvariablen fest. · Suche nach "Systemdetails" (wahrscheinlich im Suchfenster unten links in der Taskleiste) -Wählen Sie "Umgebungsvariablen" -Wählen Sie die Systemumgebungsvariable "Pfad" -Klicken Sie auf Bearbeiten und wählen Sie Neu -Geben Sie "C: \ Programme (x86) \ MeCab \ bin" ein. ・ Wählen Sie OK und schließen Sie den Bildschirm Aktive Ingenieure erklären, wie MeCab mit Python verwendet wird [für Anfänger] hat eine Prozedur. Schauen Sie also auch dort nach.
Nachdem die Vorbereitungen abgeschlossen sind, schreiben wir den Code von hier aus. Erster Import
import requests
from bs4 import BeautifulSoup
import re
import pandas as pd
Sobald Sie dies getan haben, gehen Sie zu der Site, die Sie kratzen möchten. In diesem Beispiel Tokyo Tower-Seite des Trip Advisor. Überprüfen Sie die folgenden zwei Punkte. ・ URL ・ Wo ist der HTML-Code, den Sie kratzen möchten (diesmal Mundpropaganda)?
Zunächst können Sie die URL so sehen, wie sie ist, daher werde ich die Erklärung weglassen. Letzterer drückt "F12", um die Entwicklertools zu starten. Ein Fenster wie das obige wird angezeigt. Von hier aus können Sie sehen, wo und wie Bewertungen gespeichert werden.
Es ist einfach zu überprüfen, klicken Sie auf "Umschalt + Strg + C" und klicken Sie dann auf den Mundpropaganda-Teil des Artikels. Anschließend wird im vorherigen Fenster das entsprechende Teil ausgewählt. Sie können sehen, dass die Bewertungen in der q-Klasse "IRsGHomP" gespeichert sind.
Geben Sie danach diese URL und den Speicherort im Code an und führen Sie das Scraping durch.
#Df kratzte Bewertungen_In Liste speichern
df_list = []
#Scraping für 20 Seiten.
pages = range(0, 100, 5)
for page in pages:
#Da sich die URL zwischen der ersten Seite und der zweiten und den folgenden Seiten geringfügig unterscheidet, verzweigen Sie nach 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")
#Klasse des Tags q aus HTML'IRsGHoPm'Angeben
review = soup.find_all('q', class_ = 'IRsGHoPm')
#Speichern Sie die extrahierten Bewertungen in der richtigen Reihenfolge
for i in range(len(review)):
_df = pd.DataFrame({'Number':i+1,
'review':[review[i].text]})
df_list.append(_df)
Zu diesem Zeitpunkt sollte df_list Folgendes enthalten:
df_review = pd.concat(df_list).reset_index(drop=True)
print(df_review.shape)
df_review
Importieren Sie zunächst MeCab und WordCloud
import MeCab
import matplotlib.pyplot as plt
from wordcloud import WordCloud
Geben Sie den Code unter Scraping der Überprüfungssite zur Untersuchung der Anzahl der Wörter ein.
#MeCab Vorbereitung
tagger = MeCab.Tagger()
tagger.parse('')
#Kombinieren Sie alle Textdaten
all_text= ""
for s in df_review['review']:
all_text += s
node = tagger.parseToNode(all_text)
#Nomenklatur zur Liste extrahieren
word_list = []
while node:
word_type = node.feature.split(',')[0]
if word_type == 'Substantiv':
word_list.append(node.surface)
node = node.next
#Liste in Zeichenfolge konvertieren
word_chain = ' '.join(word_list)
Alles was Sie tun müssen, ist Wordcloud auszuführen und es ist in Ordnung.
#Stoppwörter erstellen (auszuschließende Wörter)
stopwords = ['']
#Wortwolkenerstellung
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()
Dann wird es wie folgt erstellt.
"Nein", "koto" und "zahm" sind jedoch nicht erforderlich, daher werde ich sie entfernen. Hier kommt das obige Stoppwort ins Spiel.
#Stoppwörter erstellen (auszuschließende Wörter)
stopwords = ['von', 'Ding', 'Zum']
#Wortwolkenerstellung
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()
Dann wird es wie folgt sein.
Ich kann etwas verstehen, ich verstehe nichts. .. .. Ob es viele Leute gibt, die es mit Sky Tree vergleichen oder viele Leute sagen "Ich kann Sky Tree sehen", es besteht kein Zweifel, dass "Sky Tree" für Benutzer des Tokyo Tower von Interesse ist. Es sieht so aus als ob. Daher ist die Mundpropaganda von Sky Tree auch eine Wortwolke darunter.
Hier fallen Wörter wie "Aufzug" und "Ticket" auf, die im Tokyo Tower nicht viel erwähnt wurden (die Buchstaben waren nicht groß). Auch "Tokyo Tower" fällt nicht auf. Dieser Bereich scheint der Unterschied zwischen dem Tokyo Tower und Sky Tree zu sein.
Ende.
Es kann interessant sein, Ihr Unternehmen mit der Konkurrenz auf Mundpropaganda-Websites wie Open Work zu vergleichen. Es scheint, dass es Dinge gibt, die durch den Vergleich ähnlicher Einrichtungen gesehen werden können, wie beispielsweise ein Mund-zu-Mund-Vergleich der fünf Hauptkuppeln des Sapporo-Doms, des Tokyo-Doms, des Nagoya-Doms, des Osaka-Doms und des Fukuoka-Doms. Übrigens erfordert Open Work Scraping Header-Einstellungen. Siehe unten für Details. [Python] 403 Verboten: Was tun, wenn Sie auf diesem Server keine Zugriffsberechtigung haben?