spaCy, una biblioteca de procesamiento de lenguaje natural
Explosion AI dio a conocer el lanzamiento de la nueva versión de la biblioteca gratuita «spaCy» la cual cuenta con una implementación de algoritmos de procesamiento del lenguaje natural (NLP). En la práctica, el proyecto se puede utilizar para construir autorespondedores, bots, clasificadores de texto y varios sistemas de diálogo que determinan el significado de frases.
La biblioteca está diseñada para proporcionar una API persistente que no está vinculada a los algoritmos utilizados y lista para usar en productos reales. La biblioteca utiliza los últimos avances en PNL y los algoritmos más eficientes disponibles para procesar información.
Si aparece un algoritmo más eficiente, la biblioteca se transfiere a él, pero esta transición no afecta a la API ni a las aplicaciones.
Una característica de spaCy es también una arquitectura diseñada para procesar documentos completos, sin preprocesamiento en preprocesadores que dividen el documento en frases. Los modelos se ofrecen en dos versiones: para máxima productividad y máxima precisión.
Las principales características de spaCy:
- Soporte para alrededor de 60 idiomas.
- Modelos ya entrenados disponibles para diferentes idiomas y aplicaciones.
- Aprendizaje multitarea utilizando transformadores previamente entrenados como BERT (Representaciones de codificador bidireccional de Transformers).
- Soporte para vectores previamente entrenados e incrustaciones de palabras.
- Alto rendimiento.
- Modelo de sistema de entrenamiento listo para usar en el trabajo.
- Tokenización motivada lingüísticamente.
- Disponibilidad de componentes listos para usar para vincular entidades nombradas, marcar partes del discurso, clasificar texto, analizar dependencias basadas en etiquetas, dividir oraciones, marcar partes del discurso, análisis morfológico, lematización , etc.
- Soporte para ampliar la funcionalidad con componentes y atributos personalizados.
- Soporte para crear sus propios modelos basados en PyTorch, TensorFlow y otros marcos.
- Herramientas integradas para visualización de sintaxis y enlace de entidad con nombre (NER, reconocimiento de entidad con nombre).
- Proceso simple de empaquetar e implementar modelos y administrar el flujo de trabajo.
- Alta precisión.
La biblioteca está escrita en Python con elementos en Cython, una extensión de Python que permite la llamada directa de funciones en el lenguaje C.
El código del proyecto se distribuye bajo la licencia MIT. Los modelos de idiomas están preparados para 58 idiomas.
Sobre la nueva versión de spaCy 3.0
La versión spaCy 3.0 se destaca por la implementación de familias de modelos reentrenadas para 18 idiomas y 59 pipelines entrenados en total, incluidos 5 nuevos pipelines basados en transformadores
El modelo se ofrece en tres versiones (16 MB, 41 MB – 20 mil vectores y 491 MB – 500 mil vectores) y está optimizado para trabajar bajo la carga de CPU e incluye los componentes tok2vec, morphologizer, parser, senter, ner, attribute_ruler y lemmatizer.
Hemos estado trabajando en spaCy v3.0 durante más de un año, y casi dos años si se cuenta todo el trabajo realizado en Thinc . Nuestro principal objetivo con el lanzamiento es hacer que sea más fácil de llevar sus propios modelos en SPACY, especialmente los modelos del estado de la técnica como transformadores. Puede escribir modelos que alimentan los componentes de spaCy en marcos como PyTorch o TensorFlow, utilizando nuestro nuevo e increíble sistema de configuración para describir todas sus configuraciones. Y dado que los flujos de trabajo modernos de PNL a menudo constan de varios pasos, existe un nuevo sistema de flujo de trabajo para ayudarlo a mantener su trabajo organizado.
Otras de las innovaciones importantes que se destacan de la nueva versión:
- Nuevo flujo de trabajo para modelos de entrenamiento.
- Nuevo sistema de configuración.
- Soporte para modelos de pipeline basados en transformadores, aptos para el aprendizaje multitarea.
- La capacidad de conectar sus propios modelos mediante varios marcos de aprendizaje automático, como PyTorch, TensorFlow y MXNet.
- Soporte de proyectos para administrar todas las etapas de los flujos de trabajo, desde el preprocesamiento hasta la implementación del modelo.
- Soporte para la integración con los paquetes Data Version Control (DVC), Streamlit, Weights & Biases y Ray.
- Nuevos componentes integrados: SentenceRecognizer, Morphologizer, Lemmatizer,
- AttributeRuler y Transformer.
- Nueva API para crear tus propios componentes.
Finalmente, si estás interesado en conocer más al respecto de esta nueva versión o sobre spaCy, puedes consultar los detalles en el siguiente enlace.