spaCy ( / s p eɪ ˈ s iː / spay- SEE ) es una biblioteca de software de código abierto para el procesamiento avanzado del lenguaje natural , escrita en los lenguajes de programación Python y Cython . [3] [4] La biblioteca se publica bajo la licencia MIT y sus principales desarrolladores son Matthew Honnibal e Ines Montani, los fundadores de la empresa de software Explosion.
A diferencia de NLTK , que se usa ampliamente para la enseñanza y la investigación, spaCy se centra en proporcionar software para uso en producción. [5] [6] spaCy también admite flujos de trabajo de aprendizaje profundo que permiten conectar modelos estadísticos entrenados por bibliotecas de aprendizaje automático populares como TensorFlow , PyTorch o MXNet a través de su propia biblioteca de aprendizaje automático Thinc. [7] [8] Usando Thinc como su backend, spaCy presenta modelos de redes neuronales convolucionales para etiquetado de partes del discurso , análisis de dependencias , categorización de texto y reconocimiento de entidades nombradas (NER) . Los modelos de redes neuronales estadísticas preconstruidos para realizar estas tareas están disponibles para 23 idiomas, incluidos inglés, portugués, español, ruso y chino, y también hay un modelo NER en varios idiomas . El soporte adicional para tokenización para más de 65 idiomas permite a los usuarios entrenar modelos personalizados en sus propios conjuntos de datos también. [9]
Historia
- La versión 1.0 se lanzó el 19 de octubre de 2016 e incluyó soporte preliminar para flujos de trabajo de aprendizaje profundo al admitir canales de procesamiento personalizados. [10] Además, incluyó un comparador de reglas que admitía anotaciones de entidades y una API de entrenamiento documentada oficialmente.
- La versión 2.0 se lanzó el 7 de noviembre de 2017 e introdujo modelos de redes neuronales convolucionales para siete idiomas diferentes. [11] También admitía componentes de canalización de procesamiento personalizados y atributos de extensión, y presentaba un componente de clasificación de texto entrenable incorporado .
- La versión 3.0 se lanzó el 1 de febrero de 2021 e introdujo pipelines de última generación basados en transformers . [12] También introdujo un nuevo sistema de configuración y flujo de trabajo de capacitación, así como sugerencias de tipo y plantillas de proyecto. Esta versión eliminó la compatibilidad con Python 2 .
Características principales
- Tokenización no destructiva
- Soporte de "tokenización alfa" para más de 65 idiomas [13]
- Soporte integrado para componentes de canalización entrenables , como reconocimiento de entidades con nombre , etiquetado de partes del discurso , análisis de dependencias , clasificación de texto , vinculación de entidades y más
- Modelos estadísticos para 19 idiomas [14]
- Aprendizaje multitarea con transformadores entrenados previamente como BERT
- Compatibilidad con modelos personalizados en PyTorch, TensorFlow y otros marcos
- Velocidad y precisión de última generación [15]
- Sistema de formación listo para producción
- Visualizadores integrados para sintaxis y entidades con nombre
- Fácil empaquetado, implementación y gestión del flujo de trabajo de modelos
Extensiones y visualizadores

spaCy viene con varias extensiones y visualizaciones que están disponibles como bibliotecas gratuitas de código abierto :
- Thinc: una biblioteca de aprendizaje automático optimizada para el uso de CPU y aprendizaje profundo con entrada de texto.
- sense2vec: una biblioteca para calcular similitudes entre palabras, basada en Word2vec . [16]
- displaCy: Un visualizador de árbol de análisis de dependencias de código abierto creado con JavaScript , CSS y SVG .
- displaCy ENT : Un visualizador de entidades con nombre de código abierto creado con JavaScript y CSS .
Referencias
- ^ "Presentación de spaCy". explosion.ai . Consultado el 18 de diciembre de 2016 .
- ^ "Versión 3.7.5". 5 de junio de 2024. Consultado el 26 de junio de 2024 .
- ^ Choi et al. (2015). Depende: comparación de analizadores de dependencias mediante una herramienta de evaluación basada en la Web.
- ^ "La nueva inteligencia artificial de Google no puede entender estas frases. ¿Puedes tú?". Washington Post . Consultado el 18 de diciembre de 2016 .
- ^ "Datos y cifras - spaCy". spacy.io . Consultado el 4 de abril de 2020 .
- ^ Bird, Steven; Klein, Ewan; Loper, Edward; Baldridge, Jason (2008). "Instrucción multidisciplinaria con el kit de herramientas de lenguaje natural" (PDF) . Actas del tercer taller sobre cuestiones de enseñanza de la lingüística computacional, ACL : 62. doi : 10.3115/1627306.1627317 . ISBN . 9781932432145. Número de identificación del sujeto 16932735.
- ^ "PyTorch, TensorFlow y MXNet". thinc.ai . Consultado el 4 de abril de 2020 .
- ^ "explosion/thinc". GitHub . Consultado el 30 de diciembre de 2016 .
- ^ "Modelos e idiomas | Documentación de uso de spaCy". spacy.io . Consultado el 10 de marzo de 2020 .
- ^ "explosion/spaCy". GitHub . Consultado el 8 de febrero de 2021 .
- ^ "explosion/spaCy". GitHub . Consultado el 8 de febrero de 2021 .
- ^ "explosion/spaCy". GitHub . Consultado el 8 de febrero de 2021 .
- ^ "Modelos y lenguajes - spaCy". spacy.io . Consultado el 8 de febrero de 2021 .
- ^ "Modelos e idiomas | Documentación de uso de spaCy". spacy.io . Consultado el 8 de febrero de 2021 .
- ^ "Puntos de referencia | Documentación de uso de spaCy". spacy.io . Consultado el 8 de febrero de 2021 .
- ^ Trask et al. (2015). sense2vec: un método rápido y preciso para la desambiguación del sentido de las palabras en incrustaciones de palabras neuronales.
Enlaces externos
- Sitio web oficial
- Implementación de la biblioteca Spacy