• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Computer Science, Sangmyung University, Korea. E-mail : ddh2020@naver.com E-mail : chohj0510@naver.com)



Language Identification, Text Data Encoding, N-gram, Machine Learning, UTF-8, Code Page

1. 서 론

세계화와 기술의 발전에 따라 전 세계 국가들이 인터넷을 통해 서로 정보를 교환한다. 이러한 정보 교환 과정에서 컴퓨터는 정보를 전산 신호, 즉 이진 형태로 처리하기 때문에 문자 인코딩이 필수적이다. 열람하고자 하는 문서를 디코딩할 때, 동일한 인코딩 방식을 사용하지 않으면 문서의 내용이 손상될 수 있다. 이처럼 문서의 인코딩 방식을 정확히 판별하는 것은 데이터의 접근성과 활용성을 높이는 데 중요한 역할을 한다. 문자 인코딩은 국제표준화기구(ISO, International Standard Organization)에서 제안한 다양한 국가의 언어를 통일된 방식으로 표현할 수 있는 유니코드(UNICODE)를 이용한 방식[1]과, EUC-KR (한국어), SHIFT-JIS(일본어), GB18030(중국어)와 같은 각국의 고유한 인코딩 방식[2] 등과 같이 다양한 방식으로 이루어진다.

문서의 인코딩 방식 및 언어를 판별하기 위한 여러 연구가 이루어지고 있다[3~13]. 대부분의 연구는 문서 내의 문자 데이터의 통계적 특성을 분석하여 언어를 식별하고, 특히 N-그램에 대한 순위 통계를 활용하는 방법이 널리 사용된다[4~10]. 이외에는 언어별 자주 사용하는 단어 데이터베이스와 비교하여 언어를 식별하는 방법[11~12], 통계적 언어 모델을 사용하는 방법[13]과 인코딩 특성과 문자 빈도 분석을 통해 언어를 판별하는 융합 알고리즘[14]도 있다. 최근에는 딥러닝 기술을 이용한 일반 문서의 인코딩 및 언어 판별 연구도 이루어졌다[6]. 하지만 많은 언어 식별 연구는 문서가 동일한 언어로 작성되어 있다고 가정하기 때문에 단일 언어로 이루어진 문서에서는 문자 인코딩 인식률이 높았지만, 다국어로 작성된 문서에서는 낮은 문자 인코딩 인식률을 보인다. 예를 들어, 일본과 한국은 한자를 사용하는 나라이므로 일본어나 한국어 문서에서 한자의 비율이 높을 수 있다. 기존 연구에서는 이러한 높은 한자 비율 때문에 해당 문서를 중국어로 작성된 문서로 잘못 판별할 가능성이 크다. 이러한 접근 방식은 다양한 언어를 사용하는 글로벌 환경에서 한계가 있으므로 언어 식별 기능을 포함하는 것이 중요해지고 있다.

본 논문에서 제안하는 방법은 규칙 기반 분류 알고리즘을 통해 UTF-8 인코딩 문서를 판별하고 해당 문서 내의 언어 비율을 계산하여 언어를 식별한다. 코드페이지 인코딩 문서는 머신러닝 기법을 적용하여 학습된 데이터와의 비교를 통해 인코딩 방식과 언어를 판별한다. 기존의 인코딩 판별 연구와 달리 본 논문에서 제안하는 기술은 문서의 인코딩 방식뿐만 아니라 해당 문서 내에 작성된 언어의 비율을 파악하여 언어를 식별할 수 있으므로 높은 정확도를 제공한다. 논문의 연구는 기존의 인코딩 판별 알고리즘인 uchardet[15]과 비교 평가한다. 또한 본 연구는 실험을 통해 제안하는 방법의 성능을 객관적으로 입증한다.

2. 관련 연구

2.1 문자의 인코딩 방식

문자 인코딩에는 유니코드 기반 방식과 특정 언어에 관한 방식이 있다. 그 중, UTF-8은 가변 길이 부호를 사용하는 유니코드 인코딩 방식이다. 입력 텍스트 파일의 비트 스트림에서 비트 패턴을 분석해 UTF-8 인코딩 규칙을 따르는 데이터를 분류할 수 있다. UTF-8 인코딩 규칙은 표 1과 같다.

