logo

Розпізнавання іменованих сутностей

Розпізнавання іменованих сутностей (NER) є технікою в обробка природної мови (NLP) який зосереджується на ідентифікації та класифікації сутностей. Мета NER полягає в тому, щоб автоматично витягувати структуровану інформацію з неструктурованого тексту, дозволяючи машинам розуміти та класифікувати об’єкти значущим чином для різних застосувань, таких як узагальнення тексту, побудова графів знань, відповідей на запитання та побудова графів знань. У статті досліджено основи, методи та реалізація моделі NER.

Що таке розпізнавання іменованих сутностей (NER)?

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



Додатки системи NER fin у різних областях, включаючи відповіді на запитання, пошук інформації та машинний переклад. NER відіграє важливу роль у підвищенні точності інших НЛП такі завдання, як позначення та синтаксичний аналіз частин мови. За своєю суттю НЛП — це лише двоетапний процес, нижче наведено два кроки, які беруть участь:

  • Виявлення сутностей із тексту
  • Класифікуючи їх на різні категорії

Неоднозначність у NER

  • Для людини визначення категорії інтуїтивно досить зрозуміле, але для комп’ютера існує деяка неоднозначність у класифікації. Давайте розглянемо кілька неоднозначних прикладів:
    • Англія (Організація) виграла чемпіонат світу 2019 проти Чемпіонат світу 2019 відбувся в Англії (Місце).
    • Вашингтон (місце розташування) — столиця США проти Першим президентом США був Вашингтон (особа).

Як працює розпізнавання іменованих сутностей (NER)?

Нижче описано роботу розпізнавання іменованих сутностей:

  • Система NER аналізує весь введений текст, щоб ідентифікувати та знайти названі сутності.
  • Потім система визначає межі речень, враховуючи правила використання великих літер. Він розпізнає кінець речення, коли слово починається з великої літери, припускаючи, що це може бути початком нового речення. Знання меж речень допомагає контекстуалізувати сутності в тексті, дозволяючи моделі зрозуміти зв’язки та значення.
  • NER можна навчити класифікувати цілі документи на різні типи, такі як рахунки-фактури, квитанції або паспорти. Класифікація документів підвищує універсальність NER, дозволяючи адаптувати розпізнавання сутностей на основі конкретних характеристик і контексту різних типів документів.
  • NER використовує алгоритми машинного навчання, включаючи контрольоване навчання, для аналізу позначених наборів даних. Ці набори даних містять приклади анотованих сутностей, які скеровують модель у розпізнаванні подібних сутностей у нових, невидимих ​​даних.
  • Завдяки численним ітераціям навчання модель уточнює своє розуміння контекстних особливостей, синтаксичних структур і шаблонів сутностей, постійно підвищуючи свою точність з часом.
  • Здатність моделі адаптуватися до нових даних дозволяє їй обробляти варіації мови, контексту та типів об’єктів, що робить її більш надійною та ефективною.

Розпізнавання іменованих сутностей (NER) методи

Метод на основі лексикону

NER використовує словник зі списком слів або термінів. Процес передбачає перевірку наявності будь-якого з цих слів у певному тексті. Однак цей підхід не часто використовується, оскільки він вимагає постійного оновлення та ретельного догляду за словником, щоб залишатися точним і ефективним.



Метод на основі правил

Метод NER на основі правил використовує набір попередньо визначених правил, які керують вилученням інформації. Ці правила базуються на шаблонах і контексті. Правила на основі шаблонів зосереджуються на структурі та формі слів, розглядаючи їх морфологічні моделі. З іншого боку, контекстні правила враховують навколишні слова або контекст, у якому слово з’являється в текстовому документі. Ця комбінація правил на основі шаблонів і контексту підвищує точність вилучення інформації в розпізнаванні іменованих об’єктів (NER).

Метод на основі машинного навчання

Багатокласова класифікація з алгоритмами машинного навчання

  • Один із способів — навчити модель багатокласова класифікація з використанням різних алгоритмів машинного навчання, але це вимагає багато міток. На додаток до маркування модель також вимагає глибокого розуміння контексту, щоб мати справу з двозначністю речень. Це робить це складним завданням для простого алгоритму машинного навчання.

Умовне випадкове поле (CRF)

  • Умовне випадкове поле реалізовано як NLP Speech Tagger, так і NLTK. Це імовірнісна модель, яку можна використовувати для моделювання послідовних даних, таких як слова.
  • CRF може зафіксувати глибоке розуміння контексту речення. У цій моделі вхід {	ext{X}} = left { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} праворуч }
    p(y | mathbf{x}) = frac{1}{z(vec{x})} prod_{t=1}^{T} expleft{ sum_{k=1} ^{K} omega_k f_k(y_t, y_{t-1}, vec{x}_t) праворуч}

