본문 바로가기
AI 인공지능

자연어처리(NLP) 기본 용어 정리

by 테크구루스 2023. 3. 21.

이 글은 파이토치로 배우는 자연어처리(O'REILLY, 한빛미디어)를 공부한 내용을 바탕으로 작성하였습니다.

 

 

1. 말뭉치(corpus) : 텍스트 데이터와 그와 연관된 메타데이터를 원소로 하는 집합

 

2. 메타데이터: 식별자, 레이블, 타임스탬프 등 텍스트와 관련된 부가정보

 

3. 샘플, 데이터 포인트: 메타데이터가 붙은 텍스트

 

4. 샘플의 모음: 말뭉치, 데이터셋

 

5. 토큰화: 텍스트를 토큰으로 나누는 과정. 의미있는 단위로 토큰을 설정하고 토큰을 기준으로 corpus를 나눈다. 

ex) Tweet 텍스트 토큰화 하기

from nltk.tokenize import TweetTokenizer
tweet = u"Snow White and the Seven Degrees
		#MakeMovieCold@midnight:-)"
tokenizer = TweetTokenizer()
print(tokenizer.tokenize(tweet.lower()))

토큰화 결과

6. 특성 공학 (feature engineering) : 데이터를 더욱 효과적으로 활용하기 위해 데이터 테이블에 하는 작업. 특징선택(feature selection), 차원축소(feature extraction) 등

 

7. n-그램 : 텍스트에 있는 고정 길이(n)의 연속된 토큰 시퀀스

code) 텍스트에서 n-그램 만들기

def n_grams(text, n):
	return [text[i:i+n] for i in range(len(text)-n+1]

cleaned = ['mary', ',', "n't", 'slap', 'green', 'witch', '.']
print(n_grams(cleaned, 3))

n_gram 토큰화 결과

8. 표제어 (lemma) 추출 : 단어의 기본형으로 토큰화, ex) fly(기본형) -> flew, flies, flown, flying

 

9. 어간 (stem) 추출 : 수동으로 정해놓은 규칙에 맞게 어미를 잘라내 어간만 남겨 토큰화,

ex) bone(어간) -> bones, singl(어간) -> single

 

10. 품사(POS), 태깅(tagging) : 단어나 토큰에 레이블(품사)을 할당(태깅)하는 방법.

 

11. 청크 나누기, 부분 구문 분석 : 명사구, 동사구 등 몇개의 단어가 문법적 요소로 묶인 부분으로 구분

 

12. 개체명 (named entity) : 사람이름, 사물, 기관 등 단어가 어떤 속성을 갖고 있는지 태깅하는 방법

 

13. 구문 분석 : 트리 형태로 문장 안의 문법 요소가 계층적으로 어떻게 관련되는지 표현(구성 구문 분석),

                        각 구가 서로 어떤 관계를 갖는지 표현(의존 구문 분석)