KR20100015518A - 기계 번역에서의 대언어 모델 - Google Patents

기계 번역에서의 대언어 모델 Download PDF

Info

Publication number
KR20100015518A
KR20100015518A KR1020097021287A KR20097021287A KR20100015518A KR 20100015518 A KR20100015518 A KR 20100015518A KR 1020097021287 A KR1020097021287 A KR 1020097021287A KR 20097021287 A KR20097021287 A KR 20097021287A KR 20100015518 A KR20100015518 A KR 20100015518A
Authority
KR
South Korea
Prior art keywords
backoff
gram
grams
order
score
Prior art date
Application number
KR1020097021287A
Other languages
English (en)
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 KR20100015518A publication Critical patent/KR20100015518A/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
    • 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/45Example-based machine translation; Alignment
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams

Abstract

기계 번역을 위한 시스템, 방법 및 컴퓨터 프로그램 제품이 제공된다. 일부 구현예의 경우 시스템이 제공된다. 본 시스템은 코퍼스로부터의 n-그램의 집합을 포함하는 언어 모델을 포함하고 있으며, 각각의 n-그램은 코퍼스에서 대응하는 상대적인 빈도와 n-그램에서의 견본의 수에 대응하는 차수 n을 가지고, 각각의 n-그램은 n-1의 차수와 백오프 점수의 집합을 갖는 백오프 n-그램에 대응하며, 각각의 백오프 점수는 n-그램과 연계되고, 백오프 점수는 코퍼스에서 대응하는 백오프 n-그램의 상대적인 빈도 및 백오프 계수의 함수로서 결정된다.

Description

