Prima di poter eseguire il training di un modello sui dati di testo, in genere è necessario elaborare (o preelaborare) il testo. In molti casi, il testo deve essere tokenizzato e vettorizzato prima di poter essere inserito in un modello, e in alcuni casi il testo richiede ulteriori passaggi di pre-elaborazione come la normalizzazione e la selezione delle caratteristiche.
Dopo che il testo è stato elaborato in un formato adatto, è possibile utilizzarlo nei flussi di lavoro di elaborazione del linguaggio naturale (NLP) come la classificazione del testo, la generazione del testo, il riepilogo e la traduzione.
TensorFlow fornisce due librerie per l'elaborazione del testo e del linguaggio naturale: KerasNLP ( GitHub ) e TensorFlow Text ( GitHub ).
KerasNLP è una libreria di modellazione NLP di alto livello che include tutti gli ultimi modelli basati su trasformatore e utilità di tokenizzazione di livello inferiore. È la soluzione consigliata per la maggior parte dei casi d'uso della PNL. Basato su TensorFlow Text, KerasNLP astrae le operazioni di elaborazione del testo di basso livello in un'API progettata per la facilità d'uso. Ma 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 il testo in TensorFlow è utilizzare KerasNLP . KerasNLP è una libreria di elaborazione del linguaggio naturale che supporta flussi di lavoro costruiti da componenti modulari con architetture e pesi preimpostati all'avanguardia. Puoi utilizzare i componenti di KerasNLP con la loro configurazione pronta all'uso. Se hai bisogno di più controllo, puoi facilmente personalizzare i componenti. KerasNLP fornisce il calcolo in-graph per tutti i flussi di lavoro, quindi puoi aspettarti una facile produzione utilizzando l'ecosistema TensorFlow.
KerasNLP contiene implementazioni end-to-end di architetture modello popolari come BERT e FNet . Utilizzando i modelli, i livelli e i tokenizzatori di KerasNLP, puoi completare molti flussi di lavoro NLP all'avanguardia, tra cui traduzione automatica , generazione di testo , classificazione del testo e addestramento del modello di trasformatore .
KerasNLP è un'estensione dell'API Keras principale e ogni modulo KerasNLP di alto livello è un Layer
o 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 non elaborate e documenti. TensorFlow Text può eseguire la preelaborazione regolarmente richiesta dai modelli basati su testo e include anche altre funzionalità utili per la modellazione di sequenze.
Usando TensorFlow Text, puoi fare quanto segue:
- Applica tokenizzatori ricchi di funzionalità in grado di suddividere le stringhe in spazi bianchi, separare parole e punteggiatura e restituire offset di byte con token, in modo da sapere dove è possibile trovare una stringa nel testo di origine.
- Controlla se un token corrisponde a un modello di stringa specificato. Puoi controllare le maiuscole, la punteggiatura, i dati numerici e altre caratteristiche dei token.
- Combina i token in n-grammi.
- Elabora il testo all'interno del grafico TensorFlow, in modo che la tokenizzazione durante l'addestramento corrisponda alla tokenizzazione all'inferenza.
Dove iniziare
Le seguenti risorse ti aiuteranno a iniziare con l'elaborazione del testo 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 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 dettagliata alla classificazione del testo. Questo è un buon punto di partenza se sei nuovo nell'apprendimento automatico.