logo

명명된 엔터티 인식

명명된 엔터티 인식(NER) 에 있는 기술이다 자연어 처리(NLP) 엔터티를 식별하고 분류하는 데 중점을 둡니다. NER의 목적은 구조화되지 않은 텍스트에서 구조화된 정보를 자동으로 추출하여 기계가 텍스트 요약, 지식 그래프 작성, 질문 답변 및 지식 그래프 구성과 같은 다양한 애플리케이션에 대해 의미 있는 방식으로 항목을 이해하고 분류할 수 있도록 하는 것입니다. 기사에서는 다음을 탐구합니다. NER 모델의 기본, 방법 및 구현.

명명된 엔터티 인식(NER)이란 무엇입니까?

이름 엔터티 인식(NER) 라고도합니다 엔터티 식별 , 엔터티 청킹, 그리고 엔터티 추출 . NER는 구조화되지 않은 텍스트 내에서 명명된 엔터티를 식별하고 분류하는 것을 목표로 하는 정보 추출 구성 요소입니다. NER에는 텍스트의 주요 정보를 식별하고 미리 정의된 범주 집합으로 분류하는 작업이 포함됩니다. 엔터티는 사람 이름, 조직, 위치, 시간 표현, 수량, 백분율 및 사전 정의된 범주와 같이 텍스트에서 일관되게 이야기되거나 참조되는 항목입니다.

NER 시스템은 질문 답변, 정보 검색, 기계 번역 등 다양한 도메인에 걸쳐 응용 프로그램을 제공합니다. NER는 다른 장치의 정밀도를 높이는 데 중요한 역할을 합니다. NLP 품사 태그 지정 및 구문 분석과 같은 작업. 기본적으로 NLP는 2단계 프로세스로 구성되며, 관련된 두 단계는 다음과 같습니다.



  • 텍스트에서 엔터티 감지
  • 다양한 카테고리로 분류

NER의 모호함

  • 사람의 경우 범주 정의는 직관적으로 매우 명확하지만 컴퓨터의 경우 분류가 다소 모호합니다. 몇 가지 모호한 예를 살펴보겠습니다.
    • 잉글랜드(조직)가 2019년 월드컵에서 승리했습니다. vs 2019년 월드컵은 잉글랜드(위치)에서 일어났습니다.
    • 워싱턴(위치)은 미국의 수도입니다. vs 미국의 초대 대통령은 워싱턴(사람)이었습니다.

명명된 엔터티 인식(NER)은 어떻게 작동합니까?

명명된 엔터티 인식의 작업은 아래에 설명되어 있습니다.

  • NER 시스템은 전체 입력 텍스트를 분석하여 명명된 엔터티를 식별하고 찾습니다.
  • 그런 다음 시스템은 대문자 사용 규칙을 고려하여 문장 경계를 식별합니다. 단어가 대문자로 시작하면 그것이 새로운 문장의 시작일 수 있다고 가정하여 문장의 끝을 인식합니다. 문장 경계를 알면 텍스트 내의 항목을 맥락화하는 데 도움이 되어 모델이 관계와 의미를 이해할 수 있습니다.
  • NER는 전체 문서를 송장, 영수증, 여권 등 다양한 유형으로 분류하도록 교육받을 수 있습니다. 문서 분류는 NER의 다양성을 향상시켜 다양한 문서 유형의 특정 특성과 컨텍스트를 기반으로 엔터티 인식을 조정할 수 있도록 합니다.
  • NER는 지도 학습을 포함한 기계 학습 알고리즘을 사용하여 레이블이 지정된 데이터 세트를 분석합니다. 이러한 데이터세트에는 모델이 보이지 않는 새로운 데이터에서 유사한 엔터티를 인식하도록 안내하는 주석이 달린 엔터티의 예가 포함되어 있습니다.
  • 여러 번의 훈련 반복을 통해 모델은 상황별 특징, 구문 구조 및 엔터티 패턴에 대한 이해를 개선하고 시간이 지남에 따라 정확도를 지속적으로 향상시킵니다.
  • 새로운 데이터에 적응하는 모델의 능력을 통해 언어, 컨텍스트, 엔터티 유형의 변화를 처리할 수 있어 더욱 강력하고 효과적입니다.

명명된 엔터티 인식(NER) 행동 양식

어휘 기반 방법

NER는 단어나 용어 목록이 포함된 사전을 사용합니다. 이 과정에는 주어진 텍스트에 이러한 단어가 있는지 확인하는 작업이 포함됩니다. 그러나 이 접근 방식은 정확하고 효과적인 상태를 유지하기 위해 사전을 지속적으로 업데이트하고 신중하게 유지 관리해야 하기 때문에 일반적으로 사용되지 않습니다.

