El incrustador de texto es una tarea de aprendizaje automático que se utiliza para crear una representación vectorial de un fragmento de texto. Este vector se puede usar como entrada para un algoritmo de aprendizaje automático. El objetivo de la incrustación de texto es capturar el significado del texto de una manera adecuada para el aprendizaje automático.
Hay muchas formas diferentes de crear incrustaciones de texto, pero la más común es usar una red neuronal. Una red neuronal es un algoritmo de aprendizaje automático que es muy bueno para aprender relaciones complejas. La entrada a una red neuronal es un vector y la salida es un vector del mismo tamaño. La red neuronal aprende a mapear los vectores de entrada a los vectores de salida de una manera que captura las relaciones entre las entradas y salidas.
Para crear incrustaciones de texto, la red neuronal primero se entrena en un gran corpus de texto. Los datos de entrenamiento son un conjunto de oraciones, y cada oración se representa como un vector. Los vectores se crean tomando los vectores de palabras de las palabras en la oración y sumándolos. Luego, la red neuronal se entrena para mapear los vectores de oración a un tamaño de vector fijo.
Una vez que se ha entrenado la red neuronal, se puede usar para crear incrustaciones de texto para nuevos fragmentos de texto. El nuevo texto se representa primero como un vector y luego se usa la red neuronal para asignar el vector al tamaño de vector fijo. El resultado es una incrustación de texto que captura el significado del texto.
También te puede interesarTutorial gratuito de AI art Generator: Craiyon – Genere imágenes desde cualquier mensaje de textoLas incrustaciones de texto se pueden usar para una variedad de tareas de aprendizaje automático. Por ejemplo, se pueden usar para mejorar el rendimiento de un algoritmo de aprendizaje automático que se usa para clasificar textos. Las incrustaciones de texto también se pueden usar para buscar fragmentos de texto similares o para agrupar textos.
Hay muchas formas diferentes de crear incrustaciones de texto y la elección del método dependerá de la aplicación. Sin embargo, las redes neuronales son un método poderoso y ampliamente utilizado para crear incrustaciones de texto.
Co:here es una poderosa red neuronal que puede generar, incrustar y clasificar texto. En este tutorial, usaremos Co:here para incrustar descripciones. Para usar Co:here, debe crear una cuenta en Co:here y obtener la clave API.
Estaremos programando en Python, por lo que necesitamos instalar cohere
biblioteca por pip
En primer lugar, tenemos que implementar cohere.Client
. En los argumentos de Cliente debe ser la clave API, que ha generado antes, y la versión 2021-11-08
. voy a crear la clase CoHere
será útil en los próximos pasos.
💾 Conjunto de datos
La parte principal de cada red neuronal es un conjunto de datos. En este tutorial, usaré un conjunto de datos que incluye 1000 descripciones de 10 clases. Si desea utilizar el mismo, puede descargarlo aquí.
El conjunto de datos descargado tiene 10 carpetas en cada carpeta es 100 files.txt
con descripciones. El nombre de los archivos es una etiqueta de descripción, por ejemplosport_3.txt
.
vamos a comparar Random Forest
con Co:here Classifier
, por lo que tenemos que preparar los datos de dos maneras. Para Random Forest
usaremos Co:here Embedder
, nos centraremos en esto en este tutorial. El clasificador Cohere requiere muestras, en las que cada muestra debe diseñarse como una lista [description, label]
y lo hice en mi tutorial anterior (aquí)
Cargando rutas de ejemplos
Al principio, necesitamos cargar todos los datos, para hacer eso. Creamos la función load_examples
. En esta función usaremos tres bibliotecas externas:
os.path
para ir a la carpeta con datos. El código se ejecuta en una ruta donde se encuentra un python file.py
. Esta es una biblioteca interna, por lo que no necesitamos instalarla.
numpy
esta biblioteca es útil para trabajar con arreglos. En este tutorial, lo usaremos para generar números aleatorios. Tienes que instalar esta biblioteca por pip pip install numpy
.
glob
nos ayuda a leer todos los archivos y nombres de carpetas. Esta es una biblioteca externa, por lo que se necesita la instalación: pip install glob
.
El conjunto de datos descargado debe extraerse en la carpeta data
. Por os.path.join
podemos obtener rutas universales de carpetas.
En Windows, un retorno es igual a data*
.
Entonces podemos usar glob
método para obtener todos los nombres de las carpetas.
folders_name
es una lista que contiene rutas de ventana de carpetas. En este tutorial, estos son los nombres de las etiquetas.
Tamaño de Co:here
El conjunto de datos de entrenamiento no puede tener más de 50 ejemplos y cada clase debe tener al menos 5 ejemplos, pero para Random Forest
podemos usar 1000 ejemplos. con lazo for
podemos obtener los nombres de cada archivo. Toda la función se ve así:
El último bucle toma aleatoriamente N rutas de cada etiqueta y las agrega a una nueva lista examples_path
.
Cargar descripciones
Ahora, tenemos que crear un conjunto de entrenamiento. Para hacerlo cargaremos ejemplos con load_examples()
. En cada ruta está el nombre de una clase, lo usaremos para crear muestras. Las descripciones deben leerse de los archivos, una longitud no puede ser larga, por lo que en este tutorial, la longitud será igual a 100. Para enumerar texts
se adjunta lista de [descroption, class_name]
. Así, un retorno es esa lista.
🔥 Clasificador Co:here
volvemos a CoHere
clase. Tenemos que agregar un método: incrustar ejemplos.
El segundo cohere
El método es incrustar texto. El método tiene argumentos serval, tales como:
model
tamaño de un modelo.
texts
lista de textos para incrustar.
truncate
si el texto es más largo que el token disponible, qué parte del texto debe tomarse LEFT
, RIGHT
o NONE
.
Todos ellos los puedes encontrar aquí.
En este tutorial, el cohere
se implementará como un método de nuestro CoHere
clase.
X_train_embeded
será una matriz de números, que se ve así:
📈 Aplicación web – Streamlit
Para crear una aplicación, que será la comparación de dos pantallas de probabilidad, usaremos Stramlit
. Esta es una biblioteca fácil y muy útil.
Instalación
Necesitaremos entradas de texto para co:here
Clave API.
En documentos de streamlit podemos encontrar métodos:
st.header()
para hacer un encabezado en nuestra aplicación
st.test_input()
para enviar una solicitud de texto
st.button()
botón para crear
st.write()
para mostrar los resultados del modelo coherente.
st.progress()
para mostrar una barra de progreso
st.column()
para dividir una aplicación
Para ejecutar el comando de uso de la aplicación streamlit
La aplicación creada se ve así
💡 Conclusión
La incrustación de texto es una herramienta poderosa que se puede utilizar para mejorar el rendimiento de los algoritmos de aprendizaje automático. Las redes neuronales son un método ampliamente utilizado y efectivo para crear incrustaciones de texto. Las incrustaciones de texto se pueden usar para tareas como clasificación de texto, similitud de texto y agrupación de texto.
En este tutorial, comparamos el Random Forest
con Co:here Classifier
pero las posibilidades de Co:here Embedder
son enormes. Puedes construir muchas cosas con él.
¡Estén atentos para futuros tutoriales! El repositorio de este código se puede consultar aquí.
¡Gracias! – Adrian Banachowicz, pasante de ciencia de datos en New Native