0. 용어정리
자연어(Natural Language)
- 사람들이 쓰는 언어 활동을 위해 자연히 만들어진 언어
자연어 처리(Natural Language Processing, NLP)
- 컴퓨터가 인간의 언어를 이해하고 해석 및 생성하기 위한 기술
- 컴퓨터가 인간과 유사한 방식으로 인간의 언어를 이해하고 처리하도록 하는 것이 목표
말뭉치(corpus)
- 자연어 모델을 훈련하고 평가하는 데 사용되는 대규모의 자연어
- 목적에 따라 구축되는 텍스트 데이터(뉴스 기사, 사용자 리뷰, 저널, 칼럼 등)
- 일련의 단어의 가능성을 예측하는 알고리즘(= 언어 모델) 구축/평가에 자주 사용됨
토큰(token)
- 개별 단어 및 문장 부호 등의 텍스트
- 말뭉치보다 더 작은 단위
- 텍스트의 개별 단어, 구두점 또는 기타 의미 단위
- 토큰화(tokenization)
- 컴퓨터가 자연어를 이해할 수 있게 나누는 과정
- 토크나이저(tokenizer)
- 텍스트 문자열을 토큰으로 나누는 알고리즘/소프트웨어
- 구축 방식)
- 공백 분할: 텍스트를 공백 단위로 분리해 개별 단어로 토큰화
- 정규표현식 적용: 정규 표현식으로 특정 패턴을 식별해 텍스트를 분할
- 어휘 사전 적용: 사전에 정의된 단어 집합을 토큰으로 사용
- 머신러닝 활용: 데이터 세트를 기반으로 토큰화하는 방법을 학습한 머신러닝 적용
1. 단어 및 글자 토큰화
단어 토큰화(Word Tokenization)
- 텍스트 데이터를 의미 있는 단위인 단어로 분리하는 작업
- 단어 토큰화는 띄어쓰기, 문장 부호, 대소문자 등의 특정 구분자를 활용해 수행
- 품사 태깅, 개체명 인식, 기계 번역 등의 작업에서 널리 사용됨
split() 메서드를 통해 쉽게 토큰화 가능
- 주어진 구분자를 통해 문자열을 리스트 데이터로 나눠주는 역할(default: 공백)
- 한국어 접사, 문장 부호, 오타 혹은 띄어쓰기 오류 등에 취약하다는 단점 존재