표 1 UTF-8 인코딩 규칙 Phase shift에 따른 위치 오차 변화

Table 1 UTF-8 Encoding Rules

Unicode Range

UTF-8

start

end

First Byte

Second Byte

Third Byte

Fourth Byte

0

0x7F

0xxx xxxx

NA

NA

NA

0x80

0x7FF

110x xxxx

10xx xxxx

NA

NA

0x800

0xFFFF

1110 xxxx

10xx xxxx

10xx xxxx

NA

0x10

000

0x1F FFFF

1111 0xxx

10xx xxxx

10xx xxxx

10xx xxxx

첫 번째 바이트에서의 0의 위치가 해당 문자의 바이트 수를 표현한다. 첫 번째 바이트가 0으로 시작하면 해당 부호의 길이는 1바이트이다. UTF-8에서 표현 가능한 부호 길이는 최대 6바이트지만 호환성을 고려하여 4바이트만 사용한다. 따라서 첫 번째 바이트의 0, 110, 1110, 11110과 그 뒤를 따르는 바이트의 10은 부호 규칙을 나타내는 표식 비트이다. 표식 비트를 제외한 나머지 위치에는 유니코드의 데이터 비트가 삽입된다.

코드 페이지는 특정 언어나 문자 집합을 지원하기 위한 인코딩 체계이다. 각 코드 페이지는 문자에 고유한 숫자 값을 할당함으로써, 다양한 언어 및 특수 문자를 디지털 형식으로 표현한다. 이는 특히 windows와 같은 다국어를 지원하는 운영 체제에서 중요한 역할을 한다. 코드 페이지 간의 인코딩 규칙이 상이하므로 동일한 숫자나 이진 데이터가 각 코드 페이지마다 다른 문자로 해석될 수 있다. 따라서 문자열을 정확하게 해석하려면 사용 중인 특정 코드 페이지의 번호를 정확히 알아야 한다. 표 2는 본 논문에서 분류하는 5가지 언어별 코드 페이지 번호이다.

표 2 언어별 코드페이지 번호

Table 2 Code page numbers by language

Laguage

Code Page numbers

Japanese

CP 932 (windows-932)

Chinese

CP 936 (Windows-936)

Korean

CP 949 (Windows-949)

Cyrill (Rus)

CP 1251 (Windows-1251)

Englishd

CP 1251 (Windows-1252)

2.2 Uchardet 기술의 인코딩 판별 알고리즘

본 논문에서 제안하는 방법은 uchardet 알고리즘과 비교 평가한다. uchardet[15]은 Mozilla의 유니버설 문자 인코딩 감지기에 기반한 알고리즘으로 UTF-8, 코드 페이지를 포함한다양한 텍스트 인코딩을 판별할 수 있다. 또한, uchardet은 오픈 소스로 다양한 프로젝트에 활용될 수 있고 Firefox와 같은 웹 브라우저에서 사용되고 있다. 따라서 uchardet은 실제 환경에서 검증된 알고리즘으로, 제안하는 방법의 성능을 uchardet과 비교하여 그 우수성을 평가하고 유효성을 검증할 수 있다.

uchardet 기술은 3가지 알고리즘을 활용하여 문서의 인코딩 방식을 판별한다. 첫 번째 알고리즘인 상태 머신(state machine)은 멀티 바이트 문자 인코딩을 판별하는 데 사용되며, 각 인코딩 기법별로 존재한다. 상태 머신은 입력된 문서를 1바이트 단위로 처리하고 이를 각 인코딩 기법별 상태 머신에 적용하여 해석 가능 여부를 판단한다. 전달된 1바이트 정보가 특정 인코딩에서만 존재하는 바이트 영역일 경우에는 해당 인코딩 기법으로 확정한다(ME state). 반면에 해당 인코딩에서 사용되지 않는 바이트 영역이라면 그 인코딩에 대한 판별을 중단한다(ERROR state). 상태 머신 기법으로는 단일 바이트 문자 인코딩 방식은 판별하기 어렵다.

