문장 분할 실험실
같은 문장을 브라우저의 Intl.Segmenter와 두 가지 명시적 규칙으로 나누고, 경계가 어디서 달라지는지 원문 위치로 확인합니다.
주요 기능
- Intl.Segmenter의 단어·문장·그라페임 결과와 공백·유니코드 문자 연속 규칙 비교
- 각 분절의 원문 그대로인 표면형과 UTF-16 시작·끝 오프셋 표시
- 코드포인트·그라페임 위치와 일치하지 않는 경계를 구분
- 두 방식의 내부 경계 차이 개수와 위치·주변 문자 표시
- 약어, 한글, 결합문자, ZWJ 이모지 예제로 차이 탐색
- 최대 12,000 UTF-16 코드 단위 원문을 브라우저에서만 처리
사용 방법
- 예제를 불러오거나 다국어 텍스트를 입력합니다.
- 한국어·영어·일본어·태국어 중 Intl 분절에 요청할 언어를 고릅니다.
- 분석을 눌러 다섯 방식의 분절 수와 토큰 수를 확인합니다.
- A와 B 방식을 선택해 내부 경계 차이와 UTF-16·코드포인트 위치를 비교합니다.
- 각 분절의 원문 구간을 확인하고 필요하면 JSON 결과를 내려받습니다.
활용 예시
- 이모지 뒤의 문자열 오프셋이 예상보다 커지는 이유 조사
- 약어가 있는 문장에서 브라우저 문장 분할 결과 관찰
- 공백 기준 단어와 유니코드 문자 연속 규칙의 구두점 차이 확인
- 한글과 결합문자의 표시 글자 수와 코드 단위 수 비교
자주 묻는 질문
이 도구가 검색엔진의 토큰화를 재현하나요?
아니요. 브라우저 런타임의 Intl.Segmenter와 화면에 밝힌 두 가지 단순 규칙만 비교합니다. 검색엔진 색인어, 형태소 분석, 품사 태깅이나 한국어 어절의 의미 분석을 제공하지 않습니다.
UTF-16 오프셋은 무엇인가요?
자바스크립트 문자열의 시작을 0으로 세는 코드 단위 위치입니다. 보조 평면 이모지는 한 코드포인트여도 보통 UTF-16 코드 단위 2개를 차지하며, ZWJ 이모지 한 덩어리는 더 길 수 있습니다. 끝 위치는 포함하지 않습니다.
그라페임과 코드포인트는 왜 다른가요?
결합 악센트나 피부색 수정자·ZWJ 이모지는 여러 코드포인트가 화면의 한 그라페임을 이룰 수 있습니다. 그라페임 위치는 Intl.Segmenter 경계와 정확히 맞을 때만 숫자로 표시하고, 덩어리 안쪽은 대시로 둡니다.
공백·유니코드 규칙은 무엇을 포함하나요?
공백 규칙은 연속된 비공백 문자를 모두 잡아 구두점도 붙입니다. 유니코드 연속 규칙은 Letter·Mark·Number가 연달아 있는 구간만 잡고 공백·구두점·이모지는 건너뜁니다. 둘 다 문장 구조나 품사를 추론하지 않습니다.
브라우저마다 결과가 같나요?
Intl.Segmenter의 언어 자료와 구현은 브라우저·운영체제 버전에 따라 달라질 수 있습니다. 화면에는 실제 사용한 locale을 표시합니다. 두 명시적 정규식 규칙은 코드에 고정되어 있습니다.
텍스트가 서버로 전송되나요?
아니요. 입력과 분절은 브라우저 메모리에서 처리합니다. JSON을 내려받으면 입력 원문과 모든 분절이 파일에 들어가므로 공유 전에 확인하세요.
개인정보 안내
원문과 분절 결과는 브라우저 메모리에서만 처리하며 서버로 보내지 않습니다. 다운로드 JSON에는 원문과 분절이 그대로 포함됩니다.
댓글과 질문