1. 자연어 처리란?
자연어 : 사람들이 일상적으로 쓰는 언어를 인공적으로 만들어진 언어인 인공어와 구분하여 부르는 개념
자연어 처리 : 일상생활에서 사용하는 언어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 과정
자연어 처리 특징
- 딥러닝에 대한 이해 + 인간 언어에 대한 이해 필요
- 자연어 처리를 위해 사용되는 용어가 익숙하지 않음
- 언어 종류가 다르고 그 형태가 다양함
- 예) 영어 : 띄어쓰기 有, 중국어 : 띄어쓰기 無 → 단어 단위의 임베딩이 어려움
1.1 자연어 전처리 관련 용어
① 말뭉치 (corpus)
자연어 처리에서 모델을 학습시키기 위한 데이터
② 토큰 (token)
자연어 처리시 텍스트는 작은 단위로 나누어야하는데 이때 텍스트를 나누는 단위를 의미
③ 토큰화 (tokenization)
텍스트를 문장이나 단어로 분리하는 것
토큰화 단계를 마치면 텍스트 ➡ 단어 단위로 분리됨
④ 불용어 (stop words)
문장 내에서 많이 등장하는 단어
자주 등장해서 의미가 없는 단어는 자연어 처리의 효율성 감소, 처리 시간을 길어지게 함
➡ 사전에 제거 必
불용어 예) a, the, she, he 등
⑤ 어간 추출 (stemming)
단어를 기본 형태로 만드는 작업
예) consign, consigned, consigning, consignment ➡ consign
⑥ 품사 태깅 (part-of-speech tagging)
주어진 문장에서 품사를 식별하기 위해 붙여 주는 태그
예) A ➡ Det, cat ➡ Noun, is ➡ Verb
⑦ 정규화 (normalization)
표현 방법이 다른 단어들을 통합시켜 같은 단어로 만들어줌
예) USA와 US ➡ 같은 의미로 해석되도록 만들어줌
1.2 자연어 처리 과정
① 입력 텍스트로 자연어가 들어옴
- 언어에 따른 처리 방식이 조금씩 다름
- 현재는 영어에 대한 처리 방법들이 잘 알려져 있음
② 입력된 텍스트에 대한 전처리
③ 전처리가 끝난 단어들을 숫자 형태인 벡터로 변환하는 임베딩
④ 모델/모형(결정 트리, svm 등)을 이용하여 데이터에 대한 분류 및 예측을 수행
2. 임베딩이란?
사람이 사용하는 언어(자연어)를 컴퓨터가 이해할 수 있는 언어인 숫자 형태(벡터)로 변환한 결과 또는 과정
예) banking = [ 0.286, 0.792, -0.177, 0.109, -0.541, 0.349, 0.271 ]
임베딩 역할
- 단어 및 문장 간 관련성 계산
벡터 간의 코사인 유사도를 구해 자연어 간의 관련성 계산 가능
- 의미적 혹은 문법적 정보의 함축
단어를 벡터로 만들고 나면, 더하기나 빼기 등의 사칙 연산이 가능
→ 의미적/문법적 차이를 계산할 수 있음
예) 아들 - 딸 = 소년 – 소녀 : 두 단어간 의미 차이를 함축하고 있으므로 성공적인 임베딩 !
2.1 임베딩 기법
① 희소 표현 기반 임베딩
대표 기법 : 원-핫 인코딩
· 단어 N개를 각각 N차원의 벡터로 표현하는 방식
· 예) 딕셔너리에 [calm, fast, cat] ➡ fast를 표현하는 벡터는 [0, 1, 0]
② 횟수 기반 임베딩
단어가 출현한 빈도를 고려하여 임베딩하는 방법
대표 기법 : 카운터 벡터, TF-IDF(Term Frequency-Inverse Document Frequency)
③ 예측 기반 임베딩
신경망 구조/모델을 이용, 특정 문맥에서 어떤 단어가 나올지를 예측하면서 단어를 벡터로 만듦
대표 기법 : 워드투벡터
④ 횟수/예측 기반 임베딩
횟수 기반과 예측 기반의 단점을 보완하기 위한 임베딩 기법
대표 기법 : 글로브
2.2 임베딩 결과 이용
단어 및 문장 간 관련성 계산
- peter와 wendy, peter와 hook의 유사성 확인
- cherry와 유사한 단어의 리스트를 반환
- woman, king과 유사성이 높으면서 man과 관련성이 없는 단어를 반환
주어진 단어 뒤에 등장할 단어 예측
- 과일 뒤에 등장할 단어 2개 예측
3. 자연어 처리 이용 분야
텍스트 자동 완성, 언어 번역, 디지털 전화 통화, 정서 분석, 텍스트 분류, 음성 인식 · · ·
- 완성도 높은 자연어 처리 분야 : 스팸 처리, 맞춤법 검사, 단어 검색, 객체 인식
- 완성도가 낮아 더 발전이 필요한 자연어 처리 분야 : 질의응답, 요약, 유사 단어 바꾸어 쓰기, 대화
한국어 임베딩(이기창 지음)과 딥러닝 텐서플로 교과서(서지영)를 기반으로 작성한 글입니다.
'GDSC Sookmyung 활동 > 10 min Seminar' 카테고리의 다른 글
쿠키 vs 세션 vs 토큰 (0) | 2022.05.02 |
---|---|
Web 3.0이란? (0) | 2022.04.04 |
Shader란? (0) | 2022.03.07 |
Promise와 async/await (0) | 2022.02.28 |
#야나도#쿠버네티스#들어봤어 (0) | 2022.02.28 |