
En los últimos años, el procesamiento del lenguaje natural (PNL) ha visto un rápido crecimiento en la calidad y la usabilidad, y esto ha ayudado a impulsar la adopción comercial de soluciones de inteligencia artificial (IA). En los últimos años, los investigadores han estado aplicando métodos de aprendizaje profundo más nuevos a la PNL. Los científicos de datos comenzaron a pasar de los métodos tradicionales a algoritmos de la red neuronal profunda (DNN) de última generación (SOTA) que utilizan modelos de lenguaje previos a los grandes corpus de texto.
Este repositorio contiene ejemplos y mejores prácticas para construir sistemas NLP, proporcionados como cuadernos Jupyter y funciones de utilidad. El enfoque del repositorio está en los métodos de vanguardia y los escenarios comunes que son populares entre los investigadores y profesionales que trabajan en problemas que involucran texto y lenguaje.
El objetivo de este repositorio es construir un conjunto integral de herramientas y ejemplos que aprovechen los avances recientes en los algoritmos de PNL, las arquitecturas neuronales y los sistemas de aprendizaje automático distribuidos. El contenido se basa en nuestros futuros compromisos pasados y potenciales con los clientes, así como la colaboración con socios, investigadores y la comunidad de código abierto.
Esperamos que las herramientas puedan reducir significativamente el "tiempo para comercializar" al simplificar la experiencia de definir el problema comercial hasta el desarrollo de la solución por órdenes de magnitud. Además, los cuadernos de ejemplo servirían como pautas y mostrarían las mejores prácticas y el uso de las herramientas en una amplia variedad de idiomas.
En una era de aprendizaje de transferencia, transformadores y arquitecturas profundas, creemos que los modelos previos a la aparición proporcionan una solución unificada a muchos problemas del mundo real y permiten manejar fácilmente diferentes tareas e idiomas. Por lo tanto, priorizaremos tales modelos, a medida que logren resultados de última generación en varios puntos de referencia de PNL, como tablas de clasificación de pegamento y escuadrón . Los modelos se pueden usar en una serie de aplicaciones que van desde clasificación de texto simple hasta sofisticados bots de chat inteligentes.
Tenga en cuenta que para cierto tipo de problemas de PNL, es posible que no necesite construir sus propios modelos. En su lugar, existen soluciones preconstruidas o fácilmente personalizables que no requieren experiencia de codificación o aprendizaje automático personalizado. Recomendamos encarecidamente evaluar si estos pueden resolver suficientemente su problema. Si estas soluciones no son aplicables, o la precisión de estas soluciones no es suficiente, entonces puede ser necesario recurrir a enfoques personalizados más complejos y que consumen mucho tiempo. Los siguientes servicios cognitivos ofrecen soluciones simples para abordar las tareas comunes de la PNL:
El análisis de texto es un conjunto de API REST previamente capacitadas que se pueden solicitar para el análisis de sentimientos, la extracción de frases clave, la detección del lenguaje y la detección de entidades con nombre y más. Estas API funcionan fuera de la caja y requieren una experiencia mínima en el aprendizaje automático, pero tienen capacidades de personalización limitadas.
QNA Maker es un servicio API basado en la nube que le permite crear una capa de preguntas y respuestas conversacionales sobre sus datos existentes. Úselo para construir una base de conocimiento extrayendo preguntas y respuestas de su contenido semiestructurado, incluidas las preguntas frecuentes, los manuales y los documentos.
La comprensión del idioma es un servicio SaaS para capacitar e implementar un modelo como API REST dado un conjunto de capacitación proporcionado por el usuario. Puede hacer la clasificación de la intención, así como la extracción de entidad nombrada realizando pasos simples para proporcionar enunciados de ejemplo y etiquetarlos. Apoya el aprendizaje activo, por lo que su modelo siempre sigue aprendiendo y mejorando.
Para este repositorio, nuestro público objetivo incluye científicos de datos e ingenieros de aprendizaje automático con niveles variables de conocimiento de PNL, ya que nuestro contenido es solo fuente y se dirige al modelado de aprendizaje automático personalizado. Los servicios públicos y los ejemplos proporcionados están destinados a ser aceleradores de soluciones para problemas de PNL del mundo real.
El repositorio tiene como objetivo expandir las capacidades de PNL a lo largo de tres dimensiones separadas
Nuestro objetivo es tener ejemplos de extremo a extremo de tareas y escenarios comunes, como clasificación de texto, reconocimiento de entidad nombrado, etc.
Nuestro objetivo es admitir múltiples modelos para cada uno de los escenarios compatibles. Actualmente, los modelos basados en transformadores son compatibles en la mayoría de los escenarios. Hemos estado trabajando en la integración del paquete Transformers de la cara abrazada, lo que permite a los usuarios cargar fácilmente los modelos previos a la petróleo y ajustarlos finos para diferentes tareas.
Nos suscribimos fuertemente a los principios de varios idiomas establecidos por "Emily Bender"
El repositorio tiene como objetivo admitir idiomas que no son ingleses en todos los escenarios. Los modelos previamente capacitados utilizados en el repositorio, como Bert, FastText admite más de 100 idiomas fuera de la caja. Nuestro objetivo es proporcionar ejemplos de extremo a extremo en tantos idiomas como sea posible. Alentamos las contribuciones de la comunidad en esta área.
El siguiente es un resumen de los escenarios de PNL comúnmente utilizados cubiertos en el repositorio. Cada escenario se demuestra en uno o más ejemplos de cuaderno Jupyter que utilizan la base de código central de modelos y utilidades de repositorio.
| Guión | Modelos | Descripción | Lenguas |
|---|---|---|---|
| Clasificación de texto | Bert, Distillbert, XLNet, Roberta, Albert, XLM | La clasificación de texto es un método de aprendizaje supervisado para aprender y predecir la categoría o la clase de un documento dado su contenido de texto. | Inglés, chino, hindi, árabe, alemán, francés, japonés, español, holandés |
| Reconocimiento de entidad nombrado | Bert | El reconocimiento de entidad nombrado (NER) es la tarea de clasificar palabras o frases clave de un texto en entidades predefinidas de interés. | Inglés |
| Resumen de texto | Bertsumtext Bertsumabs Unilm (S2S-FT) Minilm | El resumen del texto es una tarea de generación de idiomas de resumir el texto de entrada en un párrafo más corto de texto. | Inglés |
| Vinculación | Bert, xlnet, Roberta | La implicación textual es la tarea de clasificar la relación binaria entre dos textos de lenguaje natural, texto e hipótesis , para determinar si el texto está de acuerdo con la hipótesis o no. | Inglés |
| Respuesta de preguntas | Bidaf, Bert, xlnet | La respuesta a las preguntas (QA) es la tarea de recuperar o generar una respuesta válida para una consulta determinada en lenguaje natural, provisto de un pasaje relacionado con la consulta. | Inglés |
| Similitud de oración | Bert, Gensen | La similitud de la oración es el proceso de calcular una puntuación de similitud dada un par de documentos de texto. | Inglés |
| Incrustaciones | Word2vec contenedor Guante | La incrustación es el proceso de convertir una palabra o una pieza de texto a un espacio vectorial continuo de número real, generalmente en baja dimensión. | Inglés |
| Análisis de sentimientos | Analizador de dependencia Guante | Proporciona un ejemplo de análisis de sentimientos basado en el aspecto y usa el aspecto con Azure ML y el arquitecto Intel NLP. | Inglés |
Al resolver los problemas de PNL, siempre es bueno comenzar con los servicios cognitivos prebuidados. Cuando las necesidades están más allá de los límites del servicio cognitivo preconstruido y cuando desee buscar métodos personalizados de aprendizaje automático, encontrará este repositorio muy útil. Para comenzar, navegue a la guía de configuración, que enumera las instrucciones sobre cómo configurar su entorno y dependencias.
Azure Machine Learning Service es un servicio en la nube utilizado para entrenar, implementar, automatizar y administrar modelos de aprendizaje automático, todo a gran escala que proporciona la nube. Azureml se presenta en cuadernos en diferentes escenarios para mejorar la eficiencia del desarrollo de sistemas de lenguaje natural a escala y para varias tareas relacionadas con el desarrollo de modelos de IA como:
Para ejecutar con éxito estos cuadernos, necesitará una suscripción de Azure o podrá probar Azure de forma gratuita . Puede haber otros servicios o productos de Azure utilizados en los cuadernos. Introducción y/o referencia de ellos se proporcionarán en los cuadernos mismos.
Esperamos que la comunidad de código abierto contribuya al contenido y traiga el último algoritmo SOTA. Este proyecto da la bienvenida a las contribuciones y sugerencias. Antes de contribuir, consulte nuestras pautas de contribución.
Bootstrap su solución de resumen de texto con la última versión de NLP-Recipes
Anotación de texto Hecha fácil con Doccano
JumpStart Analizando sus datos de texto hindi utilizando el repositorio de NLP
Acelerar el desarrollo de soluciones de procesamiento del lenguaje natural con Azure Machine Learning
La siguiente es una lista de repositorios relacionados que nos gustan y creemos que son útiles para las tareas de PNL.
| Repositorio | Descripción |
|---|---|
| Transformadores | Una gran biblioteca de Pytorch de abrazar la cara con implementaciones de modelos populares basados en transformadores. Hemos estado utilizando su paquete ampliamente en este repositorio y apreciamos enormemente su esfuerzo. |
| Cuadernos de aprendizaje automático de Azure | Ejemplos de ML y aprendizaje profundo con Azure Machine Learning. |
| Azureml-Bert | Recetas de extremo a extremo para Bert de pre-entrenamiento y ajuste fino utilizando Azure Machine Learning Service. |
| MASA | Masa: secuencia enmascarada a la secuencia previa al entrenamiento para la generación del lenguaje. |
| Mt-dnn | Redes neuronales profundas de varias tareas para la comprensión del lenguaje natural. |
| Unilm | Modelo de lenguaje unificado previa al entrenamiento. |
| Diálogo | Dialogpto: pretruento generativo a gran escala para la generación de respuesta conversacional |
| Construir | Rama | Estado |
|---|---|---|
| CPU de Linux | maestro | |
| CPU de Linux | puesta en escena | |
| GPU de Linux | maestro | |
| GPU de Linux | puesta en escena |