Метод на основі глибокого навчання

  • Система глибокого навчання NER є набагато точнішою за попередній метод, оскільки вона здатна складати слова. Це пов’язано з тим, що він використовував метод під назвою «вбудовування слів», який дає змогу зрозуміти семантичні та синтаксичні зв’язки між різними словами.
  • Він також може навчитися аналізувати специфічні теми, а також слова високого рівня автоматично.
  • Це робить глибоке навчання NER застосовним для виконання кількох завдань. Глибоке навчання може виконувати більшу частину повторюваної роботи самостійно, отже, наприклад, дослідники можуть використовувати свій час ефективніше.

Як реалізувати NER у Python?

Для впровадження системи NER ми будемо використовувати бібліотеку Spacy. Код можна запустити в colab, але з метою візуалізації. Я рекомендую місцеве середовище. Ми можемо встановити необхідні бібліотеки за допомогою:

!pip install spacy !pip install nltk ! python -m spacy download en_core_web_sm>

Встановіть важливі бібліотеки

Python3

import> pandas as pd> import> spacy> import> requests> from> bs4>import> BeautifulSoup> nlp>=> spacy.load(>'en_core_web_sm'>)> pd.set_option(>'display.max_rows'>,>200>)>
>
>

NER за допомогою Spacy

У наступному коді ми використовуємо SpaCy, бібліотека обробки природної мови для обробки тексту та вилучення іменованих об’єктів. Код повторює іменовані сутності, визначені в обробленому документі, і друкує текст кожної сутності, початковий символ, кінцевий символ і мітку.



Python3

content>=> 'Trinamool Congress leader Mahua Moitra has moved the Supreme Court against her expulsion from the Lok Sabha over the cash-for-query allegations against her. Moitra was ousted from the Parliament last week after the Ethics Committee of the Lok Sabha found her guilty of jeopardising national security by sharing her parliamentary portal's login credentials with businessman Darshan Hiranandani.'> doc>=> nlp(content)> for> ent>in> doc.ents:> >print>(ent.text, ent.start_char, ent.end_char, ent.label_)>
>
>

Вихід:

Congress 10 18 ORG Mahua Moitra 26 38 PERSON the Supreme Court 49 66 ORG the Lok Sabha 94 107 PERSON Moitra 157 163 ORG Parliament 184 194 ORG last week 195 204 DATE the Ethics Committee 211 231 ORG Darshan Hiranandani 373 392 PERSON>

Вихідні дані відображали назви сутностей, їх початкову та кінцеву позиції в тексті та їхні передбачені мітки.

Візуалізуйте

Thedisplacy.render>Функція від spaCy використовується для візуалізації названих сутностей у тексті. Він створює візуальне представлення з кольоровими виділеннями, що вказує на розпізнані об’єкти та їхні відповідні категорії.

Python3

from> spacy>import> displacy> displacy.render(doc, style>=>'ent'>)>
>
>

Вихід:

Як реалізувати NER у Python?

Використовуючи наступний код, ми створимо фрейм даних із іменованих сутностей, витягнутих spaCy, включаючи текст, тип (мітку) і лему кожної сутності.

Python3

entities>=> [(ent.text, ent.label_, ent.lemma_)>for> ent>in> doc.ents]> df>=> pd.DataFrame(entities, columns>=>[>'text'>,>'type'>,>'lemma'>])> print>(df)>
>
>

Вихід:

text type lemma 0 Congress ORG Congress 1 Mahua Moitra PERSON Mahua Moitra 2 the Supreme Court ORG the Supreme Court 3 the Lok Sabha PERSON the Lok Sabha 4 Moitra ORG Moitra 5 Parliament ORG Parliament 6 last week DATE last week 7 the Ethics Committee ORG the Ethics Committee 8 Darshan Hiranandani PERSON Darshan Hiranandani>

Фрейм даних забезпечує структуроване представлення названих сутностей, їх типів і лемматизованих форм.

Часті запитання (FAQ)

1. Яке призначення системи NER?

Мета NER полягає в тому, щоб автоматично витягувати структуровану інформацію з неструктурованого тексту, дозволяючи машинам розуміти та класифікувати об’єкти за значенням для різних застосувань, таких як резюмування тексту, побудова графів знань, відповідей на запитання та побудова графів знань.

2. Що таке методи НЕР в НЛП?

Методи НЕР в НЛП включають:

  • NER на основі лексиконів.
  • На основі правил
  • На основі ML
  • На основі глибокого навчання.

3. Яке застосування NER в НЛП?

NER відіграє важливу роль у підвищенні точності інших завдань NLP, таких як тегування частин мови та розбір.

4. Чи може BERT виконувати розпізнавання іменованих об’єктів?

Так, BERT можна використовувати для NER.