본문 바로가기

Developer Diary

NLP (자연어 처리)

23.01.01

 


자연어 처리 (Natural Language Processing)

 

자연어 처리란,

컴퓨터가 인간의 언어를 이해, 생성, 조작할 수 있도록 해주는 인공지능(AI)의 한 분야

 

자연어 텍스트 또는 음성으로 데이터를 상호 연결하는 것으로

'언어 입력(language in)'이라고도 한다. 

 

Oracle Digital Assistant(ODA)나 Siri, Cortana, Alexa와 같은 가상 도우미의 핵심 기술

웹 검색, 스팸 메일 필터링, 텍스트 또는 음성 자동 번역, 문서 요약, 감정 분석, 문법/철자 검사 등이 있다.

 

쉽게 설명하면 자연어 처리인간이 사용하는 언어를 컴퓨터가 인식하게 학습 하는것.

 


🔥 NLP의 영역 🔥

 

 

💡 자연어 이해(Natural Language Understanding)

 

컴퓨터를 사용하여 인간의 언어를 이해하는 것

 

과거에는 사용자가 원하는 자연어를 이해하는데 수 많은 데이터가 필요했지만,

자연어 이해를 사용한 모델을 통해

과거의 단점을 보완하였다.

 

Human : "날씨 알려줘."

 

Computer : (날씨 알려줘 의미 확인 # 자연어 이해) ▶ (수 많은 날씨관련 데이터 검색) (H가 원하는 결과물 전달)

 

 

💡 자연어 생성(Natural Language Generation) = '언어 출력(language out)'

 

컴퓨터를 사용하여 인간의 언어를 생성는 것

= 컴퓨터의 학습 결과를 사람의 언어를 표현하는 기술

 

대표적인 예시로 챗봇(Chat Bot)이 있다.

 

NLU과정에서 한 단계 진화하여이해 + 생성의 기술을 구현하는것.

 


출처 : Oracle


🔥 NLP 머신러닝 기술 🔥

 

NLP는 현재 머신러닝에 크게 의존한다.

 

때문에 이를 학습시키기 위해서

다양한 데이터 세트의 예시문을 활용해 예측을 수행한다.

 

그 결과 문장이 지닌 감정을 예측하는 모델을 만들 수 있으며

= 문서 분류 모델 (Document Classification Model)

 

문서의 개체(entity)인식하고 분류하는 모델이 만들어졌고

= 시퀀스 레이블링 모델(Sequence Labeling Model)

 

문서입력값으로 사용하지만 문장이나

다른 시퀀스출력값으로 생성하는 모델도 생성되었다.

= 시퀀스 투 시퀀스(Sequence-to-sequence) 모델

# 번역기

 


 

🔥 NLP 전처리 기술 🔥

 

인간의 언어란 약속이 존재한다.

같은 모양의 글자지만 각각의 순서위치에 따라

의미가 달라지며 문법또한 각 언어마다 다르다.

 

이를 컴퓨터가 정확히 인지하고 학습하기 위해

자연어 또한 전처리 기술이 필요하다.


1. 토큰화 (Tokenization)

 

토큰화는 원시 텍스트 # 코퍼스 (corpus)단어 또는 단어 조각토큰 시퀀스로 분할하는 것을 말한다.

 

쉽게 설명하면, 내가 지키고 싶은 의미를 가진 단어를

토큰으로 만들어주는 것이다.

= 최소 의미 단위로 치환된다.

 

 코퍼스 (corpus)

= 자연언어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 집합.

 


2. 단어 주머니 모델(Bag-of-words models, BOW)

 

빈도수 기반의 단어 표현 방법으로 단어들의 가방이라는 의미

 

보통 각 단어에 고유한 인덱스를 부여하고

인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 백터를 만든다.

 


3. 불용어 (Stop word) 제거

 

✔ 불용어

= 분석 목적상 큰 도움이 되지 않는 단어들

 

유의미한 토큰들만 선별하기 위해서

의미없는 토큰제거하는 과정

 

조사와 접미사 같은 경우 자주 등장하지만

학습하는데 있어서는 기여도가 적음

 


4. 어간 추출(Stemming) 및 표제어 추출(Lemmatization)

= 정규화 기법 중 코퍼스에 있는 단어의 개수를 줄일 수 있는 기법

 

시각적으로는 다른 단어이지만,

하나의 단어로 일반화 시킬 수 있다면 일반화 시켜

가지고 있는 코퍼스로부터 복잡성을 줄이기 위함

 

💡 어간 추출(Stemming)

 

✔ 어간(Steam)이란 단어의 의미를 담고 있는 단어의 핵심 부분을 뜻한다.

 

형태론 및 정보 검색 분야에서 어형이 변형된 단어로부터

접사 등을 제거하고 그 단어의 어간을 분리해 내는 것을 의미한다.

 

접사 (Affix)

= 단어에  추가적인 의미를 주는 부분.

 

 

💡 표제어 추출(Lemmatization)

 

✔ 표제어(Lemma)란 기본 사전형 단어를 의미한다.

표제어 추출이란 단어들로부터 표제어를 찾아가는 과정.

 

단어의 형태가 다르더라도 뿌리 단어를 찾아가서 단어의 수를 줄일 수 있는지 판단.

 

단어의 형태학적 파싱을 먼저 진행하는것이 가장 섬세하다.

 

 형태소(Morpheme)

= 의미를 가진 가장 작은 단위

어간(Stem)과 접사(Affix)가 존재한다.

 

 

형태학(Morphology)

= 형태소로부터 단어들을 만들어가는 학문

 


출처 :  Oracle

 

 

출처 : Oracle

'Developer Diary' 카테고리의 다른 글

Toy Project 5일차  (0) 2023.01.03
Toy Project 4일차  (0) 2023.01.03
확률 변수 & 분포  (0) 2022.12.26
시계열 분석  (0) 2022.12.25
Toy Project 3일차  (0) 2022.12.23