두 번째 알고리즘은 문자의 빈도 분포를 이용하여 인코딩 기법을 판별한다. 언어별로 자주 사용되는 문자의 빈도를 분석하여 빈도수가 높은 문자와 낮은 문자로 구분한다. 각 인코딩의 모든 문자는 자주 사용되는 문자와 자주 사용되지 않은 문자의 두 가지 범주로 분류되어 각각 다른 가중치를 가진다. 이를 통해 문자의 분포 비율을 알 수 있고 이 비율을 통해 주어진 인코딩에 대한 입력 문서의 신뢰도를 평가한다. 신뢰도가 가장 높은 인코딩을 입력 문서의 인코딩으로 판단한다.

앞서 언급한 두 가지 알고리즘은 멀티 바이트 인코딩 판별에는 적합하지만 단일 바이트 인코딩 방식의 판별은 어렵다. 따라서 세 번째 알고리즘은 연속해서 나타나는 문자 두 개를 묶어 데이터 하나로 인식하는 인코딩 판별 방법이다. 예를 들어, 영어에서 A의 빈도만으로 해당 언어를 판별하기 어려우나 AS와 같이 두 문자가 묶인 데이터의 빈도수를 분석하면 해당 언어라 판단 가능하다. 하지만 멀티 바이트 인코딩은 문자의 수가 많아 적용하기 어렵다.

uchardet 알고리즘은 위의 알고리즘을 융합하여 문서의 인코딩을 판별한다. 특정 언어에 대한 인코딩의 경우에는 인코딩 판별만으로 언어 식별이 가능하지만 유니코드를 사용한 UTF-8, UTF-16과 같은 인코딩 기법은 언어 식별이 불가능하다. 따라서 uchardet 기술은 입력 문서가 유니코드 기반 인코딩이면 해당 문서의 언어를 분류할 수 없다.

3. 제안하는 방법

3.1 머신러닝 기반의 언어 분류 기술

본 논문에서는 텍스트 데이터를 분석하여 언어를 분류하는 기술을 제안한다. 제안된 언어 분류 기술의 전체적인 알고리즘은 그림 1과 같다. 먼저 입력된 문서의 비트 패턴 분석을 통해 UTF-8 인코딩 방식인지 구분한다. UTF-8 인코딩 방식은 특정한 비트 패턴을 가지므로 단순한 비트 패턴 분석만으로도 UTF-8 인코딩 여부를 판별할 수 있다. UTF-8 인코딩 문서일 경우에는 유니코드를 활용하여 해당 문서 내의 언어별 비율을 계산한다. 코드 페이지로 인코딩된 문서일 경우에는 언어별 범위 충돌 문제를 해결하기 위해 머신러닝 기법을 적용하여 언어를 분류한다. 먼저, N-그램이라는 검증된 텍스트 데이터 특징 추출 방법을 사용하여 입력 문서에 대한 전처리를 수행한다. 전처리된 입력 데이터는 학습된 데이터와의 유클리드 거리(Euclidean Distance)를 계산한다. 유클리드 거리 계산은 간단하면서도 효과적인 유사도 측정 방법으로, 대량의 데이터를 빠르게 처리할 수 있다. 마지막으로 임계값 비교를 통해 입력 문서의 인코딩 방식과 언어를 식별한다. 임계값은 최대우도 추정법을 통해 구하는데, 최대우도 추정법은 통계적 분포를 기반으로 데이터를 분류하므로 정확한 언어 판별을 가능하게 한다.

본 논문에서는 기존의 복잡한 딥러닝 기술 대신 단순한 머신러닝 기법들을 활용하여 효율적인 알고리즘을 설계하였다. 제안하는 방법은 간단한 데이터 학습만으로 언어를 판별할 수 있으므로, 기존의 딥러닝 기반 언어 분류 기술보다 연산량이 적고 처리 속도가 빠르다는 장점이 있다.

그림 1. 제안된 언어 분류 기술 알고리즘

Fig. 1. The proposed language classification

../../Resources/kiee/KIEE.2024.73.9.1574/fig1.png

본 연구에서는 입력 데이터를 영어, 크릴어(러시아어), 일본어, 중국어, 한국어로 분류하고 해당 언어 범위 이외는 기타 언어라 표기한다. 표 3은 각 언어에 대응하는 유니코드의 범위와 해당 언어를 UTF-8 인코딩 방식으로 표현할 때의 바이트 개수이다. 1바이트 부호는 영어를 포함한 ASCII 코드 전체이고, 2바이트 부호는 러시아어를 포함한 키릴어에 해당한다. 3바이트 부호는 한국어, 중국어, 일본어를 포함한 대부분의 언어들이며 4바이트는 BMP(Basic Multilingual Plane)에 속하지 않는 문자 전부가 해당한다. 이를 통해 기타 언어 또한 부호 길이 정보만으로도 대략적인 언어를 유추할 수 있다.

