(리뷰)감정별 분류, (뉴스)카테고리로 분류, (피드백)주제별 분류, (법률문서) 유형별 분류
Knowledge Extraction (지식 추출)
문서 또는 텍스트 데이터에서 유용한 정보나 지식을 자동으로 추출하는 과정
예: 뉴스 기사에서 특정 인물의 이름, 위치, 이벤트 등을 인식 → 이들 사이의 관계를 파악
NER
미리 정의해 둔 사람, 회사, 장소, 시간, 단위 등에 해당하는 단어(개체명)를 문서에서 인식하여 추출
예:철수[인명]는 서울역[지명]에서 영희[인명]와 10시[시간]에 만나기로 약속하였다.
NE(Named Entity): 기관명, 사람 이름(인물), 지명(장소), 화폐, 시간, 퍼센티지 등
NE 종류:
일반 개체명(generic NEs)
특정 개체명(domain-specific NEs)
NER 성능평가 지표:
정밀도(precision), 재현율(recall), F1-score 평가
토큰 단위로 평가 (문장단위가 아닌)
NER 다양한 접근
규칙 기반 접근(Rule-based Approaches)
도메인 특화(domain-specific)한 사전(gazetteer)을 적용
정규식(regular expressions)으로 패턴 매칭
높은 정확도 낮은 재현율, 도메인이 달라지면 성능 저하
비지도 학습 접근(Unsupervised Learning Approaches)
문맥적 유사도에 기반해 클러스터링(clustering)
변수 기반 지도 학습 접근(Feature-based Supervised Learning Approaches)
다중 클래스 분류(multi-class classification)
시퀀스 레이블링(sequence labeling task)
HMM, Decision Trees, SVM, Maximum Entropy Model, CRF
딥러닝 (Deep learning)
LSTM 기반 태깅, 임베딩, 개체명인식 등
간단한 NER 예제
토큰화(word_tokenize), 품사 태깅(pos_tag)
from nltk import word_tokenize, pos_tag
sentence = "James is working at Disney in London"
tokenized_sentence = pos_tag(word_tokenize(sentence))
tokenized_sentence
NE 청킹(ne_chunk)
from nltk import ne_chunk
ner_sentence = ne_chunk(tokenized_sentence)
ner_sentence
Deep Learning Applications in NLP
Deep Learning in NLP
Named Entity Recognition (NER)
Syntactic Analysis
Image Caption Generator
Google Neural Machine Translation
Sentiment Analysis; Text Classification
Summarization
End-to-end Dialog System
LIMITATION of deep learning
설명가능성(explainability) 부족
투명성(transparency) 부족
점진적 학습 어려움
법적 윤리적 책임소재 문제
※ 의사결정도구로 사용하려면 사람이 이해하는 규칙 모델도 필요
텍스트 마이닝을 위한 파이썬 라이브러리
NLTK : Natural Language Toolkit
KoNLPy: Korean NLP in Python
Gensim: vector space modeling + topic modeling toolkit