NLP 개념 정리
자연어 처리
자연어 처리란?
인간과 컴퓨터 언어 사이의 상호작용을 처리하는 기술
자연어란?
인간의 언어(연설, 대화, 문장, 수화 등)
NLP와 텍스트 분석
비슷한 맥락이지만 굳이 구분하자면,
NLP(Natural Language Processing)
머신이 인간의 언어를 이해하고 해석하는 데 중점. 기계번역, 자동 질의응답 시스템 등.
텍스트 분석
텍스트 마이닝(Text Mining)이라고도 불림. 비정형 텍스트에서 의미 있는 정보를 추출하는 것에 중점.
NLP는 텍스트 분석을 향상하게 하는 기반 기술.
텍스트 분석 기술
텍스트 분류(Text Classification)
Text Categorization이라고도 함. 문서가 특정 분류 또는 카테고리에 속하는 것을 예측하는 기법.
예를 들어 특정 신문 기사 내용이 연애/정치/사회/문화 중 어떤 가테고리에 속하는지 자동으로 분류하거나 스팸 메일 검출하는 것 등.
지도학습 적용.
감성 분석(Sentiment Analysis)
텍스트에서 나타나는 감점/판단/믿음/의견/기분 등의 주관적인 요소를 분석하는 기법.
소셜미디어 감정 분석, 영화나 제품에 대한 긍정 또는 리뷰, 여론조사 의견 분석 등.
Text Analysis에서 가장 활발하게 사용되는 분야.
지도학습뿐 아니라 비지도학습도 적용.
텍스트 요약(Summatization)
텍스트 내에서 중요한 주제나 중심 사상을 추출하는 기법.
대표적으로 토픽 모델링(Topic Modeling).
텍스트 군집화(Clustering)와 유사도 측정
비슷한 유형의 문서에 대해 군집화를 수행하는 기법.
텍스트 분류를 비지도학습으로 수행하는 방법의 일환으로 사용.
유사도 측정 역시 문서들 간의 유사도를 측정해 비슷한 문서끼리 모을 수 있는 방법.
텍스트 분석 수행 프로세스
1. 텍스트 사전 준비작업(텍스트 전처리)
텍스트를 Feature로 만들기 전에 사전에 클렌징, 대소문자 변경, 특수문자 삭제 등의 클렌징 작업, 단어 등의 토큰화 작업, 의미 없는 단어 제거 작업, 어근 추출 등의 텍스트 정규화 작업을 통칭.
2. 피처 벡터화/추출
사전 준비 작업으로 가공된 텍스트에서 피처를 추출하고 여기에 벡터 값을 할당. 대표적인 방법으로 BOW와 Word2Vec이 있으며, BOW는 대표적으로 Count 기반과 TF-IDF 기반 벡터화가 있음.
3. ML 모델 수립 및 학습/예측/평가
피처 벡터화된 데이터셋에 ML 모델을 적용해 학습/예측 및 평가를 수행.
텍스트 전처리
클렌징 Cleansing
텍스트에서 분석에 오히려 방해되는 불필요한 문자, 기호 등을 사전에 제거하는 작업.
ex. HTML, XML 태그나 특정 기호 등을 사전에 제거
토큰화 Tokenization
텍스트 시퀀스가 주어졌을 때, 여러 개 조각으로 나누는 작업(문장 토큰화 / 단어 토큰화)
토큰(Token) : 나눠진 조각. 분석 과정의 기본 단위.
N-gram
토큰을 구성하는 조각의 수에 따라 구분.
유니그램 Unigram : 토큰이 하나의 조각으로 구성
바이그램 Bigram: 토큰이 2개의 연속된 조각으로 구성
트라이그램 Trigram : 토큰이 3개의 연속된 조각으로 구성
n-그램 N-gram : 토큰이 N개의 연속된 조각으로 구성
*예를 들어 유니그램만 사용하면 복합명사를 놓치는 경우도 있으므로 적절히 섞어서 사용해야 한다.
스톱워드 제거 및 필터링
스톱워드(Stop word) : 분석에 큰 의미가 없는 단어
ex. is, the, a, will.etc
품사 태깅 POS tagging
주어진 텍스트 시퀀스에 있는 각 토큰에 적절한 품사태그를 붙이는 작업
Penn TreeBank POS Tagset
NER Name Entity Recognition
텍스트 시퀀스가 주어졌을 때 단어 또는 구문을 사람 이름, 회사 이름, 지역 이름처럼 명확한 카테고리에 지정하고 식별하는 작업
어간 추출 Stemming과 표제어 원형 복원 Lemmatization
어간 추출 Stemming
: 어근에서 변화되거나 파생된 단어를 원형으로 되돌리는 작업.
원형 단어로 변환 시 일반적인 방법을 적용하거나 더 단순화된 방법을 적용해 원래 단어에서 일부 철자가 훼손된 어근 단어를 추출하는 경향.
표제어 원형 복원 Lemmatization
: 어간 추출보다 좁은 의미의 작업.
명사만 원형 복원.
추출 결과 원형이 불완전하면 사전에서 가장 유사한 명사를 선택.
품사와 같은 문법적인 요소와 더 의미적인 부분을 감안해 정확한 철자로 된 어근 단어를 찾아줌.
Stemming 보다 시간이 오래 걸림.
텍스트 특성(문서 모델링)
문서 모델 : 문서를 특성과 그에 따른 값으로 표현한 것
문서를 일종의 단어 집합(Bag of words)로 표현할 수 있음.
단어 빈도나 단어 순서나 스피치 태그 등의 활용방법 있음.
최근엔 딥러닝 기반의 Word-Embedding(단어벡터를 의미공간에 배치) 방법도 많이 사용.
ex. Word2Vec, Doc2Vec
텍스트 특성에는 단어 출현 여부, 단어의 출현 빈도, 관련 측정값 등이 있을 수 있다.
BOW 모델은 문서가 가지는 모든 단어를 문맥이나 순서를 무시하고 일괄적으로 단어에 대해 빈도 값을 부여해 피처 값을 추출하는 모델.(양념감자 흔들어 먹는 것처럼!)
BOW의 한계
- 문맥 의미 반영 부족
- 희소 행렬 문제
*희소 행렬 : 대규모의 칼럼으로 구성된 행렬에서 대부분의 값이 0으로 채워지는 행렬. 일반적으로 ML 알고리즘의 수행 시간과 예측 성능을 떨어뜨림.
BOW 모델의 피터 벡터화 방식
1. 카운트 기반의 벡터화
TF (Term Frequency) : 출현 빈도
문서가 존재하는 특성 공간이 각 단어들로 표현됨.
단점 : 카운트만 부여할 경우 대부분의 문서에서 일반적으로 많이 나오는 단어들 중 언어의 특성상 문장에서 자주 사용될 수밖에 없는 단어도 TF값이 높음. 문서의 고유한 특징을 잘 표현하지 않을 수 있음.
2. TF-IDF(Term Frequency - Inverse Document Frequency)
여러 문서에서 나온 단어에 패널티를 주는 방식.
개별 문서에서 자주 나타나는 단어에 높은 가중치를 주되, 모든 문서에서 전반적으로 나타나는 단어에 대해서는 페널티 부여.
참고
학교 수업자료
책 <파이썬 머신러닝 완벽 가이드>
https://ai-creator.tistory.com/595 - 실습
Lecture 2: N-gram Kai-Wei Chang CS @ University of Virginia kw@kwchang. net Couse webpage: http: //kwchang.net/teaching/NLP 16 CS 6501: Natural Language Processing 1
https://m.blog.naver.com/bycho211/221893460325
https://www.slideshare.net/gyuhyeonNam/ss-137447021