규칙 기반 방법

규칙 기반 NER 방법은 사전 정의된 규칙 세트를 사용하여 정보 추출을 안내합니다. 이러한 규칙은 패턴과 컨텍스트를 기반으로 합니다. 패턴 기반 규칙은 단어의 구조와 형태에 초점을 맞춰 형태학적 패턴을 살펴봅니다. 반면에 상황 기반 규칙은 주변 단어나 텍스트 문서 내에서 해당 단어가 나타나는 상황을 고려합니다. 이러한 패턴 기반 규칙과 컨텍스트 기반 규칙의 조합은 NER(명명된 엔터티 인식)에서 정보 추출의 정확성을 향상시킵니다.

머신러닝 기반 방법

기계 학습 알고리즘을 사용한 다중 클래스 분류

  • 한 가지 방법은 모델을 훈련시키는 것입니다. 다중 클래스 분류 다양한 기계 학습 알고리즘을 사용하지만 많은 라벨링이 필요합니다. 모델에 라벨을 붙이는 것 외에도 문장의 모호함을 처리하기 위해 맥락에 대한 깊은 이해가 필요합니다. 이로 인해 간단한 기계 학습 알고리즘에는 어려운 작업이 됩니다.

조건부 무작위 필드(CRF)

  • 조건부 무작위 필드는 NLP Speech Tagger와 NLTK. 단어와 같은 순차 데이터를 모델링하는 데 사용할 수 있는 확률 모델입니다.
  • CRF는 문장의 맥락에 대한 깊은 이해를 포착할 수 있습니다. 이 모델에서는 입력 {	ext{X}} = 왼쪽 { 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) 
ight}

딥러닝 기반 방법

  • 딥러닝 NER 시스템은 단어를 조합할 수 있기 때문에 이전 방법보다 훨씬 정확합니다. 이는 다양한 단어 사이의 의미적, 구문적 관계를 이해할 수 있는 워드 임베딩(Word Embedding)이라는 방법을 사용했기 때문이다.
  • 또한 주제별로 분석된 단어는 물론 고급 단어까지 자동으로 학습할 수 있습니다.
  • 이를 통해 딥 러닝 NER를 여러 작업 수행에 적용할 수 있습니다. 딥러닝 대부분의 반복적인 작업을 자체적으로 수행할 수 있으므로, 예를 들어 연구자들은 자신의 시간을 보다 효율적으로 사용할 수 있습니다.

Python에서 NER를 구현하는 방법은 무엇입니까?

NER 시스템 구현을 위해 Spacy 라이브러리를 활용할 것입니다. 코드는 시각화 목적으로 Colab에서 실행할 수 있습니다. 로컬 환경을 추천합니다. 다음을 사용하여 필요한 라이브러리를 설치할 수 있습니다.

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

중요한 라이브러리 설치

파이썬3

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>)>
>
>

Spacy를 사용하는 NER

다음 코드에서는 스파시, 텍스트를 처리하고 명명된 엔터티를 추출하는 자연어 처리 라이브러리입니다. 코드는 처리된 문서에서 식별된 명명된 엔터티를 반복하고 각 엔터티의 텍스트, 시작 문자, 끝 문자 및 레이블을 인쇄합니다.

파이썬3

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>

출력에는 엔터티 이름, 텍스트의 시작 및 끝 위치, 예측 레이블이 표시되었습니다.

시각화

그만큼displacy.render>spaCy의 함수는 텍스트에서 명명된 엔터티를 시각화하는 데 사용됩니다. 인식된 엔터티와 해당 카테고리를 나타내는 색상 강조 표시가 있는 시각적 표현을 생성합니다.

파이썬3

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

산출:

Python에서 NER를 구현하는 방법은 무엇입니까?

다음 코드를 사용하여 각 엔터티의 텍스트, 유형(레이블) 및 기본 정리를 포함하여 spaCy에서 추출한 명명된 엔터티로부터 데이터프레임을 생성합니다.

파이썬3

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. NLP에서 NER의 방법은 무엇입니까?

NLP의 NER 방법에는 다음이 포함됩니다.

  • 어휘 기반 NER.
  • 규칙 기반
  • ML 기반
  • 딥러닝 기반.

3. NLP에서 NER의 용도는 무엇입니까?

NER는 품사 태깅 및 구문 분석과 같은 다른 NLP 작업의 정확성을 향상시키는 데 중요한 역할을 합니다.

4. BERT는 명명된 엔터티를 인식할 수 있나요?

예, BERT는 NER에 사용될 수 있습니다.