머신러닝 및 딥러닝

Tokenizer에 종류

AlgoPoolJa 2022. 3. 1. 21:03
  1. 단어 단위로 Tokenize
  2. 글자단위로 Tokenize
  3. 하위 단위로 Tokenize

단어 단위로 Tokenize

  • 장점 : 가장 간단하다(space 단위로 tokenize 를 하면 되니까)
  • 단점
    • 비슷한 단어끼리 의미를 공유하는 단어의 의미가 없어지게 된다.
    • 단어가 굉장히 많기 때문에 거의 무한개의 토큰수가 생성된다.
    • 토큰수를 한정하면 vocab에 해당 단어가 없을 경우 OOV가 되기 때문에 실제로 굉장히 뜻이 다른 단어지만 같은 Representaion으로 표현된다.

글자 단위로 Tokenize

  • 장점 :
    • 가장 적은 vocab 사이즈로 모든 표현이 가능하다.
  • 단점 :
    • 각각의 토큰의 의미를 거의 가지지 않는다.
    • 모델의 입력으로 들어가게 될 때 굉장히 긴 sequence로 들어가기 제약이 많다.

subword 로 Tokenize(가장 좋음)

결론 : 자주 사용되는 단어들은 작은 subwords들로 나눠지는 것이 좋지 않다. , 자주 사용되지 않는 단어들은 의미있는 subwords들로 분리 될 수 있게하자.

 

ETC

실제로 tokenize 된 결과를 보면

이렇게 앞에 ## 가 붙은경우가 왕왕 보인다. 이는 단어의 시작이 아니라는 의미이다. 즉, izaition 은 단어의 첫 시작이 ization으로 시작되었다는 의미이지만 ##ization 단어의 첫 시작이 다른 토큰으로 시작되었고 ization은 그 토큰 뒤에 나온다는 의미이다.

Tokenizer에 종류

  1. 단어 단위로 Tokenize
  2. 글자단위로 Tokenize
  3. 하위 단위로 Tokenize

단어 단위로 Tokenize

  • 장점 : 가장 간단하다(space 단위로 tokenize 를 하면 되니까)
  • 단점
    • 비슷한 단어끼리 의미를 공유하는 단어의 의미가 없어지게 된다.
    • 단어가 굉장히 많기 때문에 거의 무한개의 토큰수가 생성된다.
    • 토큰수를 한정하면 vocab에 해당 단어가 없을 경우 OOV가 되기 때문에 실제로 굉장히 뜻이 다른 단어지만 같은 Representaion으로 표현된다.

글자 단위로 Tokenize

  • 장점 :
    • 가장 적은 vocab 사이즈로 모든 표현이 가능하다.
  • 단점 :
    • 각각의 토큰의 의미를 거의 가지지 않는다.
    • 모델의 입력으로 들어가게 될 때 굉장히 긴 sequence로 들어가기 제약이 많다.

subword 로 Tokenize(가장 좋음)

결론 : 자주 사용되는 단어들은 작은 subwords들로 나눠지는 것이 좋지 않다. , 자주 사용되지 않는 단어들은 의미있는 subwords들로 분리 될 수 있게하자.

 

ETC

실제로 tokenize 된 결과를 보면

이렇게 앞에 ## 가 붙은경우가 왕왕 보인다. 이는 단어의 시작이 아니라는 의미이다. 즉, izaition 은 단어의 첫 시작이 ization으로 시작되었다는 의미이지만 ##ization 단어의 첫 시작이 다른 토큰으로 시작되었고 ization은 그 토큰 뒤에 나온다는 의미이다.

Tokenizer에 종류

  1. 단어 단위로 Tokenize
  2. 글자단위로 Tokenize
  3. 하위 단위로 Tokenize

단어 단위로 Tokenize

  • 장점 : 가장 간단하다(space 단위로 tokenize 를 하면 되니까)
  • 단점
    • 비슷한 단어끼리 의미를 공유하는 단어의 의미가 없어지게 된다.
    • 단어가 굉장히 많기 때문에 거의 무한개의 토큰수가 생성된다.
    • 토큰수를 한정하면 vocab에 해당 단어가 없을 경우 OOV가 되기 때문에 실제로 굉장히 뜻이 다른 단어지만 같은 Representaion으로 표현된다.

글자 단위로 Tokenize

  • 장점 :
    • 가장 적은 vocab 사이즈로 모든 표현이 가능하다.
  • 단점 :
    • 각각의 토큰의 의미를 거의 가지지 않는다.
    • 모델의 입력으로 들어가게 될 때 굉장히 긴 sequence로 들어가기 제약이 많다.

subword 로 Tokenize(가장 좋음)

결론 : 자주 사용되는 단어들은 작은 subwords들로 나눠지는 것이 좋지 않다. , 자주 사용되지 않는 단어들은 의미있는 subwords들로 분리 될 수 있게하자.

 

ETC

실제로 tokenize 된 결과를 보면

이렇게 앞에 ## 가 붙은경우가 왕왕 보인다. 이는 단어의 시작이 아니라는 의미이다. 즉, izaition 은 단어의 첫 시작이 ization으로 시작되었다는 의미이지만 ##ization 단어의 첫 시작이 다른 토큰으로 시작되었고 ization은 그 토큰 뒤에 나온다는 의미이다.

Tokenizer에 종류

  1. 단어 단위로 Tokenize
  2. 글자단위로 Tokenize
  3. 하위 단위로 Tokenize

단어 단위로 Tokenize

  • 장점 : 가장 간단하다(space 단위로 tokenize 를 하면 되니까)
  • 단점
    • 비슷한 단어끼리 의미를 공유하는 단어의 의미가 없어지게 된다.
    • 단어가 굉장히 많기 때문에 거의 무한개의 토큰수가 생성된다.
    • 토큰수를 한정하면 vocab에 해당 단어가 없을 경우 OOV가 되기 때문에 실제로 굉장히 뜻이 다른 단어지만 같은 Representaion으로 표현된다.

글자 단위로 Tokenize

  • 장점 :
    • 가장 적은 vocab 사이즈로 모든 표현이 가능하다.
  • 단점 :
    • 각각의 토큰의 의미를 거의 가지지 않는다.
    • 모델의 입력으로 들어가게 될 때 굉장히 긴 sequence로 들어가기 제약이 많다.

subword 로 Tokenize(가장 좋음)

결론 : 자주 사용되는 단어들은 작은 subwords들로 나눠지는 것이 좋지 않다. , 자주 사용되지 않는 단어들은 의미있는 subwords들로 분리 될 수 있게하자.

 

ETC

실제로 tokenize 된 결과를 보면

이렇게 앞에 ## 가 붙은경우가 왕왕 보인다. 이는 단어의 시작이 아니라는 의미이다. 즉, izaition 은 단어의 첫 시작이 ization으로 시작되었다는 의미이지만 ##ization 단어의 첫 시작이 다른 토큰으로 시작되었고 ization은 그 토큰 뒤에 나온다는 의미이다.