Harry Potter e l'analisi di rete in Python (2023)

Conosciamo tutti le reti. Che si tratti di social network come Facebook e Twitter, reti S-Bahn o reti elettriche. Puoi scoprire come visualizzarli in questo articolo.

nodi e spigoli

Se tuquesta serie di postseguito, allora conosci già molte possibilità di visualizzazione dei dati, come grafici a dispersione, boxplot o istogrammi. A seconda della domanda, questi diagrammi sono strumenti eccellenti per scoprire di più sulle relazioni in un set di dati. Ma quali metodi ci sono per rappresentare le interazioni o le relazioni sociali? La risposta sono i grafici! Secondo Wikipedia, aGraficouna struttura astratta che rappresenta un insieme di oggetti insieme alle connessioni che esistono tra quegli oggetti. Gli oggetti sono rappresentati come punti (nodi), mentre le loro relazioni reciproche sono identificate da linee (bordi).

Harry Potter e l'analisi di rete in Python (1)

I nodi possono essere cose molto diverse. Amici di Facebook, stazioni ferroviarie, luoghi di produzione o personaggi di un romanzo. Il che ci porta a Harry Potter. Utilizzando la serie di libri su un giovane mago, diamo un'occhiata a come visualizzare il social network di questi personaggi immaginari.

L'obiettivo dell'analisi

Il nostro obiettivo dovrebbe essere quello di visualizzare le relazioni tra i singoli personaggi, in modo tale che sia facile vedere quali personaggi compaiono insieme molto spesso nel romanzo e quali raramente. Per fare questo, guardiamo il testo ed esaminiamo per ogni carattere A quante volte il carattere B viene menzionato entro una distanza massima di X parole dal carattere A. Più spesso i personaggi A e B vengono menzionati insieme, più forte è il loro rapporto reciproco. Esprimiamo la forza del rapporto in una partitura, che indica quante volte i due personaggi compaiono insieme. Il grafico viene quindi distorto dal punteggio in modo tale che i bordi con un punteggio più alto siano più spessi e i nodi con un bordo più spesso siano più vicini tra loro.

Ottieni i dati

Come sempre, abbiamo bisogno prima dei dati grezzi, naturalmente. In questo caso, ciò significa che dobbiamo procurarci i libri (preferibilmente come file di testo) da qualche parte. Niente di più facile di cosìquesta partepuoi scaricare tutti i libri della collana nel formato appropriato. Per semplicità, per ora ci occuperemo solo della Parte 1. Ciò di cui abbiamo bisogno è anche un elenco di personaggi che vogliamo esaminare. Ho creato questo elenco manualmente utilizzando i caratteri fromQuiin un file Excel (e il tedesco Hermione all'inglese Hermionon l'ha fatto). Quindi ora abbiamo sia un file di testo del primo volume di Harry Potter che un foglio di calcolo Excel con tutti i personaggi.

(Video) Come creare una App in Python! Kivy Tutorial ITA

Prepara i dati

Per prima cosa leggiamo entrambi i file nel nostro ambiente di programmazione. Sebbene il libro sia un file di testo, è costituito da codice HTML. Quindi importo il file usando il moduloBella zuppaed estrarre il testo tra ilpre-Tag. È lì che si trova il testo vero e proprio del romanzo.

from bs4 import BeautifulSoupimport pandas as pdwith open(".../Book 1.txt","r",encoding="utf-8") as file: hp1 = bs.BeautifulSoup(file,"lxml")hp1 = str (hp1.find_all("pre")).replace("\n"," ")fig = pd.ExcelFile(".../charaktere.xlsx").parse(0)

L'oggettohp1è costituito da un'unica lunga stringa. I primi 1.000 caratteri del testo hanno questo aspetto.

hp1[:1000]

Diamo un'occhiata ad alcuni dei personaggi.

fico[:25]

Harry Potter e l'analisi di rete in Python (3)

Nella colonna Soprannome, ho inserito il nome di ogni personaggio che viene citato più frequentemente (secondo il mio istinto). Abbiamo bisogno di un elenco di parole da cercare nel testo. Ha poco senso usare sempre il nome completo, solo il nome o solo il cognome. Naturalmente, neanche questo approccio è accurato al 100%. Ad esempio, Ron viene spesso chiamato dagli insegnanti come il signor Weasley, ma questi casi verranno ignorati dal nostro programma. Tuttavia, abbiamo una buona approssimazione con l'elenco. E ora faremo quella lista.

