spaCy ( ) — бібліотека програмного забезпечення з відкритим вихідним кодом для обробки природної мови, написана на мовах програмування Python і CythonChoi et al. (2015). . Бібліотека розповсюджується під ліцензією MIT, а її основними розробниками є Метью Хоннібал та Інес Монтані, засновники компанії Explosion з розробки програмного забезпечення.

На відміну від NLTK, який широко використовується для навчання та досліджень, spaCy зосереджується на наданні програмного забезпечення для виробничого використання. spaCy також підтримує робочі процеси глибокого навчання, які дозволяють підключати статистичні моделі, навчені популярними бібліотеками машинного навчання, такими як TensorFlow, PyTorch або MXNet, через власну бібліотеку машинного навчання Thinc. Використовуючи Thinc як бекенд, spaCy пропонує моделі згорткових нейронних мереж для розмічування частин мови, розбору залежностей, категоризації тексту та розпізнавання іменованих сутностей (РІС). Попередньо створені моделі нейронних мереж для виконання цього завдання доступні для 17 мов, серед яких українська поки відсутня, хоча є багатомовна модель РІС. Додаткова підтримка токенізації для більш ніж 65 мов дозволяє користувачам також навчати власні моделі на власних наборах даних.

Історія

Версія 1.0 була випущена 19 жовтня 2016 року і мала попередню підтримку робочих процесів глибокого навчання за допомогою підтримки конвеєрів обробки налаштувань. Крім того, містився узгоджувач правил, який підтримував анотацію об'єктів, та офіційно задокументований навчальний API. Версія 2.0 була випущена 7 листопада 2017 року та представила моделі згорткових нейронних мереж для 7 різних мов. Також підтримувалися спеціальні компоненти конвеєру обробки та атрибути розширення, а також мав вбудований компонент для класифікації тексту, який можна навчати. Версія 3.0 була випущена 1 лютого 2021 року та представила найсучасніші конвеєри на основі трансформерів. Також було запроваджено нову систему конфігурації та робочий процес навчання, а також підказки для типів і шаблони проектів. У цій версії була припинена підтримка Python 2.

Основні властивості

Неруйнівна токенізація Підтримка «альфа-токенізації» для понад 65 мов Вбудована підтримка компонентів конвеєра, які можна навчати, таких як розпізнавання іменованих сутностей, розмічування частин мови, розбір залежностей, класифікація тексту, зв'язування іменованих сутностей тощо. Статистичні моделі для 19 мов з попередньо підготовленими трансформерами, такими як BERT Підтримка користувацьких моделей у PyTorch, TensorFlow та інших фреймворках Швидкість і точність сучасного рівня Готова до виробництва система навчання Вбудовані візуалізатори для синтаксису та іменованих сутностей Просте пакування моделі, розгортання та керування робочим процесом

Розширення та інструменти для візуалізації

spaCy поставляється з кількома розширеннями та візуалізаціями, які доступні як безплатні бібліотеки з відкритим вихідним кодом:

Thinc: Бібліотека машинного навчання оптимізована для використання центрального процесора та глибокого навчання, коли входом є текст. sense2vec: Бібліотека для обчислення подібності слів заснована на Word2vecTrask et al. (2015). sense2vec - A Fast and Accurate Method for Word Sense Disambiguation In Neural Word Embeddings.. displaCy: Візуалізатор синтаксичного дерева залежностей з відкритим вихідним кодом, створений за допомогою JavaScript, CSS та SVG. displaCyENT: візуалізатор іменованих сутностей з відкритим кодом, створений за допомогою JavaScript та CSS.

Примітки

Посилання

Впровадження Spacy Library