Prima di poter addestrare un modello su dati di testo, in genere è necessario elaborare (o preelaborare) il testo. In molti casi, il testo deve essere tokenizzato e vettorializzato prima di poter essere inserito in un modello e, in alcuni casi, richiede ulteriori fasi di preelaborazione, come la normalizzazione e la selezione delle feature.
Dopo aver elaborato il testo in un formato adatto, è possibile utilizzarlo nei flussi di lavoro di elaborazione del linguaggio naturale (NLP), quali classificazione del testo, generazione di testo, riepilogo e traduzione.
TensorFlow fornisce due librerie per l'elaborazione di testo e linguaggio naturale: KerasNLP ( GitHub ) e TensorFlow Text ( GitHub ).
KerasNLP è una libreria di modellazione NLP di alto livello che include tutti i modelli basati su transformer più recenti, nonché utility di tokenizzazione di livello inferiore. È la soluzione consigliata per la maggior parte dei casi d'uso NLP. Basata su TensorFlow Text, KerasNLP astrae le operazioni di elaborazione del testo di basso livello in un'API progettata per la facilità d'uso. Tuttavia, se preferisci non lavorare con l'API Keras o hai bisogno di accedere alle operazioni di elaborazione del testo di livello inferiore, puoi utilizzare direttamente TensorFlow Text.
KerasNLP
Il modo più semplice per iniziare a elaborare testo in TensorFlow è utilizzare KerasNLP . KerasNLP è una libreria di elaborazione del linguaggio naturale che supporta flussi di lavoro basati su componenti modulari dotati di pesi e architetture preimpostate all'avanguardia. È possibile utilizzare i componenti di KerasNLP con la loro configurazione predefinita. Se si necessita di maggiore controllo, è possibile personalizzarli facilmente. KerasNLP fornisce elaborazione in-graph per tutti i flussi di lavoro, garantendo una facile produzione grazie all'ecosistema TensorFlow.
KerasNLP contiene implementazioni end-to-end di architetture di modelli popolari come BERT e FNet . Utilizzando modelli, livelli e tokenizzatori di KerasNLP, è possibile completare numerosi flussi di lavoro NLP all'avanguardia, tra cui traduzione automatica , generazione di testo , classificazione di testo e addestramento di modelli di trasformatori .
KerasNLP è un'estensione dell'API principale di Keras e ogni modulo di KerasNLP di alto livello è un Layer
o un Model
. Se hai familiarità con Keras, conosci già la maggior parte di KerasNLP.
Testo TensorFlow
KerasNLP fornisce moduli di elaborazione del testo di alto livello disponibili come livelli o modelli. Se hai bisogno di accedere a strumenti di livello inferiore, puoi utilizzare TensorFlow Text . TensorFlow Text fornisce operazioni e librerie per aiutarti a lavorare con stringhe di testo e documenti grezzi. TensorFlow Text può eseguire la pre-elaborazione normalmente richiesta dai modelli basati su testo e include anche altre funzionalità utili per la modellazione di sequenze.
Utilizzando TensorFlow Text, puoi fare quanto segue:
- Applica tokenizzatori ricchi di funzionalità in grado di suddividere le stringhe in base agli spazi, separare parole e punteggiatura e restituire offset di byte con token, in modo da sapere dove è possibile trovare una stringa nel testo sorgente.
- Verifica se un token corrisponde a un pattern di stringa specificato. Puoi controllare l'uso delle maiuscole, la punteggiatura, i dati numerici e altre caratteristiche del token.
- Combina i token in n-grammi.
- Elaborare il testo all'interno del grafico TensorFlow, in modo che la tokenizzazione durante l'addestramento corrisponda alla tokenizzazione durante l'inferenza.
Da dove cominciare
Le seguenti risorse ti aiuteranno a iniziare a usare l'elaborazione del testo con TensorFlow:
- TensorFlow Text : tutorial, guide e altre risorse per aiutarti a elaborare il testo utilizzando TensorFlow Text e KerasNLP.
- KerasNLP : Documentazione e risorse per KerasNLP.
- Tutorial di TensorFlow : la documentazione principale di TensorFlow (questa guida) include diversi tutorial sull'elaborazione del testo.
- Google Machine Learning: Guida alla classificazione del testo : un'introduzione passo passo alla classificazione del testo. Un buon punto di partenza per chi è alle prime armi con il machine learning.