표 3 언어별 유니코드 범위 및 UTF-8 표현 바이트 개수

Table 3 Unicode range and number of UTF-8 expression bytes by language

Language

Unicode Range

UTF-8 Byte

start

end

English

U+0041

U+007A

1 Byte

Cyrill (Rus)

U+0400

U+044F

2 Byte

Japanese

U+3040

U+30FF

3 Byte

Chinese

U+4E00

U+9FFF

3 Byte

Korean

U+AC00

U+D7A3

3 Byte

3.2 UTF-8 인코딩 문서의 언어 식별 알고리즘

제안하는 방법에서 UTF-8 인코딩 문서의 언어 식별 알고리즘은 표식 비트를 제외한 유니코드에 해당하는 비트를 추출한다. 추출된 유니코드의 범위 정보를 활용하여 언어를 구분하고 입력 텍스트 데이터의 언어 비율을 계산한다. 한국어와 일본어의 경우 한자를 사용하는 경향이 있기 때문에 입력 문서 내 한자의 비율이 높더라도 그 문서가 한국어나 일본어로 작성되었을 가능성이 있다. 따라서 한자의 비율이 높은 입력 문서 중 한국어 또는 일본어가 전체 문자의 10% 이상을 차지하는 경우에는 한국어 문서나 일본어 문서라 판단한다. 영어의 경우에도 정확한 언어 식별을 위해 확장 ASCII를 사용하는 기타언어와의 구분이 필요하다. 입력된 문서 내에서 영어로 분류된

데이터 비율을 특정 임계값 기준으로 해당 문서가 영어로 작성되었는지 아니면 기타 언어로 작성되었는지를 결정한다. 임계값은 식 (1)과 같이, 영어로 식별된 데이터와 기타 언어로 식별된 데이터의 최대우도 추정법을 통해 구한다.

(1)
$f(x|A)= f(x|B)$

$f(x vert A)$는 영어로 작성된 문서에서 기타 언어로 분류된 데이터에 대한 우도 함수이고 $f(x vert B)$는 기타 언어로 작성된 문서에서 기타 언어로 분류된 데이터에 대한 우도 함수이다. 여기서 $x$는 랜덤 변수, $A$는 문서가 영어로 작성된 조건이고 $B$는 문서가 기타 언어로 작성된 조건이다. 임계값은 두 개의 우도 함수가 만나는 지점으로 설정한다. 본 논문에서는 우도 함수로 가우시안 함수를 사용하였고 영어로 작성된 문서 100개와 기타 언어로 작성된 문서 100개를 가우시안 함수의 변수로 사용하였다.

3.3 Code Page 인코딩 문서의 언어 식별 알고리즘

입력된 텍스트 파일에서 UTF-8 인코딩 규칙에 부합하는 문자가 전체 문자의 90% 미만일 경우에는 해당 파일을 UTF-8 인코딩 문서로 간주하지 않고, 코드 페이지 인코딩 문서로 추정한다. 코드 페이지는 동일한 이진 데이터가 각 코드 페이지별로 다른 문자를 나타낼 수 있으므로 N-그램을 통해 언어별 데이터의 연속성을 분석하는 전처리 과정이 필수적이다. 또한, N-그램 분석을 통한 코드 페이지는 입력 데이터의 N-그램 빈도와 코드 페이지별 N-그램 빈도의 유사도를 측정하여 판별하므로 코드 페이지별 학습된 데이터가 필요하다.

본 논문에서는 8비트 단위의 2-그램 분석을 수행하므로 수집한 언어별 데이터를 8비트 단위로 2-그램을 생성한다. 8비트 단위 2-그램 전처리 방식을 사용하기 때문에, $2^{8}\times 2^{8}$개의 2-그램에 대한 빈도수를 클래스별로 기록하여 학습 데이터를 구성한다. 본 논문에서 제안하는 코드 페이지 추정 알고리즘의 전처리 단계는 그림 2와 같으며 상세 과정에 관해 알고리즘 1에서 자세히 설명한다. 학습 데이터는 표 2에 나열된 각 코드 페이지별로 100개의 문서를 입력으로 하여 해당 전처리 과정을 거쳐 생성된다.

