Skip to content

Materiale deprecato #1

@Rinfra90

Description

@Rinfra90

Salve, ho seguito i vostri corsi su ML e DL e nel corso dello studio ho trovato diversi contenuti deprecati e da gestire in maniera differente che però purtroppo non ho segnato. Ho adesso appena iniziato a seguire questo corso e ho trovato già all'inizio, nella libreria PyPDF2, un po' di cose che sono deprecate e andrebbero aggiornate. Man mano che ne trovo, aggiorno l'issue, così magari rimane tutto più centralizzato e potete correggere più facilmente. Sono ben consapevole che nel giro di un paio d'anni possa cambiare molto riguardo alle varie librerie e che essendo questo uno dei settori in più forte espansione, questo è un fenomeno molto comune. Ecco perché penso che sia utile tenere del materiale come questo aggiornato e spero di aiutare eventualmente anche chi sta seguendo il corso e incorre nei solito problemi 😊

  • Libreria PyPDF2
    • PdfFileReader -> PdfReader
    • getIsEncrypted() -> Adesso esiste il parametro is_encrypted
    • getPage() -> la classe PdfReader ha le pagine come parametro pages che è una lista di PageObject
    • numPages -> si deve controllare la lunghezza del parametro pages
    • Non è più necessario fare il fix dei caratteri speciali (che anzi può adesso rovinare il file) e non esiste più il problema dell'andare a capo in mezzo alla frase
  • Libreria BeautifulSoup
    • findAll() -> find_all()
  • Libreria NLTK
    • word_tokenize -> Non è più nel modello punk, ma in punk_tab, è quindi necessario fare nltk.download("punkt_tab") per poterla usare.
    • Il modello per il POS da scaricare non è più averaged_perceptron_tagger, ma averaged_perceptron_tagger_eng
    • Il dettaglio sui TAG del POS non è più nel modello tagsets, ma nel modello tagsets_json
  • Dataset New York Times Articles
    • Questo dataset non è più disponibile! Io ho scaricato, sempre da Kaggle, questo dataset (piuttosto grande), ho poi preso solo la colonna lead_paragraph che però contiene più di 2 milioni di record che possono andare da 1 carattere a 504073 caratteri, quindi ho limitato il dataset ai record con lead_paragraph tra 100 e 110 caratteri (per ottenere dati non troppo grandi da processare, ma comunque con un certo valore) e poi limitato il tutto ai primi 8888 record (per avere il solito numero di record del corso). Seguendo il corso, si può poi tranquillamente passare il dataframe che ho costruito alla classe CountVectorizer. Di seguito il codice:
!kaggle datasets download aryansingh0909/nyt-articles-21m-2000-present
!unzip nyt-articles-21m-2000-present.zip

import pandas as pd
df = pd.read_csv('nyt-metadata.csv')

min_char = 100
max_char = 110
new_df = df[(df['lead_paragraph'].str.len()>min_char) & (df['lead_paragraph'].str.len()<max_char)]
new_df = new_df[:8888]
  • CountVectorizer
    • get_feature_names() -> get_feature_names_out()
  • pyLDAvis
    • Ci sono molti problemi legati alle dipendenze su Google Colaboratory. La cosa migliore da fare è creare un piccolo conda e installare lì le dipendenze necessarie. Di base viene creato un ambiente con solo le dipendenze necessarie per utilizzare pyLDAvis dove poi si può tranquillamente installare qualsiasi pacchetto vogliamo al di là delle dipendenze necessarie per Colab. Per farlo, basta eseguire questa cella
!pip install -q condacolab
import condacolab
condacolab.install()

Alla fine della quale la sessione di Colab si riavvierà da sola, andrà quindi lanciata un'altra cella per installare i pacchetti

!mamba install -y pyldavis scikit-learn gensim jinja2

Va tenuto a mente che, da ora in avanti, stiamo lavorando dentro a questo ambiente virtuale. Se vogliamo tornare ad un'istanza di Google Colaboratory esterna a conda, dovremo selezionare Runtime->Disconnetti runtime ed eliminare i dati per tornare ad un'istanza poi di Colaboratory totalmente nuova.

  • pyLDAvis non ha più il modulo sklearn, adesso bisogna lanciare import pyLDAvis.lda_model

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions