KR20060091051A - 효율적인 언어 식별 방법 - Google Patents

효율적인 언어 식별 방법 Download PDF

Info

Publication number
KR20060091051A
KR20060091051A KR1020060001193A KR20060001193A KR20060091051A KR 20060091051 A KR20060091051 A KR 20060091051A KR 1020060001193 A KR1020060001193 A KR 1020060001193A KR 20060001193 A KR20060001193 A KR 20060001193A KR 20060091051 A KR20060091051 A KR 20060091051A
Authority
KR
South Korea
Prior art keywords
language
text
probability
languages
expected
Prior art date
Application number
KR1020060001193A
Other languages
English (en)
Other versions
KR101265803B1 (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 마이크로소프트 코포레이션
Publication of KR20060091051A publication Critical patent/KR20060091051A/ko
Application granted granted Critical
Publication of KR101265803B1 publication Critical patent/KR101265803B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification
    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03CDOMESTIC PLUMBING INSTALLATIONS FOR FRESH WATER OR WASTE WATER; SINKS
    • E03C1/00Domestic plumbing installations for fresh water or waste water; Sinks
    • E03C1/12Plumbing installations for waste water; Basins or fountains connected thereto; Sinks
    • E03C1/28Odour seals
    • E03C1/282Odour seals combined with additional object-catching devices
    • B08B1/12
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10TTECHNICAL SUBJECTS COVERED BY FORMER US CLASSIFICATION
    • Y10T70/00Locks
    • Y10T70/30Hasp
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10TTECHNICAL SUBJECTS COVERED BY FORMER US CLASSIFICATION
    • Y10T70/00Locks
    • Y10T70/30Hasp
    • Y10T70/333Key lock
    • Y10T70/342Hasp-carried
    • Y10T70/35Keeper-encasing
    • Y10T70/358Dead bolt
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10TTECHNICAL SUBJECTS COVERED BY FORMER US CLASSIFICATION
    • Y10T70/00Locks
    • Y10T70/50Special application
    • Y10T70/5611For control and machine elements
    • Y10T70/569Lever
    • Y10T70/5717Multiple
    • Y10T70/5721Externally mounted locking device
    • Y10T70/5726With padlock
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10TTECHNICAL SUBJECTS COVERED BY FORMER US CLASSIFICATION
    • Y10T70/00Locks
    • Y10T70/50Special application
    • Y10T70/5889For automotive vehicles
    • Y10T70/5973Remote control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10TTECHNICAL SUBJECTS COVERED BY FORMER US CLASSIFICATION
    • Y10T70/00Locks
    • Y10T70/70Operating mechanism
    • Y10T70/7051Using a powered device [e.g., motor]
    • Y10T70/7057Permanent magnet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Hydrology & Water Resources (AREA)
  • Water Supply & Treatment (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Public Health (AREA)
  • Environmental & Geological Engineering (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

자연어 텍스트의 언어 식별 시스템 및 방법이 제공된다. 시스템은 자연어에서 발견된 문자들의 리스트에 대한 저장된 예상 문자 카운트들 및 분산들을 포함한다. 예상 문자 카운트들 및 분산들은 언어 식별 동안에 고려될 다수의 언어들에 대해 저장된다. 런타임시, 하나 이상의 언어들이 실제 문자 카운트와 예상 문자 카운트와의 비교를 근거로 텍스트 샘플에 대해 식별된다. 본 방법들은 고려되는 언어들의 수를 제한하기 위해 텍스트 샘플에서 문자들의 유니코드 범위들의 업스트림 분석과 결합될 수 있다. 또한, 본 시스템 및 방법들에 의해 식별되는 언어들 중 가장 가능성 있는 언어를 선택하기 위해 다운스트림 프로세싱에서 n-그램 방법들이 사용될 수 있다.
컴퓨터, 어휘 지식 베이스 구성 모듈, 텍스트 샘플, 확률 계산 모듈, 카운터

Description

효율적인 언어 식별 방법{EFFICIENT LANGUAGE IDENTIFICATION}
도 1은 본 발명이 사용될 수 있는 하나의 일례의 환경을 도시한 도면.
도 2는 본 발명이 사용될 수 있는 자연어 프로세싱 시스템의 환경을 도시한 도면.
도 3은 본 발명의 총괄적 양상들의 흐름도.
도 3a 및 도 3b는 텍스트 샘플의 언어 식별을 포함해서, 도 3에 도시된 양상들을 실행하기 위한 방법 및 시스템을 함께 도시한 도면.
도 4는 본 발명에 따라 어휘 인식 베이스를 증대하기 위한 시스템의 블록도.
도 5는 도 4의 시스템에 일반적으로 대응하는 방법의 단계들을 도시한 도면.
도 6은 본 발명에 따라 언어 식별을 실행하기 위한 시스템을 도시한 도면.
도 7은 도 6의 시스템에 일반적으로 대응하는 방법의 단계들을 도시한 도면.
도 8a 및 도 8b는 저장된 확률 정보와, 언어 식별 동안에 저장된 확률 정보의 사용을 도시한 도면.
도 9는 본 발명에 따른 컴퓨터 보조 훈련 프로세스의 실시예를 도시한 흐름도.
도 10은 본 발명에 따른 언어 식별의 실시예를 도시한 흐름도.
도 11은 본 발명에 따른 텍스트의 가장 가능성 있는 언어를 결정하기 위한 실시예를 도시한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 컴퓨팅 시스템 환경 200 : 자연어 프로세싱 시스템
208 : 애플리케이션 계층 322 : 텍스트 샘플
404 : 어휘 지식 베이스 구성 모듈 412 : 문자 리스트
414 : 확률 계산 모듈 415 : 카운터
420 : 언어 모델 612 : 점수화 시스템
온라인 세계가 진실로 다국적 공동체가 되게 하기 위해 대형 데이터 네트워크들이 전세계에 걸쳐 확장하는 가운데, 의사 소통을 위한 하나의 인간의 언어는 여전히 존재하지 않는다. 전자 메시지 및 문서는 독어, 스페인어, 포르투갈어, 그리스어, 영어, 중국어, 일어, 아랍어, 히브리어 또는 힌두어와 같은 특정 인간 언어로 기록된다.
여러 상황에서, 다른 자연어 프로세싱을 위해 특정 문서의 인간 언어를 신속하게 식별할 필요가 있다. 예를 들어, 문서의 인간 언어 또는 자연어의 식별은 문서를 인덱싱하거나 분류하는데 있어서 도움이 된다. 다른 상황에서, 워드 프로세서는 철자 검사, 문법 검사를 위해, 언어 번역 도구 또는 라이브러리를 사용하기 위해, 또는 적합한 프린터 폰트들을 가능케 하기 위해, 문서의 언어를 식별할 필요 가 있을 수도 있다.
이전의 언어 식별 방법들은 n-그램 방법들, 특히, 트라이-그램(tri-gram) 방법들을 포함한다. 몇몇 트라이-그램 방법들에서, 언어 특정 훈련 데이터 또는 문서들은 트라이-그램 언어 프로파일이라고 하는 각각의 해당 언어들에 대한 표들 또는 프로파일들을 생성하는데 사용되어 왔다. 몇몇 구현들에서, 3-글자 윈도는 특정 언어의 훈련 텍스트를 슬라이드한다. 3-글자 윈도가 텍스트를 슬라이드되면, 상기 방법은 특정 언어에 대한 트라이-그램 언어 프로파일을 생성하기 위해 윈도에서 나타나는 3-글자 시퀀스들의 출현횟수를 카운트한다. 이런 단계를 다양한 언어들의 텍스트에 대해 반복하며, 비인식된 언어의 문서들의 언어 식별을 위해 후에 사용되는, 각각의 언어들에 대한 트라이-그램 언어 프로파일들의 집합들을 제공한다.
언어 식별 동안에, 유사한 3-글자 윈도는 비인식된 문서를 슬라이드한다. 비인식된 문서 내의 각각의 3-글자 시퀀스마다, 방법은 트라이-그램 프로파일 각각에서 매칭되는 3-글자 시퀀스를 찾고자 시도한다. 특정 언어에 대해 매칭되는 것이 발견되면, 매치되는 3-글자 시퀀스에 대한 해당 언어의 프로파일 내의 빈도 정보가 특정 언어에 대한 누적 점수에 추가될 수 있다. 이러한 방식으로, 각각의 언어에 대한 누적 점수들이 윈도가 비인식된 총 문서를 슬라이드할 때마다 증가된다. n-그램 빈도 정보를 확률 값으로서 저장하는 것 등의 다른 점수화 방법들도 또한 사용된다. 매칭하는 동안에, 상기 확률 값들은 누적 언어 점수들을 생성하기 위해 승산될 수 있다. 최고 누적 점수를 갖는 언어가 비인식된 문서의 언어로 간주된 다. 불행히도, 트라이-그램 방법들은 통상 계산적으로 매우 비싸다.
언어 식별에 대한 다른 방법은 n-그램 시퀀스들의 길이를 변화시키는 것을 포함한다. 이러한 언어 식별 시스템들에서, 보다 일반적으로 "언어 프로파일"이라고 하는 n-그램 프로파일들은 다양한 길이 n-그램들(예를 들어, 바이-그램(bi-grams), 트라이-그램, 또는 4-그램)에 대한 빈도 정보를 포함한다. 그러나, 트라이-그램 방법들에서와 같이, 다른 n-그램 방법들은 계산적으로 매우 비싸며, 따라서, 상대적으로 느리다. 이러한 속도의 저하는 일반적으로 고려될 언어들의 수가 많아질수록 더 문제가 된다. 또한, 속도 저하는 언어 식별이 문서 인덱싱과 같은 다른 적용에 연관될 때 특별히 문제가 될 수 있다. 그러나, 유익하게도, 문서 또는 텍스트 샘플이 개별 문장과 같이 간략할 때, 트라이-그램 및 다른 n-그램 언어 식별 방법들은 비교적 정확하다고 생각된다.
종래 기술의 언어 식별 방법 및 시스템과 관련된 문제의 관점에 있어서, 보다 신속하고 향상된 언어 식별 방법은 상당한 유용성을 갖는다.
본 발명은 다양한 자연어들의 문자들의 예상 확률의 언어 모델을 생성하는 것을 포함한다. 텍스트 샘플의 언어 식별 동안에, 언어 모델들은 다양한 언어들을 점수화하고/거나 식별하기 위해 액세스된다. 텍스트 샘플의 언어(들)는 점수들을 근거로 식별된다. 언어 모델들을 포함하는 언어 식별의 본 발명은 특별히 언어 자동 검출(LAD:language auto detection) 기능을 갖는 보다 큰 언어 서비스 플랫폼 내에 통합될 수 있다. 입력 텍스트 유니코드 값들의 분석은 특히, 고려되거나 점 수화되는 후보 언어들의 수를 제한하기 위해, 본 방법 또는 시스템과 결합될 수 있다. 본 발명은 최적 성능을 위해, n-그램 방법 등의 다른 언어 식별 방법들과 결합될 수 있다.
본 발명은 자연어 텍스트 프로세싱에 관한 것으로, 특히, 입력 또는 샘플 텍스트의 자연어를 식별하는 것과 관련된다. 한 양상에서, 다양한 자연어들에서 발견된 문자 확률들의 언어 모델들이 구성된다. 다른 양상에서, 언어 모델들은 자연어 텍스트의 언어 식별을 실행하기 위해 액세스된다. 다른 양상에서, 본 발명은 예를 들어, 문자 유니코드 범위들을 분석함으로써 또는 n-그램 언어 식별을 사용함으로써 언어를 식별하는 다른 시스템들 또는 방법들과 결합될 수 있다.
예시적인 환경
도 1은 본 발명이 구현될 수 있는 일례의 적합한 컴퓨팅 시스템 환경(100)을 도시한다. 컴퓨팅 시스템 환경(100)은 단지 적합한 컴퓨팅 환경의 일례로서, 본 발명의 기능 또는 용도의 범위에 대해 임의의 제한을 가하려는 의도가 아니다. 컴퓨팅 환경(100)은 일례의 운영 환경(100)에 도시된 컴포넌트들 중 임의의 한 컴포넌트 또는 그 결합에 관련해서 임의의 종속성 또는 요구 사항을 갖는 것으로 해석되어서는 안 된다.
본 발명은 다수의 다른 범용 또는 특별 용도의 컴퓨팅 시스템 환경들 또는 구성들에 의해 동작될 수 있다. 본 발명에 의해 사용되기에 적합할 수도 있는 공지된 컴퓨팅 시스템들, 환경들 및/또는 구성들의 일례들은 퍼스널 컴퓨터, 서버 컴 퓨터, 휴대형 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서-기반의 시스템, 셋탑 박스, 프로그램가능한 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전화 시스템, 상술된 시스템들 또는 장치들 중 임의의 시스템 또는 장치를 포함하는 분산 컴퓨팅 환경 등을 포함하는데, 이들로만 제한되지 않는다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터 실행 가능 명령들의 일반적인 문맥에서 기술될 수도 있다. 일반적으로, 프로그램 모듈들은 특정 태스크들을 실행하거나 특정 추상 데이터 타입들을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 기술 분야에 숙련된 자들은 컴퓨터 판독 가능 매체의 임의의 형태로 기록될 수 있는 프로세서 실행 가능 명령들로서 본 명세서에 제공된 설명 및 도면들을 구현할 수 있다.
본 발명은 또한 통신 네트워크를 통해 연결된 원격 처리 장치들에 의해 태스크들이 실행되는 분산 컴퓨팅 환경에서 구현될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 메모리 저장 장치들을 포함해서 로컬 및 원격 컴퓨터 저장 매체들 모두에 위치할 수도 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 일례의 시스템이 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하여 다양한 시스템 컴포넌트들을 프로세싱 유닛(120)에 결합시키는 시스템 버스(121)를 포함할 수도 있는데, 이들로만 제한되지 않는다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤 러, 주변 장치 버스, 및 다양한 버스 아키텍처들 중 임의의 아키텍처를 사용하는 로컬 버스를 포함하여 여러 타입의 버스 구조들 중 임의의 버스 구조일 수도 있다. 예를 들어, 버스 아키텍처들은 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메저닌 버스로도 공지된 PCI(Peripheral Component Interconnect) 버스를 포함하는데, 이들로만 제한되지 않는다.
컴퓨터(110)는 통상 다양한 컴퓨터 판독 가능 매체들을 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 유용한 매체들일 수 있으며, 휘발성 또는 비휘발성 매체들, 분리형 또는 비분리형 매체들 모두를 포함한다. 예를 들어, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수도 있는데, 이들로만 제한되지는 않는다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령들, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하기 위한 임의의 방법 또는 기술로 구현된 휘발성 또는 비휘발성, 분리형 또는 비분리형 매체들을 모두 포함한다. 컴퓨터 저장 매체들은 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광 디스크 저장소, 자기 카셋트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치들, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨터(110)에 의해 액세스될 수 있는 임의의 다른 매체들을 포함하는데, 이들로만 제한되지 않는다. 통신 매체는 통상 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈 들, 또는 기타 데이터를 반송파 또는 다른 전송 메카니즘과 같이 변조된 데이터 신호에 구현한 것이며, 임의의 정보 전달 매체들을 포함한다. 용어 "변조된 데이터 신호"는 신호의 하나 이상의 특징을 신호의 정보를 부호화하는 방식으로 설정 또는 변경시킨 신호를 의미한다. 예를 들어, 통신 매체는, 유선 네트워크 또는 직접-유선 연결과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체들과 같은 무선 매체를 포함하는데, 이들로만 제한되지 않는다. 상술된 바들의 임의의 결합도 컴퓨터 판독 가능 매체 범위 내에 포함된다.
시스템 메모리(130)는 판독 전용 메모리(ROM; 131) 및 임의 접근 메모리(RAM; 132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체들을 포함한다. 예를 들어, 시작할 때 등에, 컴퓨터(110) 내의 구성요소들 간의 정보 전송을 돕는 기본 루틴들을 포함하는 기본 입출력 시스템(BIOS; 133)은 통상 ROM(131)에 저장된다. RAM(132)은 통상 즉시 액세스될 수 있으며 및/또는 프로세싱 유닛(120)에 의해 현재 동작 중인 데이터 및/또는 프로그램 모듈들을 포함한다. 도 1은 예를 들어, 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만, 이들로만 제한되지 않는다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체들을 포함할 수도 있다. 도 1은 단지, 예를 들어, 비분리형 비휘발성 자기 매체로부터 판독하거나 이에 기입하는 하드 디스크 드라이브(140), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 이에 기입하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 다른 광 매체들과 같은 분리형 비휘발성 광 디스크(156)로부터 판독하거나 이에 기입하는 광 디스크 드라이브(155)를 도시한다. 일례의 운영 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카셋트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하는데, 이들로만 제한되지 않는다. 하드 디스크 드라이브(141)는 통상 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 연결되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 연결된다.
상술되고 도 1에 도시된 드라이브들 및 관련 컴퓨터 저장 매체들은 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들, 및 기타 데이터를 위한 저장소를 컴퓨터(110)에 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램들(145), 기타 프로그램 모듈들(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 상기 컴포넌트들은 운영 체제(134), 애플리케이션 프로그램들(135), 기타 프로그램 모듈들(136) 및 프로그램 데이터(137)와 동일할 수도 상이할 수도 있음에 유의해야 한다. 운영 체제(144), 애플리케이션 프로그램들(145), 다른 프로그램 모듈들(146) 및 프로그램 데이터(147)는 최소한 그것들의 상이한 복사본들임을 설명하기 위해 상이한 번호들을 부여받는다.
사용자는 키보드(162), 마이크로폰(163) 및 마우스, 트랙볼 또는 터치 패드 등의 포인팅 장치(161)와 같은 입력 장치들을 통해 컴퓨터(110)에 명령 및 정보를 입력할 수도 있다. 다른 입력 장치들(도시되지 않음)은 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이런 혹은 다른 입력 장치들은 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스 및 버스 구조들에 의해 연결될 수 있다. 모니터(191) 또는 다른 타입의 디스플레이 장치가 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터 외에, 컴퓨터들은 종종 출력 주변 인터페이스(190)를 통해 연결될 수도 있는 스피커(197) 및 프린터(196)와 같은 다른 주변 출력 장치들을 포함할 수도 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터들로의 논리적인 연결을 사용해서 네트워크화된 환경에서 동작할 수도 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 휴대형 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공동 네트워크 노드일 수도 있으며, 컴퓨터(110)와 관련해서 상술된 구성 요소들 중 다수 또는 전부를 통상 포함한다. 도 1에 도시된 논리적 연결들은 근거리 통신망(LAN; 171) 및 광역 통신망(WAN; 173)을 포함하는데, 다른 네트워크들을 포함할 수도 있다. 네트워크 환경은 사무실에서 흔한 것으로, 기업간 컴퓨터 네트워크, 인트라넷 및 인터넷이다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스(170) 또는 어댑터를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴 퓨터(110)는 인터넷과 같은 WAN(173)을 통한 통신을 설정하기 위한 모뎀(172) 또는 다른 수단을 통상 포함한다. 내장 또는 외장 될 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 다른 적합한 메카니즘을 통해 시스템 버스(121)에 접속될 수도 있다. 네트워크화된 환경에서, 컴퓨터(110)와 관련해서 도시된 프로그램 모듈들, 또는 그 일부들은 원격 메모리 저장 장치에 저장될 수 있다. 예를 들어, 도 1은 원격 컴퓨터(180)에 상주하는 것으로 원격 애플리케이션 프로그램들(185)을 도시하고 있지만, 이들로만 제한되지 않는다. 도시된 네트워크 연결들은 일례이며, 컴퓨터들 간에 통신 링크를 설정하는 다른 수단이 사용될 수 있음을 인식할 것이다.
도 2는 본 발명이 구현될 수 있는 다른 환경을 도시한 블록도이다. 특히, 도 2는 자연어 식별 기능을 갖는 자연어 프로세싱 시스템을 도시한다. 도 2와 유사한 일반적인 환경은 본 명세서에 전체가 참조용으로 인용된 2004년 3월 30일에 출원된 미국특허출원 제10/813,652호에 상세히 기술되어 있다.
자연어 프로세싱 시스템(200)은 자연어 프로그래밍 인터페이스(202), 자연어 프로세싱(NLP) 엔진들(204), 및 관련 어휘 목록(206:lexicons)을 포함한다. 도 2는 애플리케이션 프로그램을 포함하는 애플리케이션 계층(208)과 상호 작용하는 시스템(200)을 도시한다. 애플리케이션 프로그램은 언어 서비스 플랫폼(Linguistic Services Platform) 또는 "LSP"라고 할 수 있는 자연어 프로세싱 서비스들에 액세스할 필요가 있는 워드 탐색, 데이터 마이닝(minig), 또는 문서 인덱싱과 같은 자연어 프로세싱 애플리케이션들일 수 있다.
프로그래밍 인터페이스(202)는 애플리케이션 계층(208)에 의해 호출될 수 있는 구성 요소들(메소드, 속성 및 인터페이스)을 공개한다. 프로그래밍 인터페이스(202)의 요소들은 애플리케이션 계층(208)의 애플리케이션이 자연어 프로세싱 서비스들을 획득하기 위해 공개된 요소들을 호출할 수 있도록 기본 객체 모델(상세한 설명은 상기 인용된 특허 출원서에 제공되어 있음)에 의해 지원된다. 그렇게 하기 위해, 계층(208)의 애플리케이션은 먼저 인터페이스(202)를 구성하기 위해 인터페이스(202)를 공개하는 객체 모델에 액세스할 수 있다. "구성"이라는 용어는 원하는 자연어 프로세싱 특징 또는 기능을 선택하는 것을 포함함을 의미한다. 예를 들어, 애플리케이션은 블록(203)으로 표시된 언어 자동 검출(LAD)을 선택하기를 희망할 수도 있다.
인터페이스(202)가 일단 구성되면, 애플리케이션 계층(208)은 처리될 자연어 텍스트, 샘플, 또는 문서들과 같은 텍스트를 인터페이스(202)에 제공할 수 있다. 그 후, 인터페이스(202)는 예를 들어, 본 발명에 따른 언어 식별, 단어 분해(word breaking), 또는 다른 자연어 프로세싱을 포함하는 언어 자동 검출(LAD)을 실행하는 NLP 엔진(204)에 액세스할 수 있다. 실행된 자연어 프로세싱의 결과들은 예를 들어, 프로그래밍 인터페이스(202)를 통해 애플리케이션 계층(208)의 애플리케이션에 제공되거나, 후술되는 바와 같이 어휘 목록(206)을 갱신하는데 사용될 수 있다.
인터페이스(202) 또는 NLP 엔진(204)은 어휘 목록(206)을 사용할 수도 있다. 어휘 목록(206)은 갱신될 수도 고정될 수도 있다. 시스템(200)은 추가 어휘 목록이 요구되지 않도록 핵심(core) 어휘 목록(206)을 제공할 수 있다. 그러나, 인터 페이스(202)는 애플리케이션이 커스터마이즈된 어휘 목록(206)을 추가할 수 있게 해주는 구성 요소들을 공개한다. 예를 들어, 애플리케이션이 문서 인덱싱 또는 탐색에 대한 것이면, 명명된 엔티티들(예를 들어, 사람 또는 회사 이름들)을 갖는 커스터마이즈된 어휘 목록은 추가되거나 액세스될 수 있다. 물론, 다른 어휘 목록이 추가되거나 액세스될 수도 있다.
또한, 인터페이스(202)는 결과들이 어휘 목록으로부터 리턴될 때, 표시가 예컨대, 결과 속성 등으로 제공되도록 애플리케이션이 표시를 어휘 목록에 추가하도록 해주는 구성 요소들을 공개할 수 있다.
2항 분포
2항 분포는 공지된 이산 확률 분포이다. 예를 들어, 동전을 던졌을 때, 결과는 앞 아니면 뒤이다; 마술사가 한 벌의 카드 중에서 선택된 카드를 알아맞힐 때, 마술사는 알아 맞히거나 알아 맞히지 못할 수 있다; 아기가 태어날 때, 아기는 4월생이거나 아니다. 상기 일례들 각각에서, 사건은 두 가지 상호 배타적 가능한 결과를 갖는다. 결과 중 하나는 "성공"이라 칭하고 다른 결과는 "실패"라고 칭한다. 사건이 T회 발생하면(예를 들어, 동전을 T회 던지거나 "시도"하면), 2항 분포가 T회의 시도들에서 정확하게 C회의 성공들을 획득하는 확률을 결정하는데 사용될 수 있다. T회의 시도들에서 C회의 성공들을 획득하는 2항 확률은 이하의 수학식으로 제공된다:
Figure 112006000678933-PAT00001
여기서, c=C일 때, P(c)는 정확하게 C회 성공하는 확률이고, T는 사건 발생 횟수이고, π는 임의의 1회 시도에서 성공할 확률 또는 예상 확률이다. 상기 수학식은 이하의 가정들을 생성한다:
1. T와 동일한 시도들이 있는데, T는 미리 고정된다;
2. 각각의 시도는 두 가지 가능한 결과, 즉 성공 또는 실패를 갖는다;
3. 시도들은 독립적이어서, 한 시도의 결과가 다른 시도의 결과에 영향을 주지않는다;
4. 성공 확률은 시도마다 일정하다.
2항 분포에서, x의 평균값 및 분산은 각각 다음의 수학식들에 의해 제공된다:
Figure 112006000678933-PAT00002
Figure 112006000678933-PAT00003
따라서, 예를 들어, 그릇에 10개의 공이 있다고 가정하자. 3개의 공은 레드이고, 7개의 공은 블루이다. 성공은 레드 공을 선택하는 것으로 정의된다. 공을 임의로 선택한 후 다시 놓는다면, 성공할 확률은 각각의 시도에 대해 3/10 또는 π =0.3이다. 10회 공을 선택하면, T=10이다. 따라서, 10회의 시도들에서 5회 레드 공(즉, c=5)을 선택할 확률은 T, c, π 값들을 수학식 1에 대입함으로써 구해진다:
Figure 112006000678933-PAT00004
따라서, 5회 성공할(또는 5번 레드 볼들을 선택할) 확률은 대략 18%이다. 2항 분포는 0 내지 10(시도 횟수) 범위의 상이한 c 값들에 대해 계산될 수 있다.
또한, 상기 일례에서, 2항 분포의 평균값 E(c) 및 분산 Var(c)는 수학식 2 및 수학식 3을 사용해서 다음과 같이 결정될 수 있다:
Figure 112006000678933-PAT00005
시도 횟수가 증가함에 따라 총 시도들의 백분률로서의 분산은 감소하려는 경향이 있음에 유의해야 한다. 따라서, 예상 정확성은 시도 횟수가 증가할수록 향상된다.
종종, 2항 분포의 누적 형태가 사용되어서, 5회 이상의 레드 공들을 잡을 확률, P(≥5)가 이하의 수학식에 의해 제공된다:
Figure 112006000678933-PAT00006
본 발명의 총괄적 양상들
본 발명에서, 2항 분포(또는 가우스 분포와 같은 다른 확률 분포)의 개념은 언어 식별에 사용될 수 있다. 언어 L의 총 T개의 피처(feature)들의 한 피처의 카운트를 볼 확률은 언어 L에서의 피처 f의 예상 확률이 주어질 때 계산될 수 있다. 피처 카운트는 "성공"으로 간주될 수 있으며, 피처들의 총 개수는 "시도" 횟수로서 간주될 수 있다.
또한, 예상 확률들 π1 내지 πN 및 피처들의 총 개수 T가 주어질 때, 카운트 f1 내지 fN을 갖는 피처 1 내지 N을 볼 결합 확률은 다음과 같이 표현될 수 있다:
Figure 112006000678933-PAT00007
각각의 P(fi|T,πi) 값은 2항 분포 또는 유사한 (이산 또는 연속) 확률 함수를 사용해서 획득될 수 있다. 대부분의 실시예들에서, 각각의 피처는 언어에서 발견된 하나 이상의 문자들을 포함한다. 예를 들어, 피처는 "a"와 같은 개별적인 문자이거나 "tr" 또는 "and"와 같은 문자들의 결합일 수 있다. 또한, 피처를 구성하는 하나 이상의 문자들은 연속적일 수 있지만, 반드시 그럴 필요는 없다. 예를 들어, 피처는 제3의 결정되지 않은 문자에 의해 분리되는 두 개의 문자들일 수 있다. 피처는 또한 "@" 또는 "#"과 같은 하나 이상의 부호를 포함할 수 있다. 그러나, 한 실시예에서, 각각의 피처는 "a" 또는 "b"와 같은 단일 문자 또는 글자를 나타낸 다. 피처로서 단일 문자를 사용하는 것은 계산 속도를 증가시키는데 유익할 수 있다.
또한, 본 발명의 다른 실시예들에서, P(ci|T,πi)의 값들은 (예를 들어, 수학식 1의 2항 분포를 사용해서 이산 확률들을 계산함으로써) 수학적으로 획득될 수 있다. 또 다른 실시예들에서, P(fi|T,πi) 값은 (예를 들어, 다양한 언어들의 훈련 언어 자료들의 피처들 또는 문자들을 카운트하고 선택 윈도 또는 샘플 사이즈에 대해 정규화함으로써) 물리적으로 또는 경험적으로 획득된다. 수학적 계산 및 물리적 카운팅의 몇몇 결합이 P(fi|T,πi) 값을 결정하는데 사용될 수 있다.
예상 문자 확률들이 물리적으로 결정되는 실시예들에서, 정수 계산을 야기하는 선택된 샘플 사이즈(예를 들어, 1000개의 문자들에 대한 문자 카운트)로 정규화하는 것이 유익할 수 있음에 유의해야 한다. 정수 계산은 유익하게도 성능 또는 속도를 증가시킨다. 그러나, 정수 계산은 선택적이며, 보다 높은 정확성을 위해 보다 정확한 십진법 값들을 위해 생략될 수 있다. 또한, 1000개의 문자들의 샘플 사이즈는 오직 개별적인 문자들 또는 글자들이 고려될 때 비교적 피처들을 적게 갖는 영어와 같은 유럽 언어들에 대해 적합할 수 있음에 유의해야 한다. 대조적으로, 중국어 또는 일어와 같은 아시아 언어들의 예상 피처 확률들은 기록 시스템들에서 사용되는 피처들 또는 표의 문자들(ideographs)(대 글자들)의 수가 훨씬 더 많기에 100,000개의 피처 윈도 당 예상 피처 카운트와 같은 보다 큰 샘플 사이즈로 정규화될 가능성이 있다.
도 3은 단일 방법(300)으로서 구현된 본 발명의 두 가지 총괄적 양상들 또는 단계들(302, 306)을 도시한 개략적인 흐름도이다. 도 4 및 도 6은 각각의 양상을 실행하기 위한 모듈들을 도시한 블록도이다. 단계(302)는 다수의 언어들에 대한 예상 문자 카운트 또는 확률 정보 또는 값들의 언어 모델들 또는 표들을 포함하는 정보를 갖는 어휘 지식 베이스(418)(도 4에 도시됨)를 증대(augmenting)하는 것을 포함한다. 상기 정보는 후에 언어 식별에 사용된다.
언어 식별 단계는 인식되지 않거나 식별되지 않은 자연어로 기록된 입력 텍스트를 수신하는 단계(304)를 포함한다. 단계(306)에서, 언어 모델들은 수신된 자연어 텍스트의 언어(들)를 식별하기 위해 액세스된다. 점수화 시스템은 텍스트의 가장 가능성 있는 또는 가장 가능성 없는 언어(들)을 식별하는데 사용될 수 있다. 대안으로, 언어 점수화 시스템은 예를 들어, 가능한 언어들의 후보 리스트를 개발할 때 필터로서 작용하기 위해 저 확률 언어들을 배제하기 위해 가장 가능성 없는 언어(들)를 식별할 수 있다. 상술된 바와 같이, 단계(306)는 유니코드 값들 또는 범위들, 및/또는 최적화된 언어 식별 성능(예를 들어, 증가된 속도 및/또는 정확성)을 위한 n-그램 방법들을 사용하는 것 등의 부단계들을 포함할 수 있다. 특히, 본 발명은 본 명세서에 전체가 참조용으로 인용되었으며 2001년 8월 7일에 출원된 드 캠포스(de Campos)의 미국 특허 제6,272,456호에 기술된 바와 같은 n-그램 언어 식별 시스템과 결합될 수 있다. 화살표(308)로 표시된 바와 같이, 본 방법(300)은 본 발명에 따라 임의의 개수의 입력 텍스트 샘플들이 수신되고 처리될 수 있도록 반복될 수 있다.
도 3a 및 도 3b는 도 3의 단계들(302, 306)을 실행하기 위해 총괄적 방법 및 시스템들(310, 320)을 함께 도시한 것이며, 병행하여 설명된다. 시스템(310)은 단계(302)를 실행할 수 있으며 시스템(320)은 단계(306)를 실행할 수 있다.
단계(352)에서, 텍스트 문서(312)(영어 또는 중국어와 같은 공지된 자연어로 기록됨)는 시스템(310)에 의해 수신된다. 시스템(310)은 카운터(314)를 포함한다. 단계(354)에서, 카운터(314)는 자연어로 된 텍스트 문서들(312)의 고유한 피처들 1 내지 N의 출현 횟수(316)를 카운트하고, 상기 피처 카운트들(316)을 예상 확률 또는 빈도 값 πi로 변환하며, 여기서, i=1,...,N이다.
단계(356)에서, 단계들(352, 354)은 예상 피처 확률 또는 빈도 값들(318)을 생성하기 위해 다른 자연어들에 대해 반복된다. 단계(358)에서, 모든 후보 언어에 대한 예상 피처 확률 값들(316, 318)은 언어 식별 동안에 차후 액세스를 위해 저장된다.
단계(360)에서, 시스템(320)은 식별되지 않은 자연어로 기록된 텍스트 샘플(322)을 수신한다. 시스템(320)은 카운터(324), 2항 확률 계산기(328), 및 점수화 시스템(332)을 포함한다. 단계(362)에서, 카운터(324)는 블록(326)에 도시된 바와 같이, 텍스트 샘플(322)의 피처들 또는 문자들의 총 개수 T 및 텍스트 샘플(322)의 고유한 피처들 1 내지 M의 출현횟수를 카운트한다. 단계(364)에서, 블록(326)에 도시된 관측, 실제 또는 현재의 피처 빈도수들 f1, ...fM이 계산된다. 단계(366)에서, 2항 확률 계산기(328)는 총 T개의 피처들(326), 저장된 예상 확률 값 πi(319), 및 텍스트 샘플(322)의 실제 피처 빈도 fj(326)가 주어질 때 확률 값(330)을 계산한다. 단계(368)에서, 점수화 시스템(332)은 예를 들어, 상기 수학식 5를 사용해서 다양한 후보 언어들에 대한 언어 점수들을 계산한다. 단계(370)에서, 시스템(320)은 언어 점수를 근거로 텍스트 샘플(322)에 대한 언어 리스트(334)를 생성 또는 식별한다. 텍스트 샘플(322) 및/또는 언어 리스트(334)는 블록(321)에 도시된 바와 같이 차후 프로세싱을 위해 또는 애플리케이션 계층에 리턴될 수 있다.
도 4는 본 발명에 따라 어휘 지식 베이스를 증대하는 단계(302)(도 3에 도시됨)를 실행할 수 있는 시스템의 다른 실시예를 도시한다. 도 5는 도 4의 모듈들에 일반적으로 대응하는 어휘 지식 베이스를 증대하는 단계들의 흐름도이다. 상세히 후술되는 바와 같이, 본 발명에 따른 어휘 지식 베이스는 언어 특정 피처들 및 각각의 피처의 예상 카운트 및 분산과 같은 관련 정보를 포함할 수 있다. 도 4 및 도 5에 도시된 모듈들 및 단계들은 단지 일례로서 원하는 경우 생략되고, 결합되고, 분할될 수 있음에 유의하는 것이 중요하다. 또한, 도 4 및 도 5의 모듈들 및 단계들은 단일 언어에 대한 설명으로, 언어 식별 단계에서 고려되는 각각의 자연어에 대해 반복될 것이다. 어휘 지식 베이스 구성 모듈(404)은 컴퓨터(110)에서 실행되는 애플리케이션 프로그램(135)일 수 있으며, 또는 LAN(171) 또는 WAN(173) 연결로 원격 컴퓨터들 중 임의의 컴퓨터에 저장되고 실행될 수 있다. 유사하게, 어휘 지식 베이스(418)는 컴퓨터(110)의 하드 디스크 드라이브(141) 또는 광 CD와 같은 로컬 저장 장치들 중 임의의 로컬 저장 장치에 있거나, 또는 원격으로 LAN(171) 또는 WAN(173) 메모리 장치들에 있을 수 있다.
단계(502)(도 5에 도시됨)에서, 어휘 지식 베이스 구성 모듈(404)은 도 1에 대해 기술된 저장 장치들 중 임의의 저장 장치 뿐만 아니라 상술된 입력 장치들 중 임의의 입력 장치로부터 처리되지 않은 자연어 텍스트(402)를 수신한다. 또한, 처리되지 않은 텍스트(402)는 도 2에 대해 기술된 애플리케이션 계층(208)을 통해 수신될 수 있다. 처리되지 않은 텍스트(402)는 책, 출판물, 저널, 웹 소스, 음성-대-텍스트 엔진 등으로부터의 자연어 텍스트일 수 있다. 자연어 텍스트(402)가 일반적으로 하나의 자연어로 입력된다는 점에 유의해야 한다. 그러나, 상술된 바와 같이, 어휘 지식 베이스(418)를 증대하는 언어 모델들(420)을 구성하는 프로세스는 다수의 언어 모델들(420)이 언어 식별 목적을 위해 구성되도록 반복되는 것이다.
단계(504)에서, 전처리 모듈(406)은 예를 들어, ',' 및 '.'과 같은 문법 피처들을 제거하거나 또는 개별적인 글자들과 같은 문자들을 대문자에서 소문자로 변환하는 것 등의 전처리를 하기 위해 처리되지 않은 텍스트(402)를 수신할 수 있다. 대다수의 상황들에서 숫자(digits)들이 언어에 특정적이지 않기 때문에, 숫자들은 제거될 수 있다. 그러나, 몇몇 실시예들에서, 예를 들어, 영어 의약 분야 또는 독일어 공학 분야 등의 기술 분야와 같은 언어의 부집합을 고려할 때, "1" 및 "2"와 같은 숫자들은 특정한 언어일 수 있다. 다른 실시예들에서, 예를 들어, 고려중인 자연어들이 다른 번호 시스템 또는 이중 번호 시스템을 사용할 때, 숫자들은 특정한 언어일 수 있다. 예를 들어, 중국어는 번호들을 표현하기 위해 표의 문자뿐만 아니라 "1" 및 "2"와 같은 숫자들을 모두 사용한다.
전처리 모듈(406)은 이상적으로 자연어를 나타내는 부분에서, 바람직하게는 특정 언어에서 발견되는 문자들(즉, 글자들, 부호들 등) 및 다른 피처들을 포함하는 훈련 언어 자료(408)를 생성한다. 대안으로, 대표적 훈련 언어 자료는 어휘 지식 베이스 구성 모듈(404)에 의해 액세스되거나 어휘 지식 베이스 구성 모듈(404)에 제공될 수 있다.
단계(506)에서, 문자 리스트(412)는 식별 또는 수신된다. 몇몇 실시예들에서, 훈련 언어 자료(408)는 문자 및/또는 피처 리스트(412)를 생성하기 위해 훈련 언어 자료(408)에서 고유한 문자들을 식별하는 문자 또는 피처 식별자(410)에 의해 수신된다. 대안으로, 특정 자연어에 대한 문자 및/또는 피처 리스트는 어휘 지식 베이스 구성 모듈(404)에 의해 액세스되거나 어휘 지식 베이스 구성 모듈(404)에 제공될 수 있다. 예를 들어, 영어에 대한 문자 리스트(412)는 알파벳 "a" 내지 "z"의 모든 글자들; 및 다른 문자들, 부호들 또는 "$" 또는 "#"과 같은 피처들을 포함할 수 있다. 그러나, 상술된 바와 같이, 중국어 또는 일어와 같은 한자-기반의(Kanji-based) 문자들 또는 표의 문자들을 사용하는 아시아 언어에 대한 문자 리스트(412)는 상당히 더 크다.
단계(508)에서, 확률 계산 모듈(414)은 문자 리스트(412)의 모든 문자들 또는 일부 문자들에 대해 상세히 상술된 문자 카운트 확률 값 P(c)를 생성한다. 생성된 확률 값들의 결과들은 선택된 샘플 사이즈(예를 들어, 1000개의 문자들)에 대해 정규화된 성공 또는 출현 횟수에 대한 샘플 문자들의 확률 분포들을 생성하는데 사용될 수 있다. 다른 실시예들에서, 확률 계산 모듈(414)은 특별히 선택된 사이 즈의 다수의 동일한 사이즈의 샘플 윈도들에 대해 각각의 문자의 평균 출현 횟수를 카운트하는 카운터(415)를 포함한다.
단계(510)에서, 확률 계산 모듈(414)은 단계(508)에서 샘플링된 문자들에 대한 "분산들"(416)을 생성한다. 몇몇 실시예들에서, "분산"은 특히 적어도 부분적으로 수학식 3을 근거로 계산될 수 있다. 예를 들어, "분산"은 수학식 3에 의해 제공된 2항 분산의 제곱근 또는 분수(예를 들어, 1/10)를 취함으로써 결정될 수 있다. 다른 실시예들에서, "분산"은 예를 들어, 분포 커브의 경사 또는 유사 평균을 분석함으로써 수치적으로 근사화될 수 있다. 분산은 또한 동일한 사이즈의 샘플들의 집합의 문자들의 실제 카운트 및 예상 카운트를 비교함으로써 경험적으로 계산될 수 있다. 또 다른 실시예들에서, "분산"은 카운트들을 클러스터링하는 범위를 선택하는 사람으로부터 물리적으로 생성된다.
단계(512)에서, 어휘 지식 베이스(418)는 확률 계산 모듈(414)에서 생성된 예상 카운트 또는 확률 정보 및 분산들을 갖는 언어 모델들 또는 표들(420)에 따라 증대된다. 단계(514)에서, 문자 리스트(412)로부터 다른 문자는 어휘 지식 베이스(418)를 더 증대하기 위해 상술된 방식으로 카운트 또는 확률 정보 및 분산들을 생성하도록 처리된다. 언어 모델들(420)을 생성하는 프로세스는 문자 리스트(412)의 모든 문자들이 처리될 때까지 계속된다. 다른 실시예에서, 리스트(412)의 모든 문자들은 예상 카운트들 및 분산들이 언어 모델들(420)에 추가되기 위해 계산되기 전에 모든 샘플 윈도들에 대해 카운트된다. 언어 모델들(420)은 후술되는 언어 식별 단계에서 런타임시 고려되는 각각의 언어에 대해 구성된다.
도 6은 도 3에 도시된 단계(306)를 구현하기 위한 언어 식별 시스템 또는 모듈을 도시한다. 언어 식별 모듈(604)은 상술된 바와 같이 언어 서비스 플랫폼으로 통합되는, 도 2에 도시된 언어 식별 모듈(205)와 유사할 수 있다. 또한, 도 7은 도 6의 언어 식별 시스템에 대응하거나 관련된 방법을 포함한다. 따라서, 도 6 및 도 7은 함께 후술된다. 또한, 도 6 및 도 7에 도시된 모듈들 및 단계들은 단지 일례로서 원하는 경우 생략되거나, 결합되거나, 분할될 수 있음을 주지하는 것이 중요하다. 예를 들어, 도 6의 유니코드 필터(606) 및 n-그램 언어 식별 모듈(619)은 점선으로 표시된 바와 같이 선택적 피처들이다.
단계(702)에서, 텍스트 샘플(602)은 텍스트 샘플 언어 식별(620)을 생성하기 위해 본 발명에 따라 텍스트 샘플(602)의 언어 식별을 실행하는 언어 식별 모듈(604)에 의해 수신된다. 단계(704)에서, 유니코드 필터(606)는 문자 유니코드 범위들을 근거로 후보 언어 리스트(608)를 생성하기 위해 텍스트 샘플(602)의 문자들의 유니코드 범위들을 분석한다. 이러한 방식으로, 유니코드 필터(606)는 텍스트 샘플(602)에 대해 고려되는 언어들의 수를 제한 또는 "필터링"할 수 있다.
유니코드 표준은 부호들을 포함해서 모든 인식된 문자들에 대한 고유한 번호 또는 값을 제공하는 ASCII와 같은 국제적 문자 부호화 시스템임에 유의해야 한다. 따라서, 유니코드 값들은 플랫폼, 프로그램 또는 언어와 무관하게 인식되는 것으로 의도된다. 각각의 인간 언어의 문자들은 특정 유니코드 범위에 속하려는 경향이 있다. 또한, 인간 언어들은 일반적으로 특정 유니코드 범위들 근방에서 가족들로 그룹지어진다. 따라서, 영어, 불어 또는 독일어와 같은 유럽 언어들의 문자들은 일반적으로 특정 유니코드 범위 내에 속한다. 중국어, 일어 및 한국어와 같은 아시아 언어들은 유럽 언어들의 유니코드 범위와는 다른 유니코드 범위 내에 속한다. 유니코드 표준의 부가적 정보는 웹사이트 http://www.unicode.org/에서 찾을 수 있다.
단계(705)에서, 카운터(611)는 텍스트 샘플(602)의 고유한 피처들 또는 문자들의 실제 출현횟수 j = 1 내지 M을 카운트한다. 카운터(611)는 보다 짧은 텍스트 샘플용으로 가능한 적합한 스케일링으로 1000개의 문자들과 같은 선택된 샘플 사이즈를 근거로 상기 카운트들을 결정할 수 있다. 단계(706)에서, 점수화 모듈(612)은 텍스트 샘플(602)에서 카운트된 실제 피처 출현횟수 fj 및 텍스트 샘플(602)에 대한 가장 가능성 있는 언어(들)(618)를 식별 또는 선택하기 위해 후보 언어 리스트(608)의 예상 확률 또는 카운트 값들(614)을 수신한다.
점수화 시스템(612)은 예상 확률들 p1 내지 pN 및 문자들의 총 개수 T가 주어진 경우, 텍스트 샘플(602)의 관측 또는 현재의 카운트들 f1 내지 fM을 갖는 피처들 또는 문자들 1 내지 N을 보게 될 결합 확률을 계산함으로써 후보 리스트(608)로부터 언어들에 대한 점수들을 생성할 수 있다. 이러한 실시예에서, 언어 점수들은 상기 수학식 5를 따를 수 있으며, 다음과 같이 반복된다:
Figure 112006000678933-PAT00008
각각의 P(fi|T,πi) 값은 도 3a의 블록(319)에 도시된 바와 같이 후보 언어들에 대한 저장된 피처 확률 정보에 액세스함으로써 획득될 수 있다. 이러한 실시예들에서, 보다 높은 점수가 텍스트 언어가 후보 언어일 확률이 보다 높음을 나타내기 때문에, 보다 나은 언어 점수가 상위이다. 점수화 모듈(610)은 최상 점수(들)를 갖는 언어(들)(618)를 생성한다. 그러나, 다른 실시예들에서, 점수화 시스템(612)은 낮은 점수 언어들을 고려 대상에서 제외한다.
몇몇 실시예들에서, 점수화 시스템(612)은 관측 또는 현재의 문자 카운트를 고려중인 다양한 후보 언어들의 언어 모델들(614)의 예상 카운트 또는 확률 및 분산에 대해 비교한다. 설명을 위해, 도 8b를 참조하면, 텍스트 샘플(602)이 문자 "i"에 대해 75라고 하는 현재의 또는 관측 카운트를 갖는 경우, 상기 카운트는 영어의 분산 내에 속하며, 따라서, 영어에 알맞게 점수화될 것이다. 현재의 카운트가 100 또는 0이면, 분산 외부에 속해서 영어에 적합하지 않게 점수화될 것이다. 점수화 시스템(612)은 예상 분산 또는 범위 밖에 있는 카운트들에 벌점(penalty)을 과하는 알고리즘을 포함할 수 있다. 이러한 방식으로, 부정적인 점수화가 가능하다. 이러한 실시예들에서, 보다 낮은 점수가 후보 언어에 가까운 텍스트의 언어를 나타내기 때문에, 보다 낮은 점수가 더 양호함에 유의해야 한다. 다시 말해서, 관측 문자 카운트는 예상 카운트에 "가깝다". 따라서, 최저 점수 언어(들)가 텍스트 언어(들)(618)로서 식별될 수 있다. 대안으로, 보다 높은 점수 언어들이 충분히 "가깝지" 않은 것이므로 제거될 수 있어서, "가장 가까운" 하나 이상의 후보 언어들 이 남는다.
한 실시예에서, 점수화 시스템(612)은 다음과 같이 점수화 알고리즘을 구현한다:
Figure 112006000678933-PAT00009
FinalScore L 은 하나의 언어에 대한 최종 점수이고; StoredCount i 는 문자 n의 예상 카운트/1000이고; CurrentCount i 는 텍스트 샘플의 문자 n의 카운트이며; N은 문자들의 수이고; 벌점은 CurrentCount i 가 분산 내에 있으면 1이고 CurrentCount i 가 분산 밖에 있으면 2이다. 따라서, 점수들은 후보 리스트(608)의 각각의 언어에 대해 계산된다. 가장 가능성 있는 또는 가장 가능성 없는 언어들(618)은 수학식 6을 사용해서 생성된 최저 점수들을 근거로 선택될 수 있다. 그러나, 수학식 7의 점수화 기능은 예시적인 것임에 유의하는 것이 중요하다. 언어 식별을 위한 2항 또는 다른 확률 분포들의 원리를 유지하는 다른 점수화 기능 시스템이 언어 식별을 위해 사용될 수 있다.
단계(710)에서, 점수화 모듈(610)은 통계적인 신뢰도를 결정하는 임의의 공지된 수단을 근거로 가장 가능성 있는 또는 가장 가능성 없는 언어들(618)에 대한 신뢰도 점수들을 계산한다. 이하의 표는 본 발명에 따라 신뢰도를 점수화하고 계산하는 하나의 수단을 설명한다.
Figure 112006000678933-PAT00010
단계(720)에서, 선택적 n-그램 언어 식별 모듈(619)은 상기 인용 특허에 기술된 바와 같이 n-그램 방법을 근거로 차후 언어 식별을 위해 텍스트 샘플(602) 및 식별된 언어들(618)을 수신할 수 있다. 특히, 텍스트 샘플(602)이 비교적 짧을 때 , 단계(720)가 정확성을 더 증가시킬 수 있음에 유의해야 한다. 단계(722)에서, n-그램 언어 식별 모듈(610)은 신뢰도를 근거로 리턴된 언어들의 리스트 또는 하나의 언어일 수 있는 언어 식별(620)을 생성한다. 언어 식별은 상술된 바와 같이 텍스트 샘플(602)의 다른 자연어 프로세싱에서 사용될 수 있다.
도 8a 및 도 8b는 본 발명에 따른 확률 계산 모듈(414)에 의해 생성된 확률 분포를 도시한다. 한 실시예에서, 도 8a는 1000개 문자 샘플 사이즈가 주어지면 영어의 글자 "i"와 같은 문자에 대한 확률 커브(800)를 도시한다. 도 8a는 분산이 ±7인 상황에서 대략 카운트=72일 때 최대 확률(808)이 발생함을 나타낸다. 다시 말해서, 하나 이상의 1000개 문자 집합들의 랜덤 샘플링 중에, 영어의 문자 "I"에 대한 다른 카운트 보다 72개의 문자들이 있을 가능성이 높다. 그러나, 랜덤 샘플링은 일반적으로 영어가 고려되거나 점수화될 때 예상 범위(806)안의 문자 카운트들을 산출한다는 점에 유의하는 것이 중요하다. 범위(806)는 도시된 분산들(802, 804)을 포함한다.
본 발명에서, 언어들은 부정적으로 점수화되거나 긍정적으로 점수화될 수 있다. 긍정적인 점수화는 언어에 대한 실제 출현횟수를 사용하는 것을 포함한다. 부정적인 점수화는 언어에 대해 발생하지 않은 횟수를 사용하는 것을 포함한다. 언어들을 부정적으로 점수화하거나 긍정적으로 점수화하는 기능은 종종 긍정적인 증거 점수화 시스템들로 제한되는 다른 언어 식별 시스템에서 유익하다고 생각됨에 유의해야 한다. 예를 들어, n-그램 점수화 방법들은 통상 긍정적인 증거만을 점수화한다.
본 명세서에서 사용된 "부정적인 증거"는 사건의 비발생이다. 예를 들어, 비발생은 텍스트 샘플의 어느 장소에서도 문자가 비발생하는 것일 수 있다. 대안으로, 비발생은 예상 범위 내에서의 문자 카운트의 비발생일 수 있다. 즉, 문자 카운트가 문자의 예상 범위 밖에 있는 것으로 발견된다. 유사하게, "긍정적인 증거"는 사건의 발생이다. 이러한 발생은 샘플 텍스트에서의 문자의 발생이거나, 또는 예상 범위 내에서의 문자 카운트의 발생일 수 있다. 다수의 실시예들에서, 점수화 방법은 특정 언어에 대한 긍정적인 및 부정적인 증거 둘 다를 고려할 수 있음에 유의해야 한다.
다른 일례로서, 포르투갈어와 스페인어는 꽤 유사하다. 그러나, 포르투갈어는 문자
Figure 112006000678933-PAT00011
를 포함하지만, 스페인어는 포함하지 않는다. 따라서, 텍스트 샘플이 문자
Figure 112006000678933-PAT00012
를 포함하면, 이는 포르투갈어를 위해 긍정적인 증거이며 스페인어에 대항해서 긍정적인 증거이다. 텍스트 샘플이 문자
Figure 112006000678933-PAT00013
를 포함하지 않으면, 이는 포르투갈어에 대항해서 부정적인 증거이며, 스페인어를 위해서 부정적인 증거이다.
도 8b는 도 8a와 유사하지만, 가능한 데이터 포인트들(812, 814, 816)을 도시한다. 따라서, 0 및 100의 문자 카운트들(데이터 포인트들(812 및 814)로 도시됨)은 둘 다 예상 범위(806) 밖에 있다. 따라서, 데이터 포인트(814)에서 영어에 대한 예상 범위 내의 문자 "i"가 출현하지 않음(non-occurrence)은 영어에 대항해서 부정적인 증거이다. 다시 말해서, 영어는 "i"의 예상 문자 카운트가 출현하지 않는 경우 부정적으로 점수화된다. 유사하게, 문자 "i"((814)로 도시됨)가 출현하 지 않는 텍스트 샘플은 영어에 대항해서 점수화된 부정적인 증거를 야기한다.
대조적으로, 75((816)으로 도시됨)의 "i" 카운트를 갖는 텍스트 샘플은 영어를 위해 긍정적인 점수화를 야기한다. 다시 말해서, 문자 "i"에 대한 75의 관측 문자 카운트는 예상 범위 내의 문자 카운트의 발생으로 인해 영어에 호의적인 긍정적인 증거이다.
훈련 프로세스
도 9는 도 4에 도시된 카운터(415)에 대해 기술된 바와 같은 물리적 또는 컴퓨터 보조 훈련 프로세스의 알고리즘 또는 실시예를 도시한다. 도시된 훈련 프로세스는 다양한 자연어들의 문자들(도 4의 문자 리스트(412)에 도시됨)에 대한 확률 또는 카운트 정보 및 관련 분산들(도 4의 블록(416)으로 도시됨)을 생성하는데 사용될 수 있다. 후술되는 변수명들은 설명을 목적으로 한 것으로 반듯이 훈련 코드에서 사용되는 실제 변수명일 필요가 없음에 유의해야 한다. 훈련 프로세스는 각각의 언어에 대해 실행된다. 훈련 프로세스의 출력은 각각의 언어에 대한 문자 카운트 및 분산의 배열이다.
텍스트의 각각의 문자의 확률은 먼저 미리 계산된다. 훈련 동안에, 일련의 동일 사이즈 슬라이딩 윈도들이 고려된다. 훈련은 1000-문자 윈도들에 대해 실행될 수 있지만, 이상적으로, 윈도들이 동일한 사이즈인 한, 다른 윈도 사이즈들이 사용될 수 있다. 윈도들은 오퍼랩되거나 되지 않을 수 있다. 값은 오버랩이 전혀 되지 않는 것을 포함해서, 윈도들이 오버랩되는 양을 조정하기 위해 내부적으로 설정될 수 있다.
각각의 윈도의 경우, 각각의 문자의 출현횟수가 카운트되어 개별 합계로 저장된다. 훈련 프로세스는 카운트들 및 윈도들의 실행 합계들을 갱신하는데 사용되는 문자 카운트들에 걸쳐 루핑한다. 각각의 카운트는 문자의 미리 계산된 확률을 근거로 카운트가 예상 카운트/1000 보다 큰지 작은지를 결정하기 위해 체크된다. 보다 크거나(즉, 긍정적인) 보다 작은(즉, 부정적인) 분산 합계들은 증가된다.
모든 윈도들을 처리한 후, 다양한 합계 값들이 각각의 문자의 AverageCountPerWindow (확률) 및 AverageVariance를 계산하는데 사용된다. 문자, AverageCountPerWindow 및 AverageVariance는 파일에 프린트될 수 있으며, 이는 저장된 값들에 대한 런타임 리소스가 된다.
각각의 문자에 대해, 이하의 값들이 추적됨에 유의해야 한다:
Figure 112006000678933-PAT00014
각각의 윈도에 대해 재계산된 현재의 윈도의 카운트(CharacterCount);
Figure 112006000678933-PAT00015
총 TotalCharacterCount;
Figure 112006000678933-PAT00016
TotalCountAbove 예상 확률/카운트;
Figure 112006000678933-PAT00017
본 문자의 카운트가 예상 확률/카운트보다 큰 윈도들의 총 개수인 TotalWindowsAbove;
Figure 112006000678933-PAT00018
TotalCountBelow 예상 확률/카운트;
Figure 112006000678933-PAT00019
TotalWindowsBelow: 현재의 문자의 카운트가 예상 확률 또는 카운트 보다 작은 윈도들의 총 개수.
또한, TotalWindowsSeen의 개수가 추적된다. AverageCountPerWindow 값들이 예상된 미리 계산된 문자 확률들과 대략 동일함에 유의해야 한다.
도 10은 본 발명에 따른 언어 식별의 알고리즘 또는 실시예를 도시한다. 각각의 입력 텍스트에 대해, 고려될 샘플들의 수가 결정된다. 텍스트 샘플이 충분히 길면, 샘플들은 텍스트에서 수개의 포인트들로부터 취해질 수 있다. 텍스트가 짧으면, 단 하나의 샘플이 선택될 수 있다. 각각의 샘플에 대해, 텍스트는 먼저 URL 또는 번호 등의 언어 특정적이지 않은 문자들 및 공백들을 삭제함으로써 전처리된다. 그 후, 각각의 문자는 라틴어, 키릴(Cyrillic) 문자, 아랍어 등과 같은 문자 범위에 대해 체크된다. 각각의 범위로부터 보여지는 문자들의 수가 추적된다. 고유한 유니코드 문자 범위들로부터의 문자들은 개별 모듈(본 명세서에 기술되지 않음)에서 처리된다. 모든 다른 범위들의 경우, 각각의 고유한 문자의 출현횟수가 카운트된다. 문자 범위가 샘플에서 표현되지 않은(또는 최소한으로 표현된) 임의의 언어는 선택에서 배제된다.
고유하지 않은 범위, 즉, 다수의 언어들에 의해 공유되는 범위의 문자들의 경우, 점수는 문자 카운트, 저장된 데이터, 및 수학식 6의 점수화 알고리즘을 사용해서 계산된다. 최상 점수의 언어들이 결정된다. 상기 우세한 언어들은 고유한 범위 모듈로부터의 임의의 우세한 언어들과 결합된다. 마지막으로, 하나 이상의 우세한 언어들의 신뢰도가 특히, 우세한 언어들을 순서화하기 위해 계산될 수 있는데, 이는 그 후 리턴된다.
도 11은 텍스트의 각각의 후보 언어에 대한 점수를 계산하기 위한 특정 실시예 또는 알고리즘을 도시한 흐름도이다. 알고리즘은 아직 배제되지 않은 언어들에 걸쳐 루핑한다. 각각의 언어에 대해, 예상 문자 카운트들 및 분산들의 배열에 액 세스한다. 그 후, 텍스트에서 카운트되었던 모든 문자들과, 언어에 의해 예상되는 모든 문자들을 포함하는 최소 문자 범위를 격리한다. 상기 문자들에 걸쳐 루핑한다. 텍스트로부터의 카운트(CurrentCount) 또는 언어의 예상 카운트(StoredCount) 중 어느 하나가 0 보다 크거나, 둘 다 0 보다 크면, 점수는 이하의 수학식을 사용해서 문자에 대해 계산된다:
Figure 112006000678933-PAT00020
Penalty는 CurrentCount가 문자의 저장된 분산 내에 있지 않을 때 1 보다 크다. 상기 점수는 언어의 총 점수에 추가된다. 모든 들이 모든 언어들에 대해 처리되었으면, 알고리즘은 총 점수들의 집합에 걸쳐 루핑하고 각각의 언어의 총 점수의 제곱근을 취한다. 각각의 언어의 최종 점수는 이하의 수학식에 의해 주어진다:
Figure 112006000678933-PAT00021
여기서 항들은 상술된 바와 같이 정의되었다.
본 발명이 특정 실시예들을 참조해서 기술되었지만, 본 기술 분야에 숙련된 자들은 본 발명의 원리 및 범위 내에서 변경들이 이루어질 수도 있음을 알 것이다.
본 발명에 따라 종래 기술의 언어 식별 방법 및 시스템에 비해 보다 신속하고 향상되었으며 다수의 장점들을 갖는 언어 식별 방법 및 시스템이 제공된다.

Claims (20)

  1. 텍스트의 자연어를 식별하는 방법에 있어서,
    인식된 자연어로 기록된 텍스트 문서들을 수신하는 단계;
    예상 피처 카운트들을 생성하기 위해 상기 텍스트 문서들의 고유한 피처들의 출현횟수들을 카운트하는 단계; 및
    실제 피처 출현횟수의 함수로서 확률 값들을 생성하기 위해 확률 분포 및 상기 예상 피처 카운트들을 사용하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    확률 분포를 사용하는 상기 단계는 이산 또는 연속 확률 분포를 사용하는 단계를 포함하는 방법.
  3. 제2항에 있어서,
    확률 분포를 사용하는 상기 단계는 2항 또는 가우스 분포를 사용하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    다수의 후보 언어들 각각에 대해 확률 값들의 표를 구성하는 단계를 더 포함 하는 방법.
  5. 제4항에 있어서,
    식별되지 않은 자연어로 기록된 텍스트 샘플을 수신하는 단계;
    상기 텍스트 샘플의 몇몇 피처들의 실제 피처 카운트들을 결정하는 단계; 및
    상기 실제 피처 카운트들을 근거로 상기 텍스트 샘플에 대한 상기 후보 언어들 중 적어도 하나를 식별하기 위해 상기 확률 값들의 표들에 액세스하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서,
    상기 실제 피처 카운트들과 관련된 상기 확률 값들을 승산함으로써 각각의 후보 언어를 점수화하는 단계를 더 포함하는 방법.
  7. 텍스트의 자연어를 식별하는 방법에 있어서,
    식별되지 않은 자연어로 기록된 텍스트 샘플을 수신하는 단계;
    상기 텍스트 샘플의 문자들 중 적어도 하나의 윈도에서 적어도 하나의 피처에 대한 현재의 카운트를 결정하는 단계;
    다수의 후보 언어들에 대한 상기 적어도 하나의 피처의 예상 확률 정보를 획득하는 단계;
    상기 현재의 카운트 및 상기 획득된 예상 확률 정보를 근거로 상기 다수의 후보 언어들 중에서 상기 텍스트 샘플용으로 적어도 하나의 언어를 식별하는 단계
    를 포함하는 방법.
  8. 제7항에 있어서,
    상기 예상 확률 정보를 획득하는 단계는 상기 적어도 하나의 피처에 대한 2항 분포를 근거로 확률 값들을 수신하는 단계를 포함하는 방법.
  9. 제7항에 있어서,
    선택적 사이즈의 샘플마다 상기 적어도 하나의 피처의 평균 카운트들을 포함하는 상기 예상 확률 정보를 추정하기 위해 훈련 언어 자료(corpus)를 샘플링하는 단계를 더 포함하는 방법.
  10. 제7항에 있어서,
    상기 테스트 샘플에 대한 가장 가능성 있는 언어를 식별하기 위해 상기 적어도 하나의 식별된 언어의 n-그램 언어 프로파일들을 사용하는 단계를 더 포함하는 방법.
  11. 제7항에 있어서,
    상기 다수의 후보 언어들을 식별하기 위해 유니코드 값들을 사용하는 단계를 더 포함하는 방법.
  12. 제7항에 있어서,
    상기 적어도 하나의 언어를 식별하는 단계는 상기 적어도 하나의 피처의 현재의 카운트를 상기 획득된 예상 확률 정보와 비교하는 것에 근거하여 상기 다수의 후보 언어들 각각에 대한 언어 점수를 생성하는 단계를 포함하는 방법.
  13. 제12항에 있어서,
    상기 언어 점수를 생성하는 단계는 상기 텍스트 샘플의 결정된 현재의 카운트들을 갖는 다수의 피처들의 조인트 확률을 추정하는 단계를 포함하는 방법.
  14. 제7항에 있어서,
    상기 언어 점수를 생성하는 단계는 상기 적어도 하나의 문자에 대한 현재의 카운트가 상기 획득된 예상 확률 정보의 분산 내에 속할 때 후보 언어를 긍정적으로 점수화하는 단계를 포함하는 방법.
  15. 제7항에 있어서,
    상기 언어 점수를 생성하는 단계는 상기 적어도 하나의 문자에 대한 현재의 카운트가 상기 획득된 예상 확률 정보의 분산 밖에 속할 때 후보 언어를 부정적으로 점수화하는 단계를 포함하는 방법.
  16. 제7항에 있어서,
    상기 언어 점수를 생성하는 단계는 상기 샘플 텍스트에서 예상 피처가 출현하지 않는 후보 언어를 부정적으로 점수화하는 단계를 포함하는 방법.
  17. 제7항에 있어서,
    상기 식별된 적어도 하나의 언어 각각에 대한 신뢰도 점수를 추정하는 단계를 더 포함하는 방법.
  18. 구현될 때, 컴퓨터가 언어 식별을 실행하게 하는 명령어들을 포함하는 컴퓨터 판독 가능 매체에 있어서, 상기 명령어들이
    다수의 자연어들 각각에 대해, 피처 리스트 및 리스트된 피처들 각각과 관련된 예상 확률 값을 구성 및 저장하도록 적응된 모듈; 및
    텍스트 샘플의 실체 피처들을 카운트하고, 상기 텍스트 샘플에 대한 적어도 하나의 자연어를 식별하기 위해 상기 실제 피처들과 관련된 상기 저장된 예상 확률 값들에 액세스하도록 적응된 모듈
    을 포함하는 컴퓨터 판독 가능 매체.
  19. 제18항에 있어서,
    상기 식별된 자연어들의 신뢰도 점수들을 결정하고 상기 신뢰도 점수들을 근거로 자연어들을 순서화하도록 적응된 모듈을 더 포함하는 컴퓨터 판독 가능 매체.
  20. 제18항에 있어서,
    상기 텍스트 샘플에 대한 언어 식별을 실행하기 위해 상기 적어도 하나의 식별된 자연어 각각에 대한 n-그램 언어 프로파일에 액세스하도록 적응된 모듈을 더 포함하는 컴퓨터 판독 가능 매체.
KR1020060001193A 2005-02-11 2006-01-05 효율적인 언어 식별 방법 KR101265803B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/056,707 2005-02-11
US11/056,707 US8027832B2 (en) 2005-02-11 2005-02-11 Efficient language identification

Publications (2)

Publication Number Publication Date
KR20060091051A true KR20060091051A (ko) 2006-08-17
KR101265803B1 KR101265803B1 (ko) 2013-05-20

Family

ID=36616973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060001193A KR101265803B1 (ko) 2005-02-11 2006-01-05 효율적인 언어 식별 방법

Country Status (5)

Country Link
US (1) US8027832B2 (ko)
EP (1) EP1691299A3 (ko)
JP (1) JP5173141B2 (ko)
KR (1) KR101265803B1 (ko)
CN (1) CN1819018B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101693627B1 (ko) 2015-10-08 2017-01-17 숭실대학교산학협력단 문자 인코딩 변환 장치 및 방법
KR20180109408A (ko) * 2017-03-28 2018-10-08 주식회사 와이즈넛 언어 판별 장치 및 방법

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0507036D0 (en) * 2005-04-07 2005-05-11 Ibm Method and system for language identification
US8185376B2 (en) * 2006-03-20 2012-05-22 Microsoft Corporation Identifying language origin of words
US7372851B2 (en) * 2006-06-28 2008-05-13 International Business Machines Corporation Method and system for automatic language negotiation on voice (over IP) calls
US7552045B2 (en) * 2006-12-18 2009-06-23 Nokia Corporation Method, apparatus and computer program product for providing flexible text based language identification
US8326598B1 (en) 2007-03-26 2012-12-04 Google Inc. Consensus translations from multiple machine translation systems
US8301623B2 (en) * 2007-05-22 2012-10-30 Amazon Technologies, Inc. Probabilistic recommendation system
US8219447B1 (en) 2007-06-06 2012-07-10 Amazon Technologies, Inc. Real-time adaptive probabilistic selection of messages
GB0717067D0 (en) * 2007-09-03 2007-10-10 Ibm An Apparatus for preparing a display document for analysis
EP2107473A1 (en) * 2008-03-31 2009-10-07 Sony Corporation System and method for determining the laguage of teletext
US8869015B2 (en) * 2008-05-08 2014-10-21 Dialogic (Us) Inc. System and method to permit language independence for web interfaces
US8676001B2 (en) 2008-05-12 2014-03-18 Google Inc. Automatic discovery of popular landmarks
US8266514B2 (en) * 2008-06-26 2012-09-11 Microsoft Corporation Map service
US8107671B2 (en) * 2008-06-26 2012-01-31 Microsoft Corporation Script detection service
US8019596B2 (en) * 2008-06-26 2011-09-13 Microsoft Corporation Linguistic service platform
US8073680B2 (en) * 2008-06-26 2011-12-06 Microsoft Corporation Language detection service
US8239287B1 (en) 2008-10-31 2012-08-07 Amazon Technologies, Inc. System for detecting probabilistic associations between items
US8224641B2 (en) * 2008-11-19 2012-07-17 Stratify, Inc. Language identification for documents containing multiple languages
US8224642B2 (en) * 2008-11-20 2012-07-17 Stratify, Inc. Automated identification of documents as not belonging to any language
US8396287B2 (en) 2009-05-15 2013-03-12 Google Inc. Landmarks from digital photo collections
US8468011B1 (en) * 2009-06-05 2013-06-18 Google Inc. Detecting writing systems and languages
US20110087962A1 (en) * 2009-10-14 2011-04-14 Qualcomm Incorporated Method and apparatus for the automatic predictive selection of input methods for web browsers
US20120035905A1 (en) * 2010-08-09 2012-02-09 Xerox Corporation System and method for handling multiple languages in text
US8635061B2 (en) 2010-10-14 2014-01-21 Microsoft Corporation Language identification in multilingual text
US9063931B2 (en) * 2011-02-16 2015-06-23 Ming-Yuan Wu Multiple language translation system
US9535895B2 (en) * 2011-03-17 2017-01-03 Amazon Technologies, Inc. n-Gram-based language prediction
US8938670B2 (en) * 2011-03-27 2015-01-20 Brian Andrew Kolo Methods and systems for automated language identification
CN103703461A (zh) * 2011-06-24 2014-04-02 谷歌公司 检测搜索查询的源语言
US8872852B2 (en) * 2011-06-30 2014-10-28 International Business Machines Corporation Positional context determination with multi marker confidence ranking
GB201216640D0 (en) * 2012-09-18 2012-10-31 Touchtype Ltd Formatting module, system and method for formatting an electronic character sequence
US10650063B1 (en) * 2012-11-27 2020-05-12 Robert D. Fish Systems and methods for making correlations
US10650103B2 (en) 2013-02-08 2020-05-12 Mz Ip Holdings, Llc Systems and methods for incentivizing user feedback for translation processing
US8996352B2 (en) 2013-02-08 2015-03-31 Machine Zone, Inc. Systems and methods for correcting translations in multi-user multi-lingual communications
US9031829B2 (en) 2013-02-08 2015-05-12 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US9298703B2 (en) 2013-02-08 2016-03-29 Machine Zone, Inc. Systems and methods for incentivizing user feedback for translation processing
US9600473B2 (en) 2013-02-08 2017-03-21 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US8837835B1 (en) * 2014-01-20 2014-09-16 Array Technology, LLC Document grouping system
US10162811B2 (en) 2014-10-17 2018-12-25 Mz Ip Holdings, Llc Systems and methods for language detection
JP6553180B2 (ja) * 2014-10-17 2019-07-31 エム・ゼット・アイ・ピィ・ホールディングス・リミテッド・ライアビリティ・カンパニーMz Ip Holdings, Llc 言語検出を行うためのシステムおよび方法
CN106326205B (zh) * 2015-06-19 2019-05-31 珠海金山办公软件有限公司 一种拼写检查方法及装置
US9778914B2 (en) * 2015-06-25 2017-10-03 Ca, Inc. Automatic discovery of comparable features based on N-gram analysis
US9606990B2 (en) 2015-08-04 2017-03-28 International Business Machines Corporation Cognitive system with ingestion of natural language documents with embedded code
US20170116194A1 (en) 2015-10-23 2017-04-27 International Business Machines Corporation Ingestion planning for complex tables
US10765956B2 (en) 2016-01-07 2020-09-08 Machine Zone Inc. Named entity recognition on chat data
US10402392B2 (en) 2016-03-03 2019-09-03 International Business Machines Corporation Identifying corrupted text segments
US10430835B2 (en) * 2016-04-14 2019-10-01 Google Llc Methods, systems, and media for language identification of a media content item based on comments
CN105957516B (zh) * 2016-06-16 2019-03-08 百度在线网络技术(北京)有限公司 多语音识别模型切换方法及装置
CN107526742B (zh) * 2016-06-21 2021-10-08 伊姆西Ip控股有限责任公司 用于处理多语言文本的方法和设备
US9898457B1 (en) * 2016-10-03 2018-02-20 Microsoft Technology Licensing, Llc Identifying non-natural language for content analysis
CN106910501B (zh) * 2017-02-27 2019-03-01 腾讯科技(深圳)有限公司 文本实体提取方法及装置
US10789410B1 (en) * 2017-06-26 2020-09-29 Amazon Technologies, Inc. Identification of source languages for terms
US10497370B2 (en) 2017-08-18 2019-12-03 2236008 Ontario Inc. Recognition module affinity
US10964318B2 (en) 2017-08-18 2021-03-30 Blackberry Limited Dialogue management
US10984788B2 (en) * 2017-08-18 2021-04-20 Blackberry Limited User-guided arbitration of speech processing results
WO2019060353A1 (en) 2017-09-21 2019-03-28 Mz Ip Holdings, Llc SYSTEM AND METHOD FOR TRANSLATION OF KEYBOARD MESSAGES
EP3955243A3 (en) * 2018-10-11 2022-05-11 Google LLC Speech generation using crosslingual phoneme mapping
EP3707703A1 (en) * 2018-11-28 2020-09-16 Google LLC. Training and/or using a language selection model for automatically determining language for speech recognition of spoken utterance
CN109934251B (zh) * 2018-12-27 2021-08-06 国家计算机网络与信息安全管理中心广东分中心 一种用于小语种文本识别的方法、识别系统及存储介质
JP2019215876A (ja) * 2019-07-03 2019-12-19 エム・ゼット・アイ・ピィ・ホールディングス・リミテッド・ライアビリティ・カンパニーMz Ip Holdings, Llc 言語検出を行うためのシステムおよび方法
CN110491375B (zh) * 2019-08-22 2022-02-01 新疆科大讯飞信息科技有限责任公司 一种目标语种检测的方法和装置
CN111368918B (zh) * 2020-03-04 2024-01-05 拉扎斯网络科技(上海)有限公司 文本纠错方法、装置、电子设备及存储介质
US11620547B2 (en) 2020-05-19 2023-04-04 Oracle International Corporation Estimating number of distinct values in a data set using machine learning
US20210374778A1 (en) * 2020-06-02 2021-12-02 Express Scripts Strategic Development, Inc. User experience management system
US11537594B2 (en) * 2021-02-05 2022-12-27 Oracle International Corporation Approximate estimation of number of distinct keys in a multiset using a sample
US11520834B1 (en) 2021-07-28 2022-12-06 Oracle International Corporation Chaining bloom filters to estimate the number of keys with low frequencies in a dataset
US20230162520A1 (en) * 2021-11-23 2023-05-25 Abbyy Development Inc. Identifying writing systems utilized in documents

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392419A (en) 1992-01-24 1995-02-21 Hewlett-Packard Company Language identification system and method for a peripheral unit
GB9625284D0 (en) * 1996-12-04 1997-01-22 Canon Kk A data processing method and apparatus for identifying a classification to which data belongs
US6029124A (en) * 1997-02-21 2000-02-22 Dragon Systems, Inc. Sequential, nonparametric speech recognition and speaker identification
TW421750B (en) * 1997-03-14 2001-02-11 Omron Tateisi Electronics Co Language identification device, language identification method and storage media recorded with program of language identification
US6415250B1 (en) * 1997-06-18 2002-07-02 Novell, Inc. System and method for identifying language using morphologically-based techniques
US6047251A (en) * 1997-09-15 2000-04-04 Caere Corporation Automatic language identification system for multilingual optical character recognition
US6157905A (en) 1997-12-11 2000-12-05 Microsoft Corporation Identifying language and character set of data representing text
US6272456B1 (en) * 1998-03-19 2001-08-07 Microsoft Corporation System and method for identifying the language of written text having a plurality of different length n-gram profiles
JP2001249922A (ja) * 1999-12-28 2001-09-14 Matsushita Electric Ind Co Ltd 単語分割方式及び装置
DE60044423D1 (de) * 2000-02-03 2010-07-01 Hitachi Ltd Verfahren und Gerät zum Wiederauffinden und Ausgeben von Dokumenten und Speichermedium mit entspechendem Program
GB2391967A (en) * 2002-08-16 2004-02-18 Canon Kk Information analysing apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101693627B1 (ko) 2015-10-08 2017-01-17 숭실대학교산학협력단 문자 인코딩 변환 장치 및 방법
KR20180109408A (ko) * 2017-03-28 2018-10-08 주식회사 와이즈넛 언어 판별 장치 및 방법

Also Published As

Publication number Publication date
US8027832B2 (en) 2011-09-27
US20060184357A1 (en) 2006-08-17
EP1691299A2 (en) 2006-08-16
CN1819018A (zh) 2006-08-16
KR101265803B1 (ko) 2013-05-20
JP5173141B2 (ja) 2013-03-27
JP2006221658A (ja) 2006-08-24
CN1819018B (zh) 2012-04-18
EP1691299A3 (en) 2007-01-24

Similar Documents

Publication Publication Date Title
KR101265803B1 (ko) 효율적인 언어 식별 방법
US11544459B2 (en) Method and apparatus for determining feature words and server
WO2019214149A1 (zh) 文本关键信息的识别方法、电子装置及可读存储介质
EP2664997B1 (en) System and method for resolving named entity coreference
CN109299228B (zh) 计算机执行的文本风险预测方法及装置
US20070016863A1 (en) Method and apparatus for extracting and structuring domain terms
US20060277028A1 (en) Training a statistical parser on noisy data by filtering
Gupta et al. A survey of common stemming techniques and existing stemmers for indian languages
US8429141B2 (en) Linguistically enhanced email detector
CN112906392B (zh) 一种文本增强方法、文本分类方法及相关装置
US11636266B2 (en) Systems and methods for unsupervised neologism normalization of electronic content using embedding space mapping
CN114756675A (zh) 文本分类方法、相关设备及可读存储介质
US8224642B2 (en) Automated identification of documents as not belonging to any language
Venčkauskas et al. Problems of authorship identification of the national language electronic discourse
Sarkar et al. A trigram HMM-based POS tagger for Indian languages
Lin et al. A study on Chinese spelling check using confusion sets and? n-gram statistics
Singh et al. Review of real-word error detection and correction methods in text documents
US9336197B2 (en) Language recognition based on vocabulary lists
CN113792546A (zh) 语料库的构建方法、装置、设备以及存储介质
Baishya et al. Present state and future scope of Assamese text processing
CN114186552B (zh) 文本分析方法、装置、设备及计算机存储介质
CN114417871B (zh) 模型训练及命名实体识别方法、装置、电子设备及介质
Minn et al. Myanmar word stemming and part-of-speech tagging using rule based approach
Ariffin et al. Improved POS Tagging Model for Malay Twitter Data based on Machine Learning Algorithm
Wang et al. Maximum entropy Thai sentence segmentation combined with Thai grammar rules correction

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160419

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 7