Tokenizer, Lexer, Parser

L3C4Y4 velog·2024년 7월 20일

Tokenizer

Tokenizer란 어떠한 구문이나 텍스트를 여러 개의 Token으로 나누는 것을 의미합니다. 여러 개의 Token으로 나눠 모델에서 처리할 수 있는 데이터로 변환하는 것입니다.

단어 기반 토큰화 (Word Tokenizer)

  • 주로 많이 사용하고 간단한 규칙으로 토큰화하는 단어 기반 토큰화 입니다.
  • “I Love Swift”[”I”, “Love”, “Swift”]

문자 기반 토큰화 (Character Tokenizer)

  • 문자 기반 토큰화는 문자 하나하나 단위로 토큰화합니다.
  • “Swift Language”["S", "w", "i", "f", "t", " ", "L", "a", "n", "g", "u", "a", "g", "e"]

하위 단어 토큰화 (Subword Tokenization)

  • 단어를 더 작은 의미 단위로 분할하는 하위 단어 토큰화입니다.
  • "Let's do tokenization”["Let's" "do", token", "ization"]

Lexer

LexerTokenizer 로 의미있는 단어로 Token 을 나눈 후 토큰의 의미를 분석하는 역할을 합니다.

let a = 24

위와 같은 변수 선언 및 초기화하는 코드를 Tokenizer를 진행하여 아래와 같이 구분을 해보자

"let a = 24".split(separator: " ")
// ["let", "a", "=", "24"]

이후 Lexer 과정으로 나누어진 토큰들을 분석을 해보자면 아래와 같이 분석할 수 있다

"let": 키워드
"a": 식별자
"=": 할당 연산자
"24":

Parser

ParserTokenizer, Lexer 과정으로 토큰화된 데이터를 구조적으로 나타내게 하는 과정입니다.

{
	"Codes": [
		"keyword": "let",
		"identifier": "a",
		"operator": "=",
		"value": "24"
	]
}
profile
iOS 관련 정보들을 정리해두었습니다.

0개의 댓글