전처리된 입력 데이터는 코드 페이지 949, 932, 936, 1251, 1252총 5개 훈련 데이터와 유클리드 거리(Euclidean Distance)를 계산하여 최소 거리를 갖는 코드 페이지를 선택한다. 최소 거리가 임계값보다 작으면 해당 코드 페이지로 분류하고 임계값을 넘으면 코드 페이지가 아닌 기타 인코딩으로 분류한다. 코드 페이지로 판정되면 코드 페이지 번호를 확인하여 언어를 판별한다. UTF-8 인코딩 영어 판별과 같이, CP 1252도 0x00~0x7F 범위의 ASCII와 0x80~0xFF 범위의 확장 ASCII의 구분이 필요하다. 식 (1)의 최대우도추정법을 통해 계산된 임계값을 사용하여 영어와 기타 언어를 구별한다.

그림 2. 코드페이지 문서의 전처리

Fig. 2. Pre-processing of a Code Page document

../../Resources/kiee/KIEE.2024.73.9.1574/fig2.png

알고리즘 1 코드페이지 문서의 전처리

Algorithm 1 Pre-processing of a Code Page document

../../Resources/kiee/KIEE.2024.73.9.1574/al1.png

4. 실험 결과

4.1 학습용 Code Page 인코딩 문서 수집

표 4는 학습에 사용하기 위해 수집한 문서이다. UTF-8 문서의 인코딩 및 언어 판별은 규칙 기반 분류 알고리즘을 사용하기 때문에 별도의 훈련 데이터가 필요하지 않다. 그러나 코드 페이지 문서의 경우에는 머신러닝 기법으로 인코딩 및 언어를 판별하므로 훈련 데이터가 필수적이다.

학습에 사용한 문서는 Wikipedia에서 제공하는 국가별 위키백과: 알찬 글[16]에 선정된 글을 스크랩하여 UTF-8 텍스트 파일 형식으로 저장하였다. 수집한 학습 데이터는 정확성, 중립성 및 완전성 등 Wikipedia의 자체 기준을 통과한 문서이기 때문에 신뢰성이 있다. 수집된 문서는 EmEditor 프로그램을 사용하여 국가별 코드 페이지로 인코딩 방식을 변경하였다. EmEditor는 Microsoft 사에서 인증한 텍스트 편집기로서, 다양한 인코딩 변환 기능을 제공하며 여러 언어를 지원한다[17].

표 4 코드페이지 학습 문서

Table 4 Code Page Training Documents

Language

Encoding

# Documents

size

Korean

CP 949

100

20KB

Japanese

CP 932

100

20KB

Chinese

CP 936

100

20KB

Cyrill (Rus)

CP 1251

100

20KB

English

CP 1252

100

20KB

Total

500

10MB

4.2 실험용 문서 수집

본 논문에서는 제안하는 방법의 객관적 평가를 위한 실험을 진행하였다. 실험에서는 한국어, 일본어, 중국어, 키릴어(러시아어), 영어로 총 5가지 언어 분류를 목적으로 한다. 본 실험에서는 총 1200개의 문서를 사용하였다. 이 중 UTF-8 인코딩 문서는 총 600개로, 5가지 언어별 100개의 문서와 기타 언어 100개의 문서로 구성되었으며, 코드 페이지 인코딩 문서는 총 600개로, 5가지 언어별 100개의 문서와 기타 언어 100개의 문서로 이루어졌다.

표 5는 실험을 위해 수집한 문서이다. UTF-8 인코딩 실험 문서는 국가별 주요 언론사의 기사를 스크랩하여 수집하였다. 코드 페이지 인코딩 실험 문서는 수집된 UTF-8 인코딩 실험 문서를 EmEditor라는 프로그램을 통해 해당 국가의 코드 페이지 및 IBM EBCDIC 인코딩 방식으로 변경하여 구성되었다. 기타 언어 집합은 판별하고자 하는 5개 언어와의 혼동 가능성을 평가하기 이를 제외한 언어들로 구성된다.

