SpaCy
| Tipus | programari lliure i de codi obert, natural language processing software (en) |
|---|---|
| Versió inicial | febrer 2015 |
| Versió estable | |
| Llicència | llicència MIT |
| Característiques tècniques | |
| Escrit en | Python |
| Equip | |
| Desenvolupador(s) | Matt Honnibal |
| Més informació | |
| Lloc web | spacy.io (anglès) |
| Stack Exchange | Etiqueta |
|
| |
spaCy (/speɪˈsiː/ spay-SEE) és una biblioteca de programari de codi obert per al processament avançat del llenguatge natural, escrita en els llenguatges de programació Python i Cython. La biblioteca es publica sota la llicència MIT i els seus principals desenvolupadors són Matthew Honnibal i Ines Montani, els fundadors de l'empresa de programari Explosion.
A diferència de NLTK, que s'utilitza àmpliament per a la docència i la recerca, spaCy se centra en proporcionar programari per a ús en producció.[1][2] spaCy també admet fluxos de treball d'aprenentatge profund que permeten connectar models estadístics entrenats per biblioteques d'aprenentatge automàtic populars com TensorFlow, PyTorch o MXNet a través de la seva pròpia biblioteca d'aprenentatge automàtic Thinc.[3][4] Utilitzant Thinc com a backend, spaCy presenta models de xarxes neuronals convolucionals per a l'etiquetatge de categories gramaticals, l'anàlisi de dependències, la categorització de text i el reconeixement d'entitats amb nom (NER). Hi ha models de xarxes neuronals estadístiques preconstruïts per realitzar aquestes tasques disponibles per a 23 idiomes, inclosos l'anglès, el portuguès, el castellà, el rus i el xinès, i també hi ha un model NER multilingüe. La compatibilitat addicional amb la tokenització per a més de 65 idiomes permet als usuaris entrenar models personalitzats en els seus propis conjunts de dades.[5]
Història
[modifica]- La versió 1.0 es va publicar el 19 d'octubre de 2016 i incloïa suport preliminar per a fluxos de treball d'aprenentatge profund mitjançant la compatibilitat amb pipelines de processament personalitzades.[6] A més, incloïa un comparador de regles que admetia anotacions d'entitats i una API d'entrenament documentada oficialment.
- La versió 2.0 es va publicar el 7 de novembre de 2017 i va introduir models de xarxes neuronals convolucionals per a 7 idiomes diferents.[7] També admetia components de canalització de processament personalitzats i atributs d'extensió, i incloïa un component de classificació de text entrenable integrat.
- La versió 3.0 es va publicar l'1 de febrer de 2021 i va introduir pipelines basats en transformadors d'última generació.[8] També va introduir un nou sistema de configuració i flux de treball d'entrenament, així com pistes de tipus i plantilles de projecte. Aquesta versió va deixar de ser compatible amb Python 2.
Característiques principals
[modifica]- Tokenització no destructiva
- Compatibilitat amb la "tokenització alfabètica" per a més de 65 idiomes[9]
- Suport integrat per a components de pipeline entrenables, com ara el reconeixement d'entitats amb nom, l'etiquetatge de categories gramaticals, l'anàlisi de dependències, la classificació de text, l'enllaç d'entitats i més.
- Models estadístics per a 19 idiomes[10]
- Aprenentatge multitasca amb transformadors preentrenats com BERT
- Suport per a models personalitzats a PyTorch, TensorFlow i altres frameworks
- Velocitat i precisió d'última generació[11]
- Sistema de formació llest per a la producció
- Visualitzadors integrats per a la sintaxi i les entitats amb nom
- Empaquetatge, desplegament i gestió del flux de treball de models fàcils
Extensions i visualitzadors
[modifica]
spaCy inclou diverses extensions i visualitzacions disponibles com a biblioteques gratuïtes i de codi obert:
- Thinc: Una biblioteca d'aprenentatge automàtic optimitzada per a l'ús de la CPU i l'aprenentatge profund amb entrada de text.
- sense2vec: Una biblioteca per calcular similituds de paraules, basada en Word2vec.
- displaCy: Un visualitzador d'arbre d'anàlisi sintàctica de dependències de codi obert construït amb JavaScript, CSS i SVG.
- displaCyENT: Un visualitzador d'entitats amb nom de codi obert construït amb JavaScript i CSS.
Referències
[modifica]- ↑ «Facts & Figures - spaCy» (en anglès). spacy.io. [Consulta: 4 abril 2020].
- ↑ Bird, Steven; Klein, Ewan; Loper, Edward; Baldridge, Jason Proceedings of the Third Workshop on Issues in Teaching Computational Linguistics, ACL, 2008, pàg. 62. DOI: 10.3115/1627306.1627317 [Consulta: free].
- ↑ «PyTorch, TensorFlow & MXNet» (en anglès). thinc.ai. [Consulta: 4 abril 2020].
- ↑ «explosion/thinc» (en anglès). GitHub. [Consulta: 30 desembre 2016].
- ↑ «Models & Languages | spaCy Usage Documentation» (en anglès). spacy.io. [Consulta: 10 març 2020].
- ↑ «explosion/spaCy» (en anglès). GitHub. [Consulta: 8 febrer 2021].
- ↑ «explosion/spaCy» (en anglès). GitHub. [Consulta: 8 febrer 2021].
- ↑ «explosion/spaCy» (en anglès). GitHub. [Consulta: 8 febrer 2021].
- ↑ «Models & Languages - spaCy» (en anglès). spacy.io. [Consulta: 8 febrer 2021].
- ↑ «Models & Languages | spaCy Usage Documentation» (en anglès). spacy.io. [Consulta: 8 febrer 2021].
- ↑ «Benchmarks | spaCy Usage Documentation» (en anglès). spacy.io. [Consulta: 8 febrer 2021].