[NLP/자연어처리] 단어 토큰화(Word Tokenization)

2023. 6. 27. 22:34·🤖 ai logbook
728x90
반응형

reference

더보기

https://wikidocs.net/book/8027

https://www.wikidocs.net/book/2155

 
NLP(Natural Language Processing) 작업을 위해 텍스트 데이터를 수집해야 한다.
이 때의 텍스트 데이터를 Corpus라 한다.
이렇게 수집된 Corpus를 사용하기 위하여 데이터를 Tokenization하는 과정이 필요하며,
여기서 '토큰(token)'은 텍스트에서 의미를 갖는 최소 단위로 분할된 단어, 문장 부호, 숫자 등을 의미한다.
여기서 '토큰화'를 수행하는 도구가 '토크나이저(tokenizer)'이다.
 

1. 말뭉치 ( corpus )

텍스트 데이터의 집합
ex) Google Corpora
https://www.english-corpora.org/googlebooks/

 

2. Word Tokenization

 

Tokenization

더 작은 단위로 분할하는 프로세스
 

“Let us learn tokenization.”

Word -> [“Let”, “us”, “learn”, “tokenization.”]
Subword -> [“Let”, “us”, “learn”, “token”, “ization.”]
Character -> [“L”, “e”, “t”, “u”, “s”, “l”, “e”, “a”, “r”, “n”, “t”, “o”, “k”, “e”, “n”, “i”, “z”, “a”, “t”, “i”, “o”, “n”, “.”]
 

Word Normalization

표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만듬
 

Case folding (대, 소문자 통합)

대소문자를 구분하지 않고 모두 소문자로 바꾸는 것. 이 과정을 거치면 대소문자를 구분하지 않고 문자열을 비교할 수 있다.
 

Lemmatization (표제어 추출)

단어의 원형을 찾는 과정
이 과정을 거치면 단어의 형태가 변하지 않고 원형을 찾아낼 수 있다.
예를 들어, “am”, “is”, "are"와 같은 동사를 원형인 "be"로 바꿀 수 있다.
  ➡ Morphological Parsing
  Stems와 Affixes를 분석하는 과정
  이 과정을 거치면 단어의 형태소를 찾아낼 수 있다.
  Lemmatization은 이러한 형태소 분석을 통해 단어의 원형을 찾는 과정이다.
  Stems (어간) : 단어의 핵심 부분
  Affixes (접사) : 단어의 접두사나 접미사
 

Stemming (어간 추출)

단어의 어근을 찾아내는 과정
이 과정을 거치면 단어의 어근을 추출할 수 있다.
예를 들어, “running”, “runs”, "ran"은 모두 "run"이라는 어근을 가지고 있다.

Lemmatization vs Stemming
Lemmatization
am → be
the going → the going
having → have
Stemming
am → am
the going → the go
having → hav

 
 

Subword tokenization

단어를 의미 단위로 나누는 것이 아니라, 의미 단위보다 작은 단위(subword)로 나누는 것
 
알고리즘

  • Byte Pair Encoding (BPE)
  • WordPiece
  • SentencePiece, Unigram 

 

Byte-Pair Encoding (BPE)

논문 : https://arxiv.org/pdf/1508.07909.pdf

transformer-based models에 널리 사용되는 토큰화 방법
가장 많이 등장하는 문자열 쌍을 하나의 문자로 대체하는 과정을 반복하여 subword를 만듬.
 
BPE 과정

1. 말뭉치의 모든 단어에 단어 끝 기호를 추가한다. ( "__" )
2. 말뭉치의 단어를 문자로 토큰화한다.
 

728x90
반응형

'🤖 ai logbook' 카테고리의 다른 글

[NLP/자연어처리] 자연어 처리에서의 순환 신경망 (RNN in Natural Language Processing)  (0) 2023.07.01
[cs231n/Spring 2023] Lecture 4: Neural Networks and Backpropagation  (0) 2023.07.01
[NLP/자연어처리] 정보 검색 & 단어 임베딩(Information Retrieval & Word Embedding)  (0) 2023.07.01
[NLP/자연어처리] 감정 분석 & 문장에 대한 확률 (Sentiment Classification & Probabilities to Sentences)  (0) 2023.06.29
[NLP/자연어처리] 언어 모델에서의 나이브베이즈 (Naive Bayes as a Language Model)  (1) 2023.06.28
[NLP/자연어처리] 언어 모델링(Language Modeling)  (0) 2023.06.28
[cs231n/Spring 2023] Lecture 3: Regularization and Optimization  (0) 2023.06.26
[cs231n/Spring 2023] Lecture 2: Image Classification with Linear Classifiers  (0) 2023.06.18
'🤖 ai logbook' 카테고리의 다른 글
  • [NLP/자연어처리] 언어 모델에서의 나이브베이즈 (Naive Bayes as a Language Model)
  • [NLP/자연어처리] 언어 모델링(Language Modeling)
  • [cs231n/Spring 2023] Lecture 3: Regularization and Optimization
  • [cs231n/Spring 2023] Lecture 2: Image Classification with Linear Classifiers
이소야
이소야
✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 이소야
    I study SO
    이소야
    ✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 전체
    오늘
    어제
    • 분류 전체보기 (217)
      • 🤖 ai logbook (39)
      • 💻 developers logbook (1)
      • 🥇 certification logbook (67)
      • ⚖️ legal logbook (108)
      • ⚡ electronics logbook (1)
      • 🌍 english logbook (0)
      • 🎁 etc (1)
  • 최근 글

  • 인기 글

  • 태그

    머신러닝
    Python
    빅데이터분석기사
    데이터분석준전문가
    IBM
    민법
    형법
    근로기준법
    온라인 강의 추천
    datascience
    ADsP
    자격증
    certificate
    인공지능 입문
    Coursera
    deeplearning
    데이터사이언스 입문
    기본권의기초이론
    방통대
    법학과
  • hELLO· Designed By정상우.v4.10.3
이소야
[NLP/자연어처리] 단어 토큰화(Word Tokenization)
상단으로

티스토리툴바