Classificazione dei token

Natural Language Processing (NLP) in Python

Fouad Trad

Machine Learning Engineer

Testo vs classificazione dei token

Classificazione del testo

  • Classifica frasi intere o coppie di testi

Immagine che mostra i task di text classification e QNLI, visti nei video precedenti.

Natural Language Processing (NLP) in Python

Testo vs classificazione dei token

Classificazione del testo

  • Classifica frasi intere o coppie di testi

Immagine che mostra i task di text classification e QNLI, visti nei video precedenti.

Classificazione dei token

  • Assegna etichette ai token in una frase

Immagine con una frase divisa in parole, ciascuna con colore diverso a indicare una classe diversa.

  • Named entity recognition (NER)
  • PoS tagging (parti del discorso)
Natural Language Processing (NLP) in Python

Named entity recognition (NER)

  • Riconosce entità come nomi, luoghi, organizzazioni, date e altro

Immagine che mostra l'analisi NER della frase "Apple opened a new office in Toronto in March 2023", con Apple riconosciuta come organizzazione, Toronto come luogo e March 2023 come data.

  • Utile per:
    • Information retrieval
    • Question answering
Natural Language Processing (NLP) in Python

NER nel codice

from transformers import pipeline

ner_pipeline = pipeline(task="ner",
model="dslim/bert-base-NER",
grouped_entities=True)
ner_results = ner_pipeline("Zara Venn established NovaCore Dynamics in London.")
print(ner_results)
[{'entity_group': 'PER', 'score': np.float32(0.99840075), 'word': 'Zara Venn', 'start': 0, 'end': 9}, 
 {'entity_group': 'ORG', 'score': np.float32(0.99875560), 'word': 'NovaCore Dynamics', 'start': 21, 'end': 38}, 
 {'entity_group': 'LOC', 'score': np.float32(0.99960726), 'word': 'London', 'start': 42, 'end': 48}]
Natural Language Processing (NLP) in Python

PoS tagging (parti del discorso)

  • Assegna a ogni parola il ruolo grammaticale (nome, verbo, aggettivo)

Immagine che mostra i tag PoS per la frase "The quick fox jumps over the lazy dog", dove "the" è un determinante, "quick" e "lazy" sono aggettivi, "fox" e "dogs" sono nomi, "jumps" è un verbo e "over" è una preposizione.

  • Utile per:
    • Parsing sintattico
    • Correzione grammaticale
    • Generazione di testo
Natural Language Processing (NLP) in Python

PoS tagging nel codice

pos_pipeline = pipeline(task="token-classification",

model="vblagoje/bert-english-uncased-finetuned-pos",
grouped_entities=True)
pos_results = pos_pipeline("Zara Venn established NovaCore Dynamics in London.") print(pos_results)
[{'entity_group': 'PROPN', 'score': np.float32(0.9982983), 'word': 'zara venn', 'start': 0, 'end': 9},  
 {'entity_group': 'VERB', 'score': np.float32(0.99940944), 'word': 'established', 'start': 10, 'end': 21},  
 {'entity_group': 'PROPN', 'score': np.float32(0.99455726), 'word': 'novacore dynamics', 'start': 22, 'end': 39},  
 {'entity_group': 'ADP', 'score': np.float32(0.99935526), 'word': 'in', 'start': 40, 'end': 42},  
 {'entity_group': 'PROPN', 'score': np.float32(0.99847955), 'word': 'london', 'start': 43, 'end': 49}]
Natural Language Processing (NLP) in Python

Passiamo alla pratica !

Natural Language Processing (NLP) in Python

Preparing Video For Download...