(Video) Esercizio Alberi binari in PYTHON ES.1 [TECNICHE DI PROGRAMMAZIONE]

char_list = lista(fig.Rufname.str.lower())

Dobbiamo anche formattare il testo del libro in modo da non avere una singola stringa lunga, ma un elenco di singole parole. Per i nostri scopi, ha anche senso rimuovere dal testo tutti i caratteri non alfabetici. Per questo usiamo il moduloRifper le espressioni regolari e quindi dividere la stringa in ogni spazio.

hp1_str_split = re.sub(pattern='\W+', string=hp1.lower(), repl=" ").split(" ")

Il risultato del comando è ora un elenco con 84.449 voci. Diamo un'occhiata alle prime 50 voci.

print(hp1_str_split[:50])

Allo stesso tempo, abbiamo convertito il testo, come l'elenco dei nomi sopra, in lettere minuscole per essere assolutamente sicuri che tutti i nomi vengano rilevati durante l'iterazione sul testo.

Il copione

Per una sceneggiatura funzionante, abbiamo prima bisogno delle coppie di personaggi di cui vogliamo esaminare le relazioni. Ma quante e quali diverse coppie ci sono comunque per la lista dei personaggi? C'è un bel pacchetto Python per questo problemaitertools. Questo ci consente di iterare su tutte le combinazioni di cifre all'interno dello script e quindi calcolare i punteggi. Lo script ha quindi questo aspetto.

from itertools import combinationschar=[]score=[]umkreis=50for paar in combinations(char_list,2): zw_summe = 0 for i in range(len(hp1_str_split)): if hp1_str_split[i]==paar[0]: for k in [x for x in hp1_str_split[i-umkreis:i+umkreis]]: if k == paar[1]: zw_summe+=1 char.append(paar) score.append(zw_summe)df = pd.DataFrame({ "char":char, "score":score})

Per prima cosa definiamo le due listecharEpunto, in cui vengono successivamente scritti la coppia di caratteri e la relativa partitura. Quindi iteriamo sull'elenco delle combinazioni di cifre. Prendiamo come esempio la combinazione Harry e Ron. La sceneggiatura cerca Harry nel testo del libro. Per ogni voce chiamata Harry, cerca entro 50 parole prima e dopo la voce la frequenza con cui viene nominato anche Ron. Per ogni hit, il subtotale (tra_somma) per 1. Infine, l'elencocharuno di tupel(Harry, Ron)espanso e l'elencopuntoper il corrispondente numero di colpi. Infine scriviamo entrambe le liste nel DataFramedf. Diamo un'occhiata alle 10 combinazioni più comuni.

(Video) Implementing and Training Predictive Customer Lifetime Value Models in Python

df.sort_values(by="punteggio",ascending=False)[:10]

Harry Potter e l'analisi di rete in Python (5)

Harry e Ron sembrano avere il legame più forte tra loro. Inoltre, come personaggio principale del libro, Harry appare in ciascuna delle 10 combinazioni più comuni.

Con ciò, la preparazione dei dati è alle nostre spalle. Con DataFrame ora abbiamo i bordi e i pesi richiesti, di cui abbiamo bisogno per creare un grafico.

Costruisci il grafico

Usiamo il pacchetto per creare e visualizzare il graficoReteX. Per prima cosa generiamo un grafico non orientato vuotoG.

importa retex come nxG = nx.Graph()

Quindi generiamo due liste. Uno con spigoli e uno con pesi. Tuttavia, prendiamo solo combinazioni di cifre che appaiono insieme almeno una volta, cioè hanno un punteggio maggiore di 0.

(Video) 30 Days of Python - Day 17 - Data Science Pipeline with Jupyter, Pandas & FastAPI - Python TUTORIAL

spigoli = lista(df.loc[(df.score>0)].char)pesi = lista(df.loc[(df.score>0)].score)

Ora possiamo aggiungere gli spigoli al graficoGaggiungere a.

G.add_edges_from(bordi)

E il grafico è fatto. Ora possiamo visualizzarlo, per cui i pesi vengono trasferiti solo all'oggetto qui.

import matplotlib.pyplot as pltnx.draw(G, width=[(weight/2)**0.5 for weight in weights], with_labels=True,edge_color="green", node_size=[(weight*15000)**0.5 for peso in pesi], node_color="grigio chiaro", node_shape="o", font_size=10, font_color="nero", alpha=0.9)plt.show()