표 5 실험 문서

Table 5 Experimental Documents

Language

Encoding

# Documents

size

Korean

UTF-8

100

4KB

CP 949

100

2.5KB

Japanese

UTF-8

100

2.5KB

CP 932

100

1.5KB

Chinese

UTF-8

100

2KB

CP 936

100

1KB

Cyrill (Rus)

UTF-8

100

5KB

CP 1251

100

1KB

English

UTF-8

100

1.5KB

CP 1252

100

1.5KB

Others

UTF-8

100

2KB

CP & IBM

100

2KB

Total

1,200

2.65MB

4.3 제안하는 방법과 Uchardet의 판별 방법 분석

인코딩 감지기 라이브러리 uchardet은 언어 판별을 하지 않고 인코딩 방식만 반환한다. 따라서 언어 판별 정확도를 계산하기 위해 uchardet이 지원하는 인코딩 방식에 해당하는 언어를 사전에 파악하였다. 입력 문서의 인코딩 방식을 잘못 판별하였더라도 입력 문서의 언어를 지원하는 인코딩 방식일 경우에는 참으로 판단하였다. UTF-8 인코딩 방식은 국제 유니코드를 사용하므로 모든 언어를 지원하여 인코딩 방식 판별만으로는 언어 식별이 불가능하다. 따라서 UTF-8 문서의 실험에 대해서는 언어 판별 정확도를 구하지 않았다.

반면에 제안하는 방법은 입력 문서의 인코딩 방식과 동시에 언어 판별을 지원하고, UTF-8 및 코드 페이지 문서가 아닐 경우에는 Others 클래스로 분류한다. 인코딩 방식을 UTF-8로 판별하는 경우, 문서의 텍스트를 기반으로 한국어, 일본어, 중국어, 키릴어(러시아어), 영어 및 기타 언어의 비율을 제공한다. 이 비율을 토대로 문서의 언어를 판별한다. 또한 코드 페이지 949, 932, 936, 1251, 1252 인코딩으로 판별한 경우에는 코드 페이지의 번호를 기반으로 문서의 언어를 판별한다.

4.4 인코딩 판별 성능 분석 및 비교

표 6의 인코딩 판별 실험 결과를 보면 알 수 있듯이, 제안하는 방법의 인코딩 판별 정확도는 100% 이다. 반면에 uchard et의 인코딩 판별 실험 결과는 UTF-8 인코딩 방식에서는 99.5%, 코드 페이지 인코딩 방식에서는 87.83%의 정확도를 보였다. 코드 페이지 1252로 인코딩한 영어 문서의 일부를 주로 코드 페이지 1250 (헝가리어)로 판별하였고, 기타 언어 문서의 일부는 다양한 인코딩 방식으로 잘못 판별된다. 특히, IBM EBCDIC 인코딩 방식을 판별하지 못하고 다른 인코딩 방식으로 대체되는 경향을 보였다.

표 6 인코딩 판별 정확도

Table 6 Encoding discrimination accuracy

Language

Proposed Method

uchardet

UTF-8

CP

UTF-8

CP

Korean

100 %

100 %

100 %

100 %

Japanese

100 %

100 %

100 %

100 %

Chinese

100 %

100 %

100 %

100 %

Cyrill (Rus)

100 %

100 %

100 %

100 %

English

100 %

100 %

98 %

55 %

Unknown

100 %

100 %

99 %

72 %

Total

100 %

100 %

99.5 %

87.83 %

4.5 언어 판별 성능 분석 및 비교

표 7은 언어 판별 실험 결과이다. 제안하는 방법은 영어 및 기타 언어 문서에서 서로 혼동되었지만 UTF-8 인코딩 문서에서 99.33%, 코드 페이지 문서에서는 99.66%의 높은 정확도를 달성한다. 반면에 uchardet 방법을 이용하면 인코딩 방식 판별의 오류로 인해 87.83%의 정확도를 보인다.

표 7 실험 문서표 7 언어 판별 정확도

Table 7 Language discrimination accuracy

Language

Proposed Method

uchardet

UTF-8

CP

UTF-8

CP

Korean

100 %

100 %

NA

100 %

Japanese

100 %

100 %

NA

100 %

Chinese

100 %

100 %

NA

