티스토리 뷰

1. 자연어 처리의 전처리

토큰화(Tokenization) : 데이터를 문장, 단어 또는 서브워드 등 작은 단위로 분리하는 과정으로, 토큰화를 통해 텍스트 데이터를 더 쉽게 다룰 수 있다.

문서, 문장 > 토큰들의 시퀀스 > 문장 or 단어 or 서브워드의 시퀀스

[str] > list([str])

 

몇개의 예외를 제외하고 토큰화가 가능한 영어와 달리 한국어는?

ex) don’t, don’t, dont, do n’t

영어는 공백을 기준으로 단어가 구분되기 때문에 비교적 쉽다. 그렇지만, 한국어는 영어와 달리 조사, 어미 등으로 인해 단어의 경계를 찾기 어렵다.

 

ex) 그가 말하길, 그는 어릴 때 그와 그의 동생과 함께 모험을 떠났다고 한다.

 

이 문장을 띄어쓰기로 한다면 "그"를 모두 다른 글자로 인식하게 된다.

➡️ 그에는 하나의 인덱스를 부여하고, 토큰을 나누어 인덱스 부여하고 조사를 떼보는 작업을 하면 된다.

 

토큰나이저 도구로 현업에서는 속도면에서 우월성을 가지는 mecab이라는 패키지를 쓴다. 

이름과 같은 것들은 unknown 토큰으로 분류한다.

 

OOV Out of Vocabularly

모르는 단어로 인해 문장 분석이 어려워질 수 있는 상황이 발생 > 신조어, 오타때문!

 

해결방안 :

BPE(Byte Pair Encoding) 기반의 토큰화를 많이 사용한다.

BPE는 비지도 학습으로 단어를 작은 서브워드로 나누어 빈도수를 기반으로 학습하고, 이를 통해 OOV 문제를 완화할 수 있다.

2. 텍스트 정규화 :

1. Lemmatization 

  • 영어에서 더 많이 사용하는 것으로 표제어 추출해서 단어의 기본적인 형태를 복원하는 작업
  • 엄격하고, 사전의 원형을 찾는 것이 목적이다.

2. Stemming 

  • 단어의 어간을 규칙 기반으로 추출하는 작업으로, Lemmatization보다 정교하지 않다.
  • normalization은 잘되는 편이다.
  • 대략적인 어간을 찾는 것이다.

3. 불용어 처리  : stopword

  • 내가 분석하고자 하는 task 에서 token 이 무의미하다고 느껴지는 경우에 쓰인다.
  • 한국어 기준으로 조사를 말한다.(예를 들어, 리뷰 분석 시 조사 같은 것들은 필요한 정보가 아님)
  • 한국어 불용어 사전 하면 나오기 때문에 검색해서 찾아야한다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함