Con gli argomenti didisegno()funzione che puoi giocare come preferisci. Spesso devi regolarli manualmente e perfezionarli per rendere il grafico visivamente accattivante.Quitroverai tutti gli argomenti mutabili per la funzione. Il risultato è simile a questo.

È chiaro che Harry è il protagonista del libro, con forti legami con Ron e Hagrid, ma fondamentalmente connesso a tutti gli altri personaggi. In basso a destra l'intera famiglia Dursley (figlio Dudley, padre Vernon, madre Petunia) si riunisce e a sinistra vediamo gran parte della famiglia Weasley (Fred, Percy, George, Charlie) vicini. Anche i caratteri correlati in termini di contenuto nel libro vengono visualizzati raggruppati nel grafico. D'altra parte, puoi vedere quali personaggi non hanno nulla a che fare l'uno con l'altro, come Ginny Weasley e Lily Potter. Tuttavia, non ci potrebbe essere alcuna connessione tra i due se l'intervallo di ricerca sopra definito dovesse essere aumentato da 50 a 250 parole. Al di sopra di una certa dimensione, tutte le figure verrebbero collegate in rete tra loro, ma ciò toglierebbe parte del significato all'analisi dei grafici.

Conclusione

La maggior parte del lavoro per l'analisi della rete in questo caso è stata la preparazione dei dati. Una volta completata la struttura di base, puoi utilizzare NetworkX e poche righe di codice per creare e visualizzare un grafico. Hai un sacco di opzioni per adattare il grafico alle tue esigenze.

(Video) How to Scrape Bitcoin Price in Python | Part 1 | Web Scraping | Data Scraping | Satyajit Pattnaik

In alternativa all'analisi di cui sopra, potresti esaminare le relazioni tra maghi e incantesimi. Quale personaggio usa quale incantesimo particolarmente spesso? Oppure analizzi un altro testo a tua scelta. Le possibilità sono aperte a te. Divertiti a imitare!

FAQs

Quanto tempo ci vuole per imparare ad utilizzare Python? ›

Con una durata complessiva di 30 ore infatti, si ha la possibilità di imparare tutto quello che riguarda Python.

Quanto è difficile programmare in Python? ›

Uno dei motivi è che è relativamente facile da imparare. Il linguaggio di programmazione Python ha una sintassi molto semplice, che lo rende ideale per i principianti per lo sviluppo web. Inoltre, Python è altamente versatile. Può essere utilizzato per molte attività, da semplici script ad applicazioni complesse.

Quanto si guadagna con Python? ›

Quanto guadagna un Python in Italia? Lo stipendio medio per python in Italia è € 34 000 all'anno o € 17.44 all'ora. Le posizioni “entry level” percepiscono uno stipendio di € 26 625 all'anno, mentre i lavoratori con più esperienza guadagnano fino a € 52 500 all'anno.

Dove esercitarsi con Python? ›

Uno dei posti migliori su internet per imparare a programmare con Python gratuitamente è Codecademy. Questa piattaforma di e-learning offre molti corsi su Python, sia gratuiti che a pagamento. Python 2 è un corso gratuito che offre un'utile introduzione ai concetti di base della programmazione e a Python.

Perché Python si chiama così? ›

Guido Van Rossum scelse Python come nome per il progetto, essendo leggermente sfacciato e perché è un grande fan di Monty Python's Flying Circus. Nel 2000 Van Rossum e il suo team si trasferiscono presso BeOpen.com e formano i BeOpen PythonLabs team, con Python giunto alla versione 1.6.

Cosa scaricare per programmare in Python? ›

python my_file.py

Su Windows invece puoi scaricarlo dal sito ufficiale ed è ugualmente molto semplice da installare. Un altro linguaggio di programmazione che ha queste caratteristiche di facilità e immediatezza è Javascript, di cui parlerò in un altro articolo apposito.

Come si lancia Python? ›

È sufficiente digitare il codice ed eseguirlo come illustrato di seguito. Con la riga di comando di PowerShell aperta, immettere python per eseguire l'interprete Python 3. Alcune istruzioni indicano invece di usare il comando py o python3 , che dovrebbero comunque funzionare.

Qual è il linguaggio di programmazione più richiesto? ›

