PDF 단어 수 세기, 중국어·일본어는 왜 부정확할까
영문 계약서의 단어 수를 셀 때는 별 문제가 없던 도구가, 중국어나 일본어 PDF를 넣으면 갑자기 말도 안 되게 적은 숫자를 내놓는 경우가 있습니다. 이는 도구가 고장 나서가 아니라 "단어 수 세기"라는 개념 자체가 언어마다 다르게 정의되기 때문에 생기는 현상입니다. 이 가이드는 PDF 단어 수 카운터가 실제로 어떤 알고리즘으로 단어를 세는지 코드 수준에서 확인하고, 왜 중국어·일본어에서 유독 어긋나는지 원인을 설명합니다.
1. "단어"는 언어마다 정의가 다르다
영어는 "I love you"처럼 단어와 단어 사이에 반드시 공백이 들어갑니다. 한국어도 "나는 너를 사랑해"처럼 어절 단위로 띄어쓰기가 존재합니다. 하지만 중국어("我爱你")와 일본어("私はあなたを愛しています")는 문장 전체를 띄어쓰기 없이 이어 씁니다. 단어의 경계가 시각적인 공백이 아니라 문맥과 사전 지식으로 판단해야 하는 문제라서, 진짜 정확한 "단어 분리"를 하려면 형태소 분석기 같은 별도의 언어 처리 엔진이 필요합니다. 대부분의 웹 기반 무료 도구는 이런 무거운 엔진 없이 순수 텍스트 처리만으로 동작하기 때문에, 애초에 공백이 없는 언어의 단어 수를 정확히 셀 방법이 없습니다.
2. 이 도구의 실제 로직: 공백 join → 공백 split
모두의 툴의 PDF 단어 수 카운터는 각 페이지에서 PDF.js의 getTextContent()로 텍스트 조각(item) 목록을 가져온 뒤, tc.items.map(x=>x.str).join(' ')로 모든 조각 사이에 공백을 하나씩 끼워 하나의 문자열로 합칩니다. 그다음 txt.trim().split(/\s+/).filter(w=>w.length>0).length로 그 문자열을 공백 기준으로 쪼개 단어 수를 셉니다. 즉 알고리즘 전체가 "PDF.js가 나눠준 텍스트 조각 하나하나를 공백으로 이어 붙였다가 다시 공백으로 쪼갠다"는 단순한 구조입니다. 영어·한국어처럼 원래 공백으로 단어(어절)가 구분되는 언어에서는 이 방식이 실제 단어 경계와 거의 일치하지만, 애초에 언어 자체에 공백이 없는 중국어·일본어에서는 셈의 기준이 "실제 단어"가 아니라 "PDF.js가 폰트·스타일·위치 변화 때문에 텍스트를 몇 조각으로 나눠 반환했는가"로 완전히 바뀌어버립니다.
split(/\s+/) 결과는 "1단어"로 집계됩니다. 반대로 PDF 생성 프로그램이 폰트 크기나 자간 조정을 위해 문장을 여러 조각으로 쪼개 저장했다면(예: "私は" / "毎日" / "日本語を" / "勉強しています" 4조각), 조각 사이마다 공백이 강제로 삽입되어 "4단어"로 집계됩니다. 둘 다 실제 단어 수(형태소 기준 약 6~7개)와는 다른 숫자이고, 심지어 같은 문장인데도 PDF가 어떻게 만들어졌는지에 따라 결과가 요동칩니다.
3. 실제로 어느 쪽으로 치우치나: 대체로 과소 집계
도구 자체의 한국어·영어 SEO 설명에도 명시되어 있듯, 중국어·일본어 PDF의 "단어 수"는 실제 단어 개수보다 대개 훨씬 적게 집계되는 경향이 있습니다. 한 문장 전체가 하나의 텍스트 조각으로 저장되는 경우가 많은 워드프로세서 출력물에서는, 문장 하나가 통째로 "1단어"로 잡히기 때문입니다. 반대로 표나 서식이 많은 PDF, 또는 글자마다 자간을 세밀하게 조정한 디자인 문서에서는 텍스트 조각이 잘게 쪼개져 있어 오히려 실제보다 훨씬 많은 "단어"가 집계될 수도 있습니다. 결론적으로 중국어·일본어에서는 이 숫자가 어느 방향으로도 신뢰하기 어렵습니다.
4. 그렇다면 무엇을 봐야 하나: 문자 수가 더 안전하다
공백이 없는 언어는 "단어 수" 대신 문자 수(공백 제외)를 분량 지표로 쓰는 것이 훨씬 신뢰도가 높습니다. 문자 수는 PDF.js가 텍스트를 몇 조각으로 나눴는지와 무관하게, 추출된 전체 문자열의 길이만 세는 방식이라 텍스트 조각 분할 방식의 영향을 받지 않기 때문입니다. 실제로 이 도구도 페이지별로 단어 수와 별도로 chars(공백 포함 문자 수), charsNoSp(공백 제외 문자 수)를 함께 제공합니다. 중국어·일본어 문서의 분량을 비교하거나 번역·조판 단가를 산정할 때는 단어 수가 아니라 이 문자 수 컬럼을 기준으로 삼는 것이 실무적으로 맞습니다. 참고로 한국어는 어절 단위 띄어쓰기가 있어 이 도구의 방식이 어느 정도는 유효하지만, 형태소 여러 개가 붙어 하나의 어절을 이루는 교착어 특성상 영어의 "단어" 개념과 완전히 일치하지는 않는다는 점도 함께 고려해야 합니다.
5. 다른 문서 분량 지표와 함께 쓰기
번역 견적, 원고료 정산, 인쇄 매수 산정처럼 문서 분량이 돈과 직결되는 상황이라면 단어 수 하나에만 의존하지 말고 여러 지표를 교차 확인하는 것이 안전합니다. 페이지 수만으로 대략적인 규모를 먼저 가늠하려면 PDF 페이지 수 계산기가 빠르고, 원문 텍스트를 통째로 뽑아 다른 프로그램(예: 한글 자체 글자 수 세기, 워드의 단어 수 세기)으로 재검증하고 싶다면 PDF → TXT 변환으로 원문을 추출한 뒤 그 결과물을 별도 도구에 붙여넣어 교차 검산하는 방법도 있습니다.
자주 묻는 질문
Q. 중국어·일본어 PDF의 단어 수는 아예 못 믿는 건가요?
참고용 지표 정도로만 보는 것이 안전합니다. 정확한 값이 아니라 PDF.js가 텍스트를 몇 조각으로 나눠 저장했는지에 따라 달라지는 값이라, 같은 내용이라도 PDF 생성 프로그램에 따라 숫자가 크게 달라질 수 있습니다.
Q. 한국어는 정확한가요?
영어나 중국어·일본어보다는 실제 단어(어절) 수에 가깝습니다. 한국어는 어절 사이에 띄어쓰기가 있기 때문입니다. 다만 조사가 붙은 하나의 어절을 영어식 "단어" 개념과 똑같이 취급할 수는 없어 완전히 일치하지는 않습니다.
Q. 중국어·일본어 문서 분량은 뭘로 확인해야 하나요?
단어 수보다 문자 수(공백 제외)를 기준으로 확인하는 것이 훨씬 신뢰도가 높습니다. 이 도구는 페이지별로 문자 수 통계도 함께 제공합니다.
Q. 왜 형태소 분석기를 쓰지 않나요?
형태소 분석기는 언어별 사전과 모델이 필요한 무거운 처리라 브라우저에서 즉시 실행하는 가벼운 무료 도구 구조와는 맞지 않습니다. 정확한 형태소 단위 분석이 필요하다면 전용 언어 처리 라이브러리나 서비스를 별도로 사용해야 합니다.