100 %

Cyrill (Rus)

100 %

100 %

NA

100 %

English

98 %

98 %

NA

55 %

Others

98 %

100 %

NA

72%

Total

99.33 %

99.66 %

NA

87.83 %

4.6 혼동행렬 비교

그림 3은 uchardet 방법과 제안하는 방법을 사용하여 문서의 인코딩을 판별한 결과를 비교한 혼동 행렬을 보여준다. 판별하고자 하는 5개 언어는 국가별 국가 코드 3자리로 표현하였다. 혼동 행렬의 세로축은 실제 클래스를 나타내고, 가로축은 예측된 클래스를 나타낸다. 다양한 기타 인코딩 및 언어로 구성된 입력 문서에 대해 Others(Oth)와 같은 기타 클래스를 반환하는 대신, 오직 타겟 클래스를 반환하는 오류를 계산하기 위해 가로축에 Unknown(Unk)클래스를 추가했다.

인코딩 판별 알고리즘 uchardet은 다양한 타겟 클래스가 존재하고 제안하는 방법은 UTF-8, 코드 페이지 949, 932, 936, 1251, 1252로 총 5가지 인코딩 방식을 타겟 클래스로 선택했다. uchardet 방법은 타겟 클래스가 아닌 기타 인코딩 문서를 타겟 클래스 내에서의 인코딩 방식으로 분류한다. 하지만 제안하는 방법은 인코딩 및 언어 판별 결과가 타겟 클래스에 속하지 않을 경우, Others 클래스로 분류한다.

그림 3. 인코딩 판별 혼동행렬 비교

Fig. 3. Encoding Detection Confusion Matrix Comparison

../../Resources/kiee/KIEE.2024.73.9.1574/fig3.png

5. 결 론

세계화된 정보 공유 환경에서 문서의 언어를 식별하는 것은 중요한 기술이다. 다양한 언어로 작성된 문서를 정확하게 식별함으로써 사용자들이 원하는 정보에 쉽게 접근할 수 있으며, 텍스트 분석 및 데이터 마이닝과 같은 분석 작업의 정확도와 효율성을 향상시킬 수 있다. 따라서 본 논문에서는 문서의 인코딩 방식뿐만 아니라 언어를 식별하고 제공하는 새로운 알고리즘을 제안하였다.

본 논문에서 제안된 방법은 먼저, 규칙 기반 분류 알고리즘을 통해 문서가 UTF-8 인코딩인지 코드 페이지 인코딩인지를 판별한다. UTF-8 인코딩 문서일 경우에는 문서 내의 언어 비율 계산을 통해 언어를 식별하고 코드 페이지 인코딩 문서일 경우에는 머신러닝 기법을 적용하여 학습된 데이터와의 비교를 통해 언어를 판별한다. 제안된 방법은 기존의 인코딩 판별 연구와 달리 문서의 인코딩 방식뿐만 아니라 해당 문서 내에 작성된 언어의 비율을 파악하여 언어를 식별할 수 있으므로 높은 정확도를 제공한다.

또한, 실험 결과를 통해 기존의 uchardet 알고리즘의 인코딩 및 언어 판별 능력이 떨어지는 것을 확인하였다. 특히 유니코드를 지원하는 UTF-8 인코딩 문서의 언어는 식별할 수 없었고 ASCII 코드를 사용하는 영어와 확장 ASCII를 사용하는 다른 언어 간의 구분 능력도 떨어졌다. 반면에 제안하는 알고리즘을 이용한 문서의 인코딩 판별 정확도는 100%이고 언어 판별 정확도는 99.5%이다. 또한. UTF-8 인코딩 문서의 언어 식별도 가능하고 99.33%의 정확도를 보였다.

제안된 알고리즘은 문서 내의 언어 비율을 알 수 있으므로 다양한 언어로 작성된 문서도 정확하게 식별할 수 있다. 따라서 다국어 환경에서의 데이터 처리와 분석의 효율성, 정보 접근성과 활용성이 높다. 또한, 후속 연구를 통해 제안된 알고리즘의 성능을 개선하고 다양한 인코딩 방식과 언어를 판별할 수 있도록 하여 세계화된 정보 공유 환경에서 향상된 언어 식별 기술을 제공할 수 있다.

Acknowledgements