JavaScript, Python e Java sono i tre linguaggi di programmazione più richiesti nel mondo del lavoro oggi, ed è molto probabile che lo saranno anche nel corso dei prossimi anni, alla luce della quota di mercato raggiunta.

Cosa vuol dire == in Python? ›

E' il segno di uguaglianza == (doppio uguale) che utilizziamo per indicare “uguale a”. Questo perché in Python il simbolo di uguale ( = ) ha il significato: “metti nella scatola”. Serve ad assegnare un valore a una variabile, come ad esempio: scatola1 = 7. voto = input ("che voto hai preso?")

Come scrivere infinito su Python? ›

Come si indica l'infinito? Nella libreria sympy c'è un apposito simbolo che identifica l'infinito, ossia sp. oo. Basta aggiungere l'operatore + o - per indicare rispettivamente più o meno infinito come punto di accumulazione del limite.

Quanto pesa Python? ›

Complessivamente Python pesa circa 22 Mega Byte nella versione 2.7.3. E' abbastanza leggero rispetto ad altri interpreti e compilatori.

Quanto guadagna un programmatore Python in America? ›

Java: 90.000 dollari all'anno. Python: 90.000 dollari all'anno. Perl: 93.000 dollari all'anno. Ruby: 94.000 dollari all'anno.

Quanto guadagna un programmatore Python in Svizzera? ›

Quanto guadagna un Python in Svizzera? Lo stipendio medio per python in Svizzera è CHF 95'000 all'anno o CHF 48.72 all'ora. Le posizioni “entry level” percepiscono uno stipendio di CHF 88'750 all'anno, mentre i lavoratori con più esperienza guadagnano fino a CHF 120'000 all'anno.

Dove vengono pagati di più i programmatori? ›

Secondo Indeed, il paese nel mondo in cui Programmatori e professionisti dell'IT è in assoluto gli Stati Uniti, dove lo stipendio medio oggi raggiunge $ 110.638 all'anno. Ciò significa che in media un programmatore informatico guadagna circa $ 9.219 al mese.

Quali sono le certificazioni Python? ›

Re: Esame certificazioni python da esterno

Ritengo che ad oggi le forme di certificazioni su Python siano USA in particolare CISCO o MTA (Microsoft) per cui automaticamente valide all'estero. l'esame è in inglese dovrebbe essere su 40 domande, tuttavia risulta difficile reperire materiale valido per prepararsi.

Come scrivere in Python? ›

Come eseguire il programma in Python

Per compilare ed eseguire il programma clicco su Run nel menù superiore. Poi seleziono la voce Run module. Nota. In alternativa, per avviare la compilazione e l'esecuzione del programma più rapidamente, posso anche premere sul tasto funzione F5 della tastiera.

Cosa vuol dire Python? ›

Python è un linguaggio di programmazione ampiamente utilizzato nelle applicazioni Web, nello sviluppo di software, nella data science e nel machine learning (ML). Gli sviluppatori utilizzano Python perché è efficiente e facile da imparare e può essere eseguito su diverse piattaforme.

Come funziona Pyinstaller? ›

Il modulo pyinstaller non è un cross-compiler, una volta compilato un eseguibile sarà avviabile solo dallo stesso sistema operativo, se siamo su Windows verrà creato un file .exe avviabile solo da Windows, oppure un file . app per Mac avviabile solo da MacOS, e gli eseguibili Linux saranno avviabili sono da Linux.

Cos'è Python Launcher? ›

È una libreria open source di apprendimento automatico per il linguaggio di programmazione Python.

In che linguaggio è scritto Tiktok? ›

Java
C
Swift

In che linguaggio è stato scritto Minecraft? ›

Minecraft è scritto nel linguaggio di programmazione chiamato Java, che è piut- tosto potente ma che in alcune sue parti è abbastanza complicato e può creare confusione. Qui ti spiegheremo i suoi elementi di base, i più facili, e tralasceremo quelli più difficili.

In che linguaggio è scritto Netflix? ›

Non a caso Instagram, Spotify, Netflix e molti altri siti web di fama mondiale sono scritti principalmente in Python. Tra i linguaggi di programmazione più in voga del 2022 non possiamo che lasciare in seconda posizione Java, consigliato per software aziendali, app mobile Android e molto altro.

Cosa significa il punto esclamativo in Python? ›

