테스트 커버리지는 다음과 같이 측정합니다. 입력 문자열
["테스트", " 커버리지는", " 다음과", " 같이", " 측정합니다."] Pretoken
[[237, 133, 140, 236, 138, 164, 237, 138, 184], [32, 236, 187, 164, 235, 178, 132, 235, 166, ...], ...] UTF-8 (정수 표현)
byte-pair 빈도 계산
// 빈도를 계산하기 위한 임시 맵
{
(237, 133): 4,
(236, 138): 3,
...
}
가장 많이 나타나는 byte-pair를 새로운 토큰으로 대치
// 어휘 맵
{
... // 0 ~ 255 기존 ASCII 코드
256: (237, 133) // 새로운 커스텀 토큰
257: (256, 124) // 커스텀 토큰도 byte-pair에 들어갈 수 있음 -> 디코딩 시 DFS 사용
}
[[256, 140, 236, 138, 164, 237, 138, 184], [32, 236, 187, 164, 235, 178, 132, 235, 166, ...], ...] ( 237, 133 이 256 으로 대치됨)
byte-pair 빈도를 계산하고 새로운 토큰으로 대치하는 과정을 반복함
테스트 커버리지는 다음과 같이 측정합니다. 입력 문자열[237, 133, 140, 236, 138, 164, 237, 138, 184, 32, 236, 187, 164, 235, 178, 132, 235, 166, ...] UTF-8 (정수 표현)[256, 140, 236, 138, 164, 237, 138, 184, 32, 236, 187, 164, 235, 178, 132, 235, 166, ...] 결과 토큰 배열 ( 237, 133 이 256 으로 대치됨)[256, 140, 236, 138, 164, 237, 138, 184, 32, 236, 187, 164, 235, 178, 132, 235, 166, ...] 입력 토큰 배열[237, 133, 140, 236, 138, 164, 237, 138, 184, 32, 236, 187, 164, 235, 178, 132, 235, 166, ...] (모든 토큰이 255 이하 = UTF-8 정수 표현형)테스트 커버리지는 다음과 같이 측정합니다. 결과 문자열