Tutorial de Cohere: clasificador de texto con Cohere

Tutorial de Cohere: clasificador de texto con Cohere

El procesamiento del lenguaje natural es un campo de la informática y la lingüística que se ocupa de las interacciones entre las computadoras y los lenguajes humanos (naturales). En su forma más simple, la PNL consiste en desarrollar algoritmos que puedan comprender y producir automáticamente el lenguaje humano. El objetivo a largo plazo de la PNL es crear modelos computacionales del lenguaje humano que puedan usarse para realizar una amplia variedad de tareas. Estas tareas incluyen traducción automática, resumen, respuesta a preguntas, extracción de información y muchas otras. La investigación de PNL es altamente interdisciplinaria e involucra a investigadores de campos como la lingüística, la ciencia cognitiva, la inteligencia artificial y la informática.

Hay muchos métodos diferentes que se utilizan en el procesamiento del lenguaje natural, incluidos los métodos basados ​​en reglas, los métodos estadísticos y los métodos computarizados neuronales. Los métodos basados ​​en reglas generalmente se basan en reglas hechas a mano escritas por expertos en PNL. Estos métodos pueden ser muy efectivos para tareas específicas, pero a menudo tienen un alcance limitado y requieren mucho esfuerzo para mantenerlos. Los métodos estadísticos se basan en el uso de grandes cantidades de datos para entrenar modelos computacionales. Estos modelos se pueden usar para realizar automáticamente varias tareas de PNL. Las redes neuronales son un tipo de algoritmo de aprendizaje automático que es particularmente adecuado para tareas de PNL. Las redes neuronales se han utilizado para crear modelos de última generación para tareas como la clasificación y la traducción automática.

Co:here es una poderosa red neuronal que puede generar, incrustar y clasificar texto. En este tutorial usaremos Co:here para clasificar 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 CoHereserá ú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.

En este campo, las tareas son leer descripciones y etiquetas de archivos y crear datos, que contienen descripción y etiqueta como una muestra de datos. El clasificador Cohere requiere muestras, en las que cada muestra debe diseñarse como una lista [description, label].

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. con lazo for podemos obtener los nombres de cada archivo. Toda la función se ve así:

El último ciclo toma aleatoriamente 5 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 dos métodos: cargar ejemplos y clasificar la entrada.

La primera es sencilla, co:here lista de ejemplos tiene que ser creado con el adicional coheremétodo de – cohere.classify.Example.

El segundo método consiste en clasificar el método de cohere. El método tiene argumentos serval, tales como:

model tamaño de un modelo.

inputs lista de datos a clasificar.

examples lista de un conjunto de entrenamiento con ejemplos

Todos ellos los puedes encontrar aquí.

En este tutorial, el cohere se implementará como un método de nuestro CoHere clase. Un argumento de este método es una lista de descripciones para predecir.

el regreso es input, prediction de entrada y una lista de confidence. Confidence es una lista de probabilidad de cada clase.

CoHere clase

📈 Aplicación web – Streamlit

Para crear una aplicación, en la que habrá un cuadro de entrada de texto y una pantalla de probabilidad, usaremos Stramlit. Esta es una biblioteca fácil y muy útil.

Instalación

Necesitaremos dos entradas de texto para co:here Clave de API y para que el texto prediga.

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

Los modelos Co:here se pueden usar no solo para generar el texto sino también para la clasificación. En este tutorial, pudimos clasificar un texto breve, con un pequeño conjunto de datos. Había 50 ejemplos para 10 clases. Esto fue suficiente para mantener la probabilidad de predicción en un nivel alto. El gran conjunto de datos en algunos escenarios puede ser difícil de producir, por lo que el modelo Co:here puede ser una gran solución para ello.

¡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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio