KR101431194B1 - 분산형 모델의 인코딩 및 적응성 및 확장성 액세싱 - Google Patents

분산형 모델의 인코딩 및 적응성 및 확장성 액세싱 Download PDF

Info

Publication number
KR101431194B1
KR101431194B1 KR1020087016150A KR20087016150A KR101431194B1 KR 101431194 B1 KR101431194 B1 KR 101431194B1 KR 1020087016150 A KR1020087016150 A KR 1020087016150A KR 20087016150 A KR20087016150 A KR 20087016150A KR 101431194 B1 KR101431194 B1 KR 101431194B1
Authority
KR
South Korea
Prior art keywords
translation
language
server
segment
delete delete
Prior art date
Application number
KR1020087016150A
Other languages
English (en)
Other versions
KR20080112192A (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 KR20080112192A publication Critical patent/KR20080112192A/ko
Application granted granted Critical
Publication of KR101431194B1 publication Critical patent/KR101431194B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/44Statistical methods, e.g. probability models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/47Machine-assisted translation, e.g. using translation memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/49Data-driven translation using very large corpora, e.g. the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications

Abstract

기계 번역, 스피치 인식 및 기타 응용에서 대형 언어 모델을 이용하는 것을 포함하여, 자동화 기계 처리시에 분산형 모델에 액세스하기 위한 시스템, 방법 및 장치를 제공한다.

Description

분산형 모델의 인코딩 및 적응성 및 확장성 액세싱{ENCODING AND ADAPTIVE, SCALABLE ACCESSING OF DISTRIBUTED MODELS}
본 출원은 하기 2건의 미국 특허 출원을 우선권 주장하며 그 전체 내용이 참조로서 인용된다.
"분산형 모델의 인코딩 및 적응성의 확장성 액세싱"의 명칭으로 2006년 2월 17일자 출원된 미국 출원번호 제60/774,790호; 및
"분산형 모델의 인코딩 및 적응성의 확장성 액세싱"의 명칭으로 2006년 2월 21일자 출원된 미국 출원번호 제60/775,570호.
본 출원의 명세서는 기계 번역 등의 처리 작업을 수행하기 위하여 컴퓨터와 같은 기계를 이용하는 기계 처리에 관한 것이다.
컴퓨터와 같은 기계 및 컴퓨터 기반의 기계들은 각종 처리 작업을 자동화하는 데에 널리 사용된다. 과거에 기계가 처리하기 어려웠던 특정 작업들이 컴퓨터 정보 기술 및 통신 기술의 발달에 힘입어 점차 자동화되고 있다. 자동화되고 있는 기계 처리 작업 중에서 2가지 예를 들자면 언어 번역(language translation)과 스피치 인식(speech recognition)이 있다.
하나의 인간 언어 또는 자연 언어(소스 자연 언어)를 다른 자연 언어(목표 자연 언어)로 번역하는 것은 여러 가지 방법으로 행하여질 수 있다. 사람은 소스 자연 언어(예를 들면, 중국어)의 텍스트를 먼저 읽고 이해한 다음 목표 언어(예를 들면, 영어)의 대응하는 텍스트로 기록함으로써 소스 자연 언어의 텍스트를 수동으로 번역할 수 있다. 이와 같은 수동 번역은 품질은 높은 경향이 있으나 비용이 많이 들고 속도가 느릴 수 있다. 기계 번역은 컴퓨터 및 다른 기계를 이용하여 번역 처리의 일부 또는 전체를 자동화함으로써 번역 비용을 감소시키고 번역 처리를 신속히 한다. 기계 번역 기술의 2가지 예를 들자면 규칙 기반의(rule-based) 기계 번역과 통계적 기계 번역이 있다. 기계 번역 시스템은 사용하기 쉽다. 즉, 사용자는 소스 자연 언어의 디지털 문서를 기계 번역 시스템에 전송하고; 시스템은 상기 문서를 처리하여 목표 자연 언어로 번역된 문서를 생성한다. 기계 번역은 점차 광범위한 응용에서 사용되고 있다. 예를 들어, 상이한 자연 언어의 정보에 대한 쉬운 액세스를 허용하기 위하여, 리소스(resource)는 기계 번역을 제공하기 위해 인터넷과 같은 많은 컴퓨터 네트워크 상에서 이용 가능하다.
그러나, 기계 번역 시스템의 번역 품질은 수동 번역보다 낮을 수 있고, 때로는 기계 번역된 텍스트가 이해하기 어렵거나 불가능할 수도 있다. 통계적 기계 번역 기술을 비롯한 각종 기계 번역 기술들은 번역 품질 및 번역 속도와 같은 기계 번역의 여러 가지 측면을 개선하도록 개발되어 왔다.
본 명세서는 리소스 파티션(resource partition), 복제 및 부하 밸런싱(load balancing)을 이용하여 대형 모델에 액세스하고 확장가능한 적응성 처리를 제공하도록 구현될 수 있는 분산형 기계 처리 시스템, 기술, 방법 및 장치를 설명한다. 기계 번역 시스템, 스피치 인식 시스템, 스팸(spam) 검출 시스템, 광학 문자 인식 시스템, 스펠링 교정 시스템, 엔티티 검출 시스템, 정보 추출 시스템 등을 비롯한 각종 분산형 기계 처리 시스템은 여기에서 설명하는 기술을 기초로 구성될 수 있다.
일 태양으로서, 시스템은 각기 데이터 집합의 파티션을 저장하고 그 파티션을 제공하도록 동작 가능한 컴퓨터 데이터 서버들을 포함하는 것으로 기술된다. 각 파티션은 데이터의 집합을 함께 구성하고, 각각의 개별 파티션은 데이터의 집합보다 작다. 이 시스템은 데이터 서버로부터 데이터를 취득하고 취득된 데이터를 이용하여 입력을 처리하고 출력을 생성하도록 동작 가능한 처리 서버 또한 포함한다. 이 시스템은 각 데이터 서버에 대하여 하나 이상의 복제 데이터 서버를 포함하도록 구현될 수 있다. 일 구현예에서, 데이터 집합은 목표 언어용 언어 모델에 대한 데이터이다. 언어 모델은 목표 언어의 n개의 그램(gram) 및 n개의 그램 각각에 대한 통계 데이터를 포함한다. n개의 그램은 N-그램(N은 3보다 큰 수임)을 포함할 수 있다. 처리 서버는 입력되는 소스 언어의 텍스트를 언어 모델로부터 취득된 데이터를 이용하여 목표 언어로 번역하도록 동작가능한 번역 서버이다. 처리 서버는, 예를 들어, 입력되는 목표 언어의 인간의 스피치를 언어 모델로부터 취득한 데이터를 이용하여 목표 언어의 텍스트로 변환하도록 동작 가능한 스피치 인식 서버, 입력되는 목표 언어의 단어의 스펠링을 언어 모델로부터 취득한 데이터를 이용하여 교정하도록 동작 가능한 스펠링 교정 서버, 또는 입력되는 수신된 문서 화상의 텍스트를 언어 모델로부터 취득한 데이터를 이용하여 인식하도록 동작 가능한 광학 문자 인식 서버와 같은 다양한 구성으로 구현될 수 있다.
다른 태양으로서, 기계 번역 시스템은 기계 번역 리소스 서버 및 적어도 하나의 번역 서버를 포함할 수 있다. 각각의 기계 번역 리소스 서버는 소스 언어로부터 목표 언어로의 번역을 위한 기계 번역 리소스 데이터 집합의 파티션을 저장하고 그 파티션을 제공하도록 동작할 수 있다. 각각의 파티션은 기계 번역 리소스 데이터의 집합을 함께 구성하고, 각각의 개별 파티션은 기계 번역 리소스 데이터의 집합보다 작다. 번역 서버는 목표 언어로 번역할 소스 언어의 소스 텍스트를 수신하도록 동작 가능하고, 기계 번역 리소스 서버로부터 기계 번역 리소스 데이터를 취득하여 취득된 기계 번역 리소스 데이터를 이용해서 소스 텍스트를 목표 언어로 번역하도록 더 동작가능 하다.
또 다른 태양으로서, 기계 번역 시스템은 소스 언어와 목표 언어 간의 번역을 위해 번역 모델로부터 번역 모델 데이터 및 목표 언어의 언어 모델로부터 언어 모델 데이터를 취득하는 기계 번역을 수행하도록 동작하는 번역 서버를 포함할 수 있다. 번역 서버는 취득된 번역 모델 데이터 및 언어 모델 데이터를 이용하여 소스 언어의 텍스트를 목표 언어로 번역하도록 더 동작가능 하다. 번역 서버는 소스 언어의 세그먼트를 번역하기 위해 취득되어야 할 언어 모델 데이터 요청을 저장하도록 동작하는 요청 큐(request queue), 및 번역 서버에 의한 요청에 따라 취득된 언어 모델 데이터를 저장하도록 동작하는 세그먼트 번역 서버 캐시를 포함한다.
또 다른 태양으로서, 기계 번역 방법은 소스 언어로부터 목표 언어로의 번역을 위해 기계 언어 번역 리소스 데이터의 집합을 각각 기계 언어 번역 리소스 데이터의 집합보다 작은 파티션들로 나눌 수 있다. 파티션들은 상이한 컴퓨터 서버상에 각각 저장된다. 기계 번역 서버는 상이한 컴퓨터 서버상의 기계 언어 번역 리소스 데이터의 집합에 액세스하고 그 데이터의 집합을 이용하여 소스 언어로부터 목표 언어로의 번역을 수행하도록 동작한다.
또 다른 태양으로서, 소스 언어와 목표 언어 간의 번역을 위한 번역 모델 및 목표 언어의 언어 모델을 이용하여 소스 언어로부터 목표 언어로 텍스트를 기계 번역하기 위한 방법이 기술된다. 이 방법은, 번역 모델을 상이한 데이터의 파티션들로 파티셔닝하는 단계로서, 각각의 번역 모델 파티션은 번역 모델보다 작은 것인, 파티셔닝 단계; 번역 모델 파티션을 상이한 번역 모델 서버상에 저장하는 단계; 언어 모델을 상이한 데이터의 언어 모델 파티션들로 파티셔닝하는 단계로서, 각각의 언어 모델 파티션은 언어 모델보다 작은 것인, 파티셔닝 단계; 언어 모델 파티션을 상이한 언어 모델 서버상에 저장하는 단계; 번역 모델 및 언어 모델을 이용하여 소스 언어의 텍스트를 목표 언어로 번역하도록 각각 동작하는 번역 서버의 작업 부하를 감시하는 단계; 소스 언어로부터 목표 언어로 번역될 텍스트의 세그먼트를 작업 부하에 기초하여 번역 서버들로부터 선택된 하나 이상의 번역 서버들에 분배하는 단계; 번역 모델 서버 및 언어 모델 서버에 액세스하여 각각의 번역될 세그먼트에 대해 원하는 번역 모델 데이터 및 언어 모델 데이터를 불러내도록 각각의 선택된 번역 서버를 동작시키는 단계; 선택된 번역 서버로부터 번역된 세그먼트를 컴파일하여 번역된 텍스트를 생성하는 단계를 포함한다.
또 다른 태양으로서, 컴퓨터로 구현되는 방법은 목표 언어로 번역될 소스 언어의 클라이언트 문서를 수신하는 단계; 클라이언트 문서를 세그먼트들로 분할하여 각각의 세그먼트를 번역하는 단계; 및 상이한 언어 모델 서버 중 적어도 하나의 언어 모델 서버에 액세스하는 단계를 포함한다. 세그먼트들 중 번역 세그먼트에 관련된 선택된 언어 모델 데이터를 검색하기 위하여, 상이한 언어 모델 서버들은 목표 언어의 언어 모델을 집합적으로 저장한다. 각각의 언어 모델 서버는 언어 모델의 파티션을 저장하고 그 파티션을 제공하도록 동작 가능하다. 이 방법은 검색된 선택된 언어 모델 데이터를 이용하여 세그먼트를 목표 언어로 번역하는 단계 또한 포함한다.
또 다른 태양으로서, 기계 번역 방법은, 기계 번역 시스템을 이용하여 클라이언트로부터 소스 언어의 텍스트를 수신하고 이 텍스트를 목표 언어로 번역하는 단계를 포함할 수 있다. 기계 번역 시스템에서의 번역 단계는, 선택된 부분을 높은 번역 품질로 번역하는 동안 초기 번역 부분을 생성하기 위하여, 낮은 번역 품질로 번역할 텍스트의 일부를 선택하는 단계; 선택된 부분을 높은 번역 품질로 계속하여 번역하는 동안, 초기 번역 부분을 클라이언트에 전달하는 단계; 및 선택된 부분이 높은 번역 품질로 제2 번역 부분으로 번역된 후에, 높은 번역 품질로 번역된 제2 번역 부분을 클라이언트에게 전달하여 초기 번역 부분을 자동으로 교체하는 단계를 포함한다.
또 다른 태양으로서, 기계 번역 시스템은 언어 모델 서버, 번역 모델 서버 및 번역 서버를 포함할 수 있다. 각각의 언어 모델 서버는 목표 언어용 언어 모델의 파티션을 저장하고 그 파티션을 제공하도록 동작 가능하다. 각 파티션은 전체 언어 모델을 함께 구성한다. 번역 모델 서버는 목표 언어와 소스 언어 간의 번역을 위한 번역 모델을 저장하고 그 번역 모델을 제공하도록 동작 가능하다. 번역 서버는 번역 모델 서버로부터의 번역 모델 데이터 및 언어 모델 서버로부터의 언어 모델 데이터를 취득하고 취득된 번역 모델 데이터 및 언어 모델 데이터에 기초하여 소스 언어의 소스 텍스트를 목표 언어로 번역하도록 동작 가능하다.
또 다른 태양으로서, 기계 번역 시스템은 번역 서버 모듈과 번역문 캐시를 포함할 수 있다. 번역 서버 모듈은 소스 언어와 목표 언어 간의 번역을 위한 번역 모델로부터의 번역 모델 데이터 및 목표 언어용 언어 모델로부터의 언어 모델 데이터를 취득하도록 동작 가능하다. 번역 서버 모듈은 또한 취득된 번역 모델 데이터 및 언어 모델 데이터를 이용하여 소스 언어의 텍스트를 목표 언어로 번역하도록 동작 가능하다. 번역문 캐시는 선택된 토큰(token) 및 세그먼트의 번역문을 저장한다. 각 세그먼트는 소스 언어로부터 목표 언어로의 토큰들의 조합을 포함한다. 번역 서버 모듈은 번역될 세그먼트에 대해 적당한 번역문이 있는지 번역문 캐시를 검색(look up)하고, 적당한 번역문이 존재할 때, 세그먼트의 추가적인 처리없이, 그리고 세그먼트를 번역하기 위한 번역 모델 데이터 및 언어 모델 데이터를 취득하지 않고 적당한 번역문을 검색하도록 동작 가능하다.
또 다른 태양으로서, 기계 번역 시스템을 동작시키는 방법은, 소스 언어로부터 목표 언어로 번역될 소스 텍스트를 세그먼트들로 분할하는 단계; 선택된 토큰의 번역문을 저장하는 번역문 캐시의 세그먼트들 및 소스 언어로부터 목표 언어로의 토큰들의 조합을 각각 포함하는 세그먼트들 각각을 검색하는 단계; 번역될 세그먼트에 대해 적당한 번역문이 번역문 캐시 내에 있을 때, 세그먼트의 추가적인 처리없이 세그먼트에 대해 적당한 번역문을 이용하는 단계; 번역될 세그먼트에 대해 적당한 번역문이 번역문 캐시 내에 없을 때, 소스 언어와 목표 언어 간의 번역을 위한 번역 모델 및 목표 언어용 언어 모델에 액세스하도록 번역 서버를 동작시켜서 세그먼트를 번역하기 위해 원하는 번역 모델 데이터 및 언어 모델 데이터를 취득하는 단계; 및 원하는 번역 모델 데이터 및 언어 모델 데이터를 이용하여 세그먼트를 번역하도록 번역 서버를 동작시키는 단계를 포함한다.
또 다른 태양으로서, 기계 번역을 위한 세그먼트 번역 장치는 소스 언어의 하나 이상의 토큰을 포함하는 세그먼트를 소스 언어와 목표 언어 간 번역을 위한 번역 모델 및 목표 언어용 언어 모델을 이용하여 목표 언어의 번역된 세그먼트로 번역하도록 동작 가능한 디코더를 포함할 수 있다. 세그먼트를 번역하기 위해 언어 모델로부터 검색된 데이터를 저장하고 저장된 데이터를 디코더에 공급하기 위해 세그먼트 번역 서버 캐시가 이 장치에 포함된다. 디코더는 전체 언어 모델의 상이한 파티션들을 각각 저장하는 언어 모델 서버와 통신하여, 세그먼트 및 관련 통계 데이터의 가능한 번역문에 대한 N개의 그램 각각에 관한 정보를 요청하도록 동작 가능하다.
개시된 실시예 및 기타의 실시예는 하나 이상의 컴퓨터 프로그램 제품, 즉 데이터 처리 장치에 의한 실행을 위한, 또는 데이터 처리 장치의 동작을 제어하기 위한 컴퓨터 판독가능 매체 상에 인코딩된 하나 이상의 컴퓨터 프로그램 명령어 모듈로서 구현될 수 있다. 특정 실시예는 향상된 기계 번역 품질, 개선된 번역 속도, 시스템의 확장성, 및 기계 번역을 위한 다량의 요청을 다룰 수 있는 용량 등과 같은 하나 이상의 장점을 실현하도록 구현될 수 있다. 여기에서 설명하는 시스템, 기술 및 장치에 대한 하나 이상의 실시예에 관한 세부 사항은 첨부 도면 및 이하의 설명으로부터 알 수 있을 것이다. 여기에서 설명하는 시스템, 기술 및 장치와 관련된 기타의 특징, 태양 및 장점들은 이하의 상세한 설명, 도면 및 청구범위로부터 명백하게 될 것이다.
도 1은 본 명세서에서 설명하는 분산형 기계 처리 기술을 이용하여 실현될 수 있는 파티셔닝, 복제 및 부하 밸런싱을 특정 예들로 설명하기 위한 분산형 기계 번역(DMT; distributed machine translation) 시스템(100)을 도시한 도면이다.
도 2는 도 1의 분산형 기계 번역 시스템(100)의 일 구현예를 도시한 도면이다.
도 3a는 도 1 또는 도 2에 도시된 종류의 시스템에서 번역 프론트엔드에 의해 접속되고 공유될 수 있는 번역문 캐시를 도시한 도면이다.
도 3b는 번역문 캐시에서 사용될 수 있는 데이터 구조의 일례를 도시한 도면이다.
도 3c는 번역문 캐시의 동작 방법의 예를 도시한 도면이다.
도 4는 부하 밸런싱 장치에 접속될 수 있는 번역문 캐시의 일례를 도시한 도면이다.
도 5는 세그먼트 번역 서버에 의해 공유될 수 있는 세그먼트 번역 서버 캐시의 일례를 도시한 도면이다.
도 6은 번역 디코더, LM 룩업 요청 큐 및 로컬 캐시를 구비한 세그먼트 번역 서버의 일례를 도시한 도면이다.
도 7은 번역 디코더의 동작의 일례를 도시한 도면이다.
도 8은 번역 디코더의 처리 단계의 일례를 도시한 도면이다.
도 9a 및 도 9b는 번역 디코더의 대안적인 동작을 도시한 도면이다.
도 10은 하이 레벨 캐시를 구비하고 로우 레벨 캐시를 구비하지 않은 세그먼트 번역 서버의 처리 흐름의 일례를 보여주는 흐름도이다.
도 11a 및 도 11b는 세그먼트 번역 서버의 다른 예시적 처리 흐름을 도시한 도면이다.
도 12는 대형 언어 모델에 기초한 언어 처리 기능을 제공하도록 구성될 수 있는 분산형 처리 시스템의 일례를 도시한 도면이다.
도 13은 분산형 처리를 제공하는 통신 네트워크의 예시적 컴퓨터 시스템을 도시한 도면이다.
각 도면에서 동일한 참조 번호 및 표시는 동일한 요소를 나타낸다.
본 명세서에서 설명하는 자동화 기계 처리 기술 및 시스템은 다량의 리소스를 이용하여 동작하여 처리 성능, 예를 들면 처리의 품질 및 속도를 개선하도록 구현될 수 있다. 자동화 기계 처리의 예로는 기계 번역, 스피치 인식, 스팸 검출, 광 학 문자 인식, 스펠링 교정, 엔티티 검출 및 정보 추출 등이 있다. 여기에서 설명하는 자동화 기계 처리 기술 및 시스템은 또한 자동화 처리를 위한 다량의 요청에 응답하기에 충분한 처리 용량으로 구현될 수 있다. 자동화 처리의 이러한 구현 및 기타의 구현예에서, 시스템 리소스 또는 시스템 처리 용량을 구현하기 위해 분산형 설계를 이용할 수 있다.
파티션(partition) 및 복제(replication)는 분산형 설계를 구현하는데 이용할 수 있는 2가지 기술의 예이다.
파티션에서, 자동화 처리 시스템 내의 특정 아이템은, 예를 들면 컴퓨터와 같은 상이한 기계상에 물리적으로 위치되는 상이한 파티션들로 분할 또는 파티셔닝된다. 각 파티션은 전체 아이템보다 작고, 상이한 파티션들은 일부 구현예에서 서로 다를 수 있으며 다른 구현예에서 어느 정도의 오버랩을 가질 수 있다. 예를 들면, 주로 데이터를 저장하는 데이터베이스 서버 또는 자동화 처리 시스템에서 하나 이상의 처리 작업을 주로 실행하는 처리 서버는 파티셔닝되는 아이템일 수 있다. 파티션은, 대형 아이템이 단일 기계의 용량에 제한되지 않고 시스템에서 구현될 수 있게 한다. 상이한 파티션들은 상이한 기계상에 배치되고, 따라서 개별적으로 액세스될 수 있다. 그러므로, 다른 유익한 특징들 중에서, 파티션은 고부하를 취급하는데 사용될 수 있고, 확장성(scalability) 및 신뢰도(reliability를 제공한다. 파티션의 규모(scale) 및 기타의 특징들은 특정 자동화 처리 시스템에서의 요구사항 및 제약에 따라서 달라질 것이다. 예를 들어서, 대형 데이터베이스는 단일 기계(예를 들면, 데이터베이스 서버)내에 저장하기 어려울 수 있고, 또는 대형 데이터베이스 를 저장하기 위해 고가의 단일 기계를 사용하는 것이 비경제적일 수 있다. 따라서, 다수의 선택된 기계들이 각각의 개별 데이터베이스 파티션을 저장하기에 충분한 저장소를 갖도록, 대형 데이터베이스는 다수의 작은 데이터베이스 파티션으로 파티셔닝된다. 상이한 기계들은 데이터베이스에 액세스하는 클라이언트에 대해 "가상"의 단일 데이터베이스로서 동작하도록 네트워크로 연결될 수 있다. 유사하게, 처리 서버는 상이한 파티셔닝된 처리 서버로 또한 파티셔닝될 수 있고, 각각의 파티셔닝된 처리 서버는 최초 처리 서버의 처리 기능 중 일부를 제공하고, 상이한 파티셔닝된 처리 서버는 주로 상이한 처리 기능을 파티셔닝하도록 설계된다.
복제는 분산형 설계를 위한 다른 기술이고 파티션과는 다르다. 복제시에, 이와 같은 시스템 내의 특정 아이템, 예를 들면, 데이터베이스 서버 또는 처리 서버는 컴퓨터와 같은 하나 이상의 복제 기계 상으로 복사되거나(duplicate) 또는 클론(clone)이 만들어진다. 각 복제물은 기능 및 다른 측면에 있어서 복제될 아이템과 실질적으로 동일할 수 있다. 복제는 복제될 아이템의 기능에 대한 가용성 또는 용량을 증가시키고, 복제될 아이템의 기능에 액세스하는데 지연(latency) 또는 지체를 감소시키며, 아이템의 기능에 대한 용장성(redundancy)을 제공하기 위해 사용될 수 있다. 단일 아이템은 일반적으로 제한된 용량을 갖기 때문에, 예를 들어 클라이언트로부터 다수의 요청이 동시에 행하여졌을 때, 또는 상이한 요청의 처리 및 제공이 시간적으로 중복될 때, 복제는 클라이언트로부터의 다수의 요청에 복제될 아이템의 기능이 이용 가능하게 한다. 복제의 용장성을 가진 시스템에서, 복제된 아이템에 대한 하나의 기계가 고장나면, 복제된 아이템에 대한 하나 이상의 다른 복제된 기계가 고장난 기계를 대체할 수 있고, 따라서 시스템에 대한 기계 고장에 기인하는 영향을 감소시킬 수 있다. 특히, 복제의 규모 및 기타 특징들은 특정 자동화 처리 시스템의 요구사항 및 제약에 따라 달라질 것이다. 예를 들면 사용도가 높은 데이터베이스는 상이한 데이터베이스 서버상에 복제될 수 있다. 다른 예로서, 처리 서버는 서로 동시에 동작할 수 있는 하나 이상의 복제물 처리 서버에 복제될 수 있다. 파티션과 마찬가지로, 동일한 처리 서버를 복제하는 상이한 기계들이 데이터베이스에 액세스하는 클라이언트에 대해 "가상"의 단일 처리 서버로서 동작하도록 네트워크 연결되기 때문에, 시스템에 액세스하는 클라이언트에 대해 복제는 비가시적으로 구현될 수 있다.
복제 설계는, 구현시에, 복제를 위해 다른 기계의 작업 부하를 감시하고, 그 작업 부하에 기초해서 인입(incoming) 작업 부하를 관리하거나 다른 기계에 분배하는 부하 밸런싱(load balancing) 메커니즘을 구비할 수 있다. 이러한 부하 밸런싱 메커니즘은 특정 자동화 처리 시스템의 요구조건 및 제약에 따라 상이한 부하 밸런싱 정책으로 구현될 수 있다. 일례로서, 부하 밸런싱 메커니즘은 새로운 요청을 경부하 상태에서 동작하는 복제된 기계에 보냄으로써 시스템의 복제 부분의 특수 기능 또는 일부 정보에 대한 액세스의 지연을 감소시키도록 구현될 수 있다.
부하 밸런싱 메커니즘은 전술한 바와 같이 서로 정확한 복제물들이 아닌 상이한 기계의 동작을 관리하는 것에까지 확장될 수 있다. 예를 들어, 다른 언어 모델을 저장하는 서버들은 부하 밸런싱 메커니즘에 의해서도 관리될 수 있다. 다른 예로서, 기계 번역 서버와 같은 몇몇 처리 서버들은, 동일한 기계 번역 방식을 이 용하여 상이한 언어 번역 리소스를 기초로 동작할 수 있는데, 예를 들면 모두 통계적 기계 번역(SMT) 서버이다. 일부 SMT 서버는 저속으로 고품질 번역문을 생성할 수 있는 반면, 다른 SMT 서버는 고속으로 저품질 번역문을 생성할 수 있다. 부하 밸런싱 메커니즘은 품질 및 시간 요구조건 및 제약과 같은 하나 이상의 고려사항들을 기초로 하나의 클라이언트 문서의 상이한 세그먼트 또는 상이한 클라이언트 문서의 상이한 세그먼트의 번역 작업을 제어하도록 구현될 수 있다. 이 예에서, 부하 밸런싱 메커니즘은, 비록 그 명칭이 여전히 일부 "부하"를 밸렁싱하는 동작을 제시하지만, 반드시 상이한 기계의 작업 부하는 아닌 다른 것을 밸런싱할 수 있다. 그러므로, 본 명세서에서 사용하는 용어 "부하 밸런싱"은 부하를 밸런싱하는 것으로 제한되는 것은 아니다. 오히려, 용어 "부하 밸런싱 메커니즘", "부하 밸런싱 장치", 및 "부하 밸런싱 모듈" 및 "부하 밸런싱 서버"가, 기계의 동작과 조건, 요청 또는 작업의 특성, 및 시스템의 다른 부분의 동작 및 조건과 관련된 특정의 고려대상을 밸런싱하면서, 상이한 기계에 대한 통신 트래픽, 요청 또는 작업을 관리 및 밸런싱하는 밸런싱 메커니즘을 표시하는데 일반적으로 사용된다.
일부 구현예에서, 부하 밸런싱 메커니즘은 원래 부하 밸런싱 메커니즘과 다른 기능을 위해 설계된 메커니즘에 부착된 또는 그와 통신하는 성분으로서 구현되거나, 또는 밸런싱 메커니즘이 몇몇 기계에 대한 높은 트래픽을 처리할 수 있는 상황에 있는 개별 기계로서 구현될 수 있다. 또한, 본 명세서의 분산형 기계 처리를 위한 파티션 및 복제는 필요한 경우, 상이한 기계를 가진 부하 밸런싱 메커니즘에 적용되어, 부하 밸런싱 메커니즘이 상이한 기계로 파티셔닝되거나 또는 상이한 기 계상에 복제되게 할 수 있다.
특정 시스템의 특정 요구조건 및 제약 또는 시스템의 동작 또는 조건에 응답하여, 적응적, 동적, 효율적, 내고장성 및 확장성 방식으로 분산형 기계 처리를 구축, 동작 및 관리하기 위하여, 파티션, 복제 및 부하 밸런싱이 개별적으로 이용되거나 또는 공동으로 이용될 수 있다. 일례로서, 파티션, 복제, 부하 밸런싱 메커니즘 및 다른 메커니즘에 기초한 분산형 기계 처리는, 도전적이고, 변덕스러우며, 동적인 컴퓨터 네트워크 환경에 있는 자동화 처리의 각종 문제들을 처리하도록 구성 및 구현될 수 있다. 더 구체적으로, 본 명세서의 자동화 기계 처리 기술 및 시스템은, 기계 번역, 스피치 인식, 스팸 검출, 광학 문자 인식, 스펠링 교정 등과 같은 다양한 온라인 기계 처리를 위해 이용될 수 있다.
분산형 기계 처리의 하기 특정 구현예는, 분산형 기계 처리에서의 다양한 기술, 장치, 설계 및 제어를 설명하기 위한 자동화 기계 처리의 일례로서 기계 번역을 이용한다.
일부 구현예에서, 분산형 기계 처리에 기초한 기계 번역 시스템은 기계 번역 리소스 서버와 적어도 하나의 번역 서버를 포함한다. 각각의 기계 번역 리소스 서버는 소스 자연 언어로부터 목표 자연 언어로의 번역을 위한 기계 번역 리소스 데이터 집합의 파티션을 저장하고 그 파티션을 제공하도록 동작할 수 있다. 각각의 파티션은 기계 번역 리소스 데이터의 집합을 함께 구성하고, 각 파티션은 전체 기계 번역 리소스 데이터의 집합보다 작다. 번역 서버는 목표 언어로 번역될 소스 언어의 소스 텍스트를 수신하도록 동작 가능하고, 기계 번역 리소스 서버로부터 기계 번역 리소스 데이터를 취득하도록 더 동작 가능하다. 그 다음, 번역 서버는 취득된 기계 번역 리소스 데이터를 이용하여 소스 텍스트를 목표 언어로 번역한다.
이와 같은 구현예의 일례로서, 도 1은 분산형 기계 번역(DMT) 시스템(100)을 도시하고 있다. 컴퓨터 서버일 수 있는 다수의 번역 프론트엔드(front end)(110)는 논리적으로 서로 병렬 배치되고, 클라이언트 문서(102)를 번역하라는 클라이언트 요청을 수신하고 번역된 문서(103)를 클라이언트(101)에게 전달하기 위해 사용된다. 클라이언트(101)는 인터넷과 같은 컴퓨터 네트워크를 통하여 DMT 시스템(100)에 접속할 수 있다. DMT 시스템(100)은 번역 리소스 서버(140)로부터 번역 리소스 데이터를 검색하고 검색된 데이터를 이용하여 번역 작업을 수행하는 세그먼트 번역 서버(130)를 포함한다. 부하 밸런싱 장치 서버(120)는 세그먼트 번역 서버(130)와 번역 프론트엔드(110) 사이에 접속되어 번역 프론트엔드(110)와 세그먼트 번역 서버(130) 간의 교환 및 트래픽, 및 번역 프론트엔드(110)와 세그먼트 번역 서버(130)의 동작을 감시, 관리, 및 제어한다. 부하 밸런싱 장치 서버(120)는 하나 이상의 복제 부하 밸런싱 장치 서버상에 복제될 수 있다. 서버들(130, 120, 110)은 집합적으로 번역 서버를 구성하며, 이 번역 서버는 번역 리소스 서버(140) 및 그들의 복제물(141)상의 번역 리소스 데이터를 이용하여 클라이언트 문서(102)의 번역을 수행한다.
번역 프론트엔드(110)는 서로 간의 복제물들이고 서로 병렬로 동작한다. 세그먼트 번역 서버(130) 또한 서로 간의 복제물들이고 병렬로 동작한다. 리소스 서버(140)는 전체 번역 리소스 데이터의 파티션 및 세그먼트 번역 서버(130)가 번역 작업을 수행하기 위한 기타 리소스 및 정보를 저장하는 파티션 서버이다. 각 리소스 서버(140)는 하나 이상의 복제 리소스 서버(141)를 구비한 것으로 도시되어 있다. 리소스 서버(140) 내의 번역 리소스 데이터와 기타 리소스 및 정보는 하나 이상의 상이한 목표 자연 언어를 위한 하나 이상의 언어 모델, 하나 이상의 상이한 소스 자연 언어와 하나 이상의 상이한 목표 자연 언어 간의 번역을 위한 하나 이상의 번역 모델, 하나 이상의 소스 자연 언어와 하나 이상의 목표 자연 언어 간의 하나 이상의 음역 사전(transliteration dictionary), 및 기타 사전을 포함할 수 있다. 세그먼트 번역 서버(130)는 규칙 기반 MT 및 통계적 MT 디코더와 같은 동일한 또는 상이한 기계 번역 디코딩 방식을 구현할 수 있다.
동작시에, 각 번역 프론트엔드(110)는 시스템(100)에 의해 번역될 클라이언트 문서(102)를 수신하고, 시스템(100)의 백엔드(back end)로부터 번역된 클라이언트 문서(103)를 수신한 후에 그 번역된 클라이언트 문서(103)를 클라이언트에게 전송한다. 클라이언트 문서(102)를 수신한 때, 수신 번역 프론트엔드(110)는 클라이언트 문서(102)를 복수의 더 작은 세그먼트들로 분할하는데, 각 세그먼트들은 하나 이상의 토큰을 포함한다. 세그먼트의 일례는 한 단락 내의 한 문장이다. 세그먼트의 내용은 각 구현예마다 다를 수 있고, 몇 개의 단어에서부터 복수 개의 문장까지의 범위를 가질 수 있다. 번역 프론트엔드(110)는 세그먼트 번역 서버(130)에 분배하기 위해 모든 세그먼트들을 부하 밸런싱 장치(120)에 보낼 수 있고, 세그먼트 번역 서버(130)는 할당된 세그먼트를 처리하고, 하나 이상의 리소스 서버(140)로부터의 원하는 번역 리소스 데이터를 이용하여 할당 세그먼트를 번역한다. 그 다음, 각 각의 번역된 세그먼트는 부하 밸런싱 장치(120)를 통하여 최초의 요청 번역 프론트엔드(110)에 다시 보내진다. 모든 번역된 세그먼트들을 다시 수신한 후, 최초의 요청 번역 프론트엔드(110)는 번역된 세그먼트들을 번역된 클라이언트 문서(103)로 모으고, 번역된 클라이언트 문서(103)를 클라이언트(101)에게 보낸다. 일부 구현예에서, 번역 프론트엔드(110)는 먼저 세그먼트에 대한 적당한 번역문이 시스템(100)에서 이용 가능한지를 판정하고, 그 세그먼트를 부하 밸런싱 장치(120)에 보내지 않고 상기 번역문을 번역된 세그먼트로서 불러올 수 있다. 이러한 대안은 번역문 캐시를 이용함으로써 구현될 수 있고 본 명세서에서 후에 자세히 설명된다.
DMT 시스템(100)은 각 파티션 리소스 서버(140)에 대한 복제 서버(141)를 갖는다. 그러므로, 부하 밸런싱 장치(120)와 상이한 추가의 부하 밸런싱 메커니즘이 리소스 서버(140, 141)와 세그먼트 번역 서버(130) 사이에서 백엔드 부하 밸런싱 메커니즘으로서 구현될 수 있다. 이 백엔드 부하 밸런싱 메커니즘의 일부 구현예에서, 각 세그먼트 번역 서버(130)는 그 세그먼트 번역 서버(130)로부터 리소스 서버(140, 141)로의 요청을 제어, 관리, 및 분배하기 위한 서버의 일부로서 세그먼트 부하 밸런싱 장치를 포함할 수 있다. 전체 세그먼트 부하 밸런싱 장치는 백엔드 부하 밸런싱 메커니즘을 함께 구성한다. 각 세그먼트 부하 밸런싱 장치는 일부 구현예에서 개별적인 기계일 수 있고, 필요한 경우에는 복제되거나 파티셔닝될 수 있다.
각각의 부하 밸런싱 메커니즘, 예를 들면 프론트엔드 부하 밸런싱 장치(120)와 백엔드 부하 밸런싱 메커니즘은, 그 부하 밸런싱 메커니즘의 동작에 수반되는 각종 기계의 활동, 조건 및 동작을 감시하기 위한 감시 메커니즘을 포함할 수 있다. 이는 다양한 방법으로 구현될 수 있다. 예를 들면, 통신 프로토콜을 사용하여 부하 밸런싱 메커니즘과 감시중에 있는 각각의 기계 사이의 감시 통신을 제공할 수 있다.
도 2는 도 1의 분산형 기계 번역 시스템의 일 구현예(200)를 도시한 것이다. 이 시스템(200)은 통계적 기계 번역(SMT) 기술을 이용하여 소스-목표 번역 모델 및 목표 언어 모델에 기초하여 소스 자연 언어로부터 목표 자연 언어로의 번역을 수행한다. 소스 언어와 목표 언어는 많은 번역 응용 중에서 중국어 및 영어와 같은 2개의 상이한 자연 언어일 수 있다. 일부 응용에서, 소스 언어와 목표 언어는 동일한 자연 언어의 2개의 상이한 기록 포맷 또는 표현, 예를 들면, 간략형 중국어와 전통적 중국어일 수 있다. 컴퓨터 서버(210)는 목표 언어 모델을 저장하기 위해 사용되고, 컴퓨터 서버(220)는 소스-목표 번역 모델을 저장하기 위해 사용된다. 일부 구현예에서는, 하나의 번역 모델 서버(210)가 전체 번역 모델을 저장하고 제공하기에 충분할 수 있다. 시스템(200)의 서버(210, 220)들은 도 1의 시스템(100)의 리소스 서버(140, 141)의 예이고, 번역문 및 언어 모델은 도 1의 시스템(100)의 기계 번역 리소스 데이터의 예이다. SMT 디코더는 서버(210, 220)의 번역문 및 언어 모델을 이용하여 각 세그먼트의 번역을 수행하기 위해 적어도 일부 세그먼트 번역 서버(130)에서 구현될 수 있다.
이 시스템(200)에서, 번역 모델은 소스 언어와 목표 언어 간의 맵핑 정보 및 각 맵핑과 관련된 스코어링 정보(scoring information)를 포함한다. 맵핑 정보는 (1) 소스 언어의 하나 이상의 토큰과 (2) 목표 언어의 하나 이상의 토큰 간의 관계를 포함할 수 있다. 일 구현예에서, 예를 들면, 소스 언어와 목표 언어 간의 맵핑 정보는 목표 언어와 소스 언어 간의 모든 가능한 언어 문자열(language string)의 쌍이다. 스코어링 정보는 목표 언어와 소스 언어 간의 한 쌍의 언어 문자열의 확률과 같은, 소스 언어와 목표 언어 간의 각 맵핑을 위한 통계 데이터를 포함할 수 있다. 스코어링 정보의 일부로서 다른 통계 데이터가 사용될 수도 있다. 언어 모델은 목표 언어의 가능한 언어 문자열의 집합 및 각 문자열에 대해 대응하는 언어 모델 스코어링 정보를 포함한다. 문자열은 하나 이상의 언어 토큰을 포함한다. 토큰은 시스템에 의해 처리되는 가장 작은 언어 단위이다. 각 문자열은 목표 언어에서 n개 토큰의 시퀀스인 n-그램이고, 여기에서 n은 양의 정수이다. 각종 토큰화 기술은 언어의 발음구분 마크와 구두점, 글자, 및 문자를 비롯한 하나 이상의 기호 및 마크로부터 토큰을 구성하기 위해 사용될 수 있다. 언어 모델 스코어링 정보는 언어 모델의 각 문자열 또는 n-그램에 대한 통계 데이터를 포함할 수 있다. 통계 데이터는 목표 언어 텍스트의 코퍼스(corpus)에서 각각의 n-그램의 각각의 발생빈도에 관련된 확률, 스무딩 확률(smoothed probability), 또는 스무딩 계수와 같은, 목표 언어 텍스트의 코퍼스에서 각각의 n-그램의 각각의 발생빈도에 관련된 정보를 포함할 수 있다. 언어 모델 스코어링 정보는 통계 데이터 이외의 정보도 포함할 수 있다.
동작시에, 세그먼트 번역 서버(130)의 SMT 디코더는, 디코드할 세그먼트를 수신한 후에, 먼저 서버(220)의 번역 모델로부터 필요한 정보를 검색한 다음, 번역 모델로부터의 정보에 기초하여 언어 모델(210)로부터 필요한 데이터를 요청한다. SMT 디코더는 목표 언어의 토큰의 다양한 배열로부터 모든 가능한 번역문에 대한 통계치를 계산하고 최상의 번역문을 찾는다. 각각의 세그먼트 번역 서버(130)는 SMT 디코더로부터 출력된 번역문을 부하 밸런싱 장치(120)를 통해 최초 번역 프론트엔드 서버(110)에 보낸다.
통계적 기계 번역(SMT) 시스템의 번역 품질은 일반적으로 시스템의 번역 모델(TM)과 언어 모델(LM) 중의 어느 하나 또는 둘 다의 사이즈를 증가시킴으로써 개선될 수 있다. 그러므로, 시스템(200)은 단일 기계의 제한된 저장 용량에 기인하여 실제 구현예에서 부분적으로 파티션을 필요로 하는 대형 번역 모델 및 언어 모델을 가질 수 있다. 일례로서, 영어에 대한 대형 언어 모델은 약 2천억 단어 내지 8조 단어로부터 비롯될 수 있고, 그 사이즈는 약 1 테라바이트 내지 4 테라바이트이다. 대형 TM은 그 크기가 약 20억 단어 또는 그 이상일 수 있다. 더 많은 문서들이 온라인에서 이용 가능하게 되면서, LM은 사이즈가 더욱 증가할 수 있다. 그러므로, 파티션은 분산형 기계 처리를 이용하는 고품질 MT 시스템에 대한 효과적인 방법을 제공한다. 복제 및 부하 밸런싱은 또한 상기와 같은 DMT 시스템, 및 대형 언어 모델 및 번역 모델에 기초하는 다른 MT 시스템에서 사용될 수 있다.
언어 모델 서버(210)는 언어 모델의 상이한 파티션을 저장하고 제공하는 복수의 파티션 서버를 포함한다. (P+1)개 파티션들의 일례가 도 2에 도시되어 있는데, 여기서 P는 정수이다. 각각의 파티션 서버는 목표 언어용 언어 모델의 파티션을 저장하고 제공하도록 동작하며, 이러한 파티션 서버의 각 파티션은 전체 언어 모델을 함께 구성한다. 각각의 개별 파티션 서버는 파티셔닝 기준을 충족하는 언어 모델의 모든 n-그램을 포함할 수 있다. 예를 들면, 각각의 개별 파티션 서버는 미리 결정된 위치에 공통 토큰을 가진 언어 모델의 모든 n-그램을 포함하는 파티션을 저장하고 제공할 수 있다. 다른 예로서, 각각의 개별 파티션 서버는 각 n-그램 내의 미리 결정된 위치에 있을 수 있거나 또는 n개의 토큰 시퀀스에서 마지막 2개의 토큰일 수 있는 공통 토큰을 가진 언어 모델의 모든 n-그램을 저장하고 제공할 수 있다. n-그램의 토큰은 목표 언어의 텍스트 단어 또는 목표 언어의 기호일 수 있다. 또한, 각 언어 모델 파티션은 도 2에 도시된 바와 같이 하나 이상의 다른 복제 서버상에 복제될 수 있다.
유사하게, 번역 모델 서버(220)는 번역 모델의 상이한 파티션들을 저장하고 제공하는 복수의 파티션 서버를 포함한다. (K+1)개 파티션들의 일례가 도 2에 도시되어 있는데, 여기서 K는 정수이다. 각 파티션 서버는 전체 번역 모델을 함께 구성하고, 각각의 개별 파티션은 전체 번역 모델보다 작다. 또한, 각 번역 모델 파티션은 도 2에 도시된 바와 같이 하나 이상의 다른 복제 서버상에 복제될 수 있다.
도 2는 LM 및 TM 서버(210, 220)와 더불어 다른 번역 리소스 및 데이터를 위한 하나 이상의 서버(230)를 더 보여준다. 이러한 구성 특징은 시스템(200)의 다양한 특성을 더 개선하기 위한 선택적인 구성 특징이다. 예를 들면, 세그먼트 번역 서버(130) 중의 하나는, 언어 및 번역 모델에 기초한 SMT 처리를 이용하거나 또는 SMT 처리를 이용하지 않고 세그먼트를 번역하기 위해 서버(230) 내의 다른 번역 리소스 및 데이터를 사용하도록 설계될 수 있다. 도 11a 및 도 11b에 도시된 구현예는 다른 리소스 및 데이터를 이용하는 번역이 언어 모델 및 번역 모델을 이용한 SMT 처리에 의한 번역과 결합된 일례이다. 다른 번역 리소스 및 데이터를 위한 하나 이상의 서버(230)의 예로는 목표 언어와 소스 언어 간의 음역 사전 서버, 규칙 기반 기계 번역 서버, 규칙 기반 알고리즘을 실행하여 음역 데이터를 생성하는 음역 처리 서버, 및 소스 언어로부터 목표 언어로의 번역을 돕는 기타의 리소스 등이 있다.
시스템(200)은 언어 모델 및 번역 모델을 이용하는 MT 시스템의 일례이다. 이러한 유형의 시스템으로는 언어 모델 서버, 번역 모델을 제공하는 적어도 하나의 번역 모델 서버, 및 목표 언어로 번역될 소스 언어의 소스 텍스트를 수신하도록 동작하는 번역 서버 등이 있다. 각 언어 모델 서버는 목표 자연 언어를 위한 언어 모델의 파티션을 저장하고 그 파티션을 제공하도록 동작하며, 각 파티션은 전체 언어 모델을 함께 구성한다. 번역 서버는 번역 모델 서버로부터 번역 모델 데이터를 취득하고, 언어 모델 서버로부터 언어 모델 데이터를 취득하여 기계 번역을 수행하도록 동작한다.
도 2에 도시된 바와 같은 이러한 유형의 시스템의 특정 예로서, 언어 모델 및 번역 모델을 이용하는 MT 시스템은 특정 목표 언어를 위한 언어 모델의 상이한 파티션을 각각 저장하고 그 파티션을 제공하도록 동작하는 언어 모델 서버(210)를 포함할 수 있다. 각 파티션은 전체 언어 모델을 함께 구성하고, 각각의 개별 파티션은 언어 모델 전체보다 작다. 하나 이상의 복제 언어 모델 서버는 각각의 언어 모델 서버(210)에 대하여 구비될 수 있다. 이러한 시스템은 목표 언어와 소스 언어 간의 번역을 위한 번역 모델의 상이한 파티션을 각각 저장하고 그 파티션을 제공하 도록 동작하는 번역 모델 서버(220)를 또한 구비할 수 있다. 각 파티션은 전체 번역 모델을 함께 구성하고, 각각의 개별 파티션은 번역 모델 전체보다 작다. 각각의 번역 모델 서버(220)에 대한 하나 이상의 복제 번역 모델 서버가 구비될 수 있다. 번역 프론트엔드(110)는 클라이언트와의 인터페이스를 위해 시스템(200)에 제공될 수 있고, 각각의 번역 프론트엔드(110)는 소스 텍스트를 세그먼트들로 분할하도록 동작할 수 있다. 이러한 시스템은 번역 모델 서버(220)와 복제 번역 모델 서버로부터 번역 모델 데이터를 취득하고, 언어 모델 서버(210)와 복제 언어 모델 서버로부터 언어 모델 데이터를 취득하여 기계 번역을 각각 수행하도록 동작 가능한 세그먼트 번역 서버(130)를 포함할 수 있다. 세그먼트 번역 서버(130)에서의 번역 부하에 기초하여, 번역을 위해 세그먼트들을 하나 이상의 세그먼트 번역 서버(130)에 선택적으로 할당하도록 동작하는 부하 밸런싱 모듈(120) 또한 구비될 수 있다.
도 2의 시스템(200)은 목표 언어와 제2 소스 언어 간의 자동화 번역을 제공하기 위한 리소스를 또한 포함할 수 있다. 목표 언어와 제2 소스 언어 간의 번역을 위한 제2 번역 모델을 위한 하나 이상의 번역 모델 서버가 시스템(200)에 구비될 수 있다. 따라서, 복수의 제2 번역 프론트엔드가 구비되고, 이들 각각은 제2 소스 텍스트를 제2 소스 언어의 세그먼트들로 분할하도록 동작하며; 제2 소스 언어의 할당된 세그먼트에 대해 각각 기계 번역을 수행하는 복수의 제2 세그먼트 번역 서버가 제공된다. 제2 세그먼트 번역 서버의 번역 부하에 기초한 번역을 위해 세그먼트를 제2 세그먼트 번역 서버들 중 하나 이상의 서버에 할당하기 위하여 제2 부하 밸런싱 모듈이 또한 구비된다. 목표 언어 모델을 저장하고 제공하는 언어 모델 서 버(210)는, 소스 언어를 번역하기 위한 세그먼트 번역 서버(130)와 제2 소스 언어를 번역하기 위한 제2 세그먼트 번역 서버에 의해 공유될 수 있다.
전술한 도 1 및 도 2의 시스템에서, 번역될 각 세그먼트는 세그먼트 번역 서버(130)에 의한 번역을 위해 시스템의 프론트엔드[번역 프론트엔드 서버(110)]로부터 백엔드로 보내지고, 그 다음에 백엔드에 의해 다시 프론트엔드에 보내진다. 이러한 프로세스는 부하 밸런싱 장치(120)에 의한 처리, 세그먼트 번역 서버(130)에 의한 서버(210, 220)에 대한 액세스 및 세그먼트 번역 서버(130)에 의한 번역 수행, 및 번역된 세그먼트를 프론트엔드 서버(110)에 다시 라우팅하는 단계를 포함한다. 이러한 프로세스는 시간이 소요되고 시스템의 리소스를 사용한다. 빈번하게 번역되는 세그먼트에 대해서, 각 번역문은 번역 프론트엔드(110)에 의해 액세스가능한 번역문 캐시와 같은 메모리 장치에 저장될 수 있고, 이것에 의해 시스템의 백엔드의 이와 같은 세그먼트를 번역하는 루틴 프로세스를 피할 수 있다. 동작시에, 클라이언트 문서(102)가 번역 프론트엔드(110)에서 세그먼트화된 후에, 번역 프론트엔드(110)는 먼저 번역문 캐시에 저장된 번역문을 검색하고 번역문 캐시에 번역문이 없는 세그먼트만을 번역을 위해 백엔드에 전송한다. 번역문 캐시의 이러한 사용은 시스템 리소스를 자유롭게 하고, MT 시스템의 프론트엔드와 백엔드 간의 트래픽을 감소시키며, 인기 웹사이트용 MT 시스템과 같은 대량의 번역 요청을 제공하는 MT 시스템에 유리할 수 있다.
도 3a, 3b 및 3c는 번역문 캐시의 예시적인 구현예의 특징들을 도시한 도면이다. 번역문 캐시(310)는 선택된 세그먼트의 번역문을 저장하고, 세그먼트보다 작 지만 토큰보다 큰 어구(phrase)와 같은 토큰의 번역문 및 토큰의 문자열을 또한 저장할 수 있다. 도 3a는 도 1 또는 도 2의 시스템의 번역 프론트엔드(110)에 접속되어 그 번역 프론트엔드(110)에 의해 공유되는 번역문 캐시(310)를 도시한 것이다. 번역문 캐시(310) 내의 번역문들은 세그먼트 번역 서버에서의 루틴 기계 번역 프로세스 및 부하 밸런싱 프로세스를 거치지 않고 세그먼트에 대한 번역을 제공하기 위해 사용될 수 있다. 그러므로, 번역문 캐시(310)는 번역 지연을 감소시키고 번역 리소스를 자유롭게 하며 번역 프로세스를 촉진하도록 구현될 수 있다. 번역문 캐시는 언어 모델 및 번역 모델 서버와 같은 리소스처럼 파티셔닝되거나 복제될 수 있다. 번역문 캐시(310)는 상이한 카테고리의 번역문, 예를 들면, 사람이 번역한 번역문과 기계에 의한 번역문을 저장할 수 있다.
도 3b는 번역문 캐시(310)에서 사용할 수 있는 데이터 구조를 도시한다. 하나 이상의 소스 언어 빈(320)은 소스 언어의 세그먼트(S0, S1, S2 등)를 저장하고, 하나 이상의 목표 언어 저장소(330)는 목표 언어로 번역된 세그먼트(T0, T1, T2 등)를 저장한다. 소스 언어의 세그먼트와 목표 언어로 번역된 대응하는 세그먼트는 검색 및 액세스를 위해 링크된다. 번역문 캐시(310)는 저장된 번역문의 품질에 대한 정보, 번역문의 타임 스탬프, 번역문이 사용된 횟수의 카운트, 번역문을 마지막으로 사용한 때의 시간 등과 같은 각각의 저장된(cached) 번역문과 관련된 기타 정보를 더 포함할 수 있다. 이와 같은 정보는 특정 번역문이 번역될 세그먼트용으로 사용하기에 적합한 번역문인지를 판정하기 위해 사용될 수 있다. 예를 들어, 번역문 캐시의 품질 정보는 원하는 품질 레벨을 가진 적합한 번역문을 선택하기 위해 사용될 수 있다. 저품질이지만 쉽게 이용 가능한 번역된 세그먼트는 후에 일부 응용에서 고품질 번역문으로 업데이트되는 초기 번역문을 제공하기 위해 사용될 수 있다. 번역문 캐시(310)는 번역문이 문서에 나타나는 문맥(context)에 관한 정보를 또한 포함할 수 있다. 예를 들면, 번역된 세그먼트의 문맥에 대한 정보는 번역된 세그먼트의 양측에서 토큰, 어구 또는 세그먼트를 포함할 수 있다. 이와 같은 문맥 정보는 문맥 내의 번역문의 유사한 의미에 기초하여 특정 번역문이 적합한 번역문인지를 시스템이 판정하는 것을 도울 수 있다. 문맥 정보는 소스 언어의 세그먼트에 대한 문맥을 또한 포함할 수 있다.
도 3c는 번역문 캐시(310)가 동작하는 방법의 일례를 도시한 것이다. 이 예는 동작을 설명하기 위한 선택 파라미터로서 품질 정보를 사용한다. 하나 이상의 다른 파라미터, 예를 들면, 문맥 정보를 사용하여 세그먼트에 적합한 번역문을 또한 선택할 수 있다. 번역 프론트엔드(110)는 소스 언어로부터 목표 언어로 번역할 클라이언트 문서(102)를 수신하고, 문서(102) 내의 소스 텍스트를 세그먼트들로 분할한다(단계 341). 그 다음, 번역 프론트엔드(110)가 번역문 캐시 내의 분할된 세그먼트 각각을 검색하여 번역문이 존재하는지 여부를 판정한다(단계 342, 343). 번역문 캐시(310)는 선택된 토큰 및 세그먼트의 소스 언어로부터 목표 언어로의 번역문을 저장한다. 번역문 캐시(310)에 존재하는 번역문에 대해서, 번역 프론트엔드(110)는 번역문의 품질이 만족스러운지 여부를 또한 판정한다(단계 344). 이는 예를 들어, 번역문 캐시(310)에 저장된 품질 정보를 이용하여 행해질 수 있다. 번역문 캐시(310)에 번역될 세그먼트에 적당한 번역문이 있는 경우, 번역 프론트엔 드(110)는 세그먼트를 추가 처리하지 않고 그 세그먼트에 적당한 번역문을 이용한다(단계 346). 번역문 캐시(310)에 번역될 세그먼트에 적당한 번역문이 없는 경우, 그 세그먼트는 추가로 처리되고 번역된다(단계 345). 이러한 추가의 처리는, 예를 들면 세그먼트를 번역하기 위해 원하는 번역 모델 데이터 및 언어 모델 데이터를 취득하고, 원하는 번역 모델 데이터 및 언어 모델 데이터를 이용하여 세그먼트를 번역하기 위하여, 소스 언어와 목표 언어 간의 번역을 위한 번역 모델 및 목표 언어를 위한 언어 모델에 액세스하기 위한 세그먼트 번역 서버(130)를 이용함으로써 달성될 수 있다. 하나의 세그먼트를 완료한 후에, 번역 프론트엔드(110)는 분할된 모든 세그먼트가 처리될 때까지, 처리될 그 다음의 세그먼트로 진행된다(단계 347 및 348).
도 4는 번역문 캐시(310)에 대한 상이한 구현예를 도시한 것이다. 도 4의 설계에서 도 3a의 설계와 다른 점은 번역문 캐시(310)가 부하 밸런싱 장치(120)와 상호작용한다는 점이다. 동작시에, 부하 밸런싱 장치(120)가 번역을 위해 번역 프론트엔드(110)로부터 세그먼트를 수신한 후, 임의의 수신 세그먼트를 세그먼트 번역 서버(130)에 분배하기 전에 먼저 각각의 수신된 세그먼트에 적합한 기존의 번역문을 번역문 캐시(310)에서 검색한다. 특정 세그먼트에 적합한 기존의 번역문이 번역문 캐시(310)에서 발견되는 경우, 부하 밸런싱 장치(120)는 상기 기존 번역문을 번역문 캐시(310)로부터 불러오고, 번역을 위해 세그먼트를 세그먼트 번역 서버(130)에 보내지 않고 기존의 번역문을 각각의 최초 번역 프론트엔드(110)에 보낸다. 번역문 캐시(310)에 그 세그먼트에 대한 해당 번역문이 없으면, 부하 밸런싱 장 치(120)는 번역을 위해 그 세그먼트를 선택된 번역 서버(130)에 전송한다. 부하 밸런싱 장치(120)의 이러한 동작 태양은 각각의 번역 프론트엔드(110)에 대해 도 3의 동작과 유사하다.
MT 시스템에서의 처리 및 통신 트래픽을 줄이기 위해 캐시에 저장된 번역 세그먼트를 사용하는 개념은 세그먼트 번역 서버(130)에 의한 액세스를 위해 MT 시스템의 백엔드까지 확장될 수 있다. 도 5는 세그먼트 번역 서버 캐시(510)가 도 1 또는 도 2의 세그먼트 번역 서버(130)에 의해 공유되는 예시적인 구현예를 도시한 것이다. 부하 밸런싱 장치(120)로부터 번역될 세그먼트를 수신하면, 세그먼트 번역 서버(130)는 먼저 세그먼트를 위한 기존의 번역문을 위해 세그먼트 번역 서버 캐시(510)를 검색한다. 세그먼트 번역 서버 캐시(510)에서 적당한 번역문이 발견되는 경우, 세그먼트 번역 서버(130)는 세그먼트 번역 서버 캐시(310)로부터 그 번역문을 불러와서 부하 밸런싱 장치(120)로 보내고, 부하 밸런싱 장치(120)는 그 번역문을 각각의 최초 번역 프론트엔드(110)에 보내고 번역될 그 다음의 세그먼트를 처리하기 위해 이동한다. 세그먼트 번역 서버 캐시(510)에 세그먼트를 위한 대응하는 번역문이 없다면, 세그먼트 번역 서버(130)는 세그먼트 번역을 진행한다.
상기 MT 시스템의 세그먼트 번역 서버(130)는 소스 언어와 목표 언어 간의 번역을 위한 번역 모델 및 목표 언어를 위한 언어 모델을 이용하여 세그먼트를 번역하는 디코더, 및 언어 모델로부터 검색한 데이터를 저장하고 그 저장한 데이터를 디코더에 제공하도록 동작 가능한 로컬 캐시를 구비할 수 있다. 디코더는 언어 모델 서버(210)와 통신하여 세그먼트의 가능한 번역문의 n-그램 각각에 대한 정보 및 관련 통계 데이터를 요청한다.
도 6은 번역문 디코더(610), LM 룩업 요청 큐(620) 및 로컬 캐시(630)를 구비한 세그먼트 번역 서버(130)의 예를 도시한 것이다. 이 예에서 로컬 캐시(630)는 하이 레벨 로컬 캐시(631)와 선택적인 로우 레벨 캐시(632)를 포함한다. 하이 레벨 캐시(631)와 로우 레벨 캐시(632)는 LM 서버(210)에 액세스하지 않고 세그먼트 번역 서버(130)에 의해 사용되기 위해 선택된 LM 데이터를 저장하기 위해 사용될 수 있다. 하이 레벨 캐시(631)는 현재 세그먼트에 필요한 모든 n-그램이 세그먼트 번역 서버(130) 내에서 이용 가능하도록 세그먼트 번역 중에 취득된 선택된 LM 데이터를 저장하도록 구성된다.
동작시에, 저장된 LM 데이터가 특정 한계치를 넘어서 누적되지 않도록 하이 레벨 캐시(631)는 몇 가지 방식으로 비워진다. 일부 구현예에서, 세그먼트 번역 서버(130)는 하이 레벨 캐시(631)의 내용물을 주기적으로 삭제한다. 이러한 주기적인 삭제의 구체적인 예로서, 하이 레벨 캐시(631)는 세그먼트가 번역된 후에 삭제될 수 있다. 다른 구현예로서, 하이 레벨 캐시(631) 내에 저장된 LM 데이터는 "구"(old)라고 표시되고, 하이 레벨 캐시(631)가 언어 모델로부터 취득된 신(new) LM 데이터를 저장할 공간이 없을 때, 이와 같은 "구" 데이터는 새로운 세그먼트의 번역시에 더 이상 재사용되지 않는 경우 삭제될 수 있다.
로우 레벨 캐시(632)는 빈번하게 사용되는 LM 데이터를 저장하기 위해 세그먼트 번역 서버(130)의 선택적 구성 요소로서 구현될 수 있다. 일반적으로, 로우 레벨 캐시(632) 내의 데이터는 각 세그먼트의 번역 후에 비워지지 않고 하이 레벨 캐시(631) 내의 데이터보다 긴 기간 동안 보유된다. 그러므로, 로우 레벨 캐시(632) 내의 LM 데이터는 비교적 영구적이고 하이 레벨 캐시(631) 내의 LM 데이터는 비교적 임시적이다.
다른 구현예로서, 개별적인 하이 레벨 캐시와 로우 레벨 캐시에 각각 대응하는 하이 레벨 캐시부와 로우 레벨 캐시부를 가진 단일의 로컬 캐시가 사용될 수 있다.
LM 룩업 요청 큐(620)는 세그먼트를 처리하는 동안 디코더(610)에 의해 생성된 언어 모델로부터 선택된 LM 데이터에 대한 요청을 임시 저장하기 위해 사용될 수 있다. 그 다음, 큐잉된 요청(queued request)은 예를 들어 선입선출 방식으로 순차적으로 하나 이상의 LM 서버(210)에 보내진다. 디코더(610)의 대기 시간을 감소시키기 위하여, LM 룩업 요청 큐(620)는 상이한 때에 LM 서버(210)에 의해 요청이 행해지고 그에 따라서 제공되도록 한다. 또한, 요청을 큐잉하는 것과 큐잉된 요청을 전송하는 것을 동시에 행하는 것은, 요청LM 서버(210)의 접촉과 관련된 오버헤드를 상당히 줄일 수 있다. 로컬 캐시(630) 및 LM 룩업 요청 큐(620)는 공동으로 동작하여 각 세그먼트를 효율적으로 처리할 수 있다. 디코더(610) 및 큐(620)를 동작시키기 위해 다른 기술이 사용될 수도 있다. 그 중 2가지 예를 이하에서 설명한다.
일례로서, 디코더(610)는 2-패스(two-pass) 처리 방식으로 동작한다. 먼저, 디코더(610)는 요청된 LM 데이터가 수신되기 전에 언어 모델로부터의 필요한 모든 LM 데이터 없이 세그먼트를 처리한다. 요청된 LM 데이터를 기다리는 동안 디코 더(610)가 세그먼트를 처리할 수 있도록 허용하기 위해 더미(dummy) 룩업 모델이 사용될 수 있다. 이것이 제1 패스의 처리이다. 요청된 LM 데이터가 모두 수신된 후, 디코더(610)는 수신된 LM 데이터를 이용하여 처리를 종료한다.
다른 예로서, LM 서버(210) 내의 대형 언어 모델과는 상이한 열등한(coarse) 소형 언어 모델 또는 다른 번역 리소스, 예를 들면, 도 2의 리소스 서버(230)는 LM 서버(210)에 대한 요청이 제공되는 동안 디코더(610)에 의해 사용될 수 있다. 디코더(610)에 의한 처리는 열등한 LM을 사용하고 초기 번역 결과를 생성한다. 요청된 LM 데이터가 LM 서버(210)로부터 수신된 후, 디코더(610)는 수신된 LM 데이터를 이용하여 초기 번역 결과를 업데이트한다.
상기 2가지 예의 기술을 구현함에 있어서, LM 서버(210)에 데이터에 대한 요청을 보내기 전에, LM 서버(210)에 대한 요청의 수를 줄이고 요청된 LM 데이터의 처리량을 줄이기 위하여, 디코더(610)는 번역될 세그먼트를 사전 처리하여 세그먼트를 위한 미완성 번역문을 제거할 수 있다. 사전 처리시에, 디코더(610)는 열등한 소형 언어 모델과 같이, LM 서버(210)의 대형 언어 모델과 상이하거나 또는 LM 서버(210)보다 쉽게 이용할 수 있는 번역 리소스를 사용하여 세그먼트를 처리함으로써 초기 결과, 예를 들면 세그먼트를 위한 최상의 가능한 번역 경로의 상한을 생성한다. 다음에, 디코더(610)는 상기 2가지 처리 기술 중의 하나를 이용함으로써 필요한 LM 데이터에 대한 요청을 생성하고, 모든 요청에 대한 응답이 수신된 후에 세그먼트의 번역을 완료하기 위하여 초기 결과를 사용한다.
도 7은 세그먼트(701)의 번역시에 도 6의 세그먼트 번역 서버(130)의 번역문 디코더(610)의 예시적 동작을 도시한 것이다. 초기에, 디코더는 TM 서버로부터 번역될 세그먼트의 번역문과 관련된 TM 데이터, 예를 들면 목표 언어의 어구(phrase) 또는 확장(extension)의 모든 가능한 번역문을 요청하고 TM서버로부터 검색한다(단계 710). 확장은 이전에 사용된 어구가 주어질 가능성이 있는 어구들 중의 하나만큼 후보 번역문을 확장한다. 요청된 TM 데이터가 검색되는 동안, 디코더는 LM 모델로부터 검색되는 각 n-그램에 대한 값을 몇몇 초기값, 예를 들면 무작위 값 또는 상수 값에서 설정한다. 일례로서, 후보 번역문은 0으로 설정될 수 있다(단계 720). 각 세그먼트의 상이한 가능한 어구들을 처리할 때, 디코더는 LM이 여러번 액세스는 동안 세그먼트의 한쪽 끝에서 다른 쪽 끝까지 최상의 어구를 검색하기 위해 어구 반복을 수행한다. 각 반복시에, 디코더는 다음과 같이 2-패스 처리를 수행한다. 먼저, 현재 후보 번역문 세트의 모든 가능한 확장이 계산되고, 가능한 확장 번역 모델은 가능한 확장으로 스코어링된다(score)(단계 730). 가능한 확장에 대한 언어 모델 스코어는 LM 서버(210)로부터 요청된 LM 데이터를 수신하기 전에 이용 가능한 정보를 이용하여 우선 취득된다(단계 740). 예를 들면, 더미 룩업 테이블의 n-그램에 할당된 미리 결정된 값 및 하이 레벨 캐시와 로우 레벨 캐시를 포함한 로컬 캐시에 저장된 언어 모델 스코어가 사용될 수 있다(단계 740). 이것이 세그먼트 내의 각 어구 처리의 제1 패스이다. 그 다음, 가능한 어구에 대해 취득된 언어 스코어는 LM 서버로부터의 수신된 언어 모델 데이터를 이용함으로써 업데이트된다(단계 750). 이것이 각 어구 처리의 제2 패스이다. 업데이트된 스코어에 기초해서, 디코더는 낮은(poor) 스코어를 가진 번역문을 제거하고(단계 760), 현재 세그먼트의 끝 에 도달하였는지 여부를 판정한다(단계 770). 현재의 세그먼트가 처리되어야 할 하나 이상의 확장을 아직 갖고 있다면, 디코더는 상기 처리를 반복한다. 그렇지 않고, 처리되어야 할 확장이 없다면, 디코더는 세그먼트를 위한 최상의 번역문을 추출하고 번역된 세그먼트(702)를 부하 밸런싱 장치(120)에 보낸다.
도 8은 요청된 LM 데이터가 디코더에 대해 이용 가능하기 전의 도 7의 처리 단계(단계 740)의 예를 도시한 것이다. 번역될 세그먼트를 위한 번역 모델로부터의 각각의 가능한 어구 또는 확장에 대해, 디코더는 각각의 가능한 번역문 및 관련 통계 데이터에 대해 목표 언어의 임의의 가능한 n-그램을 위한 하이 레벨 캐시를 검색한다(단계 810 및 820). 정보가 하이 레벨 캐시에서 이용 가능한 경우, 디코더는 그 정보를 이용하여 번역을 완료하고 번역된 세그먼트를 생성한다(단계 830). 정보가 하이 레벨 캐시에서 이용 가능하지 않은 경우, 디코더는 로우 레벨 캐시를 검색한다(단계 840 및 850). 정보가 로우 레벨 캐시에 있다면, 디코더는 이 상태를 표시하고(단계 860), 번역을 완료하기 위하여(단계 830), 하이 레벨 캐시와 로우 레벨 캐시 양자 모두의 정보를 이용하도록 진행된다. 정보가 로우 레벨 캐시에 없는 경우, 디코더는 LM 룩업 요청 큐에서 언어 모델로부터 데이터를 요청한다(단계 870). 수신된 LM 데이터는 하이 레벨 캐시와 로우 레벨 캐시에 저장되고(단계 880), 번역은 완료된다(단계 830).
각 세그먼트를 번역할 때의 어구 반복 동안, 2-패스 처리(도 7의 단계 730, 740, 및 750)는 시스템 내의 다른 언어 모델 리소스를 이용하여 초기 번역을 수행하고, 그 다음 언어 모델을 이용하여 번역문을 업데이트하고 종료할 수 있다. 이와 같은 언어 모델 리소스에 대한 일례가, 예컨대 언어 모델 서버(210) 상에 저장된 언어 모델보다 작은 제2 언어 모델이다.
세그먼트 번역 서버(130)(도 6)는 다른 구성으로 동작할 수 있다. 예를 들면, 도 9a 및 도 9b는 도 6의 시스템의 대안적인 동작을 도시한 것이고, 여기에서 언어 모델은 세그먼트 번역 처리시에 1회 액세스되고 세그먼트 번역 서버(130)는 로컬 캐시의 일부로서 하이 레벨 캐시(631)와 로우 레벨 캐시(632)를 포함한다.
부하 밸런싱 장치(120)로부터 번역될 세그먼트를 수신한 후, 세그먼트 번역 서버(130)는 서버(220) 상에 저장된 번역 모델로부터 그 세그먼트를 위한 목표 언어의 모든 가능한 번역문을 요청 및 검색한다(단계 910). 번역 모델로부터 수신된 가능한 번역문에 기초해서, 세그먼트 번역 서버(130)는 언어 모델 서버(210) 상에 저장된 언어 모델로부터 세그먼트를 위한 각각의 가능한 번역문 및 관련 통계 데이터에 대해 목표 언어의 모든 가능한 n-그램에 대한 요청을 생성한다(단계 920). 상기 요청을 언어 모델 서버(210)에 보내기 전에, 세그먼트 번역 서버(130)는 먼저 요청 내에 임의의 언어 모델 데이터가 존재하는지 여부를 확인하기 위해 로컬 캐시(630)를 검색하고, 데이터를 갖지 않은 로컬 캐시(630)의 언어 모델 서버(210)에 생성된 요청을 보낸다. 먼저, 세그먼트 번역 서버(130)는 각각의 가능한 번역문 및 관련 통계 데이터에 대해 목표 언어의 임의의 가능한 n-그램에 대해 하이 레벨 캐시(631)를 검색한다(단계 930). 세그먼트 번역 서버(130)는 하이 레벨 캐시(631)를 검색하여 모든 가능한 n-그램이 존재하는지 여부를 판정한다(단계 940). 존재한다면, 세그먼트 번역 서버(130)는 생성된 요청을 언어 모델 서버(210)에 보내지 않고 세그먼트를 위한 번역을 완료한다(단계 950).
존재하지 않는다면, 세그먼트 번역 서버(130)는 추가의 처리를 수행한다(단계 960A). 로우 레벨 캐시(632)는 언어 모델을 갖는 하이 레벨 캐시(631)에서 발견되지 않은 임의의 n-그램에 대한 언어 모델 데이터에 대해 세그먼트 번역 서버(130)에 의해 검색된다(단계 961 및 962). 하나의 가능한 n-그램 및 통계 데이터에 대해 요청된 데이터가 로우 레벨 캐시(631)에 있다면, 세그먼트 번역 서버(130)는 이러한 특정 n-그램에 대한 존재를 표시하여, 각각의 생성된 요청(단계 920)이 언어 모델 서버(210)에 보내지지 않도록 한다(단계 963). 또한, 하이 레벨 캐시(631)에서 초기에 발견되는 n-그램에 대해서, 그 특정 n-그램에 대한 요청 또한 언어 모델 서버(210)에 보내지지 않는다. 세그먼트 번역 서버(130)가 어느 캐시에서도 n-그램에 대한 어떤 정보도 찾을 수 없다면, 생성된 요청은 LM 검색 큐(620)에 배치되고 언어 모델 서버(210)에 보내진다(단계 964). 언어 모델 서버(210)로부터 수신된 언어 모델 데이터는 각각의 n-그램의 속성에 따라서 캐시들 중 하나에 저장된다(단계 965). 빈번하게 사용되는 n-그램에 대해, n-그램의 언어 모델 데이터는 로우 레벨 캐시(632)에 보존될 수 있다. 현재의 세그먼트의 번역시에 사용되었지만 목표 언어에서 빈번하게 사용될 것 같지 않은 n-그램에 대해, 수신 데이터는 빈번하게 비워지는 하이 레벨 캐시(631)에 저장될 수 있다. 이때, 세그먼트를 번역하는 모든 가능한 n-그램을 위한 언어 모델 데이터는 로컬 캐시(630) 내의 어딘가에 저장된다. 따라서, 세그먼트 번역 서버(130)는 언어 모델 데이터에 기초하여 그 세그먼트의 번역을 완료한다(단계 950).
도 10은 로우 레벨 캐시(632)는 없고 하이 레벨 캐시(631)만을 갖는 세그먼트 번역 서버(130)의 동작 예를 도시한 것이다. 초기 처리(단계 1010 내지 1040)는 앞에서 설명한 초기 처리(단계 910 내지 940)와 유사하다. 임의의 가능한 n-그램을 위한 언어 모델 데이터가 하이 레벨 캐시(631)에 없다면, 그 n-그램에 대해 생성된 요청이 LM 룩업 큐(620)에 배치되고 언어 모델 서버(210)에 보내진다(단계 1060). 언어 모델 서버(210)로부터 수신된 언어 모델 데이터는 하이 레벨 캐시(631)에 저장된다(단계 1070). 생성된 요청을 LM 룩업 요청 큐(620)에 배치하고 수신된 언어 모델 데이터를 하이 레벨 캐시(631)에 저장하는 이러한 처리는, 언어 모델 정보가 초기에 하이 레벨 캐시(631)에 없는 모든 n-그램에 대하여 수행된다. 모든 요청된 언어 모델 데이터가 수신된 후에, 세그먼트 번역 서버(130)는 언어 모델 데이터에 기초하여 그 세그먼트의 번역을 완료한다(단계 1050).
도 11a 및 도 11b는 도 6의 시스템의 세그먼트 번역 서버의 처리 흐름의 다른 예를 도시한 것인데, 여기서 세그먼트 번역 서버(130)는 큐(620)의 큐잉된 요청이 제공되는 동안 세그먼트의 번역을 처리하기 위해 다른 이용 가능한 번역 리소스로부터의 언어 데이터를 이용한다. 번역될 각 세그먼트에 대해서, 세그먼트 번역 서버(130)는 디코더(610)를 이용하여 번역될 세그먼트의 번역문과 관련된 TM 데이터, 예를 들면, 목표 언어의 어구 또는 확장의 모든 가능한 번역문을 TM 서버(220)로부터 요청 및 검색한다(단계 1110). 그 다음, 세그먼트 번역 서버(130)는 언어 모델로부터의 각각의 가능한 번역문 및 관련 통계 데이터에 대해 목표 언어의 모든 가능한 n-그램에 대한 요청을 생성한다(단계 1120). 세그먼트 번역 서버(130)는 요 청된 LM 데이터가 세그먼트 번역 서버(130)에 있는지 여부를 판정한다(단계 1130). 만약 있다면, 세그먼트 번역 서버(130)는 이용 가능한 LM 데이터를 이용해서 번역을 수행하여 번역된 세그먼트를 생성한다(단계 1140). 만약 세그먼트 번역 서버(130)에 정보가 없다면, 세그먼트 번역 서버(130)는 누락된(missing) n-그램 및 통계 데이터 각각에 대한 요청을 LM 룩업 요청 큐(620)에 배치하고(단계 1150), 그 요청에 대한 응답을 기다리는 동안 번역 처리를 진행한다(단계 1160). 이 기간 동안, 세그먼트 번역 서버(130)는 다른 이용 가능한 번역 리소스[예를 들면, 도 2의 리소스 서버(230)]로부터의 언어 데이터를 이용하여 세그먼트의 번역을 처리한다(단계 1161). 세그먼트 번역 서버(130)는 모든 요청된 LM 데이터가 이용 가능할 때까지 다른 이용 가능한 번역 리소스로부터의 데이터에 의한 처리를 계속한다(단계 1162). 모든 요청된 LM 데이터를 수신한 후에, 세그먼트 번역 서버(130)는 LM 서버(210)로부터의 새롭게 이용 가능한 데이터를 이용하여 초기에 다른 리소스에 의해 생성된 처리 결과를 업데이트하고 최종의 번역문을 생성한다(단계 1163).
자동화 기계 번역에 대해 전술한 각종 특징 및 다른 특징들에 대한 더 구체적인 내용은 이하에서 설명된다.
분산형 언어 모델의 인코딩 및 액세싱
이 섹션에서는 텍스트 및 문서를 이 섹션에서는 중국어와 같은 하나의 자연 언어로부터 영어와 같은 다른 자연 언어로 번역하기 위한 MT 시스템의 각 태양에 대하여 설명한다. 이 섹션에서의 예들은 다양한 언어의 어구의 발생 빈도에 대한 통계치를 제공하기 위해 번역 처리 동안 이용되는 대형 언어 모델을 어떻게 효율적 으로 처리할 것인지에 대한 문제를 다루기 위해 사용된다. 시스템이 n-그램(n은 3보다 큰 수)과 같은 대형 언어 모델을 이용할 수 있다면, 번역의 품질은 일반적으로 개선될 수 있다.
번역 처리의 일부로서, 통계적 번역 시스템은 각종 단어, 어구, 또는 단어의 시퀀스(sequences of words)가 목표 언어에서 차례로 얼마나 자주 나오는지에 관한 정보를 필요로 한다. 이 정보는 이해하기가 더 용이한 목표 언어 번역문을 선택하기 위해 사용된다.언어 모델 정보는 보통 문서의 대형 트레이닝 코퍼스에서 단어의 시퀀스가 발생하는 빈도를 계산함으로써 수집된다. 일례로서, 이와 같은 데이터의 집합은 아래와 같은 정보를 산출할 수 있다.
("is", "the", "only", "person") → 9234회 발생
("is", "the", "only", "person", "that") → 173회 발생
("is", "the", "person","only", "that") → 1회 발생
여기서 좌측에 있는 단어의 문자열은 다양한 가능한 단어의 시퀀스를 나타내고, 우측에 있는 수치는 문서의 트레이닝 코퍼스의 발생 횟수를 나타낸다. 언어 모델 데이터의 일반적인 형태는 임의의 바이트 시퀀스일 수 있는 값으로 맵핑되는 단어의 시퀀스일 수 있고, 상기 값은 몇몇 공통 MT 시스템에서 정수 또는 부동 소수점 값(floating point value)일 수 있다. 언어 모델은 n-그램 언어 모델을 이용함으로써 모든 단어 시퀀스에 대한 정보의 길이를 n까지 유지하기 위해 사용될 수 있다. 각종 기계 번역 시스템들은 그들의 언어 모델에서 비교적 작은 n 값을 가진 n-그램, 예를 들면 2-그램 또는 3-그램 언어 모델을 이용하여 언어 모델이 단일 기계 상에 저장될 정도로 충분히 작을 수 있다.
여기에서 설명하는 기계 번역 기술은 기계 번역 시스템, 및 자동 스피치 인식 시스템과 같은 대형 언어 모델을 유리하게 사용할 수 있는 기타 시스템의 초대형 언어 모델에 대해 사용될 수 있다. 하나의 접근 방법은, 복수의 기계 전반의 분산형 언어 모델 서버상으로 언어 모델 데이터를 파티셔닝하는 것이고, 아마도 언어 모델 상태의 각각 파티셔닝된 부분에 대한 복제에 의해 행하여질 수 있다. 대형 언어 모델은 n-그램(n은 3보다 큰 수, 예를 들면, n=4, 5, 6 등)을 가지며, 기계 번역문의 품질을 높이기 위해 사용될 수 있다. 도 1과 도 2는 이러한 시스템의 예를 도시한 것이며, 이 시스템에서 언어 모델은 대형 n-그램(n은 3보다 큰 수)을 포함할 수 있다. 동작시에, 하나 이상의 번역 서버는 소스 언어로부터 특정 목표 언어로 텍스트의 특정 단편(fragment)을 번역하기 위한 요청을 수신한다. 요청은 종종 단일 문장 단위로(granularity) 행해진다. 번역 서버는 언어 모델 서버로부터 적당한 언어 모델 데이터의 일부를 불러온다. 실제 번역 작업[예를 들면, 도 2의 세그먼트 번역 서버(130)]을 수행하는 처리로부터 언어 모델 처리[예를 들면, 도 2의 LM 서버(210)]로의 네트워크 원격 절차 호출(RPC; Remote Procedure Call)이 LM 데이터를 요청하고 검색하기 위해 사용될 수 있다.
K개의 부분으로 파티셔닝된 다양한 (n-그램 → 값) 키/값 쌍을 가진 언어 모델 데이터 구조를 구축하기 위해 오프라인 처리가 이용될 수 있다. n-그램의 값들이 동일한 파티션 내에 존재하는 동일한 또는 유사한 번역 요청을 처리하는 부분으로서 필요하도록 n-그램을 파티셔닝하는 것이 종종 유용하다. 이것은 번역 서버에 의해 액세스될 필요가 있는 별개의 파티션의 수를 최소화하는 경향이 있다. 이를 달성하는 한가지 방법은, n-그램의 처음 또는 마지막 M개의 단어로 파티셔닝하는 것, 예를 들면, n-그램의 마지막 2개의 단어로 파티셔닝하는 것이다.
각 서버 내에서, 파티션 내의 n-그램 값의 검색이 효율적이도록 구성되어야 한다. 그 이유는, 번역은 각 파티션이 초당 수십만 회의 검색을 위해 사용될 것을 요구하기 때문이다. 이와 동시에, 언어 모델을 유지하는데 필요한 메모리의 총량이 감소하도록, 언어 모델 데이터를 조밀하게 표시하는 것이 유용하다. 따라서, 파티션의 수가 감소될 수 있고, 언어 모델을 제공하기 위해 요구되는 기계의 갯수 또한 감소될 수 있다.
n-그램 데이터를 인코딩하는 한가지 기술은, 더 많은 공통의 단어들을 더 낮은 갯수로 할당하면서 각 단어에 고유의 정수 ID를 할당하는 것이다. 이러한 ID 할당은 언어 모델의 구축 단계 중에 발생한다. 아래와 같은 문서의 코퍼스로부터의 트레이닝 데이터를 고려해 보겠다.
("is", "the", "only", "person") → 9234회 발생
("is", "the", "only", "person", "that") → 173회 발생
("is", "the", "person","only", "that") → 1회 발생
동일한 데이터를 ID 번호를 이용하여 아래와 같이 단순한 형태로 표시할 수 있다.
13 3 53 1037 → 9234
13 3 53 1037 73 → 173
13 3 1037 53 73 → 1
여기서 "13"은 단어 "is"의 ID 번호, "3"은 단어 "the"의 ID 번호, "53"은 단어 "only"의 ID 번호, "1037"은 단어 "person"의 ID 번호, "73"은 단어 "that"의 ID 번호이다. ID 번호의 이러한 사용에 의해 언어 모델의 데이터의 사이즈가 압축되고, 그 압축 효과는 초대형 언어 모델의 경우에 현저해질 수 있다. 아래는 n-그램의 시퀀스 및 관련 값들을 분류된 순서로 나타내는 한 세트의 블록들로 그룹화된 언어 모델에 대한 n-그램의 예를 보인 것이다.
1388 → 6 [Bob]
1388 2 → 5 [Bob</S>]
1388 3 → 3 [Bob,]
1388 3 2 → 6 [Bob, </S>]
1388 3 4 → 2 [Bob, the]
1388 3 4 11 → 3 [Bob, the " ]
1388 3 4 11 2454 → 1 [Bob, the " grand]
1388 3 4 11 7379 → 1 [Bob, the " Father]
1388 3 4 11 20940 → 1 [Bob, the " sailor]
1388 3 4 11 38117 → 1 [Bob, the " Dude]
1388 3 4 53 → 3 [Bob, the more]
1388 3 4 53 587 → 1 [Bob, the more low]
여기서, 좌측에서부터 우측으로, ID 번호, 발생 수, 및 대응하는 텍스트가 표시되어 있다.
일부 구현예에서, 언어 모델 데이터는 256개의 고유 단어 식별자가 나타날 때까지, 또는 최대 갯수의 n-그램이 블록 데이터를 위해 누적될 때까지(예를 들면, 최대 1024 n-그램) 블록에 추가되기 위해 메모리에 버퍼링된다. 포맷은 0 내지 255 범위의 한 세트의 로컬 ID에 대하여 256개까지의 고유의 단어 ID를 맵핑하는 렉시콘(lexicon)을 사용한다. 렉시콘은 임의의 편리한 방법을 이용하여 인코딩될 수 있다. 그 다음, 실제 n-그램 데이터가 로컬 ID에 의해 인코딩된다. 특정 n-그램의 검색은 우선 원하는 단어 ID를 로컬 ID로 번역하고, 그 다음 올바른 값을 찾기 위해 적당한 로컬 ID의 시퀀스에 대해 고속 스캐닝을 수행한다.
블록에 n-그램이 주어지면, 블록 내의 모든 n-그램에 의해 공유되는 공유 접두사 길이(prefix length)가 계산될 수 있다. 한 블록 내에서, 모든 엔트리는 상이한 n-그램 길이로 분리되고, 로컬 ID로 재기록된다. 언어 모델 데이터를 위한 실제 블록 포맷은 아래와 같다.
shared_prefix_size :byte
value length :byte
# of entries in lexicon :varint32
N word ids(lexicon) :N values
# entries table: pairs repeated each distinct n-gram length in the block
K :byte
# of entries of length K :varint32
"0" :byte(literal 0 marking end of table)
상기 데이터 블록은 블록 내의 상이한 길이의 n-그램 각각에 대하여 별도의 섹션이 후속한다. 하나의 블록에 대한 K-그램 섹션의 각 엔트리에 있어서, P의 공유 접두사는 K-P 바이트의 시퀀스로 표시되어 K-그램의 트레일링 (K-P) 로컬 단어 ID를 표시하고, 그 다음에 "value_length" 바이트 시퀀스로서의 값이 이어진다.
블록에 저장된 최종 n-그램의 문자열(string) 표시인 키가 각 블록에 주어진다. 블록 내용들은 안정된(stable) 값으로서 인코딩되고, 이러한 키는 안정된 키로서 사용된다. 이는 검색을 보장한다. 아래의 것은 그 일례이다.
공유 접두사 길이: 1
이 블록 내의 값들의 길이: 1
Lex: 1388 2 3 4 11 2454 7379 20940 38117 53 587
nwords: <1,1>
nwords: <2,2>
nwords: <3,2>
nwords: <4,2>
nwords: <5,5>
"0"
1-그램 섹션:
[ ]:6
2-그램 섹션:
[ 001 ]:5
[ 002 ]:3
3-그램 섹션:
[ 002 001 ]:6
[ 002 003 ]:2
4-그램 섹션:
[ 002 003 004 ]:3
[ 002 003 009 ]:3
5-그램 섹션:
[ 002 003 004 005 ]:1
[ 002 003 004 006 ]:1
[ 002 003 004 007 ]:1
[ 002 003 004 008 ]:1
[ 002 003 009 010 ]:1
기계 번역을 위한 언어 모델링의 사용은 보다 긴 n-그램이 발견되지 않은 경우에 시스템이 보다 짧은 n-그램을 검색할 것을 종종 요구한다. 보다 짧은 n-그램은 백오프(backoff) 및 스무딩 처리(smoothing)를 위해 사용될 수 있다. 보다 짧은 n-그램은, n-그램의 맨 앞 또는 맨 끝에서 단어를 제거(stripping)함으로써 생성될 수 있다. 일례로서, 기계 번역을 요청한 클라이언트는 시퀀스 "A B C D E"를 요청 할 수 있는데(여기서 각 문자는 하나의 단어를 나타냄), 시퀀스의 앞으로부터의 삭제를 요구할 수 있다. 서버상에서 전체 n-그램이 발견되지 않는다면, 클라이언트는 시퀀스 "B C D E"를 필요로 한다. 이러한 보다 짧은 시퀀스도 발견되지 않는다면, 더 짧은 시퀀스 "C D E"등의 점차적으로 짧아지는 시퀀스를 필요로 한다. 더 긴 것을 발견할 수 없는 경우에 최단 시퀀스는 "E"이다. 효율적으로 조사를 행하기 위해, n-그램은 그들의 마지막 단어에 의해 파티셔닝될 수 있다. 상기 예에서, "E"로 끝나는 모든 n-그램은 동일 파티션으로 그룹화되고 동일한 기계에 저장될 수 있다. 이러한 방법, 즉 보다 짧은 n-그램에 대한 백오프는 상이한 서버에 대해 새로운 요청을 만들지 않고 하나의 단일 서버에서 발생할 수 있다.
마지막 단어에 의한 파티셔닝은 매우 불균형한 파티션을 야기할 수 있다. 마지막 2개의 단어 또는 길이 S의 더 긴 시퀀스를 기초로 파티셔닝함으로써 균형은 개선될 수 있다. 보다 짧은 n-그램이 동일한 서버상에 있는 것을 보증하기 위해, 유니그램 (또는 길이 S-1 이하의 시퀀스)이 모든 파티션에 대해 복제될 수 있다. 모든 파티션에 대해 보다 짧은 n-그램의 복제에 대한 대안은, 길이 S-1 이하의 n-그램이 필요한 경우 제2 요청을 발행하는 것이다.
언어 모델의 사이즈는 상당히 감소될 수 있고 파티션들은 언어 모델의 품질에 대해 최소의 영향만을 주면서 언어 모델로부터 특정 엔트리를 제거함으로써 보다 고른 사이즈로 만들어 수 있다. 하나의 방법은 빈번하게 사용되는 보다 짧은 n-그램으로 끝나는 보다 긴 n-그램을 제거하는 것이다. 일례로서, "D E"가 빈번하게 사용되는 바이그램(bi-gram)이라고 하자. "D E"로 끝나는 모든 4- 그램 및 5-그램 은 제거될 수 있고 (예를 들어, n-그램 "A B C D E"), 트리그램(예를 들어, "C D E")만이 유지된다. 모델은 "C D E"를 갖는 플래그를 저장하거나 또는 다른 방법을 이용하여 특정의 n-그램이 제거되었음을 표시할 수 있다.
언어 모델의 일부 구현예에서, 클라이언트 코드는 특정 n-그램에 대한 값이 요청되도록 허용하는 단순한 인터페이스를 사용한다. 내부적으로, 언어 모델 데이터를 저장하는 클라이언트 라이브러리는 요청된 n-그램이 어느 파티션에 존재하는지 여부를 판정하고, 그 파티션에 보내질 n-그램에 대한 요청을 큐잉한다. 큐잉된 요청의 수가 문턱값을 초과하면, 그 파티션을 담당하는 서버에 벌크(bulk) 검색 요청이 보내진다. 사용자 레벨 "Wait()" 동작이 클라이언트에 의해 사용되어 모든 계류중인 검색이 적당한 서버에 보내지게 할 수 있다. 이 동작은 호출자에게 반송되기 전 서버들이 완료할 때까지 대기한다.
(클라이언트 라이브러리가 위치하고 있는) 세그먼트 번역 서버는 n-그램→값 맵핑의 단순한 해시 테이블 기반 캐시를 또한 구현하여, 공통으로 필요한 n-그램을 위한 언어 모델 서버와 통신할 필요성을 피할 수 있다. 이러한 캐시의 일례가 로우 레벨 캐시(632)(도 6)이다. 특정 번역 반복이 필요로 할 n-그램 값의 세트를 판정하는 것이 어려울 수 있기 때문에, 번역 시스템은 각 반복을 2회 패스로 구동시키도록 구성될 수 있다. 제1 패스는 검색되는 각 n-그램에 대하여 상수 값 (또는 전혀 값이 없는 것, 또는 무작위 값)을 반송하는 더미 언어 모델로 구동되지만, 실제 n-그램 값을 인출하기 위해 언어 모델 서버로의 검색을 또한 인큐잉(enqueue)한다. 번역 반복은 먼저 더미 언어 모델로 구동하고, 그 다음 모든 계류중인 언어 모델 검색이 완료되었음을 보증하기 위해 "Wait()"이 호출된다. 이때에, 모든 언어 모델 값은 번역 서버 자체 내에서 이용 가능하고, 따라서 번역 처리가 실제 언어 모델로 다시 구동되며, 분산형 언어 모델로부터의 값을 이용하여 어느 번역문이 다음 반복에서 고려할 가치가 있는지를 결정한다. 제2 캐시, 예를 들면 하이 레벨 캐시(631)(도 6)는 특정 문장을 번역하기 위해 요청된 모든 n-그램을 추적하고, 이 문장이 처리되는 동안 이용 가능한 확률을 보증하기 위해 사용될 수 있다. 하이 레벨 캐시가 비워질 수 있는 때에, 번역기는 문장의 끝을 시그널링한다.
일부 구현예에서, 더미 언어 모델은 제공될 LM 데이터를 대기하는 기간 중 번역을 처리하기 위하여, 또는 LM 데이터가 요청되기 전에 번역을 처리하기 위하여, 열등한(coarse) LM으로서 단일 서버상의 작은 비분산형 언어 모델을 사용하고, 열등한 LM을 이용한 초기 번역 결과에 기초하여 요청을 발생시킬 수 있다. 일부 구현예에서, 단어를 생성하기 위하여, 더미 언어 모델은 예를 들어, 각 단어에 대해 분산형 언어 모델에 존재하는 최고의 확률을 저장함으로써 진짜 확률 대신 확률에 대한 상한을 반송한다. 언어 모델에 대한 효율적인 액세스를 허용하기 위하여, 분산형 언어 모델로부터 요청된 확률의 수는 액세스 및 조사 시간을 줄이기 위해 작게 유지된다. 그러므로, 번역문 조사 처리의 주어진 지점에서 특정 가설(hypotheses) 확장이 언어 모델 확률을 요청하지만, 언어 모델 확률이 X보다 작은 경우, 가설 확장이 간결하게 될 것이라는 것을 시스템이 안다면, 실제로 확률에 대한 상한을 반송하는 더미 언어 모델은 분산형 언어 모델에 대한 요청을 간결하게 하는 것을 가능하게 한다.
디코더 반복마다 2-패스 언어 모델 액세스는 상이한 입도(granularity) 레벨로 구현되고 상이한 조사 아키텍처로 통합될 수 있다. 예를 들어, 2-패스 처리는 한 세그먼트의 번역마다 한 번씩 발생할 수 있다. 몇몇 경우, 제1 패스 중 문장은 더미 언어 모델로 완전히 번역될 것이다. 제1 패스는 조사 공간의 효율적이고 간결화된 표시를 생성할 수 있다. 그 다음, 제2 패스는 분산형 언어 모델로부터 요청된 확률을 이용하여 조사 공간의 표시를 재기록(re-score)한다. 다른 예로서, 2-패스 처리는 세그먼트의 번역 중에 여러번 수행될 수 있다. 유한한 한 세트의 가능한 확장을 첨부함으로써 한 세트의 가설들 내의 각 가설을 반복적으로 확장함으로써 조사 공간을 구성하는 디코더에 대하여, 한 세트의 가설들이 확장될 때마다 더미 요청이 발행될 수 있다.
파티셔닝된 시스템에서, 상이한 파티션 서버들은 상이한 처리 속도를 가질 수 있다. 따라서, 상이한 기계에 대한 언어 모델 요청은 상이한 시점에서 반송될 수 있다. 세그먼트 번역 서버에서 사용되는 Wait() 동작은 최저속 파티션을 대기해야 한다. 그 최저속 기계가, 예컨대 누설 전력 또는 네트워크 문제와 같이 빠르게 정정될 수 없는 문제들을 갖는다면, 대기 시간은 연장될 수 있고 이는 허용될 수 없다. 이러한 문제를 해결하는 한가지 방법은 Wait()에 대한 타임아웃을 갖고, 확률 추정, 예를 들어 더미 언어 모델 또는 상이한 소형 메모리 내 언어 모델에 의해 할당된 확률을 반송하는 것이다. 이러한 문제들을 완화시키는 다른 방법은, 그 파티션의 초기 서버에 대해 타임아웃이 생긴 후에 언어 모델 데이터를 취득하기 위하여 상이한 복제물을 사용할 수 있도록 상이한 기계상에서 동일한 언어 모델 파티션 을 여러번 복제하는 것이다. 또한 요청은, 동일한 언어 모델 파티션의 상이한 복제물 모두에 동시에 보내지고, 번역문에 대한 최초 반송된 데이터를 선택할 수 있다.
번역 서버에서의 Wait()-호출은 동일 세그먼트를 번역하는 상이한 서버들에 대한 요청의 동기화를 달성하기 위해 사용될 수 있다. 대기 시간을 줄이는 한가지 방법은, 언어 모델 요청의 상이한 반복을 인터리빙 하는 것이다. 그러므로, 모든 확률이 반송될 때까지 기다리는 대신, 시스템은 언어 모델 확률 없이 또는 스코어 추정을 이용하여 가설을 스코어링하고, 언어 모델 확률이 도달하자마자 가설 스코어를 업데이트할 수 있다. 이러한 동작 모드에서, 각 언어 모델 확률 요청은 필요한 조사 가설에 대한 포인터를 저장하거나 또는 각 번역문 가설이 누락 언어 모델 확률에 대한 포인터를 가질 것이다. 이러한 변형에서, 중간 가설 스코어가 통상적으로 근사화될 것이다. 정확한 스코어가 필요할 때마다 Wait()이 발행될 수 있다.
번역 서버, 예를 들어 세그먼트 번역 서버는 n-그램의 히스토리를 추적한 다음 상이한 연속하는 추적된 n-그램을 평가하도록 구성될 수 있다. 예를 들어, 그 히스토리는 "A B C D"일 수 있고, 이때 조사된 연속물은 "A B C D E," "A B C D F" 등일 수 있다. 언어 모델 클라이언트는 이러한 히스토리들을 정수 번호로 나타내고, 문장 또는 다른 번역 단위의 시작시에 상기 정수 번호들을 열거하기 시작한다. 개개의 문장의 번역은 일반적으로 모든 가능한 n-그램(1020개 이상)에 비하여 비교적 작은 수의 상이한 히스토리, 예를 들면 수천 또는 수 백만개의 히스토리를 요구하고, 따라서 그 정수에 대하여 단지 수 바이트이면 충분하다. 이러한 기술은 번역 기의 동작이 히스토리의 길이와 무관하게 만드는데 이용되고, 따라서 히스토리가 길어질 수 있기 때문에 저장 공간도 절약할 수 있다. 클라이언트는 정수와 히스토리 간의 맵핑을 위하여 해시 함수를 사용할 수 있고, n-그램의 어레이의 인덱스로서 정수를 이용할 수도 있으며, 또는 히스토리를 추적하는 다른 수단을 이용할 수 있다.
적응성 및 확장성 방식의 기계 번역
인터넷 상의 사용자와 같은 다수의 사용자들에게 액세스 가능한 번역 시스템은 상이한 시간대에 부하량의 변화를 경험할 수 있다. 예를 들어, 요청의 회수의 변화, 난이도 변화의 요청, 다른 언어 쌍에 대한 요청 비율의 변화 등에 의해 이와 같은 변화가 야기될 수 있다. 이 섹션에서는 시스템에서의 이러한 변화 및 다른 변화에 의해 야기되는 부하량의 변화를 다루고 서비스 품질의 저하를 줄이는 자동화 기계 번역 시스템의 특징들을 설명한다.
자동화 번역 시스템의 용량을 확장하기 위하여, 시스템에 대한 기본적인 번역 기술은, 번역 속도와 번역 품질 간의 상이한 상충 지점에서 동작할 수 있어야 하고, 전체 시스템은 변화하는 부하에 적응할 수 있어야 한다. 예를 들어, 시스템은 낮은 처리 속도로(예를 들어, 10 단어/초) 고품질 번역, 중간 처리 속도로(예를 들면, 20 단어/초) 중간 품질의 번역, 또는 고속 처리 속도로(예를 들면, 100 단어/초) 저품질 번역, 또는 어구 대 어구(phrase-for-phrase) 또는 단어 대 단어 해석으로 번역하도록 구성될 수 있다. 고품질 번역을 달성하기 위해, 번역 서버 또는 엔진[예를 들어, 도 2의 세그먼트 번역 서버(130)]는 많은 다른 백엔드들 또는 번 역 진행 중에 사용되는 정보를 제공하는 서버를 요구할 수 있다. 예로는, 번역 어구 사전 서버, 언어 모델 서버, 음역 서버 등이 있다. 이러한 백엔드 리소스로부터 정보를 취득하는 것은 소정의 시간이 소요된다. 일부 저품질 번역 모드에서, 번역 서버는 번역 품질이 저하되는 대가로 번역 시간을 줄이기 위하여 이러한 백엔드 리소스 일부를 이용하는 것을 스킵할 수 있다.
예를 들어, 번역 서버는 음역 리소스 이용을 스킵하고, 그렇지 않으면, 다른 방법, 예를 들어, 단어를 생략하거나 또는 번역문에 원래의 단어를 유지하는 방법으로 음역되는 단어들을 취급할 수 있다. 다른 예로는 언어 모델 사용을 스킵하고, 번역문을 도출하기 위해서 다른 번역 정보만을(예를 들면, 어구 표 및 재정렬 확률) 이용하는 것이 있다. 구성 요소를 완전히 스킵하는 대신, 번역 서버는 또한 언어 모델에 대한 더 적은 요청을 함으로써 통신량을 줄이고 번역 속도를 높이는 선택을 할 수 있다. 그러므로, 번역 서버는 언어 모델로부터 5-그램 대신에 3-그램 또는 4-그램만을 요청하도록 결정할 수 있다. 프론트엔드 번역 서버와 각종 백엔드 서버 양자에서의 계산을 병렬화함으로써, 모든 품질 레벨에 대한 단대단 지연(end-to-end latency)은 감소될 수 있다. LM 서버와 같은 백엔드 리소스 서버로부터의 대기 중에, 번역 서버는 백엔드 결과에 의존하지 않고 일부 계산을 수행할 수 있다. 백엔드 리소스 서버(예를 들면, LM 서버)에 대한 대기 시간과 동시에 프론트엔드 계산을 수행함으로써, 백엔드 서버의 지연이 국부 연산에 대해 소요된 시간보다 크지 않다면 백엔드의 지연은 전체 번역 지연에 기여하지 않는다. 백엔드 지연 자체는 단일 가상 서버로서 번역 서버에 의해 액세스되는 복수의 물리적 기계 전반에 데이터를 파티셔닝함으로써 감소될 수 있다.
이와 반대로, 하나의 파티셔닝된 가상 서버는 복수의 백엔드 데이터 소스를 제공할 수 있다. 예를 들어, 번역 시스템은 상이한 데이터 소스에 대해 훈련된 복수의 어구 기반의 번역문 어휘를 가질 수 있다. 이러한 복수의 모델들은 파티셔닝된 단일 가상 서버로부터 제공되고 번역 엔진의 클라이언트 측 상에서 재파티셔닝된다. 이는 복잡한 멀티파트(multi-part) 번역 모델이 파티셔닝된 단일 서버로부터 제공되도록 허용한다.
번역 처리를 감소시키기 위하여, 자동화 기계 번역 시스템은 번역된 텍스트 및 문서 섹션을 저장할 캐시를 구비할 수 있다. 문서 섹션은 단어, 어구, 문장 단편, 문장, 문단, 전체 텍스트/문서 등일 수 있다. 도 3b에 도시된 바와 같이, 캐시는 소스 언어 섹션을 하나 이상의 목표 언어 섹션으로 맵핑할 수 있다. 각 목표 언어 섹션은 그 번역문의 품질 레벨에 관한 정보로 표시된다. 따라서, 캐시는 상이한 번역 품질 레벨의 번역문들을 포함할 수 있다. 캐시는 일반적으로 높은 번역 품질 레벨을 가지고 개별 처리에 의해 획득되는, 인간에 의한 수동 번역문을 또한 포함할 수 있다.
자동화 기계 번역 시스템은, 예컨대 번역문 프론트엔드 서버(110)(도 1 및 도 2)와 같은 번역문 프론트엔드, 예컨대 부하 밸런싱 장치(120)(도 1 및 도 2)와 같은 부하 밸런싱 컴포넌트, 예컨대 번역문 캐시(도 3a, 도 4 또는 도 5)와 같은 번역문 캐시, 예컨대 세그먼트 번역 서버(130)(도 1 및 도 2)와 같은 번역 엔진, 및 예컨대 언어 모델 서버, 번역문 어구 사전 서버 및 음역 서버와 같은 번역 엔진 백엔드의 복제 세트를 포함할 수 있다. 프론트엔드는 텍스트 또는 문서 번역 요청을 수신한다. 번역될 텍스트 또는 문서는 섹션 또는 세그먼트들로 분할된다. 세그먼트의 번역문은 번역문 캐시에서 검색되는데, 특정한 번역 품질의 번역문을 산출할 수 있다. 캐시에 번역문이 없거나 또는 품질 레벨이 충분히 높지 않다면, 세그먼트 번역 요청은 부하 밸런싱 컴포넌트에 전송된다. 부하 밸런싱 컴포넌트는 전체 시스템 부하 및 세그먼트 번역 서버의 부하에 관한 일부 정보를 유지하고 있다. 가용 용량에 관한 정보뿐만 아니라 이러한 정보도 이용하여, 부하 밸런싱 컴포넌느는 섹션 번역 요청을 어떻게 처리할 것인지 결정하기 위한 부하 밸런싱 정책을 적용한다. 부하 레벨이 충분히 높은 경우 캐시로부터의 저품질 번역이 이용될 수 있거나 또는 번역될 세그먼트가 지정된 레벨의 품질로 번역되도록 번역문 백엔드에 보내질 수도 있다. 부하 밸런싱 로직은 다른 인자들을 또한 고려할 수 있다. 예를 들면, 사용자로부터 더 큰 관심을 끌 수 있는 웹페이지의 상위 또는 문서의 더 앞에 있는 섹션으로부터의 세그먼트는 더 높은 레벨의 품질로 번역될 수 있다. 또한 이와 같은 섹션들에게는 더 높은 우선순위가 주어질 수 있고, 따라서 이 섹션들이 먼저 번역되고, 번역된 웹페이지 또는 다른 문서의 제1 부분이 사용자에게 곧 반송될 수 있다.
또한, 자동화 기계 번역 시스템은 웹페이지 또는 문서의 몇몇 부분, 예를 들어 웹 페이지의 하위에 있는 텍스트에 대한 저품질 번역문을 신속히 발생시키고, 고품질 번역문의 백그라운드에 있는 웹 페이지 또는 문서의 동일한 부분을 처리하는 동안 번역된 내용을 사용자에게 전달하도록 설계될 수 있다. 고품질의 번역문이 이용 가능하게 될 때, 시스템은 이미 사용자에게 전달된 저품질 번역문을 고품질 번역문으로 교체할 수 있다. 고품질 번역문이 백그라운드에 생성될 때, 이전에 번역된 페이지는 동적 방식으로 부분적으로 또는 전체적으로 교체될 수 있다. 이는 클라이언트 컴퓨터에 이미 전송된 번역 문서의 부분들을 변이시키기(mutate) 위하여 자바스크립트와 같은 클라이언트 측 스크립트 언어를 이용하는 것을 비롯한 각종 메커니즘을 이용하여 행하여질 수 있다.
고품질로 번역되어야 하는 웹 페이지 또는 문서 내의 부분 또는 섹션들은 다양한 방법으로 식별될 수 있다. 문서의 초기 부분은 사용자에 의해 주의 깊게 검토될 수 있거나 또는 사용자가 그 부분만을 읽을 수 있기 때문에, 이러한 문서의 초기 부분을 고품질로 번역하는 것이 하나의 전략이다. 다른 전략은, 예컨대 섹션 헤더, 폰트 사이즈가 더 큰 섹션, 또는 각 문단의 토픽 문장과 같이, 문서 구조 또는 HTML 마크업에 기초하여 웹 페이지 또는 문서의 영역의 중요도를 식별하는 것이다.
요청자에게 리턴될 번역된 텍스트 또는 문서를 형성하기 위하여, 번역된 세그먼트는 시스템, 예를 들어 번역 프론트엔드 서버(130)(도 1 또는 도 2)에 의해 모아진다. 도 1에 대응하고 번역문 캐시로 구현되는 시스템에서, 상이한 품질 레벨의 번역문을 갖는 번역문 캐시가 부하 밸런싱 장치(120)와 상호작용하는 방법에 있어서 변화가 있을 수 있다. 예를 들어, 시스템은 캐시 내의 모든 세그먼트를 검색하고, 모두 부하 밸런싱 장치에 보내어, 부하 밸런싱 장치가 캐시 엔트리를 사용해야 하는지 여부 또는 세그먼트를 번역 엔진에 보내야 하는지 여부를 결정하도록 설계될 수 있다. 대안으로서, 시스템은 부하 밸런싱 장치에 특정 세그먼트만을 보내 도록 설계될 수도 있다. 다양한 부하 밸런싱 정책이 존재할 수 있다. 시스템에는 하나보다 많은 종류의 번역 엔진[예를 들어, 세그먼트 번역 서버(130)]이 있을 수 있고, 이는 부하 밸런싱에 추가의 융통성을 제공한다. 예를 들어, 낮은 번역 품질을 갖는 고속 세그먼트 번역 서버와 높은 번역 품질을 갖는 저속 세그먼트 번역 서버의 혼합이 이용될 수도 있다.
자동화 기계 번역 시스템에서 수동 및 자동 번역의 결합
이 섹션에서는 다양한 번역 옵션을 제공하기 위해 자동화 기계 번역 시스템에 수동 번역과 자동 번역을 결합하는 기술에 대하여 설명한다. 하기의 처리는 수동 번역을 위한 디지털 라이브러리를 구축하고 자동화 기계 번역 동안 상기 라이브러리를 사용하도록 이용될 수 있다. 본 명세서에서 설명하는 시스템은 이러한 특징들을 구현하기 위해 이용될 수 있다. 다른 MT 시스템 또한 이러한 특징들을 구현할 수 있다.
첫째로, 기계 번역을 위해 사용자에 요청된 광범위한 문서들은, 어느 번역문이 수동으로 수행될 것인지를 결정하기 위해 분석된다. 이 프로세스는 미리 번역된 문서들을 분석하여, 분석된 문서의 어느 섹션이 빈번하게 나타나는지를 판정하는 과정을 포함하며, 이와 같은 빈번히 사용되는 섹션들이 수동 번역의 후보일 수 있다. 분석된 문서의 섹션들은 단어, 어구, 문장, 문단, 내장형 문서, 내장형 웹페이지 등을 포함할 수 있다. 또한, 수동 번역을 위한 추가의 후보를 식별하기 위하여 분석된 문서의 내용 및 기타 특징들 또한 분석될 수 있다. 예로는 신문의 헤드라인, 기사의 제목 및 소제목, 웹 서치에서 빈번하게 사용되는 단어 및 어구, 및 웹 페이지로부터의 중요한 내비게이션 어구가 있다.
둘째로, 수동 번역을 위해 식별된 후보들의 수동 번역문이 취득되고, 이 수동 번역문은 번역문 데이터베이스, 예를 들면 도 3a, 도 4 및 도 5에 도시된 바와 같은 번역문 캐시에 저장된다. 그 다음 수동 번역문의 데이터베이스는 자동화 기계 번역 시스템에서 사용될 수 있다. 각각의 저장된 수동 번역문은 고품질 번역문으로 라벨링되어, 시스템, 예를 들어 도 1 또는 도 2의 시스템이 세그먼트를 위한 번역문을 선택할 때 품질 라벨을 이용할 수 있도록 한다.
자동화 기계 번역 시스템의 수동 번역문의 데이터베이스는 업데이트되거나 또는 개정될 수 있다. 인간에 의한 추가 자료 번역 요청은 구동중인 기계 번역 시스템으로부터 취득된 정보로부터 자동으로 도출될 수 있다. 예를 들어, 기계 번역 활동에 대한 시스템 통계 데이터를 이용하여 빈번하게 번역된 텍스트 섹션에 관한 정보 및 수동 번역될 텍스트 섹션을 식별할 수 있는 기타 정보를 추출할 수 있다. 시스템은 이와 같은 시스템 통계 데이터를 주기적으로 또는 연속하여 감시하여, 수동 번역될 새로 식별된 텍스트 섹션의 리스트를 발생시킬 수 있다. 수동 번역문의 기존 데이터베이스를 업데이트하기 위하여 새로 식별된 텍스트 섹션의 수동 번역문이 취득된다.
식별된 텍스트 섹션의 수동 번역문을 취득하는 프로세스는 웹 또는 기타 온라인 저장소(repository) 상에서 기존 번역문을 수동으로 또는 자동으로 검색하는 단계를 포함할 수 있다. 이와 같은 기존의 번역문이 검색되고, 번역문을 발생시키기 위해 시스템의 번역 리소스를 이용하지 않은 번역을 요청하는 클라이언트에게 디스플레이될 수 있다. 예를 들어, 동일한 긴급 뉴스를 몇 개의 언어로 입수할 수 있고, 시스템은 목표 언어의 뉴스 리포트를 이용하여 번역문을 취득할 수 있다. 또한, 회사 및 기관들은 동일한 정보를 온라인 상에서 몇몇 언어로 이용 가능하도록 만들 수 있고, 기존 번역문을 취득하기 위하여, 이와 같은 온라인 문서가 시스템에 의하여 검색될 수 있다.
몇몇 수동 번역문들은 특정 문맥에서만 적당할 수 있다. 예를 들어, "home"에 대한 특정 번역은 웹사이트의 홈페이지로의 링크를 위한 라벨일 경우에만 웹 페이지에서 의미가 통할 수 있다. 수동 번역문 데이터베이스는 이러한 유형의 정보를 포함할 수 있고, 번역 시스템은 웹 페이지를 번역할 때 이러한 정보를 이용한다. 일부 구현예에서, 사용자는 특정 번역 요청을 위해 사용되는 특정 번역문 데이터베이스를 공급할 수 있다.
기계 번역 외의 자동화 처리 시스템의 분산형 모델의 응용
대형 모델에 액세스하고 확장성 및 적응성 처리를 제공하기 위하여, 파티션, 복제 및 부하 밸런싱에 기초한 자동화 기계 번역의 상기 및 기타의 분산형 시스템 설계는 기계 번역을 넘어 다른 자동화 처리 시스템에도 적용될 수 있다. 대형 언어 모델은 자동화 스피치 인식, 스팸 검출, 광학 문자 인식, 스펠링 교정 및 기타 자동화 언어 처리 애플리케이션에서도 사용될 수 있다. 기계 번역을 위해 상기 설명한 시스템, 예를 들어, 도 1, 2, 3a, 3b, 4, 5 및 6에 도시된 시스템은 기계 번역 외의 자동화 처리를 구현하도록 적응될 수 있다.
예를 들어, 문서 이미지를 텍스트로 변환하는 광학 문자 인식(OCR; Optical character recognition) 시스템은, 문자를 위한 언어 모델이 기계 번역시에 단어를 위한 언어 모델로 교체되는데 이용될 수 있는 상기 설명한 시스템 설계에 기초하여 구축될 수 있고, 자동화 스펠링 교정 시스템은 특정 n-그램을 따르는 가장 가능성 있는 단어를 효과적으로 찾아 단어의 스펠링을 교정하기 위해 언어 모델을 이용할 수 있다. 또한, 자동화 스피치 인식 시스템은 언어 모델을 이용하여 단어의 확률 및 발음 사전의 실제 표시의 노드의 확률의 상한을 예측하고, 수신된 스피치를 스피치의 내용에 대한 텍스트로 번역할 수 있다. 또한, 대형 언어 모델은 스팸 필터링 애플리케이션에서 이메일의 내용에 기초하여 이메일을 필터링하는데 이용될 수 있다. 이러한 자동화 언어 처리 애플리케이션 및 기타의 자동화 언어 처리 애플리케이션에서, 파티션 및 복제는 단일 기계 내에 맞지 않는 대형 언어 모델에 대한 액세스를 제공하고 다량의 요청을 확장성 및 적응성 방식으로 처리하도록 구현될 수 있다.
도 12는 대형 언어 모델에 기초한 언어 처리 기능을 제공하도록 구성될 수 있는 분산형 처리 시스템(1200)의 예를 도시한 것이다. 시스템(1200)의 처리 기능은 기계 번역과 상이할 수 있다. 이러한 시스템(1200)은 복수의 언어 모델 서버(1240) 상에서 파티셔닝 및 복제되는 대형 언어 모델을 구비한다. 이 시스템(1200)은 입력(1201) 및 출력(1202)을 처리하기 위한 복수의 프론트엔드(1210)와, 입력(1201)을 처리하고 출력(1202)을 생성하기 위한 복수의 처리 서버(1230)를 또한 구비한다. 각각의 프론트엔드(1210)는, 입력(1201)을 수신한 후에, 그 입력(1201)을 처리 서버(1230)에 의한 처리를 위해 세그먼트들로 분할한다. 부하 밸 런싱 장치(1220)는 처리 서버(1230)에서의 작업 부하에 기초하여 다른 처리 서버(1230)로의 작업 흐름을 관리한다. 각 처리 서버(1230)는 LM 서버(1240)에 액세스하여 LM 데이터를 취득하고 입력(1201)의 세그먼트를 처리할 때 상기 취득된 LM 데이터를 이용하도록 동작한다. 이러한 시스템(1200)은 각 처리 서버(1230)가 스피치 인식 서버인 경우 스피치 인식 시스템일 수 있다. 입력(1201)은 사람으로부터의 입력 스피치이고, LM 데이터를 이용하여 스피치 인식 서버(1230)에 의해 처리된다. 출력(1202)은 입력 스피치(1201)의 사본(transcription)인 텍스트이다. 처리 서버(1230)는 또한 OCR 애플리케이션을 위한 OCR 서버, 스펠링 교정 애플리케이션을 위한 스펠링 교정 서버, 및 스팸 필터링 애플리케이션을 위한 스팸 필터링 서버로서 구현될 수 있다.
본 명세서에서 개시된 실시예 및 기타 실시예와 기능적 동작들은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 본 명세서에서 개사된 구조 및 그들의 구조적 등가물을 포함한 하드웨어, 또는 이들의 하나 이상의 조합으로 구현될 수 있다. 개시된 실시예 및 기타 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉 데이터 처리 장치에 의해 실행되거나 또는 데이터 처리 장치의 동작을 제어하기 위한 컴퓨터 판독가능 매체 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 기계 판독가능 기억 장치, 기계 판독가능 기억 기판, 메모리 장치, 기계 판독가능 전파 신호에 영향을 주는 합성물, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는, 예컨대 프로그램 가능 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 비롯해서, 데이터를 처리하기 위한 모든 장치, 디바이스 및 기기를 망라하는 의미이다. 장치는 하드웨어 외에도 해당 컴퓨터 프로그램의 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 인위적으로 발생된 신호, 예를 들어 기계에 의해 발생된 전기, 광학 또는 전자기 신호이고, 이 신호는 정보를 인코딩하여 적당한 수신기 장치에 전송하기 위해 발생된다.
(프로그램, 소프트웨어, 응용 소프트웨어, 스크립트 또는 코드라고도 알려진) 컴퓨터 프로그램은 컴파일형 언어 또는 해석형 언어를 포함한 임의 형태의 프로그래밍 언어로 기록될 수 있고, 독립(stand-alone) 프로그램, 또는 모듈, 컴포넌트, 서브루틴, 또는 연산 환경에서 사용하기에 적합한 기타 유닛을 포함한 임의 형태로 전개될 수 있다. 컴퓨터 프로그램은 반드시 파일 시스템의 파일에 대응할 필요는 없다. 프로그램은 다른 프로그램 또는 데이터를 유지하는 파일의 일부 (예를 들면, 마크업 언어 문서로 저장된 하나 이상의 스크립트), 해당 프로그램에 전용되는 단일 파일, 또는 복수의 조정 파일 (예를 들면, 하나 이상의 모듈, 서브프로그램, 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터, 또는 하나의 장소에 위치되어 있거나 복수의 장소에 분산되어 통신 네트워크에 의해 상호접속된 복수의 컴퓨터 상에서 실행되도록 전개될 수 있다.
본 명세서에서 설명한 프로세스 및 로직 흐름은, 입력 데이터에 대해 동작하고 출력을 발생시킴으로써 기능들을 수행하기 위하여 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세 스 또는 로직 흐름은 특수 용도의 논리 회로, 예를 들어, FPGA (필드 프로그램 가능 게이트 어레이) 또는 ASIC (주문형 반도체)에 의해서도 수행될 수 있고, 장치는 상기 특수 용도의 논리 회로로서 또한 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예를 들어, 일반적인 용도 및 특수 용도의 마이크로프로세서, 및 임의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리로부터 또는 양자 모두로부터 명령어 및 데이터를 수신한다. 컴퓨터의 필수적인 요소는 명령을 수행하기 위한 프로세서, 및 명령어와 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대용량 저장 장치, 예를 들어, 자기 디스크, 자기-광학 디스크 또는 광 디스크를 구비하거나 또는 상기 저장 장치들로부터 데이터를 수신 또는 상기 저장 장치들에 데이터를 전송하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터는 이와 같은 장치들을 구비할 필요가 없다. 컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 예컨대 EPROM, EEPROM, 및 플래시 메모리 장치와 같은 반도체 메모리 장치; 예컨대 내부 하드 디스크 또는 탈착 가능 디스크와 같은 자기 디스크; 자기-광학 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 용도의 논리 회로에 의해 보충되거나 또는 그것에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 개시된 실시예들은 예컨대 사용자에게 정보를 디스플레이하기 위한 CRT(음극선관) 또는 LCD(액정 표시장치) 모니터와 같은 디스플레이 장치와, 예컨대 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 키보드 및 포인팅 장치를 구비한 컴퓨터를 이용하여 구현될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류의 장치 또한 사용될 수 있는데, 예를 들면 사용자에게 제공된 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의 형태의 감각 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치 또는 촉감 입력과 같은 임의 형태로 수신될 수 있다.
컴퓨팅 시스템의 컴포넌트들은 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 임의 형태 또는 매체에 의해 상호접속될 수 있다. 통신 네트워크의 예로는, 근거리 통신망("LAN")과 광역 통신망("WAN"), 예컨대 인터넷이 있다. 전술한 분산형 처리를 구현하기 위해 사용될 수 있는 통신 네트워크는, 전기 도체 케이블, 광섬유 링크 및 무선 통신 링크(예를 들면, RF 무선 링크)와 같은, 데이터 및 신호를 전송하기 위한 다양한 통신 링크를 사용할 수 있다.
도 13은 분산형 처리를 제공하는 통신 네트워크의 예시적인 컴퓨터 시스템을 도시한 것이다. 이 시스템은, 컴퓨터와 같이, 통신 네트워크(1300)에 접속된 통신 장치의 통신을 가능하게 하는 통신 네트워크(1300)를 포함한다. 예를 들어, 통신 네트워크(1300)는 기업 내의 컴퓨터 네트워크와 같은 단일 컴퓨터 네트워크이거나 또는 인터넷과 같은 상호접속된 컴퓨터 네트워크의 네트워크일 수 있다. 통신 네트워크(1300)에는 하나 이상의 컴퓨터 서버(1310)가 접속되어 도 1, 도 2 또는 도 12에 도시된 시스템과 같은 분산형 처리 시스템을 형성한다. 컴퓨터 서버(1310)는 동일한 장소에 또는 상이한 장소에 위치될 수 있다. 동작시에, 하나 이상의 클라이언 트 컴퓨터(예를 들면, 클라이언트(1301 및 1302))는 컴퓨터 네트워크(1300)를 이용하여 분산형 처리 시스템(1310)에 원격으로 액세스함으로써 기계 번역 서비스 또는 시스템(1310)에 의해 제공되는 다른 서비스를 요청할 수 있다. 예를 들어, 클라이언트(1301)는 문서 번역 요청을 시스템(1310)에 보낼 수 있다. 클라이언트(1301)는 문서를 시스템(1310)에 보낸다. 시스템(1310)은, 문서를 수신한 후, 요청받은 처리를 수행한다. 그 다음, 시스템(1310)으로부터의 출력이 클라이언트(1301)에게 보내지거나 또는 클라이언트(1301)가 액세스할 수 있도록 시스템(1310)에서 이용가능 상태로 만들어진다. 시스템(1310)은 동시에 복수의 클라이언트를 제공할 수 있다.
본 명세서가 많은 세부 사항들을 포함하지만, 이 세부사항들이 특허 청구범위에서 청구하고 있거나 청구할 수 있는 범위를 제한하는 것으로 해석되어서는 안되며, 오히려 특정 실시예에 특정된 특징들의 설명으로서 해석되어야 한다. 본 명세서에서 별도의 실시예의 정황으로 설명되는 특정 특징들 또한 단일 실시예와 결합하여 구현될 수 있다. 반대로, 단일 실시예의 정황으로 설명되는 각종 특징들 또한 복수의 실시예로서 별도로 구현되거나 또는 임의의 적당한 하위 결합으로서 구현될 수 있다. 게다가, 특징들이 특정 조합에서의 작동으로서 상술될 수 있고, 심지어 초기에 그와 같이 청구되는 것으로 설명되지만, 청구된 결합으로부터의 하나 이상의 특징들은 일부 경우에 그 결합으로부터 제거될 수 있고, 청구된 결합을 하위 결합 또는 하위 결합의 변형에 보낼 수 있다.
마찬가지로, 동작들이 특정 순서로 도면에 도시되어 있지만, 이는 원하는 결과를 달성하기 위해, 그와 같은 동작들이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 또는 도시된 동작들이 모두 수행될 것을 요구하는 것으로 이해하여서는 안된다. 특정 환경에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술한 실시예에서 각종 시스템의 컴포넌트들의 분리는 모든 실시예에서 그와 같은 분리가 요구되는 것으로 이해하여서는 안되며, 원하는 프로그램 컴포넌트 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 집적되거나 또는 복수의 소프트웨어 제품으로 패키징된다는 것을 이해하여야 한다.
따라서, 특정의 실시예들이 설명되어 있지만, 다른 실시예도 이하의 특허 청구 범위에 속할 수 있다.

Claims (91)

  1. 시스템에 있어서,
    각기 소스 언어(language)로부터 목표 언어로의 번역을 위한 기계 번역 리소스 데이터 집합의 파티션(partition)을 저장하고 제공하도록 동작 가능한 복수의 기계 번역 리소스 서버(140)로서, 상기 파티션 각각은 상기 기계 번역 리소스 데이터의 집합을 함께 구성하고, 상기 기계 번역 리소스 데이터 집합보다 작은 것인, 복수의 기계 번역 리소스 서버(140); 및
    목표 언어로 번역될 소스 언어의 소스 텍스트를 수신하도록 동작 가능한 적어도 하나의 번역 서버(110, 120, 130)로서, 상기 복수의 기계 번역 리소스 서버(140)로부터 기계 번역 리소스 데이터를 취득하고, 취득된 기계 번역 리소스 데이터를 이용하여 소스 텍스트를 목표 언어로 번역하도록 더 동작 가능한 적어도 하나의 번역 서버(110, 120, 130)를 포함하고,
    상기 복수의 기계 번역 리소스 서버(140)는,
    각기 목표 언어를 위한 언어 모델의 파티션을 저장하고 제공하도록 동작 가능한 복수의 언어 모델 서버(210)로서, 상기 언어 모델의 파티션 각각은 전체 언어 모델을 함께 구성하는 것인, 복수의 언어 모델 서버(210); 및
    상기 소스 언어와 상기 목표 언어 간의 번역을 위한 번역 모델을 저장하고 상기 번역 모델을 상기 번역 서버에 제공하도록 동작 가능한 번역 모델 서버(220)를 포함하며,
    상기 번역 서버(110, 120, 130)는 상기 번역 모델 서버(220)로부터의 번역 모델 데이터 및 상기 복수의 언어 모델 서버(210)로부터의 언어 모델 데이터를 취득하도록 동작 가능하고, 취득된 번역 모델 데이터 및 언어 모델 데이터에 기초하여 상기 소스 텍스트를 상기 목표 언어로 번역하도록 더 동작 가능하고,
    상기 언어 모델은 상기 목표 언어의 n-그램(n-gram) 및 상기 n-그램에 대한 통계 데이터를 포함하고, 상기 n-그램 각각은 상기 목표 언어의 n개 토큰의 시퀀스이며, 상기 n은 양의 정수이고,
    상기 언어 모델의 각각의 개별 파티션은 각자의 파티셔닝 기준을 만족시키는 상기 언어 모델의 모든 n-그램을 포함하며,
    상기 언어 모델의 각각의 개별 파티션은 각각의 n-그램의 미리 결정된 위치에서 공통 토큰을 갖는 상기 언어 모델의 모든 n-그램을 포함하는 것인, 시스템.
  2. 제1항에 있어서, 상기 언어 모델의 각각의 개별 파티션은 공통인 처음 M개 단어(word)를 갖는 상기 언어 모델의 모든 n-그램을 포함하며, 상기 M은 자연수인 것인, 시스템.
  3. 제1항에 있어서, 상기 언어 모델의 각각의 개별 파티션은 공통인 마지막 M개 단어를 갖는 상기 언어 모델의 모든 n-그램을 포함하며, 상기 M은 자연수인 것인, 시스템.
  4. 제3항에 있어서, 상기 언어 모델의 각각의 개별 파티션은 공통인 마지막 2개 단어를 갖는 상기 언어 모델의 모든 n-그램을 포함하는 것인, 시스템.
  5. 제1항에 있어서, 상기 번역 서버(110, 120, 130)는,
    상기 번역 모델 서버(220), 및 상기 언어 모델 서버(210)와 통신하도록 각각 동작 가능하고, 상기 소스 텍스트의 하나의 세그먼트(segment)를 상기 목표 언어로 번역하도록 각각 동작 가능한 복수의 세그먼트 번역 서버(130),
    상기 소스 텍스트를 수신하고, 상기 소스 텍스트를 상기 소스 언어의 복수의 세그먼트들로 분할하기 위한 번역 프론트엔드(front end)(110), 및
    상기 소스 텍스트의 세그먼트들을 수신하고, 번역을 위해 상기 세그먼트 번역 서버(130)의 작업 부하에 기초하여 상기 세그먼트들을 상기 세그먼트 번역 서버(130)에 분배하도록 동작 가능하며, 목표 언어의 번역된 세그먼트들을 상기 세그먼트 번역 서버(130)로부터 상기 번역 프론트엔드(110)로 보내도록 더 동작 가능한, 상기 번역 프론트엔드(110)와 통신하는 부하 밸런싱 모듈(120)
    을 포함하는 것인, 시스템.
  6. 제1항에 있어서, 상기 번역 모델은 상기 소스 언어와 상기 목표 언어 간의 맵핑 정보, 및 각각의 맵핑과 관련된 스코어링(scoring) 정보를 포함하는 것인, 시스템.
  7. 제6항에 있어서, 상기 맵핑 정보는 (1) 상기 소스 언어의 하나 이상의 토큰과 (2) 상기 목표 언어의 하나 이상의 토큰 간의 관계를 포함하는 것인, 시스템.
  8. 제6항에 있어서, 상기 스코어링 정보는 상기 소스 언어와 상기 목표 언어 간의 각각의 맵핑에 대한 통계 데이터를 포함하고, 상기 통계 데이터는 상기 소스 언어와 상기 목표 언어 간의 각각의 맵핑의 발생 확률을 포함하는 것인, 시스템.
  9. 제6항에 있어서, 상기 번역 서버(130)는 상기 스코어링 정보를 이용하여 상기 취득된 번역 모델 데이터와 언어 모델 데이터로부터 구성된 가능한 번역문들로부터 상기 소스 텍스트에 대해 원하는 번역문을 선택하도록 동작 가능한 것인, 시스템.
  10. 제1항에 있어서, 상기 언어 모델은 3보다 큰 n의 n 그램을 포함하는 것인, 시스템.
  11. 제1항에 있어서, 상기 언어 모델의 각각의 개별 파티션은 복수의 공통 토큰을 가진 상기 언어 모델의 모든 n-그램을 포함하는 것인, 시스템.
  12. 제11항에 있어서, 상기 복수의 공통 토큰은 각각의 n-그램의 미리 결정된 위치에 있는 것인, 시스템.
  13. 제11항에 있어서, 상기 복수의 공통 토큰은 n개 토큰의 시퀀스의 마지막 2개의 토큰인 것인, 시스템.
  14. 제1항에 있어서, 상기 통계 데이터는 목표 언어 텍스트의 코퍼스(corpus)에서 개별 n-그램 각각의 발생 빈도를 나타내는 것인, 시스템.
  15. 제1항에 있어서, 각각의 n-그램은 식별 번호의 시퀀스에 의해 표시되고, 각각의 식별 번호는 상기 목표 언어의 특정 토큰을 고유하게(uniquely) 표시하도록 할당되는 것인, 시스템.
  16. 제1항에 있어서, 상기 번역 서버(110, 120, 130)는,
    상기 소스 텍스트를 상기 소스 언어의 복수의 세그먼트들로 분할하도록 동작 가능한 적어도 하나의 번역 프론트엔드(110),
    상기 취득된 기계 번역 리소스 데이터의 적어도 일부를 취득하고 상기 소스 언어의 세그먼트를 상기 목표 언어로 번역하도록 각각 동작 가능한 복수의 세그먼트 번역 서버(130), 및
    상기 세그먼트 번역 서버(130)의 번역 부하에 기초하여 번역을 위해 상기 세그먼트를 상기 세그먼트 번역 서버들(130) 중 하나 이상에 할당하도록 동작 가능하고, 번역된 세그먼트를 상기 번역 프론트엔드(110)로 보내도록 동작 가능한 부하 밸런싱 모듈(120)을 포함하는 것인, 시스템.
  17. 제16항에 있어서,
    적어도 토큰, 및 토큰들의 조합을 각각 포함하는 세그먼트의, 상기 소스 언어로부터 상기 목표 언어로의 번역문을 저장하는 번역문 캐시(310)를 더 포함하고,
    상기 번역 프론트엔드(110) 또는 상기 부하 밸런싱 모듈(120) 중 어느 하나는, 세그먼트를 상기 세그먼트 번역 서버(130)에 보내기 전에 세그먼트의 번역문에 대해 상기 번역문 캐시(310)를 검색하도록 동작 가능하고,
    상기 부하 밸런싱 모듈(120)은 상기 번역문 캐시(310)에 대응 번역문을 갖지 않은 각각의 세그먼트들이 번역을 위해 상기 세그먼트 번역 서버(130)에 보내지도록 상기 각각의 세그먼트들을 선택하도록 더 동작 가능한 것인, 시스템.
  18. 제16항에 있어서, 상기 각각의 세그먼트 번역 서버(130)는 상기 취득된 기계 번역 리소스 데이터의 적어도 일부를 저장하도록 동작 가능한 세그먼트 번역 서버 캐시(510, 630)를 포함하는 것인, 시스템.
  19. 제18항에 있어서, 각각의 세그먼트 번역 서버(110, 120, 130)는 상기 복수의 기계 번역 리소스 서버(140)로부터 취득될 기계 번역 리소스 데이터의 일부의 존재 여부를 체크하고, 상기 복수의 기계 번역 리소스 서버(140)로부터 상기 세그먼트 번역 서버 캐시(510, 630)에 저장되어 있지 않은 데이터를 취득하도록 더 동작 가능한 것인, 시스템.
  20. 제18항에 있어서, 상기 세그먼트 번역 서버 캐시(510, 630)는 할당된 세그먼트의 번역문에 대한 히스토리 정보를 더 저장하도록 동작 가능한 것인, 시스템.
  21. 제18항에 있어서,
    각각의 세그먼트 번역 서버(130)는 상기 복수의 언어 모델 서버(210)로부터 취득되는 언어 모델 데이터의 상이한 부분에 대한 요청을 저장하도록 동작 가능한 요청 큐(620)를 더 포함하고, 상기 요청 큐(620)의 요청들을 상기 복수의 언어 모델 서버들(210) 중 하나 이상에 순차적으로 보내도록 동작 가능한 것인, 시스템.
  22. 제21항에 있어서,
    각각의 세그먼트 번역 서버(130)는, 상기 요청 큐(620)의 모든 요청들이 제공되기 전에 상기 요청 큐의 요청들에 의해 취득되는 언어 모델 데이터와 상이한 다른 기계 번역 리소스 데이터를 이용하여, 할당된 세그먼트의 번역을 처리하도록 더 동작 가능하고, 상기 요청으로부터 취득된 상기 언어 모델 데이터를 이용하는 다른 기계 번역 리소스 데이터를 이용하여 처리한 상기 할당된 세그먼트의 번역을 완결하도록 더 동작 가능한 것인, 시스템.
  23. 제22항에 있어서, 상기 복수의 기계 번역 리소스 서버(140)는 상기 다른 기계 번역 리소스 데이터를 제공하는 적어도 하나의 기계 번역 리소스 서버(140)를 더 포함하는 것인, 시스템.
  24. 제23항에 있어서, 상기 다른 기계 번역 리소스 데이터를 제공하는 상기 기계 번역 리소스 서버(140)는 상기 목표 언어를 위한 제2의 상이한 언어 모델을 저장하는 것인, 시스템.
  25. 제18항에 있어서,
    각각의 세그먼트 번역 서버(130)는, 상기 기계 번역 리소스 데이터의 선택된 부분을 저장하는 제2 세그먼트 번역 서버 캐시(632)를 더 포함하고, 상기 제2 세그먼트 번역 서버 캐시(632)에 저장된 선택된 부분의 일부가 아닌 데이터를 상기 복수의 기계 번역 리소스 서버(140)로부터 취득하도록 동작 가능한 것인, 시스템.
  26. 제1항에 있어서, 소스 언어로부터 목표 언어로의 토큰, 및 토큰들의 조합의 번역문을 저장하는 번역문 캐시(310)를 더 포함하고,
    상기 번역문은 기계 번역문과 인간에 의한 수동 번역문을 포함한 것인, 시스템.
  27. 제26항에 있어서, 상기 번역문 캐시(310)는 번역 품질 정보를 포함한 것인, 시스템.
  28. 제1항에 있어서, 상기 번역 서버(110, 120, 130)는 통계적 기계 번역 서버(110, 120, 130)를 포함한 것인, 시스템.
  29. 제1항에 있어서, 상기 기계 번역 서버(110, 120, 130)는 규칙 기반의 기계 번역 서버(110, 120, 130)인 것인, 시스템.
  30. 컴퓨터 구현 방법에 있어서,
    소스 언어로부터 목표 언어로의 번역을 위한 기계 언어 번역 리소스 데이터의 집합을 상기 기계 언어 번역 리소스 데이터의 집합보다 각각 더 작은 복수의 파티션들로 분할하는 단계;
    상기 복수의 파티션들을 상이한 컴퓨터 서버상에 각각 저장하는 단계; 및
    상기 소스 언어로부터 상기 목표 언어로의 번역을 수행하기 위하여, 상기 상이한 컴퓨터 서버상의 기계 언어 번역 리소스 데이터의 집합에 액세스하고 상기 그 집합을 이용하도록 기계 번역 서버를 동작시키는 단계를 포함하고,
    상기 기계 언어 번역 리소스 데이터의 집합은 n-그램을 더 포함하는 목표 언어를 위한 언어 모델을 포함하며, 상기 n-그램 각각은 상기 목표 언어의 n개 토큰의 시퀀스이며, 상기 n은 양의 정수이고,
    각각의 개별 파티션은 파티셔닝 기준을 만족시키는 상기 언어 모델의 모든 n-그램을 포함하며,
    상기 언어 모델의 각각의 개별 파티션은 각각의 n-그램의 미리 결정된 위치에서 공통 토큰을 갖는 상기 언어 모델의 모든 n-그램을 포함하는 것인, 컴퓨터 구현 방법.
  31. 제30항에 있어서, 상기 기계 언어 번역 리소스 데이터의 집합은, n-그램(n은 3보다 큰 수)을 더 포함하는 목표 언어를 위한 언어 모델을 포함하는 것인, 컴퓨터 구현 방법.
  32. 제30항에 있어서, 상기 기계 언어 번역 리소스 데이터의 집합은 상기 목표 언어와 상기 소스 언어 간의 번역 모델을 포함하는 것인, 컴퓨터 구현 방법.
  33. 제30항에 있어서,
    상기 소스 언어로부터 상기 목표 언어로 번역될 클라이언트 문서의 상이한 세그먼트들을 각각 번역하기 위한 상이한 번역 서버(110, 120, 130)를 제공하는 단계; 및
    각각의 개별 세그먼트를 번역하기 위해 상기 기계 언어 번역 리소스 데이터의 집합으로부터 선택된 데이터를 취득하도록 각각의 번역 서버(110, 120, 130)를 동작시키는 단계를 더 포함하는, 컴퓨터 구현 방법.
  34. 제33항에 있어서,
    적어도 2개의 상이한 번역 서버(110, 120, 130)를 상이한 번역 속도 및 상이한 번역 품질 레벨로 동작하도록 구성하는 단계; 및
    세그먼트에 대한 번역 속도 및 번역 품질 레벨에 기초하여 세그먼트를 번역하기 위한 번역 서버(110, 120, 130)를 선택하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  35. 제33항에 있어서,
    요청 큐에 있는 선택된 데이터에 대한 요청을 발생시키도록 각각의 번역 서버(110, 120, 130)를 동작시키는 단계; 및
    상기 선택된 데이터를 취득하기 위해 상기 요청을 컴퓨터 서버에 순차적으로 보내는 단계를 더 포함하는, 컴퓨터 구현 방법.
  36. 제35항에 있어서, 각각의 세그먼트를 번역하기 전에 제공될 요청 큐의 모든 요청을 대기하도록 각각의 번역 서버(110, 120, 130)를 동작시키는 단계를 더 포함하는, 컴퓨터 구현 방법.
  37. 제35항에 있어서,
    상기 요청 큐의 요청이 제공되고 있을 때, 각각의 세그먼트의 초기 번역을 수행하도록 각각의 번역 서버(110, 120, 130)를 동작시키는 단계; 및
    상기 요청 큐의 모든 요청이 제공된 후, 최종 번역문을 생성하기 위해 상기 선택된 데이터를 이용하여 초기 번역문을 업데이트하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
KR1020087016150A 2006-02-17 2007-02-16 분산형 모델의 인코딩 및 적응성 및 확장성 액세싱 KR101431194B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US77479006P 2006-02-17 2006-02-17
US60/774,790 2006-02-17
US77557006P 2006-02-21 2006-02-21
US60/775,570 2006-02-21
PCT/US2007/004196 WO2007098055A2 (en) 2006-02-17 2007-02-16 Encoding and adaptive, scalable accessing of distributed models

Publications (2)

Publication Number Publication Date
KR20080112192A KR20080112192A (ko) 2008-12-24
KR101431194B1 true KR101431194B1 (ko) 2014-08-18

Family

ID=38437899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087016150A KR101431194B1 (ko) 2006-02-17 2007-02-16 분산형 모델의 인코딩 및 적응성 및 확장성 액세싱

Country Status (9)

Country Link
US (5) US8296123B2 (ko)
EP (5) EP1969493B1 (ko)
JP (1) JP5122486B2 (ko)
KR (1) KR101431194B1 (ko)
CN (1) CN101361065B (ko)
AU (1) AU2007217900B2 (ko)
BR (1) BRPI0706404B1 (ko)
CA (1) CA2631815C (ko)
WO (1) WO2007098055A2 (ko)

Families Citing this family (190)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7849144B2 (en) * 2006-01-13 2010-12-07 Cisco Technology, Inc. Server-initiated language translation of an instant message based on identifying language attributes of sending and receiving users
EP1969493B1 (en) * 2006-02-17 2018-12-26 Google LLC Encoding and adaptive, scalable accessing of distributed models
US7991608B2 (en) * 2006-04-19 2011-08-02 Raytheon Company Multilingual data querying
US7853555B2 (en) * 2006-04-19 2010-12-14 Raytheon Company Enhancing multilingual data querying
US8209162B2 (en) * 2006-05-01 2012-06-26 Microsoft Corporation Machine translation split between front end and back end processors
US20080004858A1 (en) * 2006-06-29 2008-01-03 International Business Machines Corporation Apparatus and method for integrated phrase-based and free-form speech-to-speech translation
US8626486B2 (en) 2006-09-05 2014-01-07 Google Inc. Automatic spelling correction for machine translation
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8631005B2 (en) 2006-12-28 2014-01-14 Ebay Inc. Header-token driven automatic text segmentation
JP4466666B2 (ja) * 2007-03-14 2010-05-26 日本電気株式会社 議事録作成方法、その装置及びそのプログラム
US9418061B2 (en) * 2007-12-14 2016-08-16 International Business Machines Corporation Prioritized incremental asynchronous machine translation of structured documents
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US7984034B1 (en) * 2007-12-21 2011-07-19 Google Inc. Providing parallel resources in search results
US8352265B1 (en) 2007-12-24 2013-01-08 Edward Lin Hardware implemented backend search engine for a high-rate speech recognition system
US8639510B1 (en) 2007-12-24 2014-01-28 Kai Yu Acoustic scoring unit implemented on a single FPGA or ASIC
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US20090177733A1 (en) * 2008-01-08 2009-07-09 Albert Talker Client application localization
US8463610B1 (en) 2008-01-18 2013-06-11 Patrick J. Bourke Hardware-implemented scalable modular engine for low-power speech recognition
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US20090300126A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation Message Handling
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US9798720B2 (en) 2008-10-24 2017-10-24 Ebay Inc. Hybrid machine translation
CN101739867B (zh) * 2008-11-19 2012-03-28 中国科学院自动化研究所 运用计算机对口语翻译质量进行评分的方法
CN101826263B (zh) * 2009-03-04 2012-01-04 中国科学院自动化研究所 基于客观标准的自动化口语评估系统
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US8725509B1 (en) * 2009-06-17 2014-05-13 Google Inc. Back-off language model compression
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
JP4935869B2 (ja) * 2009-08-07 2012-05-23 カシオ計算機株式会社 電子機器及びプログラム
JP5598998B2 (ja) * 2009-10-02 2014-10-01 独立行政法人情報通信研究機構 音声翻訳システム、第一端末装置、音声認識サーバ装置、翻訳サーバ装置、および音声合成サーバ装置
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
ES2369822B1 (es) * 2010-05-11 2012-10-15 Scio Soft, S.L. Videotraductor virtual.
US8423334B2 (en) * 2010-05-18 2013-04-16 Honeywell International Inc. Distributed model identification
US9411793B2 (en) 2010-07-13 2016-08-09 Motionpoint Corporation Dynamic language translation of web site content
US9778915B2 (en) 2011-02-28 2017-10-03 Microsoft Technology Licensing, Llc Distributed application definition
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US9990184B2 (en) 2011-03-25 2018-06-05 Microsoft Technology Licensing, Llc Distributed component model
US9465589B2 (en) 2011-04-05 2016-10-11 Microsoft Technology Licensing, Llc Stateful component authoring and execution
US20140039879A1 (en) * 2011-04-27 2014-02-06 Vadim BERMAN Generic system for linguistic analysis and transformation
WO2012166581A2 (en) * 2011-05-27 2012-12-06 Ctc Tech Corp. Creation, use and training of computer-based discovery avatars
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US9201862B2 (en) * 2011-06-16 2015-12-01 Asociacion Instituto Tecnologico De Informatica Method for symbolic correction in human-machine interfaces
EP2851895A3 (en) * 2011-06-30 2015-05-06 Google, Inc. Speech recognition using variable-length context
US8805672B2 (en) * 2011-06-30 2014-08-12 International Business Machines Corporation Translation cache prediction
US8712761B2 (en) * 2011-11-22 2014-04-29 Google Inc. Techniques for performing translation of messages
US8812302B2 (en) * 2012-01-17 2014-08-19 Google Inc. Techniques for inserting diacritical marks to text input via a user device
CN103218365A (zh) * 2012-01-20 2013-07-24 阿里巴巴集团控股有限公司 一种SSTable文件数据处理方法及其系统
CN103257958B (zh) * 2012-02-16 2016-01-20 中兴通讯股份有限公司 一种基于云存储的翻译方法及系统
CN103259762B (zh) * 2012-02-16 2016-09-28 中兴通讯股份有限公司 一种基于云存储的文件加密、解密方法及系统
CN104272223B (zh) * 2012-02-28 2018-05-04 谷歌有限责任公司 用于将输入文本从第一字符集音译到第二字符集的技术
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US8874428B2 (en) * 2012-03-05 2014-10-28 International Business Machines Corporation Method and apparatus for fast translation memory search
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9116886B2 (en) * 2012-07-23 2015-08-25 Google Inc. Document translation including pre-defined term translator and translation model
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
US9336771B2 (en) * 2012-11-01 2016-05-10 Google Inc. Speech recognition using non-parametric models
WO2014077918A1 (en) * 2012-11-19 2014-05-22 Board Of Regents, The University Of Texas System Robustness in a scalable block storage system
US10296968B2 (en) 2012-12-07 2019-05-21 United Parcel Service Of America, Inc. Website augmentation including conversion of regional content
WO2014098640A1 (en) * 2012-12-19 2014-06-26 Abbyy Infopoisk Llc Translation and dictionary selection by context
US9342503B1 (en) * 2013-03-12 2016-05-17 Amazon Technologies, Inc. Correlation across languages
US9430465B2 (en) * 2013-05-13 2016-08-30 Facebook, Inc. Hybrid, offline/online speech translation system
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
DE112014002747T5 (de) 2013-06-09 2016-03-03 Apple Inc. Vorrichtung, Verfahren und grafische Benutzerschnittstelle zum Ermöglichen einer Konversationspersistenz über zwei oder mehr Instanzen eines digitalen Assistenten
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9154492B2 (en) * 2013-09-27 2015-10-06 The University Of North Carolina At Charlotte Moving target defense against cross-site scripting
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9569526B2 (en) 2014-02-28 2017-02-14 Ebay Inc. Automatic machine translation using user feedback
US9940658B2 (en) 2014-02-28 2018-04-10 Paypal, Inc. Cross border transaction machine translation
US9881006B2 (en) 2014-02-28 2018-01-30 Paypal, Inc. Methods for automatic generation of parallel corpora
US9530161B2 (en) 2014-02-28 2016-12-27 Ebay Inc. Automatic extraction of multilingual dictionary items from non-parallel, multilingual, semi-structured data
US9514377B2 (en) * 2014-04-29 2016-12-06 Google Inc. Techniques for distributed optical character recognition and distributed machine language translation
US9514376B2 (en) * 2014-04-29 2016-12-06 Google Inc. Techniques for distributed optical character recognition and distributed machine language translation
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9842101B2 (en) * 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9760559B2 (en) * 2014-05-30 2017-09-12 Apple Inc. Predictive text input
AU2015266863B2 (en) 2014-05-30 2018-03-15 Apple Inc. Multi-command single utterance input method
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9858922B2 (en) 2014-06-23 2018-01-02 Google Inc. Caching speech recognition scores
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9965466B2 (en) * 2014-07-16 2018-05-08 United Parcel Service Of America, Inc. Language content translation
US9811559B2 (en) * 2014-09-01 2017-11-07 Mapquest, Inc. Computerized systems and methods for identifying points-of-interest using customized query prediction
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9299347B1 (en) 2014-10-22 2016-03-29 Google Inc. Speech recognition using associative mapping
US9697201B2 (en) 2014-11-24 2017-07-04 Microsoft Technology Licensing, Llc Adapting machine translation data using damaging channel model
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
CN107430598A (zh) * 2015-03-18 2017-12-01 三菱电机株式会社 多语言翻译装置和多语言翻译方法
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
JP6620934B2 (ja) * 2016-01-29 2019-12-18 パナソニックIpマネジメント株式会社 翻訳支援方法、翻訳支援装置、翻訳装置及び翻訳支援プログラム
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
SG11201808470QA (en) * 2016-04-04 2018-10-30 Wovn Technologies Inc Translation system
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US9594741B1 (en) * 2016-06-12 2017-03-14 Apple Inc. Learning new words
KR102565274B1 (ko) 2016-07-07 2023-08-09 삼성전자주식회사 자동 통역 방법 및 장치, 및 기계 번역 방법 및 장치
KR102565275B1 (ko) 2016-08-10 2023-08-09 삼성전자주식회사 병렬 처리에 기초한 번역 방법 및 장치
US10162819B2 (en) * 2016-08-17 2018-12-25 Netflix, Inc. Change detection in a string repository for translated content
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10282415B2 (en) 2016-11-29 2019-05-07 Ebay Inc. Language identification for text strings
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
CN106709488A (zh) * 2016-12-20 2017-05-24 深圳市深信服电子科技有限公司 名片识别方法及装置
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10796484B2 (en) * 2017-06-14 2020-10-06 Anand Babu Chitavadigi System and method for interactive multimedia and multi-lingual guided tour/panorama tour
US10721719B2 (en) * 2017-06-20 2020-07-21 Citrix Systems, Inc. Optimizing caching of data in a network of nodes using a data mapping table by storing data requested at a cache location internal to a server node and updating the mapping table at a shared cache external to the server node
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
CN110110292B (zh) * 2018-01-29 2023-11-14 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US11848010B1 (en) * 2018-02-09 2023-12-19 Voicebase, Inc. Systems and methods for creating dynamic features for correlation engines
US11551570B2 (en) * 2018-02-15 2023-01-10 Smarthink Srl Systems and methods for assessing and improving student competencies
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
JP7170984B2 (ja) * 2018-03-02 2022-11-15 国立研究開発法人情報通信研究機構 疑似対訳データ生成装置、機械翻訳処理装置、および疑似対訳データ生成方法
US10747962B1 (en) * 2018-03-12 2020-08-18 Amazon Technologies, Inc. Artificial intelligence system using phrase tables to evaluate and improve neural network based machine translation
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
JP6784718B2 (ja) * 2018-04-13 2020-11-11 グリー株式会社 ゲームプログラム及びゲーム装置
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
US11463511B2 (en) 2018-12-17 2022-10-04 At&T Intellectual Property I, L.P. Model-based load balancing for network data plane
US11397600B2 (en) * 2019-05-23 2022-07-26 HCL Technologies Italy S.p.A Dynamic catalog translation system
US11842165B2 (en) * 2019-08-28 2023-12-12 Adobe Inc. Context-based image tag translation
CN110852118B (zh) * 2019-11-08 2022-02-01 北京中献电子技术开发有限公司 分布式机器翻译方法及系统
CN113157354B (zh) * 2020-01-07 2023-11-03 北京京东振世信息技术有限公司 处理数据的方法、装置、设备和计算机可读介质
CN111310449B (zh) * 2020-01-23 2021-01-26 北京百度网讯科技有限公司 基于语义表示的文本生成方法和装置
CN111310483B (zh) * 2020-02-11 2023-06-16 北京字节跳动网络技术有限公司 一种翻译方法、装置、电子设备及存储介质
WO2021184249A1 (en) * 2020-03-18 2021-09-23 Citrix Systems, Inc. Machine translation of digital content
EP4200717A2 (en) 2020-08-24 2023-06-28 Unlikely Artificial Intelligence Limited A computer implemented method for the automated analysis or use of data
CN114253641A (zh) * 2020-09-25 2022-03-29 支付宝实验室(新加坡)有限公司 数据处理方法、移动终端及开放平台
WO2023161630A1 (en) 2022-02-22 2023-08-31 Unlikely Artificial Intelligence Limited Computer implemented methods for the automated analysis or use of data, including use of a large language model
US20230120230A1 (en) * 2021-10-20 2023-04-20 Transfluent Oy Method and system for translating source text of first language to second language

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237044A1 (en) 2003-02-21 2004-11-25 Motionpoint Corporation Synchronization of web site content between languages
US20050038643A1 (en) 2003-07-02 2005-02-17 Philipp Koehn Statistical noun phrase translation

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4706212A (en) * 1971-08-31 1987-11-10 Toma Peter P Method using a programmed digital computer system for translation between natural languages
US4991094A (en) * 1989-04-26 1991-02-05 International Business Machines Corporation Method for language-independent text tokenization using a character categorization
US5510981A (en) * 1993-10-28 1996-04-23 International Business Machines Corporation Language translation apparatus and method using context-based translation models
US5715466A (en) * 1995-02-14 1998-02-03 Compuserve Incorporated System for parallel foreign language communication over a computer network
AU5969896A (en) * 1995-06-07 1996-12-30 International Language Engineering Corporation Machine assisted translation tools
US5918051A (en) * 1995-07-19 1999-06-29 Ricoh Company, Ltd. Object-oriented communication system with support for multiple remote machine types
JPH0981569A (ja) * 1995-09-12 1997-03-28 Hitachi Ltd 多カ国対応サービス提供システム
US6161083A (en) * 1996-05-02 2000-12-12 Sony Corporation Example-based translation method and system which calculates word similarity degrees, a priori probability, and transformation probability to determine the best example for translation
US5848386A (en) * 1996-05-28 1998-12-08 Ricoh Company, Ltd. Method and system for translating documents using different translation resources for different portions of the documents
US6085162A (en) * 1996-10-18 2000-07-04 Gedanken Corporation Translation system and method in which words are translated by a specialized dictionary and then a general dictionary
US5946498A (en) * 1996-11-12 1999-08-31 International Business Machines Corporation Delivery of client remote procedure calls to a server via a request queue utilizing priority and time-out
US6092035A (en) * 1996-12-03 2000-07-18 Brothers Kogyo Kabushiki Kaisha Server device for multilingual transmission system
JPH10198680A (ja) * 1997-01-07 1998-07-31 Hitachi Ltd 分散辞書管理方法及びそれを用いた機械翻訳方法
WO1999000789A1 (en) * 1997-06-26 1999-01-07 Koninklijke Philips Electronics N.V. A machine-organized method and a device for translating a word-organized source text into a word-organized target text
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
DE19747583B4 (de) * 1997-10-28 2006-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Kommunikationssystem und Verfahren
US6526426B1 (en) * 1998-02-23 2003-02-25 David Lakritz Translation management system
US6122666A (en) * 1998-02-23 2000-09-19 International Business Machines Corporation Method for collaborative transformation and caching of web objects in a proxy network
US6292880B1 (en) * 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US6795434B1 (en) * 1998-11-18 2004-09-21 Intel Corporation Replicated server discovery in client-proxy servers
US6347316B1 (en) * 1998-12-14 2002-02-12 International Business Machines Corporation National language proxy file save and incremental cache translation option for world wide web documents
US6167369A (en) * 1998-12-23 2000-12-26 Xerox Company Automatic language identification using both N-gram and word information
US6314469B1 (en) * 1999-02-26 2001-11-06 I-Dns.Net International Pte Ltd Multi-language domain name service
US6338033B1 (en) * 1999-04-20 2002-01-08 Alis Technologies, Inc. System and method for network-based teletranslation from one natural language to another
AUPQ141999A0 (en) * 1999-07-05 1999-07-29 Worldlingo.Com Pty Ltd Communication processing system
US6278969B1 (en) * 1999-08-18 2001-08-21 International Business Machines Corp. Method and system for improving machine translation accuracy using translation memory
US7171348B2 (en) * 1999-09-10 2007-01-30 Worldlingo.Com Pty Ltd Communication processing system
US6904402B1 (en) * 1999-11-05 2005-06-07 Microsoft Corporation System and iterative method for lexicon, segmentation and language model joint optimization
US7725307B2 (en) * 1999-11-12 2010-05-25 Phoenix Solutions, Inc. Query engine for processing voice based queries including semantic decoding
US20020013858A1 (en) * 2000-02-09 2002-01-31 Anderson Keith R. ARP caching apparatus and method
US7216072B2 (en) * 2000-02-29 2007-05-08 Fujitsu Limited Relay device, server device, terminal device, and translation server system utilizing these devices
JP4073635B2 (ja) * 2000-02-29 2008-04-09 富士通株式会社 中継装置、サーバ装置、端末装置、及びこれを利用した翻訳サーバシステム
US6907546B1 (en) * 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
WO2001075662A2 (en) * 2000-03-31 2001-10-11 Amikai, Inc. Method and apparatus for providing multilingual translation over a network
CA2408819C (en) * 2000-05-11 2006-11-07 University Of Southern California Machine translation techniques
US7225199B1 (en) * 2000-06-26 2007-05-29 Silver Creek Systems, Inc. Normalizing and classifying locale-specific information
US6986104B2 (en) * 2000-06-26 2006-01-10 Silver Creek Systems, Inc. Method and apparatus for normalizing and converting structured content
GB2364143A (en) * 2000-06-30 2002-01-16 Nokia Corp Resource allocation
US7027975B1 (en) * 2000-08-08 2006-04-11 Object Services And Consulting, Inc. Guided natural language interface system and method
US7277732B2 (en) * 2000-10-13 2007-10-02 Microsoft Corporation Language input system for mobile devices
US6922670B2 (en) * 2000-10-24 2005-07-26 Sanyo Electric Co., Ltd. User support apparatus and system using agents
US6665642B2 (en) * 2000-11-29 2003-12-16 Ibm Corporation Transcoding system and method for improved access by users with special needs
US20020078117A1 (en) * 2000-12-19 2002-06-20 Wang Baldonado Michelle Q. System for creating efficient multi-step document conversion services
US7197749B2 (en) * 2000-12-19 2007-03-27 Xerox Corporation Method and system for executing batch jobs by delegating work to independent service providers
US20020103632A1 (en) * 2001-01-31 2002-08-01 International Business Machines Corporation Method, program, and tool for updating the national language versions of documents
US7533333B2 (en) * 2001-02-14 2009-05-12 Ricoh Co., Ltd. Object-oriented method and system of remote diagnostic, control and information collection using multiple formats and multiple protocols
US7295962B2 (en) * 2001-05-11 2007-11-13 University Of Southern California Statistical memory-based translation system
US7191115B2 (en) * 2001-06-20 2007-03-13 Microsoft Corporation Statistical method and apparatus for learning translation relationships among words
US20040230572A1 (en) * 2001-06-22 2004-11-18 Nosa Omoigui System and method for semantic knowledge retrieval, management, capture, sharing, discovery, delivery and presentation
US20030004702A1 (en) * 2001-06-29 2003-01-02 Dan Higinbotham Partial sentence translation memory program
US20030014254A1 (en) * 2001-07-11 2003-01-16 You Zhang Load-shared distribution of a speech system
US7065588B2 (en) * 2001-08-10 2006-06-20 Chaavi, Inc. Method and system for data transformation in a heterogeneous computer system
US20030061022A1 (en) * 2001-09-21 2003-03-27 Reinders James R. Display of translations in an interleaved fashion with variable spacing
JP3452558B2 (ja) * 2001-09-25 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 翻訳対象のリソースと分野別辞書を関連付けるための方法、システムおよびプログラム
TW544601B (en) * 2001-11-20 2003-08-01 Ind Tech Res Inst Method and structure for forming web server cluster by conversion and dispatching of web page documents
US7007026B2 (en) * 2001-12-14 2006-02-28 Sun Microsystems, Inc. System for controlling access to and generation of localized application values
US20030154071A1 (en) * 2002-02-11 2003-08-14 Shreve Gregory M. Process for the document management and computer-assisted translation of documents utilizing document corpora constructed by intelligent agents
EP1343079A1 (de) * 2002-03-07 2003-09-10 Infix Software-Systeme GmbH Verfahren, Software-Produkt und System zur universellen computergestützen Informationsverarbeitung
EP1483687A4 (en) * 2002-03-11 2008-08-06 Univ Southern California TRANSLATION OF CALLED ENTITIES
AU2003267953A1 (en) * 2002-03-26 2003-12-22 University Of Southern California Statistical machine translation using a large monlingual corpus
US20030204573A1 (en) * 2002-04-30 2003-10-30 Andre Beck Method of providing a web user with additional context-specific information
US20030212962A1 (en) * 2002-05-08 2003-11-13 Amikai, Inc. Thin client-server architecture for automated machine translation
US7055142B2 (en) * 2002-05-10 2006-05-30 Microsoft Corporation Permutation nuances of the integration of processes and queries as processes at queues
JP3737779B2 (ja) * 2002-05-29 2006-01-25 富士通株式会社 翻訳サーバ、翻訳方法及びプログラム
US20040044517A1 (en) * 2002-08-30 2004-03-04 Robert Palmquist Translation system
US7249012B2 (en) * 2002-11-20 2007-07-24 Microsoft Corporation Statistical method and apparatus for learning translation relationships among phrases
US7546234B1 (en) * 2003-01-08 2009-06-09 Xambala, Inc. Semantic processing engine
JP3920812B2 (ja) * 2003-05-27 2007-05-30 株式会社東芝 コミュニケーション支援装置、支援方法、及び支援プログラム
US7346487B2 (en) * 2003-07-23 2008-03-18 Microsoft Corporation Method and apparatus for identifying translations
JP2005100335A (ja) * 2003-09-01 2005-04-14 Advanced Telecommunication Research Institute International 機械翻訳装置、機械翻訳コンピュータプログラム及びコンピュータ
JP3919771B2 (ja) * 2003-09-09 2007-05-30 株式会社国際電気通信基礎技術研究所 機械翻訳システム、その制御装置、及びコンピュータプログラム
US7536421B2 (en) * 2003-10-31 2009-05-19 Landmark Technology Partners, Inc. Intelligent client architecture computer system and method
US7657420B2 (en) * 2003-12-19 2010-02-02 Palo Alto Research Center Incorporated Systems and methods for the generation of alternate phrases from packed meaning
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US20050234864A1 (en) * 2004-04-20 2005-10-20 Shapiro Aaron M Systems and methods for improved data sharing and content transformation
GB2415518A (en) * 2004-06-24 2005-12-28 Sharp Kk Method and apparatus for translation based on a repository of existing translations
JP2006099296A (ja) * 2004-09-29 2006-04-13 Nec Corp 翻訳システム、翻訳通信システム、機械翻訳方法、および、プログラム
US8370395B1 (en) * 2004-10-15 2013-02-05 Amazon Technologies, Inc. Providing a reliable distributed queuing service
US7814473B2 (en) * 2004-10-27 2010-10-12 Oracle International Corporation Feature usage based target patching
US7440453B2 (en) * 2004-11-12 2008-10-21 International Business Machines Corporation Determining availability of a destination for computer network communications
JP4419871B2 (ja) * 2005-03-02 2010-02-24 富士ゼロックス株式会社 翻訳依頼装置およびプログラム
US7653528B2 (en) * 2005-03-08 2010-01-26 Microsoft Corporation Resource authoring incorporating ontology
KR20070093452A (ko) * 2005-04-08 2007-09-18 마쯔시다덴기산교 가부시키가이샤 캐시 메모리 시스템 및 그 제어 방법
US7610187B2 (en) * 2005-06-30 2009-10-27 International Business Machines Corporation Lingual translation of syndicated content feeds
US20070118399A1 (en) * 2005-11-22 2007-05-24 Avinash Gopal B System and method for integrated learning and understanding of healthcare informatics
US7536295B2 (en) * 2005-12-22 2009-05-19 Xerox Corporation Machine translation using non-contiguous fragments of text
US7809882B1 (en) * 2006-01-24 2010-10-05 Verizon Services Corp. Session independent backend data cache system
EP1969493B1 (en) * 2006-02-17 2018-12-26 Google LLC Encoding and adaptive, scalable accessing of distributed models
US7983897B2 (en) 2007-02-14 2011-07-19 Google Inc. Machine translation feedback

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237044A1 (en) 2003-02-21 2004-11-25 Motionpoint Corporation Synchronization of web site content between languages
US20050038643A1 (en) 2003-07-02 2005-02-17 Philipp Koehn Statistical noun phrase translation

Also Published As

Publication number Publication date
EP2527990A3 (en) 2018-05-02
US10885285B2 (en) 2021-01-05
BRPI0706404B1 (pt) 2019-08-27
EP2511833B1 (en) 2020-02-05
EP1983445A2 (en) 2008-10-22
KR20080112192A (ko) 2008-12-24
CA2631815C (en) 2014-07-15
US10089304B2 (en) 2018-10-02
EP3534277A1 (en) 2019-09-04
CN101361065B (zh) 2013-04-10
AU2007217900A1 (en) 2007-08-30
US20140257787A1 (en) 2014-09-11
US8296123B2 (en) 2012-10-23
EP2527990B1 (en) 2020-01-15
JP5122486B2 (ja) 2013-01-16
US20190018843A1 (en) 2019-01-17
US20130046530A1 (en) 2013-02-21
EP2511833A3 (en) 2018-01-24
EP2527990A2 (en) 2012-11-28
JP2009527818A (ja) 2009-07-30
US20170212887A1 (en) 2017-07-27
US8738357B2 (en) 2014-05-27
AU2007217900B2 (en) 2012-05-10
EP1969493A2 (en) 2008-09-17
WO2007098055A2 (en) 2007-08-30
EP2511833A2 (en) 2012-10-17
WO2007098055A3 (en) 2008-05-22
US9619465B2 (en) 2017-04-11
CN101361065A (zh) 2009-02-04
EP3534277B1 (en) 2021-10-06
EP1983445A3 (en) 2009-11-18
US20080262828A1 (en) 2008-10-23
EP1969493A4 (en) 2010-05-05
CA2631815A1 (en) 2007-08-30
EP1969493B1 (en) 2018-12-26
EP1983445B1 (en) 2018-12-26
BRPI0706404A2 (pt) 2011-03-29

Similar Documents

Publication Publication Date Title
KR101431194B1 (ko) 분산형 모델의 인코딩 및 적응성 및 확장성 액세싱
US9652483B1 (en) Index server architecture using tiered and sharded phrase posting lists
US9355169B1 (en) Phrase extraction using subphrase scoring
US8626486B2 (en) Automatic spelling correction for machine translation
US7702614B1 (en) Index updating using segment swapping
US8600975B1 (en) Query phrasification
US7340388B2 (en) Statistical translation using a large monolingual corpus
US8086594B1 (en) Bifurcated document relevance scoring
US8209178B1 (en) Randomized language models
US8725509B1 (en) Back-off language model compression
JP6705318B2 (ja) 対訳辞書作成装置、対訳辞書作成方法、及び対訳辞書作成プログラム
US20170220557A1 (en) Method, device, and computer program for providing a definition or a translation of a word belonging to a sentence as a function of neighbouring words and of databases
AU2012211440A1 (en) Encoding and adaptive, scalable accessing of distributed models

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
FPAY Annual fee payment

Payment date: 20170728

Year of fee payment: 4