KR101946836B1 - 언어 판별 장치 및 방법 - Google Patents

언어 판별 장치 및 방법 Download PDF

Info

Publication number
KR101946836B1
KR101946836B1 KR1020170039108A KR20170039108A KR101946836B1 KR 101946836 B1 KR101946836 B1 KR 101946836B1 KR 1020170039108 A KR1020170039108 A KR 1020170039108A KR 20170039108 A KR20170039108 A KR 20170039108A KR 101946836 B1 KR101946836 B1 KR 101946836B1
Authority
KR
South Korea
Prior art keywords
language
delimiter
probability
chinese
document
Prior art date
Application number
KR1020170039108A
Other languages
English (en)
Other versions
KR20180109408A (ko
Inventor
이새벽
권준성
장정훈
Original Assignee
주식회사 와이즈넛
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 와이즈넛 filed Critical 주식회사 와이즈넛
Priority to KR1020170039108A priority Critical patent/KR101946836B1/ko
Publication of KR20180109408A publication Critical patent/KR20180109408A/ko
Application granted granted Critical
Publication of KR101946836B1 publication Critical patent/KR101946836B1/ko

Links

Images

Classifications

    • G06F17/275
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 언어 판별 장치에 관한 것으로서, 한국어, 중국어 및 일본어 각각에 대한 문자의 유니코드가 저장되는 문자 변환 데이터베이스; 상기 문자 변환 데이터베이스를 참조하여 문서에 포함된 문자열들의 각 문자를 대응되는 유니코드로 치환시켜 구분자 문자열을 생성하는 문자열 치환부; 상기 구분자 문자열에 포함된 구분자 중 한국어, 중국어 및 일본어를 제외한 다른 언어 및 기호에 대한 구분자를 삭제하는 구분자 처리부; 상기 구분자 처리부에서 획득된 구분자 문자열 중 한국어, 중국어 및 일본어 구분자에 대한 출현 빈도를 계산하는 구분자 빈도 계산부; 및 상기 구분자 빈도 계산부를 통해 계산된 언어별 빈도에 해당 구분자 문자열이 한국어, 중국어 및 일본어로 판별될 확률을 계산하는 언어별 확률 계산부; 를 포함하며, 상기 언어별 확률 계산부에서 계산된 언어별 확률 중 가장 높은 확률을 가지는 언어를 문서의 해당 언어로 판별하는 것을 특징으로 한다.
또한 본 발명은 언어 판별 방법에 관한 것으로서, 문자 변환 데이터베이스에 한국어, 중국어 및 일본어 각각에 대한 문자의 유니코드가 저장되는 제1단계; 문자열 치환부에서 상기 문자 변환 데이터베이스를 참조하여 문서에 포함된 문자열들의 각 문자를 대응되는 유니코드로 치환시켜 구분자 문자열을 생성하는 제2단계; 구분자 처리부에서 상기 구분자 문자열에 포함된 구분자 중 한국어, 중국어 및 일본어를 제외한 다른 언어 및 기호에 대한 구분자를 삭제하는 제3단계; 구분자 빈도 계산부에서 상기 제3단계를 통해 획득된 구분자 문자열 중 한국어, 중국어 및 일본어 구분자에 대한 출현 빈도를 계산하는 제4단계; 및 언어별 확률 계산부에서 상기 4단계를 통해 계산된 언어별 빈도에 해당 구분자 문자열이 한국어, 중국어 및 일본어로 판별될 확률을 계산하는 제5단계; 를 포함하며, 상기 제5단계는 상기 언어별 확률 계산부에서 계산된 언어별 확률 중 가장 높은 확률을 가지는 언어를 문서의 해당 언어로 판별하는 단계인 것을 특징으로 한다.
이에 의해, 유니코드 기반의 한국어, 중국어 및 일본어 문자로 기술된 문서의 언어를 구분할 수 있도록 구분자 형태로 치환시키고 이를 가공 및 처리하여 해당 언어에 대한 판별 확률을 계산함으로써 컴퓨팅 자원 소모를 획기적으로 감소시킴과 동시에 신속한 언어 판별이 구현될 수 있다.

Description

언어 판별 장치 및 방법{Language distinction device and method}
본 발명은 언어 판별 장치 및 방법에 관한 것으로서, 보다 상세하게는, 유니코드 기반의 한국어, 중국어 및 일본어 문자로 기술된 문서의 언어를 컴퓨팅 자원 소모를 획기적으로 감소시킴과 동시에 신속하게 판별하는 기술에 관한 것이다.
21세기 인터넷의 보급화와 함께 인터넷을 통한 글로벌 서비스 업체들이 많이 생겨났다. 일반적으로 인터넷의 정보는 문자로 표현되어 있기 때문에 정보는 문자에 종속적인 관계를 갖고 있다. 하지만, 최근에는 언어처리 및 기계번역 같은 기술들을 이용한 언어에 독립적인 서비스를 통해서 글로벌 서비스의 지역화 비용을 줄이기 위한 노력이 시도되고 있다.
문서의 언어를 자동으로 판별하는 기술은 각 언어특성이 다르고 형태소, 구문, 의미 분석 방법이 다르기 때문에 각 언어의 특성을 반영한 언어처리를 위한 전처리 과정이다. 특히, 한국, 중국, 일본에서는 기본 한글이나, 히라가나, 가타카나 외 한자어를 공통적으로 사용하기 때문에 문자 코드만으로 문서의 언어를 판별하기가 어렵다.
일반적으로 언어를 판별하기 위한 기술은 대용량의 말뭉치에서 n-gram 같은 언어 모델링 기술을 통해서 언어를 모델링하고, 확률로 판별하는 기술을 일반적으로 사용했다. 하지만, 언어 모델링 기술을 사용하는 것은 만들어진 각 언어 모델을 전부 메모리에 로딩한 뒤 사용해야 되기 때문에 메모리를 많이 사용하게 된다.
이와 관련된 종래기술로서 대한민국 등록특허공보 제10-1377047호가 있었으며, 종래기술은 스마트기기를 이용하여 다국어 정보(컨텐츠)를 제공하는 사이트에 접속하여 특정 원문 정보(컨텐츠) 및 제공받기를 원하는 특정 언어를 클릭할 경우에 특정 원문 정보(컨텐츠)의 고유키 값 정보와 특정 언어의 고유키 값 정보를 다국어변환관리서버로 송출하며, 제공되는 특정 언어로 변환된 컨텐츠 정보를 제공하는 것을 기재하고 있다.
그러나 종래기술의 경우 전술한 바와 같이 다국어변환관리서버에서 언어 모델링 기술을 통해 다국어 변환 및 번역을 구현하고 있어 각 언어 모델 전체를 메모리에 로딩하기 때문에 다국어변환관리서버의 부하가 증대된다는 문제점이 있었다.
대한민국 등록특허공보 제10-1377047호(2014.03.25. 공고)
본 발명은 상기 문제점을 개선하기 위하여 창작된 것으로써, 본 발명의 목적은, 런타임 환경에서 실시간 판별 속도를 높이기 위하여 대용량 말뭉치를 기반으로 만들어지는 언어 모델을 이용한 기존의 언어 판별의 메모리 효율을 높이기 위해 언어 코드와 확률을 기반으로 언어를 판별하는 언어 판별 장치 및 방법을 제공하는 데 있다.
본 발명의 또 다른 목적은, 유니코드 기반의 한국어, 중국어 및 일본어 문자로 기술된 문서의 언어를 구분할 수 있도록 구분자 형태로 치환시키고 이를 가공 및 처리하여 해당 언어에 대한 판별 확률을 계산함으로써 컴퓨팅 자원 소모를 획기적으로 감소시킴과 동시에 신속한 언어 판별이 구현되는 언어 판별 장치 및 방법을 제공하는 데 있다.
상기 목적은, 본 발명에 따라, 한국어, 중국어 및 일본어 각각에 대한 문자의 유니코드가 저장되는 문자 변환 데이터베이스; 상기 문자 변환 데이터베이스를 참조하여 문서에 포함된 문자열들의 각 문자를 대응되는 유니코드로 치환시켜 구분자 문자열을 생성하는 문자열 치환부; 상기 구분자 문자열에 포함된 구분자 중 한국어, 중국어 및 일본어를 제외한 다른 언어 및 기호에 대한 구분자를 삭제하는 구분자 처리부; 상기 구분자 처리부에서 획득된 구분자 문자열 중 한국어, 중국어 및 일본어 구분자에 대한 출현 빈도를 계산하는 구분자 빈도 계산부; 및 상기 구분자 빈도 계산부를 통해 계산된 언어별 빈도에 해당 구분자 문자열이 한국어, 중국어 및 일본어로 판별될 확률을 계산하는 언어별 확률 계산부; 를 포함하며, 상기 언어별 확률 계산부에서 계산된 언어별 확률 중 가장 높은 확률을 가지는 언어를 문서의 해당 언어로 판별하는 언어 판별 장치에 의해 달성될 수 있다.
여기서, 상기 문자열 치환부는 문자열의 문자 중 한국어를 구분자 K, 일본어를 구분자 J, 중국어를 구분자 C, 타 언어 및 기호를 구분자 S로 할당하여 구분자 문자열을 생성하도록 마련될 수 있다.
또한, 상기 구분자 빈도 계산부는,
freq(K)=치환된 문서내에서 구분자 K 가 출현한 빈도 수
freq(J)=치환된 문서내에서 구분자 J 가 출현한 빈도 수
freq(C)=치환된 문서내에서 구분자 C 가 출현한 빈도 수
의 계산식에 의해 언어별 구분자에 대한 출현 빈도를 계산하도록 마련될 수 있다.
또한, 상기 언어별 확률 계산부는,
Figure 112017030312944-pat00001
Figure 112017030312944-pat00002
Figure 112017030312944-pat00003
{freq(K)/freq(K)의 계산이 0/0 일 경우(구분자 K 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함, freq(J)/freq(J)의 계산이 0/0 일 경우(구분자 J 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함}
의 계산식에 의해 언어별 판별 확률을 계산하도록 마련된다.
{P(ko) : 문서가 한국어일 확률, P(ja) : 문서가 일본어일 확률, P(zh) : 문서가 중국어일 확률, freq(K) : 치환된 문서내에서 구분자 K 가 출현한 빈도 수, freq(J) : 치환된 문서내에서 구분자 J 가 출현한 빈도 수, freq(C) : 치환된 문서내에서 구분자 C 가 출현한 빈도 수}
한편, 상기 언어 판별 장치는 상기 언어별 확률 계산부에서 계산된 언어별 확률을 보간(interpolation)하는 보간부를 추가적으로 포함할 수 있다.
여기서, 상기 보간부는 상기 언어별 확률 계산부에서 계산된 언어별 확률이 모두 0 보다 높고 둘 이상의 특정 언어별 확률이 드레스홀드(threshold) 값보다 높을 경우, 각 언어별 확률에 보간값을 적용하여 각 언어별 보간 확률을 계산하도록 마련될 수 있다.
또한, 상기 보간부는,
Figure 112017030312944-pat00004
의 계산식에 의해 각 언어별 보간값을 계산한다.
{α : P(ko)에 적용되는 보간값, β : P(jp)에 적용되는 보간값, γ : P(zh)에 적용되는 보간값, a : 문자열 중 구분자 K 가 바뀌는 지점까지의 거리 평균값, b: 문자열 중 구분자 J 가 바뀌는 지점까지의 거리 평균값, c : 문자열 중 구분자 C 가 바뀌는 지점까지의 거리 평균값, max(a, b, c) : a, b, c 중 최대 평균값}
또한, 상기 보간부는,
Figure 112017030312944-pat00005
의 계산식에 의해 각 언어별 보간 확률을 계산한다.
{P'(ko) : 보간값이 적용된 상태에서 문서가 한국어일 확률, P'(ja) : 보간값이 적용된 상태에서 문서가 일본어일 확률, P'(zh) : 보간값이 적용된 상태에서 문서가 중국어일 확률}
한편 상기 목적은, 본 발명에 따라, 문자 변환 데이터베이스에 한국어, 중국어 및 일본어 각각에 대한 문자의 유니코드가 저장되는 제1단계; 문자열 치환부에서 상기 문자 변환 데이터베이스를 참조하여 문서에 포함된 문자열들의 각 문자를 대응되는 유니코드로 치환시켜 구분자 문자열을 생성하는 제2단계; 구분자 처리부에서 상기 구분자 문자열에 포함된 구분자 중 한국어, 중국어 및 일본어를 제외한 다른 언어 및 기호에 대한 구분자를 삭제하는 제3단계; 구분자 빈도 계산부에서 상기 제3단계를 통해 획득된 구분자 문자열 중 한국어, 중국어 및 일본어 구분자에 대한 출현 빈도를 계산하는 제4단계; 및 언어별 확률 계산부에서 상기 4단계를 통해 계산된 언어별 빈도에 해당 구분자 문자열이 한국어, 중국어 및 일본어로 판별될 확률을 계산하는 제5단계; 를 포함하며, 상기 제5단계는 상기 언어별 확률 계산부에서 계산된 언어별 확률 중 가장 높은 확률을 가지는 언어를 문서의 해당 언어로 판별하는 단계로 이루어지는 언어 판별 방법에 의해서도 달성될 수 있다.
여기서, 상기 제2단계는 문자열의 문자 중 한국어를 구분자 K, 일본어를 구분자 J, 중국어를 구분자 C, 타 언어 및 기호를 구분자 S로 할당하여 구분자 문자열을 생성하는 단계로 이루어질 수 있다.
또한, 상기 제4단계는,
freq(K)=치환된 문서내에서 구분자 K 가 출현한 빈도 수
freq(J)=치환된 문서내에서 구분자 J 가 출현한 빈도 수
freq(C)=치환된 문서내에서 구분자 C 가 출현한 빈도 수
의 계산식에 의해 언어별 구분자에 대한 출현 빈도를 계산하는 단계이다.
또한, 상기 제5단계는,
Figure 112017030312944-pat00006
Figure 112017030312944-pat00007
Figure 112017030312944-pat00008
{freq(K)/freq(K)의 계산이 0/0 일 경우(구분자 K 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함, freq(J)/freq(J)의 계산이 0/0 일 경우(구분자 J 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함}
의 계산식에 의해 언어별 판별 확률을 계산하는 단계이다.
{P(ko) : 문서가 한국어일 확률, P(ja) : 문서가 일본어일 확률, P(zh) : 문서가 중국어일 확률, freq(K) : 치환된 문서내에서 구분자 K 가 출현한 빈도 수, freq(J) : 치환된 문서내에서 구분자 J 가 출현한 빈도 수, freq(C) : 치환된 문서내에서 구분자 C 가 출현한 빈도 수}
한편, 상기 제5단계 이후에 계산된 언어별 확률을 보간(interpolation)하는 제6단계를 추가적으로 포함할 수 있다.
여기서, 상기 제6단계는 상기 언어별 확률 계산부에서 계산된 언어별 확률이 모두 0 보다 높고 둘 이상의 특정 언어별 확률이 드레스홀드(threshold) 값보다 높을 경우, 각 언어별 확률에 보간값을 적용하여 각 언어별 보간 확률을 계산하는 단계이다.
구체적으로, 상기 제6단계는,
Figure 112017030312944-pat00009
의 계산식에 의해 각 언어별 보간값을 계산하는 제6-1단계를 포함한다.
{α : P(ko)에 적용되는 보간값, β : P(jp)에 적용되는 보간값, γ : P(zh)에 적용되는 보간값, a : 문자열 중 구분자 K 가 바뀌는 지점까지의 거리 평균값, b: 문자열 중 구분자 J 가 바뀌는 지점까지의 거리 평균값, c : 문자열 중 구분자 C 가 바뀌는 지점까지의 거리 평균값, max(a, b, c) : a, b, c 중 최대 평균값}
또한, 상기 제6단계는,
Figure 112017030312944-pat00010
의 계산식에 의해 각 언어별 보간 확률을 계산하는 제6-2단계를 포함한다.
{P'(ko) : 보간값이 적용된 상태에서 문서가 한국어일 확률, P'(ja) : 보간값이 적용된 상태에서 문서가 일본어일 확률, P'(zh) : 보간값이 적용된 상태에서 문서가 중국어일 확률}
본 발명에 의해, 유니코드 기반의 한국어, 중국어 및 일본어 문자로 기술된 문서의 언어를 구분할 수 있도록 구분자 형태로 치환시키고 이를 가공 및 처리하여 해당 언어에 대한 판별 확률을 계산함으로써 컴퓨팅 자원 소모를 획기적으로 감소시킴과 동시에 신속한 언어 판별이 구현될 수 있다.
도 1 은 본 발명에 따른 언어 판별 장치의 블럭도이며,
도 2 는 본 발명에 따른 언어 판별 방법의 흐름도이며,
도 3 은 본 발명에 따른 언어 판별 장치 및 방법에서 보간값을 계산하기 위하여 문자열 구분자에서 구분자가 바뀌는 지점의 평균 거리를 표현한 예시도이다.
이하, 첨부된 도면을 참조하여 본 발명의 구성을 상세히 설명하기로 한다.
이에 앞서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
즉, 본 명세서 및 청구범위에 사용된 용어는 사전적인 의미로 한정 해석되어서는 아니되며, 발명자는 자신의 발명을 최선의 방법으로 설명하기 위해 용어의 개념을 적절히 정의할 수 있다는 원칙에 입각하여, 본 발명의 기술적 사상에 부합되는 의미와 개념으로 해석되어야 한다.
따라서, 본 명세서에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 출원 시점에 있어 이들을 대체할 수 있는 다양한 균등물과 변형예들이 존재할 수 있음을 이해하여야 한다.
도 1 은 본 발명에 따른 언어 판별 장치의 블럭도이며, 도 2 는 본 발명에 따른 언어 판별 방법의 흐름도이며, 도 3 은 본 발명에 따른 언어 판별 장치 및 방법에서 보간값을 계산하기 위하여 문자열 구분자에서 구분자가 바뀌는 지점의 평균 거리를 표현한 예시도이다.
<언어 판별 장치>
이하에서 설명하는 언어 판별 장치는 기본적으로 데이터 저장 구성과 데이터 가공, 분석 및 처리를 담당하는 데이터 연산 구성으로 이루어지며, 이를 소프트웨어 및 하드웨어 형태로 구현하기 위한 데이터 전달, 코딩, 연산 흐름, 회로 설계 등의 기술이 복합적으로 융합되어 언어 판별 장치가 구현됨을 밝혀둔다.
도 1 은 본 발명에 따른 언어 판별 장치의 블럭도이다. 도 1 을 참조하면, 본 발명에 따른 언어 판별 장치(100)는 문자 변환 데이터 베이스(10), 문자열 치환부(20), 구분자 처리부(30), 구분자 빈도 계산부(40) 및 언어별 확률 계산부(50)를 포함한다.
여기서, 문자 변환 데이터 베이스(10)에는 한국어, 중국어 및 일본어 각각에 대한 문자의 유니코드(UTF-8)가 저장된다. 문서의 문자열에 대해서 유니코드는 16진수로 표현되며, 각 시작과 종료 코드에 해당 하는 내용을 구분자로 할당하여 테이블 형태로 저장한다.(표 1 참조)
유니코드 문자표에 따른 치환 구분자
구분자 종류 시작코드 종료코드 코드 수
K 호환용 한글 자모 3130 318F 96
K 한글 자모 확장-A A960 A97F 32
K 한글 자모 확장-B A960 A97F 80
K 한글 음절 AC00 D7AF 11184
소계 11392
J 히라가나 3040 309F 96
J 가타카나 30A0 30FF 96
J 가타카나 음성 확장 31F0 31FF 16
소계 208
C 부수 보충 2E80 2EFF 128
C 31C0 31EF 48
C 통합 한자 확장 - A 3400 4DBF 6592
C 통합 한자 4E00 9FFF 20992
C 호환용 한자 F900 FAFF 512
C 통합 한자 확장 - B 20000 2A6DF 42720
C 호환용 한자 보충 2F800 2FA1F 544
소계 71536
S 그 외 다른 언어 및 기호 - - -
합계 83136
문자열 치환부(20)는 상기 문자 변환 데이터베이스(10)에 저장된 유니코드를 참조하여 입력 문서에 포함된 문자열들의 각 문자를 대응되는 유니코드로 치환시켜 구분자 문자열을 생성하는 역할을 수행한다.
여기서, 상기 문자열 치환부(20)는 상기 표 1과 같이 문자열의 문자 중 한국어를 구분자 K, 일본어를 구분자 J, 중국어를 구분자 C, 타 언어 및 기호를 구분자 S로 할당하여 구분자 문자열을 생성한다.
구분자 문자열의 예시)KKSCCSKKKKKKKSKKKKSKKSKKKKKKKKKKKKKKKKKKS
구분자 처리부(30)는 상기 구분자 문자열에 포함된 구분자 중 한국어(K), 중국어(C) 및 일본어(J)를 제외한 다른 언어 및 기호에 대한 구분자(S)를 삭제하는 역할을 수행하며, 구분자 처리부(30)에 의해 S가 제거되면 위의 예시는 아래와 같이 변환된다.
구분자 처리된 구분자 문자열의 예시)KKCCKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
구분자 빈도 계산부(40)는 상기 구분자 처리부(30)에서 획득된 구분자 문자열 중 한국어, 중국어 및 일본어 구분자에 대한 출현 빈도를 계산하는 역할을 수행하며, 구체적인 언어별 구분자에 대한 출현 빈도 계산 방법은 아래와 같다.
freq(K)=치환된 문서내에서 구분자 K 가 출현한 빈도 수
freq(J)=치환된 문서내에서 구분자 J 가 출현한 빈도 수
freq(C)=치환된 문서내에서 구분자 C 가 출현한 빈도 수
언어별 확률 계산부(50)는 상기 구분자 빈도 계산부(40)를 통해 계산된 언어별 빈도에 해당 구분자 문자열이 한국어, 중국어 및 일본어로 판별될 확률을 계산하는 역할을 수행하며, 본 발명에 따른 언어 판별 장치(100)는 상기 언어별 확률 계산부(50)에서 계산된 언어별 확률 중 가장 높은 확률을 가지는 언어를 문서의 해당 언어로 판별한다.
구체적으로 언어별 확률 계산부(50)는,
Figure 112017030312944-pat00011
Figure 112017030312944-pat00012
Figure 112017030312944-pat00013
{freq(K)/freq(K)의 계산이 0/0 일 경우(구분자 K 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함, freq(J)/freq(J)의 계산이 0/0 일 경우(구분자 J 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함}
의 계산식에 의해 언어별 판별 확률을 계산하도록 마련된다.
{P(ko) : 문서가 한국어일 확률, P(ja) : 문서가 일본어일 확률, P(zh) : 문서가 중국어일 확률, freq(K) : 치환된 문서내에서 구분자 K 가 출현한 빈도 수, freq(J) : 치환된 문서내에서 구분자 J 가 출현한 빈도 수, freq(C) : 치환된 문서내에서 구분자 C 가 출현한 빈도 수}
여기서, 한국어와 일본어에서는 한자어가 문장에 혼용될 가능성이 높기 때문에 한자어가 출현해도 한국어나 일본어로 판별될 가능성을 높이도록 계산식을 구성한다. 즉, 한국어와 일본어 계산에서 freq(K)/freq(K) 또는 freq(J)/freq(J)처럼 각 언어를 대표하는 값을 곱해주는 이유는 만약 해당 구분자가 출현하지 않았을 경우, 그 언어로 판별될 가능성을 0 으로 만들어 주기 위함이며, 이는 계산식의 전제부분에 기재하였다.
상기 예시를 통해 각 언어별 확률을 계산하면, P(ko)=33/35, P(ja)=0, P(zh)=2/35로 계산되어 해당 문서는 한국어로 판별된다.
한편, 본 발명에 따른 언어 판별 장치(100)는 상기 언어별 확률 계산부(50)에서 계산된 언어별 확률을 보간(interpolation)하는 보간부(60)를 추가적으로 포함할 수 있으며, 상기 보간부(60)는 상기 언어별 확률 계산부(50)에서 계산된 언어별 확률이 모두 0 보다 높고 둘 이상의 특정 언어별 확률이 드레스홀드(threshold) 값보다 높을 경우, 각 언어별 확률에 보간값을 적용하여 각 언어별 보간 확률을 계산하도록 마련된다.
즉, P(ko), P(ja), P(zh)가 모두 0보다 높고, 특정 두개의 값이 드레스홀드보다 높을 경우에는 각 확률값을 보간하여 규칙기반으로 판별하는 알고리즘을 통해서 결과를 출력하여 결과값에 대한 신뢰성을 높일 수 있는 것이다. 기본적으로 적용되는 드레스홀드 값은 전체 구분자의 절반값인 0.5로 설정되지만, 이 값은 판별할 문서의 특성에 따라 변경될 수도 있음은 물론이다.
보간부(60)의 기본 동작은 각 언어별 보간값 계산 및 계산된 보간값을 각 언어별 판별 확률에 적용하여 각 언어별 보간 확률을 계산하도록 설계된다.
여기서, 상기 각 언어별 보간값은,
Figure 112017030312944-pat00014
의 계산식에 의해 계산되며,
{α : P(ko)에 적용되는 보간값, β : P(jp)에 적용되는 보간값, γ : P(zh)에 적용되는 보간값, a : 문자열 중 구분자 K 가 바뀌는 지점까지의 거리 평균값, b: 문자열 중 구분자 J 가 바뀌는 지점까지의 거리 평균값, c : 문자열 중 구분자 C 가 바뀌는 지점까지의 거리 평균값, max(a, b, c) : a, b, c 중 최대 평균값}
상기 각 언어별 보간 확률은,
Figure 112017030312944-pat00015
의 계산식에 의해 계산된다.
{P'(ko) : 보간값이 적용된 상태에서 문서가 한국어일 확률, P'(ja) : 보간값이 적용된 상태에서 문서가 일본어일 확률, P'(zh) : 보간값이 적용된 상태에서 문서가 중국어일 확률}
보간값은 각 구분자들이 바뀌는 지점까지의 거리의 평균값(a, b, c)을 이용하여 계산하며, 도 3 의 예시로서 설명하면, 도 3 의 상부에 표시된 화살표는 상단은 C의 거리값을 표현하고, 하부에 표시된 화살표는 K의 거리값을 표현하고 있다.
일반적으로 한자어를 사용할 때는 주로 명사 위주의 사용이기 때문에 조사 같은 것은 한국어나 일본어로 표기하는 경우가 많이 있다. 조사의 경우 명사처럼 길어지는 경우가 별로 없기 때문에 치환된 구분자들의 거리가 길 가능성이 높다고 가정하며, 거리의 평균값을 각각 구한 다음 최대 평균값 max(a,b,c)으로 나머지 값들을 나눈 다음 그 값을 기반으로 확률을 보간한다.
도 3 의 경우 한자어를 많이 사용하는 한글 문서의 문자열 구분자의 예시이며, 각각의 확률, P(ko), P(ja), P(zh)에 대해서 보간 할 값을 각각 α,β,γ 라고 정의하고 상기 계산식을 통해 언어별 보간값을 구할 수 있으며, 계산된 언어별 보간값을 이전의 확률값에 각각 곱해서 새로운 확률(언어별 보간 확률)을 계산한다.
이를 도 3 의 예시에 적용하면, α=1, γ=0.766 으로 계산되며, P(ko)=1, P(zh)=0.507이므로 보간값을 각각의 확률에 곱하면 P'(ko)=1, P'(zh)=0.389로 보간되며, 보간된 확률값 중에서 최대값을 가지는 언어로 해당 문서의 언어를 판별하므로 해당 문서가 한글 문서인 것으로 최종 판별할 수 있다.
<언어 판별 방법>
도 2 는 본 발명에 따른 언어 판별 방법의 흐름도이다.
먼저, 문자 변환 데이터베이스에 한국어, 중국어 및 일본어 각각에 대한 문자의 유니코드가 저장된다.(제1단계, S10)
다음, 문자열 치환부에서 상기 문자 변환 데이터베이스를 참조하여 문서에 포함된 문자열들의 각 문자를 대응되는 유니코드로 치환시켜 구분자 문자열을 생성한다.(제2단계, S20)
여기서, 상기 제2단계(S20)는 문자열의 문자 중 한국어를 구분자 K, 일본어를 구분자 J, 중국어를 구분자 C, 타 언어 및 기호를 구분자 S로 할당하여 구분자 문자열을 생성하는 단계이다.
다음, 구분자 처리부에서 상기 구분자 문자열에 포함된 구분자 중 한국어, 중국어 및 일본어를 제외한 다른 언어 및 기호에 대한 구분자를 삭제한다.(제3단계, S30)
다음, 구분자 빈도 계산부에서 상기 제3단계(S30)를 통해 획득된 구분자 문자열 중 한국어, 중국어 및 일본어 구분자에 대한 출현 빈도를 계산한다.(제4단계, S40)
다음, 언어별 확률 계산부에서 상기 4단계(S40)를 통해 계산된 언어별 빈도에 해당 구분자 문자열이 한국어, 중국어 및 일본어로 판별될 확률을 계산한다.(제5단계, S50)
여기서, 제5단계(S50)는 상기 언어별 확률 계산부에서 계산된 언어별 확률 중 가장 높은 확률을 가지는 언어를 문서의 해당 언어로 판별하는 단계이다.
한편, 상기 제5단계 이후에 계산된 언어별 확률을 보간(interpolation)하는 제6단계(S60)가 추가될 수 있다.
상기 제6단계(S60)는 상기 언어별 확률 계산부에서 계산된 언어별 확률이 모두 0 보다 높고 둘 이상의 특정 언어별 확률이 드레스홀드(threshold) 값보다 높을 경우, 각 언어별 확률에 보간값을 적용하여 각 언어별 보간 확률을 계산하는 단계로서, 각 언어별 보간값을 계산하는 단계(S60-1)와 각 언어별 보간 확률을 계산하는 단계(S60-2) 순으로 구성되어 언어별 보간 확률 기반의 최종 언어 판별이 이루어진다.
여기서, 구분자 빈도수를 계산하는 제4단계(S40)와 언어별 판별 확률을 계산하는 제5단계(S50) 및 보간 확률을 계산하여 언어를 판별하는 제6단계(S60)에서 이루어지는 계산 방법, 계산식, 정의, 전제 부분은 앞서 기술한 언어 판별 장치의 해당 내용과 동일하므로 설명의 중복을 피하기 위하여 생략하였음을 밝혀둔다.
전술한 바와 같이, 본 발명에 따른 언어 판별 장치 및 방법은, 유니코드 기반의 한국어, 중국어 및 일본어 문자로 기술된 문서의 언어를 구분할 수 있도록 구분자 형태로 치환시키고 이를 가공 및 처리하여 해당 언어에 대한 판별 확률을 계산함으로써 컴퓨팅 자원 소모를 획기적으로 감소시킴과 동시에 신속한 언어 판별이 구현될 수 있다.
이상, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명의 기술적 사상은 이러한 것에 한정되지 않으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해, 본 발명의 기술적 사상과 하기 될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형 실시가 가능할 것이다.
*도면의 주요부분에 대한 부호의 설명*
100 : 언어 판별 장치
10 : 문자 변환 데이터 베이스
20 : 문자열 치환부
30 : 구분자 처리부
40 : 구분자 빈도 계산부
50 : 언어별 확률 계산부
60 : 보간부

Claims (16)

  1. 한국어, 중국어 및 일본어 각각에 대한 문자의 유니코드가 저장되는 문자 변환 데이터베이스;
    상기 문자 변환 데이터베이스를 참조하여 문서에 포함된 문자열들의 각 문자를 대응되는 유니코드로 치환시켜 구분자 문자열을 생성하는 문자열 치환부;
    상기 구분자 문자열에 포함된 구분자 중 한국어, 중국어 및 일본어를 제외한 다른 언어 및 기호에 대한 구분자를 삭제하는 구분자 처리부;
    상기 구분자 처리부에서 획득된 구분자 문자열 중 한국어, 중국어 및 일본어 구분자에 대한 출현 빈도를 계산하는 구분자 빈도 계산부;
    상기 구분자 빈도 계산부를 통해 계산된 언어별 빈도에 해당 구분자 문자열이 한국어, 중국어 및 일본어로 판별될 확률을 계산하는 언어별 확률 계산부; 및
    상기 언어별 확률 계산부에서 계산된 언어별 확률을 보간(interpolation)하는 보간부를 포함하되,
    상기 언어별 확률 계산부에서 계산된 언어별 확률 중 가장 높은 확률을 가지는 언어를 문서의 해당 언어로 판별하는 것을 특징으로 하는
    언어 판별 장치.
  2. 제1항에 있어서,
    상기 문자열 치환부는 문자열의 문자 중 한국어를 구분자 K, 일본어를 구분자 J, 중국어를 구분자 C, 타 언어 및 기호를 구분자 S로 할당하여 구분자 문자열을 생성하는 것을 특징으로 하는
    언어 판별 장치.
  3. 제2항에 있어서,
    상기 구분자 빈도 계산부는,
    freq(K)=치환된 문서내에서 구분자 K 가 출현한 빈도 수
    freq(J)=치환된 문서내에서 구분자 J 가 출현한 빈도 수
    freq(C)=치환된 문서내에서 구분자 C 가 출현한 빈도 수
    의 계산식에 의해 언어별 구분자에 대한 출현 빈도를 계산하는 것을 특징으로 하는
    언어 판별 장치.
  4. 제3항에 있어서,
    상기 언어별 확률 계산부는,
    Figure 112017030312944-pat00016

    Figure 112017030312944-pat00017

    Figure 112017030312944-pat00018

    {freq(K)/freq(K)의 계산이 0/0 일 경우(구분자 K 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함, freq(J)/freq(J)의 계산이 0/0 일 경우(구분자 J 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함}
    의 계산식에 의해 언어별 판별 확률을 계산하는 것을 특징으로 하는
    언어 판별 장치.
    {P(ko) : 문서가 한국어일 확률, P(ja) : 문서가 일본어일 확률, P(zh) : 문서가 중국어일 확률, freq(K) : 치환된 문서내에서 구분자 K 가 출현한 빈도 수, freq(J) : 치환된 문서내에서 구분자 J 가 출현한 빈도 수, freq(C) : 치환된 문서내에서 구분자 C 가 출현한 빈도 수}
  5. 삭제
  6. 제1항에 있어서,
    상기 보간부는 상기 언어별 확률 계산부에서 계산된 언어별 확률이 모두 0 보다 높고 둘 이상의 특정 언어별 확률이 드레스홀드(threshold) 값보다 높을 경우, 각 언어별 확률에 보간값을 적용하여 각 언어별 보간 확률을 계산하는 것을 특징으로 하는
    언어 판별 장치.
  7. 제6항에 있어서,
    상기 보간부는,
    Figure 112017030312944-pat00019

    의 계산식에 의해 각 언어별 보간값을 계산하는 것을 특징으로 하는
    언어 판별 장치.
    {α : P(ko)에 적용되는 보간값, β : P(jp)에 적용되는 보간값, γ : P(zh)에 적용되는 보간값, a : 문자열 중 구분자 K 가 바뀌는 지점까지의 거리 평균값, b: 문자열 중 구분자 J 가 바뀌는 지점까지의 거리 평균값, c : 문자열 중 구분자 C 가 바뀌는 지점까지의 거리 평균값, max(a, b, c) : a, b, c 중 최대 평균값}
  8. 제7항에 있어서,
    상기 보간부는,
    Figure 112017030312944-pat00020

    의 계산식에 의해 각 언어별 보간 확률을 계산하는 것을 특징으로 하는
    언어 판별 장치.
    {P'(ko) : 보간값이 적용된 상태에서 문서가 한국어일 확률, P'(ja) : 보간값이 적용된 상태에서 문서가 일본어일 확률, P'(zh) : 보간값이 적용된 상태에서 문서가 중국어일 확률}
  9. 문자 변환 데이터베이스에 한국어, 중국어 및 일본어 각각에 대한 문자의 유니코드가 저장되는 제1단계;
    문자열 치환부에서 상기 문자 변환 데이터베이스를 참조하여 문서에 포함된 문자열들의 각 문자를 대응되는 유니코드로 치환시켜 구분자 문자열을 생성하는 제2단계;
    구분자 처리부에서 상기 구분자 문자열에 포함된 구분자 중 한국어, 중국어 및 일본어를 제외한 다른 언어 및 기호에 대한 구분자를 삭제하는 제3단계;
    구분자 빈도 계산부에서 상기 제3단계를 통해 획득된 구분자 문자열 중 한국어, 중국어 및 일본어 구분자에 대한 출현 빈도를 계산하는 제4단계;
    언어별 확률 계산부에서 상기 제4단계를 통해 계산된 언어별 빈도에 해당 구분자 문자열이 한국어, 중국어 및 일본어로 판별될 확률을 계산하는 제5단계; 및
    상기 제5단계 이후에 계산된 언어별 확률을 보간(interpolation)하는 제6단계를 포함하되,
    상기 제5단계는 상기 언어별 확률 계산부에서 계산된 언어별 확률 중 가장 높은 확률을 가지는 언어를 문서의 해당 언어로 판별하는 단계인 것을 특징으로 하는
    언어 판별 방법.
  10. 제9항에 있어서,
    상기 제2단계는 문자열의 문자 중 한국어를 구분자 K, 일본어를 구분자 J, 중국어를 구분자 C, 타 언어 및 기호를 구분자 S로 할당하여 구분자 문자열을 생성하는 단계인 것을 특징으로 하는
    언어 판별 방법.
  11. 제10항에 있어서,
    상기 제4단계는,
    freq(K)=치환된 문서내에서 구분자 K 가 출현한 빈도 수
    freq(J)=치환된 문서내에서 구분자 J 가 출현한 빈도 수
    freq(C)=치환된 문서내에서 구분자 C 가 출현한 빈도 수
    의 계산식에 의해 언어별 구분자에 대한 출현 빈도를 계산하는 단계인 것을 특징으로 하는
    언어 판별 방법.
  12. 제11항에 있어서,
    상기 제5단계는,
    Figure 112017030312944-pat00021

    Figure 112017030312944-pat00022

    Figure 112017030312944-pat00023

    {freq(K)/freq(K)의 계산이 0/0 일 경우(구분자 K 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함, freq(J)/freq(J)의 계산이 0/0 일 경우(구분자 J 가 출현하지 않을 경우), 계산값을 0으로 처리하고 계산함}
    의 계산식에 의해 언어별 판별 확률을 계산하는 단계인 것을 특징으로 하는
    언어 판별 방법.
    {P(ko) : 문서가 한국어일 확률, P(ja) : 문서가 일본어일 확률, P(zh) : 문서가 중국어일 확률, freq(K) : 치환된 문서내에서 구분자 K 가 출현한 빈도 수, freq(J) : 치환된 문서내에서 구분자 J 가 출현한 빈도 수, freq(C) : 치환된 문서내에서 구분자 C 가 출현한 빈도 수}
  13. 삭제
  14. 제9항에 있어서,
    상기 제6단계는 상기 언어별 확률 계산부에서 계산된 언어별 확률이 모두 0 보다 높고 둘 이상의 특정 언어별 확률이 드레스홀드(threshold) 값보다 높을 경우, 각 언어별 확률에 보간값을 적용하여 각 언어별 보간 확률을 계산하는 단계인 것을 특징으로 하는
    언어 판별 방법.
  15. 제14항에 있어서,
    상기 제6단계는,
    Figure 112017030312944-pat00024

    의 계산식에 의해 각 언어별 보간값을 계산하는 제6-1단계를 포함하는 것을 특징으로 하는
    언어 판별 방법.
    {α : P(ko)에 적용되는 보간값, β : P(jp)에 적용되는 보간값, γ : P(zh)에 적용되는 보간값, a : 문자열 중 구분자 K 가 바뀌는 지점까지의 거리 평균값, b: 문자열 중 구분자 J 가 바뀌는 지점까지의 거리 평균값, c : 문자열 중 구분자 C 가 바뀌는 지점까지의 거리 평균값, max(a, b, c) : a, b, c 중 최대 평균값}
  16. 제15항에 있어서,
    상기 제6단계는,
    Figure 112017030312944-pat00025

    의 계산식에 의해 각 언어별 보간 확률을 계산하는 제6-2단계를 포함하는 것을 특징으로 하는
    언어 판별 방법.
    {P'(ko) : 보간값이 적용된 상태에서 문서가 한국어일 확률, P'(ja) : 보간값이 적용된 상태에서 문서가 일본어일 확률, P'(zh) : 보간값이 적용된 상태에서 문서가 중국어일 확률}
KR1020170039108A 2017-03-28 2017-03-28 언어 판별 장치 및 방법 KR101946836B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170039108A KR101946836B1 (ko) 2017-03-28 2017-03-28 언어 판별 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170039108A KR101946836B1 (ko) 2017-03-28 2017-03-28 언어 판별 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180109408A KR20180109408A (ko) 2018-10-08
KR101946836B1 true KR101946836B1 (ko) 2019-04-29

Family

ID=63864441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170039108A KR101946836B1 (ko) 2017-03-28 2017-03-28 언어 판별 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101946836B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113553806B (zh) * 2021-09-22 2021-11-19 中国人民解放军国防科技大学 文本数据增强方法、装置、设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101693627B1 (ko) 2015-10-08 2017-01-17 숭실대학교산학협력단 문자 인코딩 변환 장치 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000231559A (ja) * 1999-02-12 2000-08-22 Matsushita Electric Ind Co Ltd 情報処理装置
KR20020020409A (ko) * 2000-09-08 2002-03-15 정규석 다양한 포맷을 갖는 문서번역이 가능한 기계번역장치
US8027832B2 (en) * 2005-02-11 2011-09-27 Microsoft Corporation Efficient language identification
US7711673B1 (en) * 2005-09-28 2010-05-04 Trend Micro Incorporated Automatic charset detection using SIM algorithm with charset grouping
KR101377047B1 (ko) 2013-08-07 2014-03-25 박효석 다국어 변환이 용이한 스마트기기

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101693627B1 (ko) 2015-10-08 2017-01-17 숭실대학교산학협력단 문자 인코딩 변환 장치 및 방법

Also Published As

Publication number Publication date
KR20180109408A (ko) 2018-10-08

Similar Documents

Publication Publication Date Title
US10706230B2 (en) System and method for inputting text into electronic devices
US8612206B2 (en) Transliterating semitic languages including diacritics
KR20130018205A (ko) 언어 변환에 있어서 다중 리딩 모호성 해결을 위한 방법
JP4319860B2 (ja) 転移ベースの機械翻訳システムで使用される転移辞書を開発するための方法および装置
US20080208566A1 (en) Automated word-form transformation and part of speech tag assignment
JP2007257644A (ja) 訳語候補文字列予測に基づく訳語取得のためのプログラム、方法および装置
US8655641B2 (en) Machine translation apparatus and non-transitory computer readable medium
US10528606B2 (en) Method for providing search suggestion candidates for input key and method for creating database DFA
CN107526742B (zh) 用于处理多语言文本的方法和设备
CN101308512B (zh) 一种基于网页的互译翻译对抽取方法及装置
JP2018055670A (ja) 類似文生成方法、類似文生成プログラム、類似文生成装置及び類似文生成システム
JP2017004127A (ja) テキスト分割プログラム、テキスト分割装置、及びテキスト分割方法
EP4276677A1 (en) Cross-language data enhancement-based word segmentation method and apparatus
US9208134B2 (en) Methods and systems for tokenizing multilingual textual documents
CN114692628A (zh) 样本生成方法、模型训练方法、文本抽取方法和装置
US20200311571A1 (en) Identifying sequence headings in a document
Bar-Haim et al. Choosing an optimal architecture for segmentation and POS-tagging of Modern Hebrew
KR101946836B1 (ko) 언어 판별 장치 및 방법
CN107861937B (zh) 对译语料库的更新方法、更新装置以及记录介质
Attia et al. Gwu-hasp: Hybrid arabic spelling and punctuation corrector
JP6787755B2 (ja) 文書検索装置
CN104699662A (zh) 识别整体符号串的方法和装置
JP2006004366A (ja) 機械翻訳システム及びそのためのコンピュータプログラム
JP4088171B2 (ja) テキスト解析装置、方法、プログラム及びそのプログラムを記録した記録媒体
JP2001101184A (ja) 構造化文書生成方法及び装置及び構造化文書生成プログラムを格納した記憶媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant