Боретеся зі штучним інтелектом або повним циклом розробки? Наші експерти допоможуть вам: індивідуальні консультації, технічна інтеграція та багато іншого. Звертайтеся за адресою [email protected].

Альтернативи SpaCy для вилучення суб'єктів господарювання (NER)

SpaCy вже кілька років є фактичним стандартом для кожної компанії, яка бажає розпочати проект з видобутку корисних копалин. Що зробило spaCy таким популярним? І чи є хороші альтернативи SpaCy у 2023 році для тих, хто намагається запустити проект з екстракції юридичних осіб? Давайте обговоримо ці моменти в цій статті.

SpaCy

SpaCy для витяжки тіла

Перша версія SpaCy була випущена в 2015 році і швидко стала стандартною платформою для вилучення підприємств корпоративного рівня (також відома як NER).

Якщо у вас є фрагмент неструктурованого тексту (наприклад, з Інтернету) і ви хочете витягти з нього структуровані дані, такі як дати, імена, місця і т.д., spaCy є дуже хорошим рішенням.

SpaCy цікавий тим, що кілька попередньо навчених моделей доступні приблизно на 20 мовах (детальніше тут). Це означає, що вам не обов'язково навчати власну модель для вилучення сутностей. Це також означає, що якщо ви хочете навчити свою власну модель, ви можете почати з попередньо навченої моделі замість того, щоб починати з нуля, що може заощадити вам багато часу.

SpaCy вважається фреймворком "виробничого рівня", оскільки він дуже швидкий, надійний і поставляється з вичерпною документацією.

Однак, якщо сутностей за замовчуванням, що підтримуються попередньо навченими моделями SpaCy, недостатньо, вам потрібно буде попрацювати над "анотацією даних" (також відомою як "маркування даних"), щоб навчити свою власну модель. Цей процес є надзвичайно трудомістким, і багато проектів з вилучення сутностей підприємства зазнають невдачі через цю проблему.

Припустимо, ви хочете витягти назви посад з фрагмента тексту (наприклад, з резюме або з веб-сторінки компанії). Оскільки попередньо навчені моделі spaCy не підтримують таку сутність за замовчуванням, вам потрібно буде навчити spaCy розпізнавати назви посад. Вам потрібно буде створити навчальний набір даних, який містить кілька тисяч прикладів витягів назв посад (і, можливо, навіть набагато більше!). Ви можете використовувати платне програмне забезпечення для створення анотацій, таке як Prodigy (розроблене командою spaCy), але це все одно передбачає багато людської роботи. Насправді досить часто можна побачити, як компанії наймають купу підрядників на кілька місяців для того, щоб виконати проект з анотування даних. Така робота є настільки повторюваною та нудною, що отримані в результаті набори даних часто містять багато помилок...

Приклад анотації даних
Приклад анотації даних

Давайте подивимося, які альтернативні рішення ви могли б спробувати у 2023 році!

Stanford CoreNLP

Stanford CoreNLP

Перша версія Stanford CoreNLP була випущена у 2013 році. Це Java-фреймворк (тоді як spaCy - Python), який дозволяє виконувати екстракцію сутностей з дуже хорошими результатами.

Стенфордська програма CoreNLP також пропонує попередньо навчені моделі, але в меншій мірі, ніж SpaCy (детальніше тут).

Точність цієї системи подібна до SpaCy, але вона залежить від даних, які ви аналізуєте. Наприклад, Stanford CoreNLP дає кращі результати щодо юридичних даних. Також варто зазначити, що деякі суб'єкти розглядаються дещо по-іншому, ніж spaCy (це стосується, наприклад, суб'єкта GPE).

Коли справа доходить до продуктивності, Stanford явно здається повільнішим, ніж SpaCy, що може бути проблемою, якщо ви намагаєтеся досягти дуже високої пропускної здатності.

Чуття

Чуття НЛП

Flair - це новіший фреймворк Python (випущений у 2018 році), заснований на фреймворку глибокого навчання PyTorch.

Він набуває великої популярності, оскільки досягає більшої точності в багатьох мовах порівняно зі spaCy. Пропонується кілька попередньо навчених моделей (детальніше тут).

Однак це підвищення точності відбувається за рахунок швидкості. Ваша пропускна здатність буде набагато нижчою, ніж у spaCy.

Генеративні моделі ШІ (GPT-J, GPT-3...)

Кілька років тому почав з'являтися новий різновид моделей ШІ - генеративні моделі. Спочатку ці моделі були створені для генерації тексту (написання початку тексту і надання моделі можливості генерувати решту), але люди швидко зрозуміли, що ці моделі дуже добре справляються з усіма видами обробки природної мови, в тому числі з вилученням сутностей.

Найпопулярнішими генеративними моделями на сьогодні є GPT-3, GPT-J, GPT-NeoX, T5 та Bloom. Всі ці моделі глибокого навчання використовують архітектуру Transformer, винайдену компанією Google у 2017 році.

Моделі ШІ нового покоління дуже важкі і дорогі в експлуатації. Зазвичай вони вимагають висококласного обладнання на базі одного або декількох графічних процесорів. Також вони повільніші, ніж фреймворки на кшталт spaCy. Але завдяки цим моделям тепер можна витягти будь-яку сутність без навчання спеціальної моделі!

Витяг будь-якої сутності без створення спеціальної моделі можливий завдяки навчанню з кількох пострілів. Ця техніка полягає в тому, щоб швидко показати моделі, що ви хочете зробити, зробивши лише кілька прикладів під час виконання. Дізнайтеся більше про навчання з кількох пострілів тут.

Повертаючись до нашого прикладу вилучення назв посад, якщо ви хочете витягти назви посад за допомогою такої моделі, як GPT-J, вам не потрібно буде анотувати будь-які дані. Це заощадить вам тижні або місяці людської праці. А точність, швидше за все, буде набагато вищою, ніж при вилученні будь-якої сутності за допомогою spaCy.

Дивіться нашу статтю про те, як легко виконати вилучення сутностей за допомогою моделей GPT.

Висновок

SpaCy - це чудовий фреймворк для обробки природної мови, який сьогодні використовується у виробництві багатьма компаніями для задач вилучення сутностей.

Однак, spaCy та альтернативи на кшталт Stanford CoreNLP або Flair мають обмежену точність, а також потребують кропіткої роботи з анотування для вилучення нових сутностей. У 2023 році для вилучення об'єктів без анотацій можна буде використовувати кілька альтернативних моделей, заснованих на генерації тексту, таких як GPT-J, GPT-NeoX, GPT-3... Ці нові моделі дійсно допоможуть все більшій кількості компаній досягти успіху в своїх проектах з вилучення сутностей.

Якщо ви хочете використовувати GPT-J і GPT-NeoX, спробуйте NLP Cloud API (спробуйте тут)!

Juliette
Менеджер з маркетингу в NLP Cloud