This work was supported by Korea Research Institute for defense Technology planning and advancement(KRIT) grant funded by the Korea government(DAPA(Defense Acquisition Program Administration)) (No. KRIT-CT-22-021, Space Signal Intelligence Research Laboratory, 2022)

References

1 
N. Beebe, “Character set encoding,” TUG-boat, vol. 11, no. 2, pp. 171-175, 1990.URL
2 
S. Hussain, N. Durrani, and S. Gul, “Survey of language computing in Asia,” Center for Research in Urdu Language Processing, National University of Computer and Emerging Sciences, vol. 2, pp. 2005, 2005.URL
3 
T. Jauhiainen, M. Lui, M. Zampieri, T. Baldwin, and K. Lindén, “Automatic language identification in texts: A survey,” Journal of Artificial Intelligence Research, vol. 65, pp. 675-782, 2019.DOI
4 
W. B. Cavnar, and J. M. Trenkle, “N-gram-based text categorization,” in Proc. SDAIR-94, 3rd Annu. Symp. Document Anal. Inf. Retrieval, vol. 161175, 1994.URL
5 
T. Dunning, “Statistical Identification of Language,” Las Cruces, NM:Computing Research Laboratory. New Mexico State University, pp. 940-273, 1994.URL
6 
S. Kim, J. Bae, and H. Park, “Encoding and language detection of text document using Deep learning algorithm,” Korean Institute of Next Generation Computing, vol. 13, no. 5, pp. 124-130, 2017.URL
7 
A. K. Singh, and J. Gorla, “Identification of languages and encodings in a multilingual document,” Cahiers du Cental, vol. 5, no. 1, 2007.URL
8 
A. K. Singh, “Study of some distance measures for language and encoding identification,” in Proc. Workshop on Linguistic Distances, pp. 63-72, 2006.URL
9 
C. Kruengkrai et al., “Language identification based on string kernels,” in IEEE International Symposium on Communications and Information Technology, 2005. ISCIT 2005, vol. 2, pp. 926-929, IEEE, 2005.DOI
10 
I. Suzuki et al., “A language and character set determination method based on N-gram statistics,” ACM Transactions on Asian Language Information Processing (TALIP), vol. 1, no. 3, pp. 269-278, 2002.DOI
11 
D. Georgiev, et al., “Language detection service.” U.S. Patent No. 8,073,680. 6 Dec. 2011.URL
12 
R. D. Lins, and P. Gonçalves, “Automatic language identification of written texts,” in Proceedings of the 2004 ACM symposium on Applied computing, pp. 1128-1133, 2004.DOI
13 
G. I. Kikui, “Identifying the coding system and language of on-line documents on the internet,” in COLING 1996 Volume 2: The 16th International Conference on Computational Linguistics, 1996.URL
14 
S. Li, and K. Momoi, “A composite approach to language/encoding detection,” in Proc. 19th International Unicode Conference, pp. 1-14, 2001.URL
15 
https://gitlab.freedesktop.org/uchardet/uchardetURL
16 
https://en.wikipedia.org/wiki/Wikipedia:Featured_articlesURL
17 
https://www.emeditor.com/URL

저자소개

홍채희 (Chaehui Hong)
../../Resources/kiee/KIEE.2024.73.9.1574/au1.png

Chaehui Hong graduated from Sangmyung University in 2024. She is currently pursuing a master's degree in the Department of Computer Science at Sangmyung University. Her research interests include Machine Learning, Deep Learning, Image Processing, and Computer Vision.

조현지 (Hyunji Cho)
../../Resources/kiee/KIEE.2024.73.9.1574/au2.png

Hyunji Cho graduated from Sangmyung University in 2016. She recieved Master degree in the same university in 2019. She is pursuing PH.D degree at the Dept of Computer Science, Sangmyung University. Her research interest includes Integral Imaging, Image Processing, Computer Vision, and Machine Learning.

유훈 (Hoon Yoo)
../../Resources/kiee/KIEE.2024.73.9.1574/au3.png

Hoon Yoo recieved Ph.D. degree from Hanyang University in 2003. He worked in Samsung untill 2005. He joined Sangmyung University as a professor in 2008. His research interest includes Image Processing, 3D Integral Imaging, Computer Vision, and Neural Network.