Le istruzioni Python possono anche venire prefissate da un punto esclamativo ("!"). Questo è una maniera molto efficace per analizzare il programma in corso di debug; è anche possibile modificare una variabile o chiamare una funzione.

Come è nato Python? ›

Python è nato per caso nei primi anni '90. Per caso perché inizialmente, è stato sviluppato durante un momento di svago e di passatempo da Guido Van Rossum, un ingegnere olandese che all'epoca lavorava al CWI di Amsterdam, Centro di ricerca informatica olandese.

Come calcolare il valore assoluto in Python? ›

Nel linguaggio python la funzione abs() calcola il valore assoluto di un numero, elimina il segno negativo. Dove x il valore numerico del modulo. Può essere una costante numerica oppure una variabile.

A cosa serve il while in Python? ›

L'Istruzione while in Python

La parola while può infatti essere tradotta in italiano come finché o mentre, e il ciclo while ci permette proprio di eseguire un blocco di codice finché una determinata condizione è e restaTrue.

A cosa serve il ciclo while? ›

L'istruzione while consente di ripetere un'istruzione fino a quando un'espressione specificata non restituisce false.

Come inizia un loop while? ›

Il ciclo while inizia valutando la condizione . Se condizione restituisce true , il codice nel blocco delle istruzioni viene eseguito. Se condizione restituisce false , il codice nel blocco delle istruzioni non viene eseguito e il ciclo termina.

A cosa serve Anaconda per Python? ›

Con Anaconda Prompt è possibile gestire gli ambienti virtuali, crearne di nuovi, attivarli e disattivarli, installare e aggiornare librerie e molto altro. Permette anche un accesso rapido ai comandi di sistema, come la navigazione tra cartelle, la creazione di file e l'esecuzione di script.

Come scaricare Python gratis? ›

Installare Python su Windows è molto semplice: vi basterà andare sul Sito Ufficiale della Python Software Foundation e cliccare sul tasto di download per scaricare l'ultima versione disponibile.

Come si apre Python? ›

Per iniziare a utilizzare Python, non ti resta che digitare, nel Prompt di Windows, la scritta python seguita dalla pressione del tasto Invio. Entrerai in questo modo nella console di Python, dalla quale potrai digitare tutti i comandi disponibili in questo potente linguaggio di programmazione.

Dove eseguire script Python? ›

È possibile eseguire uno script Python da Programmi di utilità> Esegui script o dall'editor di script Python che viene avviato quando si apre un file Python (. py) da File> Apri> Script.

Quanto occupa Python? ›

Quanto spazio su disco occupa l'installazione? Complessivamente Python pesa circa 22 Mega Byte nella versione 2.7.3. E' abbastanza leggero rispetto ad altri interpreti e compilatori.

Come funziona Pip Python? ›

pip è un tool che ci permette di cercare, scaricare ed installare package Python che si trovano sul Python Package Index. Il nome è un acronimo ricorsivo, che significa Pip Installs Packages. pip ci consente inoltre di gestire i package che abbiamo già scaricato, permettendonci di aggiornarli o rimuoverli.

Videos

1. Refactoring A Tower Defense Game In Python // CODE ROAST
(ArjanCodes)
2. XGBoost - Alla scoperta di uno dei più famosi modelli ML
(Python Biella Group)
3. Sentiment Analysis With Python: Movie Quotes & TEXTBLOB
(John Watson Rooney)
4. CORSO PYTHON 3: FORMATTAZIONE STRINGHE (IMPARARE PYTHON 2020)
(Prof. Andrea Pollini)
5. NetworkX - Python Network Analysis made super easy - Python advent of code
(InvalidEntry)
6. Count - Taylor Brownlow
(PyData)
Top Articles
Latest Posts
Article information

Author: Dr. Pierre Goyette

Last Updated: 04/02/2023

Views: 5245

Rating: 5 / 5 (50 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Dr. Pierre Goyette

Birthday: 1998-01-29

Address: Apt. 611 3357 Yong Plain, West Audra, IL 70053

Phone: +5819954278378

Job: Construction Director

Hobby: Embroidery, Creative writing, Shopping, Driving, Stand-up comedy, Coffee roasting, Scrapbooking

Introduction: My name is Dr. Pierre Goyette, I am a enchanting, powerful, jolly, rich, graceful, colorful, zany person who loves writing and wants to share my knowledge and understanding with you.