Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
|
distribuzione_delle_frequenze_in_scala_logaritmica [2021/10/25 14:09] 65.21.180.48 versione precedente ripristinata (2021/06/02 20:16) |
distribuzione_delle_frequenze_in_scala_logaritmica [2021/10/29 21:22] (versione attuale) deleteme versione precedente ripristinata (2021/06/02 21:38) |
||
|---|---|---|---|
| Linea 2: | Linea 2: | ||
| Il codice seguente traccia il grafico della distribuzione delle frequenze in scala logaritmica. Le rr. 16-17 creano un ' | Il codice seguente traccia il grafico della distribuzione delle frequenze in scala logaritmica. Le rr. 16-17 creano un ' | ||
| - | Le righe 21-23 tracciano, in rosso, una retta che corrisponde al modello ideale secondo la legge di Zipf con parametri // | + | Le righe 21-23 tracciano, in rosso, una retta che corrisponde al modello ideale secondo la legge di Zipf con parametri // |
| <code python distribuzione_logaritmica.py> | <code python distribuzione_logaritmica.py> | ||
| import re | import re | ||
| import matplotlib.pyplot as plt | import matplotlib.pyplot as plt | ||
| - | import numpy | + | import numpy as np |
| with open(' | with open(' | ||
| testo = f.read() | testo = f.read() | ||
| Linea 22: | Linea 22: | ||
| ax.set_yscale(' | ax.set_yscale(' | ||
| ax.plot(range(1, | ax.plot(range(1, | ||
| - | x=numpy.arange(1, | + | x=np.arange(1, |
| y=5850.7/ | y=5850.7/ | ||
| ax.plot(x, | ax.plot(x, | ||
| Linea 30: | Linea 30: | ||
| Dovrebbe prodursi un grafico di questo tipo: | Dovrebbe prodursi un grafico di questo tipo: | ||
| {{ : | {{ : | ||
| + | ---- | ||
| + | Il codice seguente ricava i parametri // | ||
| + | <code python regressione_lineare.py> | ||
| + | import re | ||
| + | import numpy as np | ||
| + | from sklearn.linear_model import LinearRegression | ||
| + | with open(' | ||
| + | testo = f.read() | ||
| + | testo=testo[1704: | ||
| + | testo=re.sub("'","' | ||
| + | testo=re.sub(' | ||
| + | testo=testo.lower() | ||
| + | testo=testo.split() | ||
| + | fd=[testo.count(i) for i in set(testo)] | ||
| + | fd.sort(reverse=True) | ||
| + | V=len(set(testo)) | ||
| + | Y=np.array([np.log(i) for i in fd]) | ||
| + | X=np.array(list(np.log(i) for i in range(1, | ||
| + | model = LinearRegression().fit(X, | ||
| + | C=np.exp(model.intercept_) | ||
| + | a=model.coef_[0]*-1 | ||
| + | print(' | ||
| + | print(' | ||
| + | </ | ||