[PYTHON] [SLAYER] J'ai essayé de confirmer l'âme d'acier en visualisant les paroles de slash metal [Word Cloud]

introduction

Mon bien-aimé Thrash Metal, ** SLAYER ** est mon préféré.

Bien qu'ils soient actifs depuis de nombreuses années, ils ont finalement atteint la dernière tournée mondiale tout en surmontant la mort des membres. Et le 30 novembre 2019, la conférence finale à LA a honoré la beauté sans fin.

https://www.youtube.com/watch?v=OwsdbuxRc_s

Pour commémorer cela, je voudrais confirmer ce qu'ils voulaient transmettre.

environnement

Résultat de la visualisation

wordcloud.png

Après tout, le sang est une mort ... Je n'ai plus rien à dire.

Merci pour la musique et le message merveilleux! !! !! !! !!

Préparation préalable

Tout d'abord, vérifiez le code HTML de la page cible. Les paroles sont écrites dans la classe "lyrics", mais il y a quelques balises enfants supplémentaires qui doivent être éliminées.

sample tags


<div class="lyrics">
<h3><a name="1">1. Evil Has No Boundaries</a></h3><br />
<i>[Lyrics - Hanneman, King; Music - King]</i><br />
<br />
Blasting our way through the boundaries of Hell<br />

・ ・ ・

We conquer then move on ahead<br />
<br />
<i>[Chorus:]</i><br />
Evil<br />

・ ・ ・

Your soul now his to keep<br />
<br />

<div class="thanks">Tom Araya     - Bass/Vocals<br />
Kerry King    - Lead/Rhythm Guitar<br />
Jeff Hanneman - Lead/Rhythm Guitar<br />
Dave Lombardo - Drums<br />
<br />
Thanks to nwdrk13 for correcting track #4 lyrics.<br />
Thanks to rath00 for correcting track #6 lyrics.</div>
<br />
<div class="note">Submits, comments, corrections are welcomed at [email protected]</div><br />
<a href="http://www.darklyrics.com/s/slayer.html">SLAYER LYRICS</a>
</div>

Code source

Il s'est avéré être quelque chose comme ça.

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
from wordcloud import WordCloud

#Liste d'URL pour chaque album
urls = ['http://www.darklyrics.com/lyrics/slayer/shownomercy.html',
        'http://www.darklyrics.com/lyrics/slayer/hauntingthechapel.html',
        'http://www.darklyrics.com/lyrics/slayer/hellawaits.html',
        'http://www.darklyrics.com/lyrics/slayer/reigninblood.html',
        'http://www.darklyrics.com/lyrics/slayer/southofheaven.html',
        'http://www.darklyrics.com/lyrics/slayer/seasonsintheabyss.html',
        'http://www.darklyrics.com/lyrics/slayer/divineintervention.html',
        'http://www.darklyrics.com/lyrics/slayer/undisputedattitude.html',
        'http://www.darklyrics.com/lyrics/slayer/diabolusinmusica.html',
        'http://www.darklyrics.com/lyrics/slayer/godhatesusall.html',
        'http://www.darklyrics.com/lyrics/slayer/christillusion.html',
        'http://www.darklyrics.com/lyrics/slayer/worldpaintedblood.html',
        'http://www.darklyrics.com/lyrics/slayer/repentless.html']

texts = ''

for url in urls:
    #Avoir
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'lxml')
    song_lyrics = soup.find('div', class_='lyrics')
    
    #Supprimer les balises inutiles
    for tag in song_lyrics.find_all('h3'):
        tag.extract()
    for tag in song_lyrics.find_all('i'):
        tag.extract()
    for tag in song_lyrics.find_all('div', class_='thanks'):
        tag.extract()
    for tag in song_lyrics.find_all('div', class_='note'):
        tag.extract()
    for tag in song_lyrics.find_all('a'):
        tag.extract()
        
    song_lyric = song_lyrics.text
    song_lyric = song_lyric.replace('\n',' ')
    
    #Attendez 1 seconde (compte tenu de la charge du serveur)
    time.sleep(1)

    #Ajouter les paroles acquises
    texts = texts + song_lyric + ' '
    
#Suppression de mots qui semble dénuée de sens
stop_words = ['the', 'of', 'to', 'is', 'in', 'for', 'with', 'that', 'my', 'all', 'will', 'from', 'can', 'your',  
              'on', 'me', 'it', 'and', 'this', 'be', 'are', 'am', 'their', 'do', 'there', 'you', 'it']

wordcloud = WordCloud(background_color='black', colormap='autumn',
    width=800, height=600, stopwords=set(stop_words)).generate(texts)

#L'image est wordcloud.Enregistrez png dans le même répertoire que le fichier py
wordcloud.to_file('./wordcloud.png')

en conclusion

De "Show No Mercy" en 1983, le légendaire album "Reign in Blood" en 1986. Et le dernier album original, 2015 "Repentless".

Aucun autre groupe n'a été aussi musical de son vivant. Ils étaient très rares.

Je garderai leur son et l'âme d'acier dans mon cœur pour le reste de ma vie.

Ah ... ce n'était pas un blog ici.

référence

Recommended Posts

[SLAYER] J'ai essayé de confirmer l'âme d'acier en visualisant les paroles de slash metal [Word Cloud]
J'ai vérifié les versions de Blender et Python
J'ai vérifié le système d'exploitation et le shell par défaut de docker-machine
[Flask & Bootstrap] Visualisez le contenu des paroles avec Word Cloud ~ Lyrics Word Cloud ~
Comme c'est le 20e anniversaire de la formation, j'ai essayé de visualiser les paroles de Parfum avec Word Cloud
J'ai vectorisé l'accord de la chanson avec word2vec et je l'ai visualisé avec t-SNE
J'ai vérifié le nombre de magasins fermés et ouverts dans tout le pays par Corona
J'ai vérifié le contenu du volume du docker
J'ai vérifié les options de copyMakeBorder d'OpenCV
J'ai vérifié la liste des touches de raccourci de Jupyter
J'ai vérifié la période de rétention de session de django
J'ai vérifié la vitesse de traitement de la numpy unidimensionnelle
J'ai lu et implémenté les variantes de UKR
Les parties sympas et regrettables de Cloud Datalab
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai vérifié les spécifications de sortie du LSTM bidirectionnel de PyTorch
J'ai analysé les données de combat de rang du bouclier d'épée Pokemon et je les ai visualisées sur Tableau