Antes de entrenar un modelo con datos de texto, normalmente es necesario procesar (o preprocesar) el texto. En muchos casos, es necesario tokenizar y vectorizar el texto antes de poder alimentarlo a un modelo, y en algunos casos, requiere pasos adicionales de preprocesamiento, como la normalización y la selección de características.
Una vez procesado el texto en un formato adecuado, puede usarlo en flujos de trabajo de procesamiento del lenguaje natural (PLN), como clasificación de texto, generación de texto, resumen y traducción.
TensorFlow proporciona dos bibliotecas para el procesamiento de texto y lenguaje natural: KerasNLP ( GitHub ) y TensorFlow Text ( GitHub ).
KerasNLP es una biblioteca de modelado de PNL de alto nivel que incluye los últimos modelos basados en transformadores, así como utilidades de tokenización de bajo nivel. Es la solución recomendada para la mayoría de los casos de uso de PNL. Basada en TensorFlow Text, KerasNLP abstrae las operaciones de procesamiento de texto de bajo nivel en una API diseñada para facilitar su uso. Si prefiere no trabajar con la API de Keras o necesita acceder a las operaciones de procesamiento de texto de bajo nivel, puede usar TensorFlow Text directamente.
KerasNLP
La forma más sencilla de empezar a procesar texto en TensorFlow es usar KerasNLP . KerasNLP es una biblioteca de procesamiento de lenguaje natural que admite flujos de trabajo creados con componentes modulares con pesos y arquitecturas predefinidos de vanguardia. Puedes usar los componentes de KerasNLP con su configuración predeterminada. Si necesitas más control, puedes personalizarlos fácilmente. KerasNLP proporciona computación en grafos para todos los flujos de trabajo, lo que facilita la puesta en producción con el ecosistema de TensorFlow.
KerasNLP contiene implementaciones integrales de arquitecturas de modelos populares como BERT y FNet . Con los modelos, capas y tokenizadores de KerasNLP, puede completar numerosos flujos de trabajo de PNL de vanguardia, como la traducción automática , la generación y clasificación de texto y el entrenamiento de modelos de transformadores .
KerasNLP es una extensión de la API principal de Keras, y cada módulo de alto nivel de KerasNLP es una Layer
o un Model
. Si está familiarizado con Keras, ya comprende la mayor parte de su funcionamiento.
Texto de TensorFlow
KerasNLP ofrece módulos de procesamiento de texto de alto nivel disponibles como capas o modelos. Si necesita acceder a herramientas de bajo nivel, puede usar TensorFlow Text . TensorFlow Text proporciona operaciones y bibliotecas para ayudarle a trabajar con cadenas de texto y documentos sin formato. TensorFlow Text puede realizar el preprocesamiento que requieren regularmente los modelos basados en texto y también incluye otras funciones útiles para el modelado de secuencias.
Usando TensorFlow Text, puedes hacer lo siguiente:
- Aplique tokenizadores ricos en funciones que puedan dividir cadenas en espacios en blanco, separar palabras y puntuación, y devolver desplazamientos de bytes con tokens, para que sepa dónde se puede encontrar una cadena en el texto fuente.
- Comprueba si un token coincide con un patrón de cadena especificado. Puedes comprobar el uso de mayúsculas y minúsculas, la puntuación, los datos numéricos y otras características del token.
- Combine tokens en n-gramas.
- Procesar el texto dentro del gráfico de TensorFlow, de modo que la tokenización durante el entrenamiento coincida con la tokenización en la inferencia.
Por dónde empezar
Los siguientes recursos le ayudarán a comenzar con el procesamiento de texto de TensorFlow:
- TensorFlow Text : tutoriales, guías y otros recursos para ayudarle a procesar texto utilizando TensorFlow Text y KerasNLP.
- KerasNLP : Documentación y recursos para KerasNLP.
- Tutoriales de TensorFlow : la documentación principal de TensorFlow (esta guía) incluye varios tutoriales de procesamiento de texto.
- Google Machine Learning: Guía de clasificación de texto : Una introducción paso a paso a la clasificación de texto. Es un buen punto de partida si eres nuevo en el aprendizaje automático.