기계 번역에서의 대언어 모델{LARGE LANGUAGE MODELS IN MACHINE TRANSLATION}
본 명세서는 통계적인 기계 번역에 관한 것이다.
인간 조작자에 의한 텍스트의 수동 번역은 시간 소모적이고 고비용일 수 있다. 기계 번역의 한가지 목적은 소스 언어의 텍스트를 대상 언어의 대응하는 텍스트로 자동 번역하는 것이다. 예제 기반의 기계 번역과 통계적인 기계 번역을 포함하여 기계 번역에 대한 몇 가지 다양한 방법이 존재한다. 통계적인 기계 번역은 소스 언어로 특정한 입력이 주어진 경우 대상 언어에 있어서 가장 가능성 있는 번역을 식별하려고 시도한다. 예컨대, 불어에서 영어로 문장을 번역하는 경우에 통계적인 기계 번역은 주어진 불어 문장에 대해 가장 가능성 있는 영어 문장을 식별한다. 이러한 최대 가능성의 번역은 다음과 같이 표현될 수 있다.
Figure 112009062401220-PCT00001
이는 모든 가능한 문장 중에서, P(e|f)에 대해 가장 높은 값을 제공하는 영어 문장 e를 나타내고 있다. 부가적으로, 베이즈 정리(Bayes Rule)는 다음을 제안한다.
Figure 112009062401220-PCT00002
베이즈 정리를 이용하면, 최대 가능성의 문장은 다음과 같이 다시 표현할 수 있다.
Figure 112009062401220-PCT00003
결론적으로, 최대 가능성의 e(즉, 최대 가능성의 영어 번역)는 e가 발생할 확률과 e가 f로 번역될 확률(즉, 주어진 영어 문장이 해당 불어 문장으로 번역될 확률)의 곱을 최대화하는 것이다.
기계 번역을 위한 시스템, 방법 및 컴퓨터 프로그램 제품이 제공된다. 일반적으로, 일 측면에서는 시스템이 제공된다. 본 시스템은 코퍼스로부터의 n-그램의 집합 및 백오프(Backoff) 점수의 집합을 포함하는 언어 모델을 구비하며, 상기 n-그램 각각은 상기 코퍼스에 있어서 대응하는 상대적 빈도 및 상기 n-그램에 있어서 견본(Token)의 수에 대응하는 차수 n을 가지고, 상기 n-그램 각각은 n-1의 차수를 갖는 백오프 n-그램에 대응하며, 상기 백오프 점수 각각은 n-그램과 연계되고, 상기 백오프 점수는 상기 코퍼스에 있어서 대응하는 백오프 n-그램의 상대적 빈도와 백오프 계수의 함수로서 결정된다. 이러한 측면의 다른 실시형태는 대응하는 시스템, 장치, 컴퓨터 프로그램 제품 및 컴퓨터로 판독 가능한 매체를 포함한다.
일반적으로, 일 측면에 있어서 방법이 제공된다. 본 방법은, 학습 데이터(Training Data)의 코퍼스로부터 n-그램의 집합(Collection)을 확인하는 단계; 및 하나 이상의 백오프 계수를 확인하는 단계를 포함하는 언어 모델을 생성하는 단계를 포함하며, 상기 집합의 각 n-그램은 상기 코퍼스에서 발생하는 것의 대응하는 상대적 빈도 및 상기 n-그램에 있어서 견본의 수에 대응하는 차수 n을 가지고, 상기 n-그램 각각은 n-1의 차수를 갖는 백오프 n-그램에 대응하며, 상기 백오프 계수는 백오프 n-그램의 상대적 빈도의 함수로서 하나 이상의 n-그램에 대하여 백오프 점수를 확인하기 위해 사용된다. 이러한 측면의 다른 실시형태는 방법, 장치, 컴퓨터 프로그램 제품 및 컴퓨터로 판독 가능한 매체를 포함한다.
일반적으로, 다른 측면에 있어서, 방법이 제공된다. 본 방법은, 복수의 견본을 갖는 입력 스트링을 수신하는 단계; 및 상기 입력 스트링에 있어서 각각의 n-그램에 대한 확률을 확인하기 위하여 언어 모델을 사용하는 단계를 포함하며, 상기 입력 스트링은 하나 이상의 n-그램으로 분할되고, 각각의 n-그램은 차수를 가지며, 상기 차수는 상기 n-그램에 있어서 견본의 수를 식별하며, 상기 입력 스트링의 첫 번째 n-그램이 상기 언어 모델에서 발견되지 않는 경우에, 백오프 n-그램을 확인하되, 여기서 상기 백오프 n-그램은, 상기 언어 모델에서 발견될 때에, 상기 첫 번째 n-그램의 차수보다 하나 낮은 차수를 가지고, 상기 첫 번째 n-그램에 대한 백오프 점수를 확인하되, 상기 백오프 점수는 백오프 계수와 상기 언어 모델에 있어서 상기 백오프 n-그램의 상대적 빈도의 함수이다. 이러한 측면의 다른 실시형태는 대응하는 시스템, 장치, 컴퓨터 프로그램 제품 및 컴퓨터로 판독 가능한 매체를 포함한다.
본 명세서에 기재된 주제의 특정한 실시형태는 다음의 이점 중 하나 이상을 실현하기 위하여 구현될 수 있다. n-그램(n-gram)에 대한 백오프(Backoff)는 백오프 n-그램에 대한 표준화된 확률을 계산하지 않고 상대적인 빈도의 함수로서 직접적으로 결정될 수 있다. 특정한 n-그램에 대한 n-그램 백오프 값이 동일한 파편(Shard) 상에서 생성될 수 있는 분산형 환경에서 언어 모델이 생성될 수 있다.
본 명세서에 기재된 주제의 하나 이상의 실시형태에 대한 세부사항들은 다음의 설명 및 첨부도면에서 제시된다. 본 주제의 다른 특징, 측면 및 이점은 명세서, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 기계 번역 시스템의 블록도.
도 2는 예시적인 언어 모델의 블록도.
도 3은 언어 모델을 생성하기 위한 방법을 나타내는 도면.
도 4는 번역을 수행하기 위한 예시적인 시스템.
다양한 도면에서 동일한 참조번호와 기호는 동일한 요소를 나타낸다.
도 1은 예시적인 기계 번역 시스템(100)의 블록도이다. 기계 번역 시스템은 대상 코퍼스(102, Target Corpus), 언어 모델(104), 병렬 코퍼스(Parallel Corpus, 106), 번역 모델(108) 및 디코더(110)를 포함하고 있다. 이 번역 시스템(100)에 입력 텍스트(112)를 제공하는 경우 번역된 텍스트(114)가 생성된다.
대상 코퍼스(102)는 대상 언어(예컨대 영어)에 있어서 텍스트의 집합을 제공 하며, 이는 언어 모델(104)을 학습하게 하는데 사용된다. 대상 코퍼스(102)는 예컨대 웹 페이지와 뉴스 기사를 포함하여 수많은 다양한 텍스트 소스를 포함할 수 있다. 일부 구현예에서, 대상 코퍼스(102)는 수백 내지 수천억 차수의 단어 혹은 그 이상으로 텍스트를 포함한다. 그러한 하나의 코퍼스가 Google Inc에 의해 제공되는 ISBN:1-58563-397-6 LCD(Linguistic Data Consortium) 카탈로그 넘버 DC2006T13, LCD 웹 1T 5-그램 버전 1 코퍼스이다. 이 코퍼스는 공개적으로 접근 가능한 웹 페이지로부터 대략 1조개의 텍스트 견본(개별적인 단어, 구두점, 그리고 개별적인 문장의 시작과 끝을 식별하는 표시를 포함함)을 사용한다.
언어 모델(104)은 소스 언어에서 특정한 스트링(예컨대, 구, 문장, 혹은 문장의 집합)이 발생할 확률을 식별한다. 따라서, 영어의 경우, 언어 모델(104)은 영어에서 특정한 스트링이 발생할 확률을 식별한다. 특정한 스트링이 발생할 확률을 식별하기 위하여, 언어 모델(104)은 대상 코퍼스(102)에서의 총 스트링 수로 나눈 대상 코퍼스(102)에서의 해당 스트링이 발생하는 횟수를 계산한다. 예컨대, "The red wheelbarrow"라는 구문이 100,000,000개 단어의 코퍼스에서 53,000번 발생한다면, 그 확률은 다음과 같다.
Figure 112009062401220-PCT00004
그러나, 수많은 가능성 있는 스트링이 대상 코퍼스(102) 내에서 발견되지 않기 때문에 이들은 영의 확률을 가질 것이다. 따라서, 일부 구현예에서, 특정한 스트링의 확률은 하위 스트링 컴포넌트의 확률의 함수로서 연산된다. 하위 스트링을 나타내기 위한 한가지 기법은 n-그램을 사용하는 것이다. n-그램은 n개의 일련의 연속적인 견본이다. n-그램은 차수(Order)를 가지며, 이는 해당 n-그램에 있어서 견본의 수이다. 예컨대, 1-그램(즉 유니그램, Unigram)은 1개의 견본을 포함하고, 2-그램(즉 바이그램, Bigram)은 2개의 견본을 포함한다.
n-그램 언어 모델은 스트링의 확률을 계산하기 위하여 n-그램 하위 스트링을 사용한다. 주어진 스트링의 확률은 n-그램 조건부 확률의 곱으로서 계산될 수 있다. P(y|x)로 표현되는 바이그램에 대한 조건부 확률은 단어 y가 단어 x의 뒤를 이을 확률이다. 조건부 확률은 보통 대상 코퍼스(102)에서의 상대적인 빈도에 따라 경험적으로 결정된다. 상술한 예에서, 주어진 x에 대한 단어 y의 확률은 다음과 같다.
Figure 112009062401220-PCT00005
여기서 f(xy)는 대상 코퍼스(102)에 있어서 스트링 "xy"의 발생 빈도 내지 횟수이다.
스트링에 대한 확률은 조건부 확률의 곱으로서 결정될 수 있다. 예컨대, 바이그램 언어 모델을 이용하여 "The red wheelbarrow"라는 구문으로 시작하는 문장에 대한 P(The red wheelbarrow)를 계산하기 위하여, n-그램 언어 모델은 다음을 계산한다.
Figure 112009062401220-PCT00006
여기서 <start>는 P(The|<start>)가 "The"로 문장이 시작할 확률을 나타내 는 바와 같이 문장의 시작을 나타내는 것이다.
이러한 스트링 확률은 다음과 같이 일반화될 수 있다.
Figure 112009062401220-PCT00007
여기서 (e1, ..., ek)는 스트링에서의 견본을 나타내고, n은 언어 모델에서 허용된 가장 큰 n-그램의 차수이다.
병렬 코퍼스(106)는 소스 언어(예컨대, 영어)에서의 텍스트 집합과 하나 이상의 대상 언어(예컨대, 불어)에서의 대응하는 번역을 포함한다. 병렬 코퍼스(106)는 예컨대 각각의 쌍이 소스 언어에서의 텍스트와 대상 언어에서의 대응하는 번역된 텍스트를 포함하는 웹 페이지와 뉴스 기사의 쌍을 포함하여, 수많은 다양한 텍스트의 소스를 포함할 수 있다. 다른 예에서, 병렬 코퍼스(106)는 다언어(Multi-lingual) 데이터를 포함할 수 있다. 예컨대, 국제연합 의사록(United Nations proceedings)이 이용 가능하며, 이는 6개 언어에서의 병렬 번역을 제공한다.
번역 모델(108)은 주어진 특정한 소스 스트링에 대하여 특정한 대상 언어 스트링의 조건부 확률을 식별한다. 따라서, 영어 소스 언어와 불어 대상 언어에 대하여, 번역 모델(108)은 주어진 영어 스트링 e에 대한 불어 스트링 f의 확률 P(f|e)를 확인한다. 번역 모델은 수많은 다양한 방식으로 생성 가능하다. 일부 구현예의 경우, 수많은 파라미터가 P(f|e)를 결정하기 위하여 평가된다. 예컨대, 번역 모델은 4개의 파라미터 t, n, d 및 p에 따라 정의될 수 있다(예컨대, 1993년 연산 언어학 19(2), P.F. Brown, V.J. Della Pietra, S.A. Della Pietra 및 R.L. Mercer 저 The Mathematics of Statistical Machine Translation: Parameter Estimation에 기술된 IBM 모델 3).
번역 파라미터 t는 소스 단어로부터 번역된 단어를 생성할 확률, 예컨대 t(bonjour|hello)를 제공한다. 산출력 파라미터 n은 소스 단어가 n개의 대상 단어를 생성할 확률을 제공한다. 예컨대, n(2|hello)는 소스 단어 "hello"가 정확하게 2개의 불어 단어를 생성할 확률을 나타낸다. 왜곡 파라미터 d는 소스 문장에서의 대응하는 소스 단어의 위치에 상대적인 대상 문장에서의 대상 단어의 위치와 관련된 확률을 제공한다. 예컨대, d(3|5)는 문장의 위치 5(예컨대, 5번째 단어)에 있는 영어 단어가 번역된 불어 문장의 위치 3(예컨대, 3번째 단어)에서 불어 단어를 제공할 확률을 나타낸다. 부가적으로, 파라미터 p는 가짜 단어를 포함하는 번역의 확률을 제공한다. 가짜 단어는 소스 스트링에서의 소스 단어에 대응하지 않는 소스 언어 스트링의 대상 언어 번역에서 나타나는 단어이다.
모델 파라미터의 값들은 소스 및 대상 문장 쌍의 단어들이 모두 정렬된다면 직접적으로 평가될 수 있다. "정렬"이라는 용어는 한 쌍의 문장에서 소스와 대상 단어 간 단어 대 단어의 연결성(예컨대, 하나의 문장에서 "hello"는 "bonjour"와 정렬됨)을 나타내는 데이터 구조를 가리키는데 사용될 것이다. 일부 구현예에서, 이 정렬은 단순히 다양한 대상 단어가 연결되는 소스 단어의 위치를 식별하는 벡터이다. 만약 정렬이 알려져 있다면, 파라미터 값을 평가할 수 있다.
하나 이상의 가능한 정렬이 존재할 수 있다. 예컨대, 문장의 쌍은 2개의 균등하게 가능성이 있는 정렬을 가질 수 있다. 결과적으로, 특정한 정렬에 대하여 확 률을 계산할 수 있다. 이 정렬 확률은 단어가 특정한 방식으로 정렬될 가능성을 정의한다. 특정한 문장의 쌍에 대한 특정한 정렬의 가능성은 P(a|e,f)로 나타내어질 수 있으며, 이는 다음과 같다.
Figure 112009062401220-PCT00008
여기서,
Figure 112009062401220-PCT00009
이고, P(a,f|e)는 모든 정렬 α에 걸쳐서 합셈되며, 주어진 대상 문장에 대한 정렬 및 소스 문장의 결합 확률을 나타낸다. 정렬 α는 단일 문자로 나타내어지지만, 차수가 변할 수 있는 매트릭스를 나타낸다. 특히, α는 매트릭스 랜덤 변수(Matrix Random Variable)이며, 그것의 특정한 값은 특정한 소스 문장과 특정한 쌍으로 엮인 대상 문장 간 관계(예컨대, 링크)의 매트릭스를 나타낸다. 열은 소스 단어 위치에 대응하고, 행은 대상 단어 위치에 대응한다. 부가적인 행과 열은 대응하는 것이 존재하지 않는 경우에 무효 단어(Null Word)로 라벨링될 수 있다. 매트릭스의 요소는 0과 1이며, 대응하는 소스와 대상 문장 단어 간 관련성의 존재 혹은 부재를 나타낸다. 사용되는 정렬 모델에 따라, 매트릭스 링크가 발생할 수 있는 곳에 제한(Constraint)이 가해질 수 있다(예컨대, 소스 단어가 복수의 대상 단어에 매핑될 수 있는지 여부, 단어들이 무효 단어에 매핑될 수 있는지 여부 등).
따라서, P(a|e,f)는 P(a,f|e)의 항으로 표현될 수 있다. 그러나, P(a,f|e)는 파라미터 값들의 함수로서 표현될 수도 있다. 따라서, 파라미터 값들이 알려 져 있다면, 정렬 확률은 직접 연산 가능하다.
특정한 정렬 α가 특정한 (f,e) 쌍 간의 특정한 정렬을 나타내는데 반해, P(a|e,f)는 다시 특정한 (f,e) 쌍에 대하여 가능한 정렬들에 걸친 후속 확률이다. P(a|e,f)는 이전의 반복에서 얻어졌던 것보다 더 나은 각 쌍 간의 단어 정렬을 얻기 위하여 현재의 파라미터 값들을 이용하고, 이후에 그 파라미터 값들을 업데이트하기 위하여 정렬을 사용한 다음 반복하여, 다수의 (f,e) 문장 쌍에 걸친 루프에 의하여 반복적으로 파라미터들을 학습하는 일종의 학습 절차에 의해 평가될 수 있는 파라미터들로 P(a|e,f)가 기술된다. 정렬에 관한 부가적인 세부사항들은 예컨대 2003년 3월 연산 언어학 29(1): 9--51, Franz Joseph Och 및 Hermann Ney저 A Systematic Comparison of Various Statistical Alignment Models에서 찾을 수 있다.
결과적으로, P(f|e)를 계산하기 위하여, 본 번역 시스템은 P(a,f|e)를 계산한다. 그러나, P(a,f|e)를 계산하기 위해서는 파라미터 값들이 요구된다. 나아가, 파라미터 값들을 얻기 위하여 본 시스템은 P(a|e,f)를 필요로 하지만, 그렇게 하기 위해서는 다시 P(a,f|e)가 필요하다. 따라서, 파라미터 값들과 정렬 확률 양자에 대하여 거의 동시에 해결하기 위한 기법이 사용된다.
기대 최대화("EM", Expectation-maximization) 알고리즘은 국부적인 최적의 값들이 결정될 때까지 반복적인 프로세스를 이용하여 파라미터 값들과 정렬 확률을 평가하기 위해 사용될 수 있다. EM 알고리즘은 확률 모델에 있어서 변수의 최대 가능성의 평가치를 연산한다. EM 알고리즘은 2 단계 프로세스이다. 기대 단계는 마치 변수 값들이 관찰되는 것처럼 이들을 포함함으로써 가능성의 기대치를 연산한다. 최대화 단계는 상기 기대 단계에서 연산된 기대되는 가능성을 최대화함으로써 최대의 가능성 평가치를 연산한다. 이 프로세스는 최대화 단계에서 연산된 변수에 대한 값들이 다음의 기대 단계를 위해 사용되는 경우에 기대 및 최대화 단계 사이를 반복하게 된다. "EM 알고리즘"이라는 용어는 관련된 알고리즘의 한 부류를 지칭하는 것으로, 상기 기대 및 최대화 단계는 특정한 EM 알고리즘을 구현하기 위한 로드맵을 제공한다. 일부 구현예에서, 예컨대 그래디언트 디센트(Gradient Descent)나 켤레 그래디언트(Conjugate Gradient) 기법 등 EM 알고리즘 외에 다른 기법을 사용하여 최대 가능성 평가치를 찾는다.
EM 알고리즘과 같은 기법을 사용하여, 번역 모델(108)은 주어진 소스 및 대상 언어에 대하여 가장 가능성 있는 파라미터 값들과 정렬 확률을 결정하기 위해 학습된다.
디코더(110)는 번역된 스트링(예컨대, 번역된 텍스트(114)와 같음)을 생성하기 위하여 주어진 스트링(예컨대, 입력 텍스트(112)로부터의 것)에 대하여 언어 모델(104)과 번역 모델(108)을 적용한다. 특히, 디코더(110)는 번역 모델(108)에 의해 결정된 P(f|e)와 언어 모델(104)에 의해 결정된 P(e)의 곱을 최대화하는 문장 e(예컨대, 영어 문장)를 찾음으로써 관찰되는 문장 f(예컨대, 불어 문장)를 번역한다.
도 2는 예시적인 언어 모델(200)의 블록도이다. 언어 모델(200)은 n-그램(202), n-그램 확률(204) 및 백오프 점수(206)를 포함한다. n-그램(202)은 예컨 대 대상 코퍼스(102)로부터 데이터를 학습함으로써 얻어진다. n-그램(202)은 특정한 언어 모델(200)에 대한 각 차수의 n-그램을 포함한다. 예컨대, 5-그램 언어 모델의 경우, n-그램(202)은 학습 데이터로부터 얻어지는 5-그램, 4-그램, 3-그램, 2-그램, 그리고 1-그램을 포함한다. 일부 구현예의 경우, n-그램은 n개의 일련의 연속적인 견본을 나타내며, 여기서 견본은 구두점 및 예컨대 문장의 시작에 대한 식별자 등 기타 정보를 포함할 수 있다.
n-그램 확률(204)은 학습 데이터에 있어서 n-그램 상대적인 빈도의 함수로서 연산되는 확률 평가치이다. 예컨대, 일련의 L 견본이 w 1 L =(w 1, w 2, ..., w L)로 표현될 수 있다. 확률은 다음과 같이 스트링 w 1 L 에 할당될 수 있다.
Figure 112009062401220-PCT00010
여기서, 근사는 스트링에서 다음 단어를 예측하는 경우에 가장 최근의 (n-1)개 견본만이 관련되어 있다는 마코브(Markov) 가정에 기초하고 있으며, P에 대한 "∧" 표시는 그것이 확률 함수의 근사임을 나타낸다.
스트링 w i L 에 있어서 표시된 w i j 의 모든 하위 스트링(예컨대, 특정한 n-그램)에 대하여, 빈도 f(w ij )를 연산할 수 있다. 하위 스트링의 빈도는 길다란 고정된 예제 스트링으로 여겨질 수 있는 학습 데이터에서 해당 하위 스트링의 발생 빈도를 나타낸다. n-그램에 대한 최대 가능성 확률 평가치는 그들의 상대적인 빈도에 의해 주어진다. 각각의 n-그램에 대한 상대적 빈도 r은 다음과 같이 결정될 수 있다.
Figure 112009062401220-PCT00011
n-그램의 상대적 빈도는 n-그램의 빈도를 (n-1) 그램의 빈도로 나눈 값이다. 학습 데이터에서 각각의 n-그램에 대한 확률 평가치는 언어 모델(200)의 n-그램 확률(204)로서 각각의 n-그램에 대하여 연산되고 저장될 수 있다.
특정한 n-그램이 학습 데이터에서 발견되지 않는다면, 이들에 대한 상대적 빈도는 0이거나 정의되지 않을 수 있다. 결과적으로, 대응하는 확률 평가치는 부정확하거나 정의되지 않을 수 있다. 이를 희박한 데이터 문제라고 부른다. 또한, 잠재적으로 언어 모델의 정확도를 높이면서 고차 n-그램을 사용하는 것은 희박한 데이터 문제를 악화시킨다. 그 결과, 누락된 n-그램을 고려하기 위하여 스무딩(Smoothing) 기법이 사용된다.
스무딩은 백오프 점수(206)에 의해 제공될 수 있다. 백오프 점수(206)는 주어진 n-그램에 대하여 0이 아닌 확률이 항상 존재함을 보장하기 위해 사용될 수 있다. 일반적으로, 백오프는 n-그램의 일부가 발생하는지 여부를 고려한다. 예컨대, 트라이그램(Trigram) "xyz"가 발견되지 않는다면, 스무딩은 백오프 n-그램 "yz"가 발생하는지 여부를 확인하기 위하여 수행된다. 만약 "yz"가 발생하지 않는다면, 스무딩은 다시 "z"가 발생하는지 여부를 확인할 수 있다.
일부 구현예에서, 백오프 점수(206)는 n-그램의 상대적 빈도의 함수로서 직 접적으로 계산된다. 결과적으로, 주어진 n-그램에 대한 확률
Figure 112009062401220-PCT00012
는 n-그램이 존재하는 경우 n-그램의 상대적 빈도로서 나타낼 수 있다. 따라서, n-그램 빈도가 0보다 큰 경우,
Figure 112009062401220-PCT00013
> 0이며, 확률 평가치는 단순히 상대적 빈도이다.
Figure 112009062401220-PCT00014
그러나, n-그램 빈도가 0보다 크지 않은 경우, 백오프 점수는 다음과 같이 연산된다.
Figure 112009062401220-PCT00015
여기서 α는 백오프 계수이고, S는 이 연산이 점수이지 확률이 아님을 나타내기 위해 사용되는데, 이들은 n-그램의 상대적 빈도를 이용하여 직접적으로 연산되기 때문이다. 본질적으로, 백오프 계수는 백오프 n-그램의 상대적 빈도에 대해 패널티를 적용한다(예컨대, 존재하지 않는 n-그램을 보상하기 위해). 백오프 계수 α는 일부 구현예에서 k(즉, n-그램 차수)에 의존할 수 있다. 변수 α의 값을 결정하기 위한 예시적인 기법이 이하에 기술된다. 선택적으로는, n-그램 차수에 관계 없이 단일 값(예컨대, α=0.4)이 특정될 수 있다.
백오프가 유니그램에 도달할 때까지 발견되지 않는 백오프 n-그램에 대하여 연산이 반복된다. 유니그램 레벨에서, 점수는 다음과 같이 된다.
Figure 112009062401220-PCT00016
여기서 N은 학습 데이터의 크기이다.
일부 선택적인 구현예에서, 백오프 점수(206)는 특정한 n-그램 차수에 대하여 하나 이상의 α값을 포함한다. 특정한 n-그램에 대한 특정한 점수는 이후 확인된 백오프 n-그램의 상대적 빈도와 n-그램 차수에 대한 α값을 이용하여 입력 n-그램에 응답하여 실행 시간에서 연산된다. 따라서, 개별적인 백오프 점수는 언어 모델(200)에 저장되지 않고, 그 대신에 필요에 따라 생성된다.
도 3은 언어 모델을 생성하기 위한 방법(300)을 나타낸다. 편의상 본 방법(300)은 본 방법(300)을 수행하는 시스템과 관련하여 기술할 것이다.
본 시스템은 학습 데이터를 수신한다(302). 학습 데이터는, 예컨대 대상 코퍼스(예컨대, 대상 코퍼스(102))에 있어서 텍스트의 전부나 일부일 수 있다. 일부 구현예의 경우, n-그램 언어 모델이 확인된 학습 데이터를 이용하여 생성된다.
부가적으로, 일부 구현예의 경우, 대규모의 학습 데이터(예컨대, 테라바이트의 데이터)에 대해 분산형 학습 환경이 사용된다. 분산형 학습을 위한 한가지 예시적인 기법은 맵 리듀스(MapReduce)이다. 맵 리듀스라는 용어는 대규모 데이터 세트를 처리하고 생성하기 위한 모델의 구현물 및 프로그래밍 모델 양자를 나타낸다. 해당 모델 및 그 라이브러리 구현물 양자는 맵 리듀스로서 지칭될 것이다. 맵 리듀스를 이용하여, 프로그래머는 중간(Intermediate) (키, 값) 쌍들의 세트를 생성하기 위해 입력(Input) (키, 값) 쌍들을 처리하는 맵 함수와, 동일한 중간 키와 연계 된 모든 중간 값들을 병합하는 리듀스 함수를 지정한다. 이러한 기능적인 방식으로 작성된 프로그램은 상용 컴퓨터의 대형 클러스터 상에서 자동적으로 평행하게 실행될 수 있다. 입력 데이터를 분할하고, 한 세트의 기계에 걸쳐서 프로그램의 실행을 계획하고, 기계의 실패를 처리하며, 필요한 기계 간 통신을 관리하기 위하여 런타임 시스템이나 프레임워크가 구현될 수 있다.
맵 리듀스 연산은 입력 (키, 값) 쌍의 세트를 취하여, 출력 (키, 값) 쌍의 세트를 생성한다. 사용자는 2개의 함수, 맵과 리듀스로서 해당 연산을 표현한다.
예컨대 프로그래머가 작성한 맵은 입력 (키, 값) 쌍을 취하여, 중간 (키, 값) 쌍의 세트를 생성한다. 맵 리듀스 라이브러리는 동일한 중간 키 I와 연계된 모든 중간 값을 함께 무리지어서 이를 리듀스 함수로 전달한다.
예컨대 프로그래머가 역시 작성한 리듀스 함수는 중간 키 I와 해당 키에 대한 값들의 세트를 받아들인다. 그것은 이들 값을 함께 병합하여 가능한 더 작은 값들의 세트를 형성한다. 일반적으로 단지 0 혹은 하나의 출력 값이 각각의 리듀스 발동에 대하여 생성된다. 중간 값은 반복기(Iterator)를 통해 사용자의 리듀스 함수로 공급된다. 이러한 방식으로 메모리에 들어서기에는 너무 큰 값들의 리스트들을 처리하는 것이 가능하다. 맵 리듀스의 추가적인 세부사항들은 2004년 12월 6일자 운영체제 설계 및 구현에 관한 제6차 심포지엄 의사록 pp. 137-150의 J.Dean 및 S.Ghemawat저 MapReduce : Simplified Data Processing on Large Clusters에 기술되어 있다.
일반적으로, 몇 가지 맵 태스크는 서로 다른 프로세서(예컨대, 서로 다른 연 산 장치) 상에서 서로 다른 부분의 입력 데이터에 관해 독립적으로 동작한다. 마찬가지로, 몇 가지 리듀스 태스크는 일부의 중간 데이터에 대하여 독립적으로 동작한다. 중간 데이터의 부분은 동일한 리듀서(Reducer)가 주어진 중간 키에 대한 모든 값에 대하여 동작하도록 해당 중간 키에 따라 분할된다.
본 시스템은 학습 데이터로부터 어휘를 생성한다(304). 이 어휘는 학습 데이터 내에서 개별적인 견본(예컨대, 단어, 구두점)을 식별한다. 맵 리듀스는 해당 어휘의 각 견본과 연계된 빈도수와 함께 어휘를 생성하기 위하여 학습 데이터에 적용될 수 있다.
맵 페이즈(Phase)는 입력 (키, 값) 쌍을 취하고, 중간 (키, 값) 쌍을 생성한다. 특히, 맵 페이즈에 대한 입력 (키, 값) 쌍은 노드를 식별하는 키와 해당 노드에서 텍스트인 값에 대응한다. 중간 (키, 값) 쌍은 개별 단어에 대응하는 키 값과 해당 단어에 대한 대응하는 값을 갖는다. 리듀스 페이즈는 동일한 키를 갖는 중간 (키, 값) 쌍을 단일의 출력 (키, 값)으로 감소시킨다. 특히, 리듀스는 학습 데이터의 단어에 대한 어휘와 그들의 빈도 (단어, 빈도)를 출력한다.
예컨대, 3개의 파편 S1, S2 및 S3에 대하여, 어휘 및 단어 빈도가 생성될 수 있다. 파편 S1은 학습 데이터 텍스트 "a rose"를 포함한다. 파편 S2는 텍스트 "is a rose"를 포함한다. 파편 S3는 텍스트 "a rose is a rose"를 포함한다. 맵 페이즈 동안, 각각의 파편에 대한 입력은 key = ID 및 value = sentence 이다. 맵 출력은 key = word 및 value = 1 이다. 특히, S1으로부터의 맵은 다음의 중간 (키, 값) 쌍을 생성한다.
(<s>, 1)
(a, 1)
(rose, 1)
(</s>, 1)
S2로부터의 맵은 다음의 중간 (키, 값) 쌍으로서 출력된다.
(<s>, 1)
(is, 1)
(a, 1)
(rose, 1)
(</s>, 1)
끝으로, S3로부터의 맵은 다음의 중간 (키, 값) 쌍을 생성한다.
(<s>, 1)
(a, 1)
(rose, 1)
(is, 1)
(a, 1)
(rose, 1)
(</s>, 1)
일부 구현예의 경우, 중간 (키 값) 쌍은 여분의 엔트리를 단순화함으로써 페이즈(Phase)를 감소시키기 이전에 최적화될 수 있다. 예컨대, S3로부터의 중간 (키, 값) 쌍은 다음으로 최적화될 수 있다.
(<s>, 1)
(a, 2)
(rose, 2)
(is, 1)
(</s>, 1)
리듀스 페이즈 동안에, 중간 (키, 값) 쌍은 key = word 및 value = count인 경우 출력 (키, 값) 쌍을 생성하기 위하여 결합된다. 예제에서 결과적인 출력 (키, 값) 쌍은 다음과 같다.
(<s>, 3)
(a, 4)
(is, 2)
(rose, 4)
(</s>, 3)
리듀스 페이즈의 결과는 단어 빈도는 물론이고 학습 데이터의 텍스트에 대한 어휘를 제공한다. 일부 구현예에서, 특정한 리듀스 파편은 예컨대 해쉬(Hash) 함수를 이용하여 특정한 파편의 중간 (키, 값)에 대하여 식별된다.
어휘를 생성하기 위한 맵 및 리듀스 함수는 다음과 같이 표현될 수 있다.
Map(string key, string value){
//key=docid, ignored; value=document
array words = Tokenize(value);
for i=1..#words Emit (words[i], "1");}
int ShardForKey (string key, int nshards){return Hash(key)% nshards;
}
Reduce(string key, iterator values){
//key=term; values=counts
int sum = 0;
for each v in values
sum += ParseInt(v);
Emit(AsString(sum));
}
본 시스템은 어휘를 이용하여 n-그램을 생성한다(306). 어휘는 본 시스템으로 하여금 최대의 n-그램 차수까지 어휘 견본의 가능한 모든 조합을 결정할 수 있도록 한다. 본 시스템은 학습 데이터 내에서 n-그램 및 그들의 빈도를 생성하기 위해 맵 리듀스를 사용하여 구현될 수 있다.
맵 페이즈는 어휘의 관점에서 학습 데이터 파편을 처리할 수 있다. 리듀스 페이즈는 출력 (키, 값) 쌍이 (n-그램, 빈도) 쌍이 되도록 n-그램을 결합한다.
예컨대, 맵 리듀스를 이용하여 2-그램에 대한 n-그램 빈도를 설명하기 위하여 3개의 예제 파편을 사용한다. 예제 파편은 S4, S5 및 S6이다. 파편 S4는 텍스트 "a rose foo"를 포함한다. 파편 S5는 텍스트 "is a rose bar"를 포함하며, 파편 S6 는 텍스트 "a rose is a rose"를 포함한다.
맵 페이즈 동안, 맵 함수는 어휘의 함수로서 노드에 대한 입력 (키, 값)에 대하여 적용된다. 이 예의 어휘는 (<s>, </s>, <UNK>, a, is, rose)이며, 여기서 <UNK>는 학습 데이터에 있어서 희귀한 단어, 예컨대 "foo"를 나타내는 고유의 플레이스홀더(Placeholder)를 제공한다. 맵 페이즈에서 생성된 중간 (키, 값) 쌍은 2-그램과 동일한 키 및 2-그램에 대한 값을 가진다. 따라서, S4의 경우, 중간 (키, 값) 쌍은 다음과 같다.
(<s> a, 1)
(a rose, 1)
(rose <UNK>, 1)
(<UNK> </s>, 1)
S5의 경우, 중간 (키, 값) 쌍은 다음과 같다.
(<s> is, 1)
(is a, 1)
(a rose, 1)
(rose <UNK>, 1)
(<UNK> </s>, 1)
끝으로, S6에 대한 중간 (키, 값) 쌍은 다음과 같다.
(<s> a, 1)
(a rose, 1)
(rose is, 1)
(is a, 1)
(a rose, 1)
(rose </s>, 1)
리듀스 페이즈 동안, 키는 별개의 2-그램이고 값은 각각의 n-그램에 대한 카운트, key=2-gram, value=count인 경우 출력 (키, 값) 쌍을 생성하기 위해 중간 (키, 값) 쌍이 결합된다. 예제에서 결과적인 출력 (키, 값) 쌍은 다음과 같다.
(<s> a, 2)
(<s> is, 1)
(a rose, 3)
(is a, 2)
(rose is, 1)
(rose <UNK>, 2)
(rose </s>, 1)
(<UNK> </s>, 2)
따라서, 리듀스 페이즈의 결과는 코퍼스에서의 그들의 빈도와 함께 2-그램을 제공한다.
n-그램을 생성하기 위한 맵 함수는 다음과 같이 표현될 수 있다.
Map(string key, string value){
//key=docid, ignored; value=document
array ids = Tolds (Tokenize(value));
for i = 1 .. #ids
for j = 0 .. maxorder-1
Emit(ids[i-j .. i], "1");
}
리듀스 함수는 어휘 생성을 위한 리듀스 함수와 동일한 방식으로 표현될 수 있다.
본 시스템은 n-그램에 대해 상대적인 빈도를 결정한다(308). 상기해 보면, 상대적 빈도는 다음과 같이 정의되었다.
Figure 112009062401220-PCT00017
코퍼스에서 n-그램의 상대적 빈도 역시 맵 리듀스를 이용하여 확인할 수 있다. 예컨대, n-그램은 복수의 파편으로 분할될 수 있다. n-그램 및 빈도의 입력은 상술한 바와 마찬가지 방식으로 n-그램에 대한 상대적 빈도를 생성하기 위하여 맵과 리듀스 페이즈에서 처리될 수 있다.
특히, 동일한 파편 상에서의 상대적 빈도를 계산하기 위하여 분자와 분모에 필요한 값을 배치하는 파편 함수(Sharding Function)가 사용될 수 있다. 특히, n-그램의 첫 번째 단어에 대하여 해쉬 함수가 적용될 수 있다. 결과적으로, 필요한 n-그램
Figure 112009062401220-PCT00018
Figure 112009062401220-PCT00019
는 동일한 첫 번째 단어
Figure 112009062401220-PCT00020
를 공유할 것이고, 동일한 파편 상에 배치될 것이다(모든 유니그램의 경우 제외).
그러나, 일부 구현예의 경우, 첫 번째 단어만을 이용하여 파편화하는 것은 불균형적인 파편을 유발할 수 있다. 예컨대, 불균형적인 수의 n-그램의 시작 부분에서 일부 용어가 발견될 수 있다(예컨대, 마침말, 일부 구두점 표시, 혹은 문장 표시의 시작). 예컨대 다음과 같이 n-그램의 첫 번째 2개의 단어에 기초하여 해쉬함으로써 파편을 더욱 균등하게 균형잡을 수 있다.
Int ShardForKey(string key, int nshards){
String prefix = FirstTwoWords (key);
Return Hash(prefix) % nshards;
}
부가적으로, 유니그램 카운트는 개별적인 파편 내에서의 상대적인 빈도를 계산하기 위해 각각의 파편 상에서 재생된다. 그러나, 데이터 양은 n-그램의 총 수에 비하여 작다.
본 시스템은 백오프 점수를 결정한다(310). 개별적인 파편은 해당 파편에서 n-그램에 대한 상대적 빈도를 계산하기 위하여 필요한 모든 정보를 포함하고 있다. 백오프 점수는 전체 n-그램이 발견되지 않는 경우에 계산된다. 따라서, 만약 전체 n-그램의 상대적 빈도
Figure 112009062401220-PCT00021
가 발견되지 않는다면, 본 시스템은 유니그램 백오프에 도달할 때까지 예컨대
Figure 112009062401220-PCT00022
,
Figure 112009062401220-PCT00023
등 백오프 상대적인 빈도를 반복해서 검색한다. n-그램의 경우 최종 2개의 단어 상에서 파편 화되어 있고 모든 유니그램이 각각의 파편 상에서 복제되어 있으므로, 모든 백오프 연산이 동일한 파편 내에서 수행될 수 있다.
일부 구현예의 경우, 백오프 점수는 파편의 각 백오프 n-그램에 대한 각각의 파편에 관하여 저장된다. 선택적으로, 본 시스템은 백오프 계수 α에 대한 값을 저장하며, 이는 입력 n-그램(예컨대, 번역되기 위한 입력 스트링으로부터)에 응답하여 런타임에서 특정한 백오프 점수를 계산하기 위해 개별적인 파편에 의해 사용된다.
정리하면, 대언어는 다음의 단계로 코퍼스로부터 생성될 수 있다. 본 시스템은 어휘를 생성한다. 코퍼스로부터의 입력 텍스트를 이용하여, 본 시스템은 1-그램의 어휘와 그들의 빈도를 출력한다. 다음으로, n-그램 및 그들의 주파수가 확인된다. n-그램 및 그들의 빈도는 입력으로서의 텍스트와 어휘를 이용하여 확인된다. n-그램에 대한 상대적 빈도는 n-그램 및 그들 각각의 빈도를 이용하여 연산된다. 본 프로세스의 각 단계는 상술한 바와 같이 맵 리듀스를 이용하여 구현될 수 있다. 이후 백오프 점수가 n-그램의 상대적 빈도의 함수로서 직접적으로 결정된다.
전술한 바와 같이, n-그램 차수에 따라 백오프 계수 α에 대해 복수의 값이 존재할 수 있다. 예컨대, 특정한 샘플 데이터에 대하여 4-그램이 종종 사용된다면, 5-그램부터 4-그램까지의 백오프를 위한 패널티(즉, α값)는 작아야 한다. 반대로, 만약 4-그램이 샘플 데이터 내에서 자주 사용된다면, 4-그램부터 3-그램까지의 백오프를 위한 패널티는 커야 한다.
저항 데이터(Heldout Data)라고 하는 특정한 샘플 데이터에 대하여, 각각의 차수에서 얼마나 많은 n-그램이 언어 모델에서 발생하는지에 대한 카운트가 얻어질 수 있다. n-그램 언어 모델에서 복수의 백오프 계수 α를 결정하기 위한 한가지 기법은 각 차수에서의 카운트에 비례하는 백오프 계수를 결정하는 것을 포함한다. 예컨대, 특정한 저항 데이터 세트에 대하여, 모든 k-그램을 일정한 최대 차수 n까지, 즉 k = 1, ..., n에 대하여 검사한다. 차수 k에서 n-그램의 커버리지(Coverage)는 언어 모델에서도 발생하는 저항 데이터에 있어서 차수 k의 n-그램 발생 횟수를 저항 데이터에 있어서 차수 k의 n-그램 발생 총수로 나눈 값, 즉 Ck=Lk/Nk로서 계산되며, 여기서 Lk는 Nk보다 작거나 같다. 부가적으로, Ck는 다음으로 더 낮은 n-그램 차수에서의 커버리지보다 작거나 같은바, 다시 말해 Ck는 Ck -1보다 작거나 같다. Ck의 연산된 값이 주어진 경우에, 각 차수에 있어서 백오프 계수 값 αk는 다음과 같이 결정된다.
Figure 112009062401220-PCT00024
k = n(최고 차수)인 경우, 및
Figure 112009062401220-PCT00025
k= 1, ..., (n-1)인 경우
결과적으로, αk는 각 차수에서의 카운트에 비례한다. 예컨대, 저항 데이터와 5의 최대 차수의 세트에 대하여, 다음의 백오프 계수가 연산될 수 있다. α5 = 0.7012, α4 = 0.6090, α3 = 0.2547, α2 = 0.1052, 그리고 α1 = 0.0399. 기호 α5는 5-그램부터 4-그램까지의 백오프 시의 백오프 계수를 나타낸다. 일부 구현예의 경 우, 1-그램부터 0-그램까지의 백오프가 존재하지 않고, 따라서 α1값이 사용되지 않는다.
다른 기법에서는 백오프 계수를 연산하기 위한 공식을 다음과 같이 약간 조정한다.
Figure 112009062401220-PCT00026
k = n(최고 차수)인 경우, 및
Figure 112009062401220-PCT00027
k= 1, ..., (n-1)인 경우
상기 조정은 더 낮은 차수의 백오프에 대한 αk 값에서 소폭의 상승을 유발한다. 예컨대, 동일한 저항 데이터를 이용하면 백오프 계수는 다음과 같이 계산된다. α5 = 0.7012, α4 = 0.6090, α3 = 0.3632, 그리고 α2 = 0.1728.
다른 기법에서, 백오프 계수를 연산하기 위한 공식은 다음과 같이 더 높은 차수의 백오프에 대하여 더 높은 백오프 값을 제공한다.
Figure 112009062401220-PCT00028
k = n(최고 차수)인 경우
Figure 112009062401220-PCT00029
k = 2, ..., (n-1)인 경우, 및
Figure 112009062401220-PCT00030
k = 1인 경우
상술한 공식은 다음과 같이 상기 샘플 αk 값을 조정한다. α5 = 0.9177, α4 = 0.9916, α3 = 0.4719, α2 = 0.1761, 그리고 α1 = 0.1858. 전술한 바와 같이 α1은 주어진 언어 모델에 대하여 무시될 수 있다.
일부 구현예의 경우, 최고값이 포함될 수 있다. 최고값은 백오프 값이 너무 커지는 것을 방지하기 위하여 도입될 수 있다. 따라서, 백오프 계수는 일정한 αmax 를 넘지 못하여 백오프 값이 연산된 αk값의 최소치 혹은 αmax와 같게 된다. 예컨대, 상술한 샘플 α값에 있어서, αmax = 0.95 가 사용되는 경우, 백오프 계수 α4는 연산된 0.9916의 값으로부터 최고값 0.95로 줄어든다.
백오프 계수를 연산하기 위한 한가지 다른 기법의 경우, Mk 항이 도입된다. Mk는 저항 데이터 세트에서 사용되는 차수 k에서의 확률의 합이다. 백오프 계수는 이후 차수 k에서 백오프된 분산의 총 양이 차수 k에서의 저항 세트의 확률 양에 비례하도록 연산된다.
Figure 112009062401220-PCT00031
k = 2, ..., n 인 경우, 및
Figure 112009062401220-PCT00032
k = 1 인 경우,
저항 데이터에 대한 동일한 샘플 세트를 다시 참조하면, 상술한 공식은 다음의 예시적인 백오프 값을 제공한다. α5 = 0.5396, α4 = 0.5138, α3 = 0.1111, α2 = 0.0248, 그리고 α1 = 0.0. 전술한 예와 마찬가지로, 최대의 백오프 값 αmax를 사용하여 백오프 값을 상한지을 수 있다.
일부 구현예의 경우, 차별적 학습(Discriminative Training)을 사용하여 하나 이상의 백오프 계수에 대한 값을 결정할 수 있다. 기계 번역 시스템은 일반적으로 기준 번역의 세트가 이용 가능한 일부 샘플 데이터에 대하여, 예컨대 BLEU(Bilingual Evaluation Understudy) 점수 등 번역 품질의 자동 측정을 최소화하기 위해 자유 파라미터를 최적화하기 위한 차별적 학습 기법을 사용한다. 차별적 학습은 수치화된 점수를 직접적으로 최적화하려 하지 않는다. 그 대신에, 다른 백오프 계수 값보다 나은 번역 점수를 생성하는 백오프 계수 값의 세트를 식별한다. BLEU 점수는 예컨대 2002년도 연산 언어학을 위한 협회의 40주년 미팅 pp. 311-318의 Papineni, K., Roukos, S., Ward, T. 및 Zhu, W.J.저 ACL-2002의 "BLEU: a method for automatic evaluation of machine translation"에 기술되어 있다.
특히, 백오프 계수를 차별적으로 학습하기 위하여, 번역을 이용할 수 있는 문장의 집합이 백오프 계수에 대한 서로 다른 값을 이용하여 번역된다. 더 높은 값의 BLEU(혹은 비슷한) 점수를 낳는 백오프 계수가 사용된다. 통계적인 기계 번역에 있어서의 구성을 차별적으로 학습하는 한가지 예시적인 방법은 2003년도 연산 언어학을 위한 협회(ACL, Association for Computational Linguistics) 41주년 미팅 의사록 pp. 160-167의 Franz Josef Och저 Minimum error rate training in statistical machine translation에 기술되어 있다. 상술한 방법은 백오프 계수를 학습하기 위해 사용 가능하다. 상술한 참고문헌에 기술된 일반적인 방법은 부가적인 "특성 함수(Feature Functions)"로서 번역 중 각 단어의 위치에서 언어 모델을 적용하는 경우에 겪는 실제적인 백오프의 정도를 취함으로써 백오프 계수를 결정하 기 위하여 적용될 수 있다. 결과적인 특성 함수 가중치는 이후 로그 선형 관계(예컨대, 디코딩 탐색 목적 함수의 로그-선형 공식)를 이용하여 백오프 계수로 변환된다. 특성 함수는 특정한 백오프 레벨(예컨대, 언어 모델이 정확하게 k번 백오프된 경우에는 1이고 그 외에는 0), 계단 함수(예컨대 언어 모델이 적어도 k번 백오프된 경우에 1), 혹은 기타의 파라미터화를 위한 표시자 함수(Indicator Function)일 수 있다.
본 설명은 기계 번역 시스템에 관하여 기술된 것이다. 그러나, 언어 모델 및 개시된 언어 모델을 생성하고 학습하기 위한 기법은 예컨대 발성 인식, 광학 문자 인식, 문자 인식 등을 포함하여 언어 모델을 이용하는 기타의 시스템에서 구현될 수도 있다.
도 4는 기계 번역을 위한 예시적인 시스템이다. 데이터 처리 장치(410)는 하드웨어/펌웨어, 운영 체제 및 번역 프로그램(420)을 포함하는 하나 이상의 프로그램을 포함할 수 있다. 번역 프로그램(420)은 본 명세서에서 설명한 동작들을 기동하기 위하여 데이터 처리 장치(410)와 함께 동작한다. 따라서, 번역 프로그램(420)은, 하나 이상의 프로세서 및 컴퓨터로 판독 가능한 매체(예컨대 메모리)와 결합하여, 본 시스템(400)에 있어서 하나 이상의 구조적인 컴포넌트를 나타낸다.
번역 프로그램(420)은 번역 처리용 어플리케이션이거나 그 일부일 수 있다. 여기에서 사용되는 바와 같이, 어플리케이션은 정의된 목적을 위해 사용되는 개별적인 컴퓨터 도구로서 사용자가 인지하는 컴퓨터 프로그램이다. 어플리케이션은 데이터 처리 장치(410)의 운영 체제(OS)로 완전히 구축될 수 있으며, 혹은 어플리케 이션은 서로 다른 장소에 배치된 서로 다른 컴포넌트를 가질 수 있으며(예컨대, OS 혹은 커널 모드에 일부가 있고, 사용자 모드에 다른 일부가 있고, 원격 서버에 또 다른 일부가 있는 경우), 어플리케이션은 장치(410)의 소프트웨어 플랫폼으로서 기능하는 런타임 라이브러리 상에 구축될 수 있다. 나아가, 어플리케이션 프로세스는 하나 이상의 프로세서(490)를 이용하여 네트워크(480)에 걸쳐서 분산될 수 있다. 예컨대, 번역 프로그램(420)의 언어 모델은 하나 이상의 프로세서(490)에 걸쳐서 분산형으로 학습될 수 있다.
데이터 처리 장치(410)는 하나 이상의 프로세서(430) 및 적어도 하나의 컴퓨터로 판독 가능한 매체(440, 예컨대 RAM, 저장 장치 등)를 포함한다. 데이터 처리 장치(410)는 또한 통신 인터페이스(450), 하나 이상의 사용자 인터페이스 장치(460) 및 하나 이상의 부가적인 장치(470)를 포함할 수 있다. 사용자 인터페이스 장치(460)는 디스플레이 화면, 키보드, 마우스, 스틸러스, 혹은 이들의 모든 조합을 포함할 수 있다.
일단 프로그램되면, 데이터 처리 장치(410)는 상대적인 n-그램 빈도의 함수로서 백오프 계수를 확인하기 위해 동작할 수 있다. 부가적으로, 언어 모델은 백오프 계수가 단일 파편으로부터 얻어질 수 있도록 생성 가능하다.
본 명세서에 설명한 주제 및 기능적 동작들의 실시형태는, 본 명세서에서 설명한 구조 및 그 구조적인 등가물이나 이들의 하나 이상의 조합을 포함하여, 디지털 전자 회로나 컴퓨터 소프트웨어, 펌웨어, 혹은 하드웨어로 구현될 수 있다. 본 명세서에서 설명한 주제의 실시형태는 하나 이상의 컴퓨터 프로그램 제품, 즉 데이 터 처리 장치의 동작을 제어하거나 이것에 의해 실행되기 위한 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령어로 구성된 하나 이상의 모듈로서 구현 가능하다. 유형의 프로그램 저장매체는 전파형 신호나 컴퓨터로 판독 가능한 매체일 수 있다. 전파형 신호는 인공적으로 생성된 신호, 예컨대 컴퓨터에 의한 실행을 위하여 적당한 수신기 장치로의 전송을 위한 정보를 인코딩하기 위해 생성되는 기계가 생성한 전기, 광학 혹은 전자기 신호이다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 주는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
"데이터 처리 장치"라는 용어는 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 복수의 프로세서나 컴퓨터를 포함해서 데이터를 처리하기 위한 모든 장치, 도구 및 기계를 포함한다. 장치는, 하드웨어 외에도, 요청된 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예컨대 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, OS, 혹은 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램이 파일 시스템 의 파일에 반드시 대응해야 하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 복수의 협력형 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
본 명세서에서 설명하는 프로세스와 논리 흐름은 입력 데이터에 대하여 동작하고 출력을 생성함으로써 기능을 수행하기 위한 하나 이상의 프로그램을 실행하는 하나 이상의 프로그래머블 프로세서에 의해 수행 가능하다. 프로세스와 논리 흐름은 예컨대 FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 특수 목적의 논리 회로에 의해 수행될 수도 있으며, 장치는 이러한 것으로서 구현될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예컨대 범용 혹은 특수 목적의 마이크로프로세서 양자 및 어떤 종류의 디지털 컴퓨터의 어떠한 하나 이상의 프로세서라도 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 혹은 양자로부터 명령어와 데이터를 수신할 것이다. 컴퓨터의 핵심적인 요소는 명령어와 데이터를 저장하기 위한 하나 이상의 메모리 장치 및 명령을 수행하기 위한 프로세서이다. 또한, 컴퓨터는 일반적으로 예컨대 자기, 자기광학 디스크나 광학 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대량 저장 장치로부터 데 이터를 수신하거나 그것으로 데이터를 전송하거나 혹은 그러한 동작 둘 다를 수행하기 위하여 동작 가능하도록 결합되거나 이를 포함할 것이다. 그러나, 컴퓨터가 그러한 장치를 가질 필요는 없다. 나아가 컴퓨터는, 몇 가지만 언급하자면, 예컨대 이동전화, PDA, 모바일 오디오나 영상 플레이어, 게임 콘솔, GPS 수신기와 같은 기타의 장치로 구체화될 수 있다.
컴퓨터 프로그램 명령어와 데이터를 저장하기 위한 컴퓨터로 판독 가능한 매체는 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위하여, 본 명세서에서 설명한 주제의 실시형태는, 사용자에게 정보를 디스플레이하기 위하여 예컨대 CRT나 LCD 모니터와 같은 디스플레이 장치를 가지고, 사용자가 컴퓨터에 입력을 제공할 수 있는 예컨대 마우스나 트랙볼(Trackball)과 같은 지시 장치 및 키보드를 갖는 컴퓨터 상에서 구현될 수 있다. 물론 다른 종류의 장치도 사용자와의 상호 작용을 제공하기 위하여 사용 가능한데, 예컨대 사용자에게 제공되는 피드백은 가시적인 피드백, 가청 피드백 혹은 촉각형 피드백과 같은 감각적인 피드백의 어떠한 형태일 수도 있으며, 사용자로부터의 입력은 음향, 발성 혹은 촉각적 입력을 포함하는 어떠한 형태로 수신 가능하다.
본 명세서에서 설명한 주제의 실시형태는 예컨대 데이터 서버아 같은 백엔드 컴포넌트를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다. 통신 네트워크의 예로는 LAN(Local Area Network)과 예컨대 인터넷과 같은 WAN(Wide Area Network)이 포함된다.
연산 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 보통 서로 떨어져 있으며, 일반적으로는 통신 네트워크를 통하여 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터 상에서 구동되고 서로에 대하여 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의하여 발생한다.
본 명세서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 어떠한 발명의 범위나 청구 가능한 것의 범위에 대한 제한으로서 이해되어서는 안되며, 특정 발명의 특정한 실시형태에 고유할 수 있는 특징들의 설명으로서 이해되어야 한다. 별개의 실시형태의 문맥으로 본 명세서에서 설명한 특정한 특징들은 단일 실시형태의 조합으로 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 설명한 다양한 특징들은 복수의 실시형태에서 별개로 구현되거나 어떤 적당한 하위 조합으로서도 구현 가능하다. 나아가, 특정 조합에서 동작하는 것으로서 특징들을 설명하고 그와 같이 초기에 청구할 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 도면에서 특정한 순서로 동작을 묘사하고 있지만, 이는 나타낸 특정 순서나 순차적인 순서로 그러한 동작들이 수행되어야 한다거나, 바람직한 결과를 얻기 위하여 설명한 모든 동작들이 수행되어야 한다는 것으로 이해해서는 안된다. 특정한 경우, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태에 있어서 다양한 시스템 컴포넌트의 분리는 모든 실시형태에서 그러한 분리를 요구하는 것으로 이해해서는 안되며, 설명한 프로그램 컴포넌트 및 시스템은 복수의 소프트웨어 제품에 패키징되거나 단일 소프트웨어 제품에 함께 공통적으로 통합될 수 있다는 점을 이해해야 한다.
본 명세서에서 설명한 주제의 특정 실시형태에 대해 설명하였다. 기타 실시형태는 다음의 청구항의 범위 내에 속한다. 예컨대 청구항에서 인용한 액션은 상이한 순서로 수행되면서도 여전히 바람직한 결과를 달성할 수 있다. 일 예로서, 첨부한 도면에 묘사한 프로세스가, 바람직한 결과를 얻기 위해, 나타낸 특정 순서나 순차적인 순서를 반드시 요구하는 것은 아니다. 특정한 구현예에서, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다.

Claims (22)

  1. 코퍼스로부터의 n-그램의 집합 및 백오프 점수의 집합을 포함하는 언어 모델을 구비하는 시스템으로서,
    상기 n-그램 각각은 상기 코퍼스에 있어서 대응하는 상대적 빈도 및 상기 n-그램에 있어서 견본의 수에 대응하는 차수 n을 가지고, 상기 n-그램 각각은 n-1의 차수를 갖는 백오프 n-그램에 대응하며,
    상기 백오프 점수 각각은 n-그램과 연계되고, 상기 백오프 점수는 상기 코퍼스에 있어서 대응하는 백오프 n-그램의 상대적 빈도와 백오프 계수의 함수로서 결정되는 것을 특징으로 하는 시스템.
  2. 청구항 1에 있어서,
    상기 백오프 계수는 일정한 패널티 값을 포함하는 것을 특징으로 하는 시스템.
  3. 청구항 1에 있어서,
    상기 백오프 계수는 상기 n-그램의 차수에 의존하는 것을 특징으로 하는 시스템.
  4. 청구항 3에 있어서,
    상기 백오프 계수는 동일한 데이터 내에서 발생하는 각 차수의 n-그램의 수를 이용하여 얻어지는 것을 특징으로 하는 시스템.
  5. 청구항 1에 있어서,
    상기 백오프 계수는 상기 언어 모델의 차별적 학습을 이용하여 얻어지는 것을 특징으로 하는 시스템.
  6. 청구항 5에 있어서,
    상기 백오프 계수를 확인하기 위하여 표시자 특성 함수(Indicator Feature Functions)가 사용되는 것을 특징으로 하는 시스템.
  7. 학습 데이터의 코퍼스로부터 n-그램의 집합을 확인하는 단계; 및 하나 이상의 백오프 계수를 확인하는 단계를 포함하는 언어 모델을 생성하는 단계를 포함하는 방법으로서,
    상기 집합의 각 n-그램은 상기 코퍼스에서 발생하는 것의 대응하는 상대적 빈도 및 상기 n-그램에 있어서 견본의 수에 대응하는 차수 n을 가지고, 상기 n-그램 각각은 n-1의 차수를 갖는 백오프 n-그램에 대응하며,
    상기 백오프 계수는 백오프 n-그램의 상대적 빈도의 함수로서 하나 이상의 n-그램에 대하여 백오프 점수를 확인하기 위해 사용되는 것을 특징으로 하는 방법.
  8. 청구항 7에 있어서,
    상기 하나 이상의 백오프 계수를 확인하는 단계는, 샘플 데이터의 세트에 대하여 차별적 학습을 수행하는 단계를 포함하고,
    상기 차별적 학습은 번역 품질의 측정치를 최대화하는 하나 이상의 백오프 계수를 위한 값을 확인하는 것을 특징으로 하는 방법.
  9. 청구항 8에 있어서,
    상기 하나 이상의 백오프 계수를 확인하기 위하여 표시자 특성 함수가 사용되는 것을 특징으로 하는 방법.
  10. 청구항 7에 있어서,
    상기 하나 이상의 백오프 계수를 확인하는 단계는, 각각의 n-그램 차수에 대하여 백오프 계수를 결정하는 단계를 포함하고,
    상기 백오프 계수는 샘플 데이터 세트에 있어서 각 차수에서 상기 n-그램의 발생 횟수로부터 얻어지는 것을 특징으로 하는 방법.
  11. 청구항 7에 있어서,
    상기 하나 이상의 백오프 계수를 사용하여 n-그램에 대한 백오프 점수를 연산하고 상기 백오프 점수를 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 데이터 처리 장치로 하여금, 학습 데이터의 코퍼스로부터 n-그램의 집합을 확인하는 동작; 및 하나 이상의 백오프 계수를 확인하는 동작을 포함하는 언어 모델을 생성하는 동작을 포함하는 동작을 수행하게 하도록 작동 가능하며, 유형의 프로그램 저장매체 상에 인코딩되는 컴퓨터 프로그램 제품으로서,
    상기 집합의 각 n-그램은 상기 코퍼스에서 발생하는 것의 대응하는 상대적 빈도 및 상기 n-그램에 있어서 견본의 수에 대응하는 차수 n을 가지고, 상기 n-그램 각각은 n-1의 차수를 갖는 백오프 n-그램에 대응하며,
    상기 백오프 계수는 백오프 n-그램의 상대적 빈도의 함수로서 하나 이상의 n-그램에 대하여 백오프 점수를 확인하기 위해 사용되는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  13. 청구항 12에 있어서,
    상기 하나 이상의 백오프 계수를 확인하는 동작은, 샘플 데이터의 세트에 대하여 차별적 학습을 수행하는 동작을 포함하고,
    상기 차별적 학습은 번역 품질의 측정치를 최대화하는 하나 이상의 백오프 계수를 위한 값을 확인하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  14. 청구항 13에 있어서,
    상기 하나 이상의 백오프 계수를 확인하기 위하여 표시자 특성 함수가 사용 되는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  15. 청구항 12에 있어서,
    상기 하나 이상의 백오프 계수를 확인하는 동작은, 각각의 n-그램 차수에 대하여 백오프 계수를 결정하는 동작을 포함하고,
    상기 백오프 계수는 샘플 데이터 세트에 있어서 각 차수에서 상기 n-그램의 발생 횟수로부터 얻어지는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  16. 청구항 12에 있어서,
    상기 하나 이상의 백오프 계수를 사용하여 n-그램에 대한 백오프 점수를 연산하고 상기 백오프 점수를 저장하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  17. 복수의 견본을 갖는 입력 스트링을 수신하는 단계; 및
    상기 입력 스트링에 있어서 각각의 n-그램에 대한 확률을 확인하기 위하여 언어 모델을 사용하는 단계를 포함하는 방법으로서,
    상기 입력 스트링은 하나 이상의 n-그램으로 분할되고, 각각의 n-그램은 차수를 가지며, 상기 차수는 상기 n-그램에 있어서 견본의 수를 식별하며,
    상기 입력 스트링의 첫 번째 n-그램이 상기 언어 모델에서 발견되지 않는 경우에, 백오프 n-그램을 확인하되, 여기서 상기 백오프 n-그램은, 상기 언어 모델에 서 발견될 때에, 상기 첫 번째 n-그램의 차수보다 하나 낮은 차수를 가지고,
    상기 첫 번째 n-그램에 대한 백오프 점수를 확인하되, 상기 백오프 점수는 백오프 계수와 상기 언어 모델에 있어서 상기 백오프 n-그램의 상대적 빈도의 함수인 것을 특징으로 하는 방법.
  18. 청구항 17에 있어서,
    상기 백오프 점수를 확인하는 단계는, 상기 n-그램에 대해 연산된 백오프 점수를 검색하는 단계를 포함하는 것을 특징으로 하는 방법.
  19. 청구항 17에 있어서,
    상기 백오프 점수를 확인하는 단계는, 상기 n-그램에 대한 상기 백오프 계수 및 상기 백오프 n-그램의 상기 상대적 빈도를 이용하여 상기 백오프 점수를 연산하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 데이터 처리 장치로 하여금, 복수의 견본을 갖는 입력 스트링을 수신하는 동작; 및 상기 입력 스트링에 있어서 각각의 n-그램에 대한 확률을 확인하기 위하여 언어 모델을 사용하는 동작을 수행하게 하도록 작동 가능하며, 유형의 프로그램 저장매체 상에 인코딩되는 컴퓨터 프로그램 제품으로서,
    상기 입력 스트링은 하나 이상의 n-그램으로 분할되고, 각각의 n-그램은 차수를 가지며, 상기 차수는 상기 n-그램에 있어서 견본의 수를 식별하며,
    상기 입력 스트링의 첫 번째 n-그램이 상기 언어 모델에서 발견되지 않는 경우에, 백오프 n-그램을 확인하되, 여기서 상기 백오프 n-그램은, 상기 언어 모델에서 발견될 때에, 상기 첫 번째 n-그램의 차수보다 하나 낮은 차수를 가지고,
    상기 첫 번째 n-그램에 대한 백오프 점수를 확인하되, 상기 백오프 점수는 백오프 계수와 상기 언어 모델에 있어서 상기 백오프 n-그램의 상대적 빈도의 함수인 것을 특징으로 하는 컴퓨터 프로그램 제품.
  21. 청구항 20에 있어서,
    상기 백오프 점수를 확인하는 동작은, 상기 n-그램에 대해 연산된 백오프 점수를 검색하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  22. 청구항 20에 있어서,
    상기 백오프 점수를 확인하는 동작은, 상기 n-그램에 대한 상기 백오프 계수 및 상기 백오프 n-그램의 상기 상대적 빈도를 이용하여 상기 백오프 점수를 연산하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020097021287A 2007-03-26 2008-03-25 기계 번역에서의 대언어 모델 KR20100015518A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US92028307P 2007-03-26 2007-03-26
US60/920,283 2007-03-26
US11/767,436 US8332207B2 (en) 2007-03-26 2007-06-22 Large language models in machine translation
US11/767,436 2007-06-22

Publications (1)

Publication Number Publication Date
KR20100015518A true KR20100015518A (ko) 2010-02-12

Family

ID=39789254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097021287A KR20100015518A (ko) 2007-03-26 2008-03-25 기계 번역에서의 대언어 모델

Country Status (6)

Country Link
US (2) US8332207B2 (ko)
EP (1) EP2137639B1 (ko)
JP (1) JP5484317B2 (ko)
KR (1) KR20100015518A (ko)
CN (1) CN101707873B (ko)
WO (1) WO2008118905A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101509727B1 (ko) * 2013-10-02 2015-04-07 주식회사 시스트란인터내셔널 자율학습 정렬 기반의 정렬 코퍼스 생성 장치 및 그 방법과, 정렬 코퍼스를 사용한 파괴 표현 형태소 분석 장치 및 그 형태소 분석 방법

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090326913A1 (en) * 2007-01-10 2009-12-31 Michel Simard Means and method for automatic post-editing of translations
US8332207B2 (en) 2007-03-26 2012-12-11 Google Inc. Large language models in machine translation
US9002869B2 (en) * 2007-06-22 2015-04-07 Google Inc. Machine translation for query expansion
US8060360B2 (en) * 2007-10-30 2011-11-15 Microsoft Corporation Word-dependent transition models in HMM based word alignment for statistical machine translation
US8849665B2 (en) * 2008-01-30 2014-09-30 At&T Intellectual Property I, L.P. System and method of providing machine translation from a source language to a target language
US8844033B2 (en) * 2008-05-27 2014-09-23 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for detecting network anomalies using a trained probabilistic model
US20100023315A1 (en) * 2008-07-25 2010-01-28 Microsoft Corporation Random walk restarts in minimum error rate training
US8301619B2 (en) * 2009-02-18 2012-10-30 Avaya Inc. System and method for generating queries
US20100299132A1 (en) * 2009-05-22 2010-11-25 Microsoft Corporation Mining phrase pairs from an unstructured resource
JP2011028703A (ja) * 2009-07-23 2011-02-10 Toyo Networks & System Integration Co Ltd 検索システムに組み込んだセキュリティシステム
US20110035211A1 (en) * 2009-08-07 2011-02-10 Tal Eden Systems, methods and apparatus for relative frequency based phrase mining
WO2011050494A1 (en) * 2009-10-29 2011-05-05 Google Inc. Generating input suggestions
JP5408442B2 (ja) * 2010-01-21 2014-02-05 株式会社日立製作所 並列分散処理方法、及び、計算機システム
US8655647B2 (en) * 2010-03-11 2014-02-18 Microsoft Corporation N-gram selection for practical-sized language models
CN101882226B (zh) * 2010-06-24 2013-07-24 汉王科技股份有限公司 提高字符间语言区分度的方法及装置
TWI434187B (zh) 2010-11-03 2014-04-11 Inst Information Industry 文字轉換方法與系統
CN102486770B (zh) * 2010-12-02 2014-09-17 财团法人资讯工业策进会 文字转换方法与系统
US8660836B2 (en) 2011-03-28 2014-02-25 International Business Machines Corporation Optimization of natural language processing system based on conditional output quality at risk
US9367526B1 (en) * 2011-07-26 2016-06-14 Nuance Communications, Inc. Word classing for language modeling
US8953885B1 (en) * 2011-09-16 2015-02-10 Google Inc. Optical character recognition
CN102509549B (zh) * 2011-09-28 2013-08-14 盛乐信息技术(上海)有限公司 语言模型训练方法及系统
CN102663083A (zh) * 2012-04-01 2012-09-12 南通大学 基于分布式计算的大规模社交网络信息抽取方法
US8983211B2 (en) * 2012-05-14 2015-03-17 Xerox Corporation Method for processing optical character recognizer output
US20130325436A1 (en) * 2012-05-29 2013-12-05 Wright State University Large Scale Distributed Syntactic, Semantic and Lexical Language Models
CN103631771A (zh) * 2012-08-28 2014-03-12 株式会社东芝 改进语言模型的方法及装置
US10095692B2 (en) * 2012-11-29 2018-10-09 Thornson Reuters Global Resources Unlimited Company Template bootstrapping for domain-adaptable natural language generation
US9484023B2 (en) 2013-02-22 2016-11-01 International Business Machines Corporation Conversion of non-back-off language models for efficient speech decoding
IN2013MU02217A (ko) * 2013-07-01 2015-06-12 Tata Consultancy Services Ltd
US20150051896A1 (en) * 2013-08-14 2015-02-19 National Research Council Of Canada Method and apparatus to construct program for assisting in reviewing
US10346381B2 (en) * 2013-11-14 2019-07-09 Facebook, Inc. Atomic update operations in a data storage system
US10176256B1 (en) 2013-12-23 2019-01-08 BroadbandTV, Corp Title rating and improvement process and system
US9842592B2 (en) 2014-02-12 2017-12-12 Google Inc. Language models using non-linguistic context
US9412365B2 (en) 2014-03-24 2016-08-09 Google Inc. Enhanced maximum entropy models
US20150317314A1 (en) * 2014-04-30 2015-11-05 Linkedln Corporation Content search vertical
CN106663092B (zh) 2014-10-24 2020-03-06 谷歌有限责任公司 具有罕见词处理的神经机器翻译系统
US10134394B2 (en) * 2015-03-20 2018-11-20 Google Llc Speech recognition using log-linear model
US10268684B1 (en) * 2015-09-28 2019-04-23 Amazon Technologies, Inc. Optimized statistical machine translation system with rapid adaptation capability
US9959271B1 (en) 2015-09-28 2018-05-01 Amazon Technologies, Inc. Optimized statistical machine translation system with rapid adaptation capability
US10185713B1 (en) 2015-09-28 2019-01-22 Amazon Technologies, Inc. Optimized statistical machine translation system with rapid adaptation capability
US10268710B2 (en) 2015-10-07 2019-04-23 Oracle International Corporation Relational database organization for sharding
US9690777B1 (en) * 2015-12-10 2017-06-27 Webinterpret Translating website listings and propagating the translated listings to listing websites in other regions
US10832664B2 (en) 2016-08-19 2020-11-10 Google Llc Automated speech recognition using language models that selectively use domain-specific model components
CN107885716B (zh) * 2016-09-29 2020-02-11 腾讯科技(深圳)有限公司 文本识别方法及装置
US9916305B1 (en) * 2016-12-28 2018-03-13 Facebook, Inc. Translating terms within a digital communication
WO2020112789A1 (en) * 2018-11-30 2020-06-04 Google Llc Speech processing
CN110472257A (zh) * 2019-08-20 2019-11-19 南京题麦壳斯信息科技有限公司 一种基于句对的机器翻译引擎测评优选方法及系统
US11194773B2 (en) 2019-09-12 2021-12-07 Oracle International Corporation Integration of existing databases into a sharding environment
US11735169B2 (en) * 2020-03-20 2023-08-22 International Business Machines Corporation Speech recognition and training for data inputs
US11704497B2 (en) * 2020-09-09 2023-07-18 International Business Machines Corporation Generating and using a sentence model for answer generation
CN112466292B (zh) * 2020-10-27 2023-08-04 北京百度网讯科技有限公司 语言模型的训练方法、装置和电子设备
US11861320B1 (en) 2023-02-27 2024-01-02 Casetext, Inc. Text reduction and analysis interface to a text generation modeling system
US11860914B1 (en) 2023-02-27 2024-01-02 Casetext, Inc. Natural language database generation and query system
US11861321B1 (en) 2023-06-29 2024-01-02 Casetext, Inc. Systems and methods for structure discovery and structure-based analysis in natural language processing models

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9701866D0 (en) * 1997-01-30 1997-03-19 British Telecomm Information retrieval
US6272456B1 (en) * 1998-03-19 2001-08-07 Microsoft Corporation System and method for identifying the language of written text having a plurality of different length n-gram profiles
JP3004254B2 (ja) * 1998-06-12 2000-01-31 株式会社エイ・ティ・アール音声翻訳通信研究所 統計的シーケンスモデル生成装置、統計的言語モデル生成装置及び音声認識装置
US6167369A (en) * 1998-12-23 2000-12-26 Xerox Company Automatic language identification using both N-gram and word information
US20030191625A1 (en) * 1999-11-05 2003-10-09 Gorin Allen Louis Method and system for creating a named entity language model
US6865528B1 (en) * 2000-06-01 2005-03-08 Microsoft Corporation Use of a unified language model
US20020077823A1 (en) * 2000-10-13 2002-06-20 Andrew Fox Software development systems and methods
JP3950957B2 (ja) * 2002-03-15 2007-08-01 独立行政法人産業技術総合研究所 言語処理装置および方法
US7171358B2 (en) * 2003-01-13 2007-01-30 Mitsubishi Electric Research Laboratories, Inc. Compression of language model structures and word identifiers for automated speech recognition systems
US7197457B2 (en) * 2003-04-30 2007-03-27 Robert Bosch Gmbh Method for statistical language modeling in speech recognition
US7603267B2 (en) * 2003-05-01 2009-10-13 Microsoft Corporation Rules-based grammar for slots and statistical model for preterminals in natural language understanding system
US7711545B2 (en) * 2003-07-02 2010-05-04 Language Weaver, Inc. Empirical methods for splitting compound words with application to machine translation
JP2005100335A (ja) * 2003-09-01 2005-04-14 Advanced Telecommunication Research Institute International 機械翻訳装置、機械翻訳コンピュータプログラム及びコンピュータ
CA2486128C (en) * 2003-10-30 2011-08-23 At&T Corp. System and method for using meta-data dependent language modeling for automatic speech recognition
US7406416B2 (en) * 2004-03-26 2008-07-29 Microsoft Corporation Representation of a deleted interpolation N-gram language model in ARPA standard format
US7593843B2 (en) * 2004-03-30 2009-09-22 Microsoft Corporation Statistical language model for logical form using transfer mappings
US7260568B2 (en) * 2004-04-15 2007-08-21 Microsoft Corporation Verifying relevance between keywords and web site contents
US7701886B2 (en) * 2004-05-28 2010-04-20 Alcatel-Lucent Usa Inc. Packet loss concealment based on statistical n-gram predictive models for use in voice-over-IP speech transmission
US7584098B2 (en) * 2004-11-29 2009-09-01 Microsoft Corporation Vocabulary-independent search of spontaneous speech
US7565372B2 (en) * 2005-09-13 2009-07-21 Microsoft Corporation Evaluating and generating summaries using normalized probabilities
US20070078653A1 (en) * 2005-10-03 2007-04-05 Nokia Corporation Language model compression
EP2523441B1 (en) * 2006-02-10 2014-01-29 Nuance Communications, Inc. A Mass-Scale, User-Independent, Device-Independent, Voice Message to Text Conversion System
US7856350B2 (en) * 2006-08-11 2010-12-21 Microsoft Corporation Reranking QA answers using language modeling
US8401841B2 (en) * 2006-08-31 2013-03-19 Orcatec Llc Retrieval of documents using language models
US7783636B2 (en) * 2006-09-28 2010-08-24 Microsoft Corporation Personalized information retrieval search with backoff
US20080154600A1 (en) * 2006-12-21 2008-06-26 Nokia Corporation System, Method, Apparatus and Computer Program Product for Providing Dynamic Vocabulary Prediction for Speech Recognition
US20080162117A1 (en) * 2006-12-28 2008-07-03 Srinivas Bangalore Discriminative training of models for sequence classification
US8332207B2 (en) 2007-03-26 2012-12-11 Google Inc. Large language models in machine translation
US8583416B2 (en) * 2007-12-27 2013-11-12 Fluential, Llc Robust information extraction from utterances
US8364481B2 (en) * 2008-07-02 2013-01-29 Google Inc. Speech recognition with parallel recognition tasks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101509727B1 (ko) * 2013-10-02 2015-04-07 주식회사 시스트란인터내셔널 자율학습 정렬 기반의 정렬 코퍼스 생성 장치 및 그 방법과, 정렬 코퍼스를 사용한 파괴 표현 형태소 분석 장치 및 그 형태소 분석 방법
WO2015050321A1 (ko) * 2013-10-02 2015-04-09 주식회사 시스트란인터내셔날 자율학습 정렬 기반의 정렬 코퍼스 생성 장치 및 그 방법과, 정렬 코퍼스를 사용한 파괴 표현 형태소 분석 장치 및 그 형태소 분석 방법
US10282413B2 (en) 2013-10-02 2019-05-07 Systran International Co., Ltd. Device for generating aligned corpus based on unsupervised-learning alignment, method thereof, device for analyzing destructive expression morpheme using aligned corpus, and method for analyzing morpheme thereof

Also Published As

Publication number Publication date
CN101707873B (zh) 2013-07-03
EP2137639B1 (en) 2019-01-16
JP2010522938A (ja) 2010-07-08
WO2008118905A2 (en) 2008-10-02
JP5484317B2 (ja) 2014-05-07
CN101707873A (zh) 2010-05-12
US8332207B2 (en) 2012-12-11
WO2008118905A3 (en) 2009-02-12
US20080243481A1 (en) 2008-10-02
EP2137639A2 (en) 2009-12-30
US8812291B2 (en) 2014-08-19
US20130346059A1 (en) 2013-12-26

Similar Documents

Publication Publication Date Title
KR20100015518A (ko) 기계 번역에서의 대언어 모델
US8626488B1 (en) Word alignment with bridge languages
US7877258B1 (en) Representing n-gram language models for compact storage and fast retrieval
US8359201B1 (en) Randomized language models
US8521516B2 (en) Linguistic key normalization
US7346487B2 (en) Method and apparatus for identifying translations
US6904402B1 (en) System and iterative method for lexicon, segmentation and language model joint optimization
US7475063B2 (en) Augmenting queries with synonyms selected using language statistics
JP5379155B2 (ja) Cjk名前検出
US20090024385A1 (en) Semantic parser
KR20160105400A (ko) 전자 장치에 텍스트를 입력하는 시스템 및 방법
CA3089001A1 (en) System and method for language translation
KR101495240B1 (ko) 교정 어휘 쌍을 이용한 통계적 문맥 철자오류 교정 장치 및 방법
JP2010244385A (ja) 機械翻訳装置、機械翻訳方法、およびプログラム
Naz et al. Urdu part of speech tagging using transformation based error driven learning
Dashti Real-word error correction with trigrams: correcting multiple errors in a sentence
Jahara et al. Towards POS tagging methods for Bengali language: a comparative analysis
JP2000259635A (ja) 翻訳装置及び翻訳方法並びに翻訳プログラムを記録した記録媒体
Shaaban Automatic Diacritics Restoration for Arabic Text
JP5225219B2 (ja) 述語項構造解析方法、その装置及びプログラム
Nalluri et al. Statistical Machine Translation using Joshua: An approach to build “enTel” system
Tambouratzis et al. Extensions to the PRESEMT Methodology
KR20090066470A (ko) 기 분석 데이터를 이용한 한국어 형태소 분석 시스템 및방법
vor der Brück et al. TLT-CRF: A lexicon-supported morphological tagger for Latin based on conditional random fields
Lawaye et al. Towards Developing a Hierarchical Part of Speech Tagger for Kashmiri: Hybrid Approach

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid