KR101278776B1 - 골롬 코딩을 이용한 언어 모델 압축 - Google Patents
골롬 코딩을 이용한 언어 모델 압축 Download PDFInfo
- Publication number
- KR101278776B1 KR101278776B1 KR1020077029971A KR20077029971A KR101278776B1 KR 101278776 B1 KR101278776 B1 KR 101278776B1 KR 1020077029971 A KR1020077029971 A KR 1020077029971A KR 20077029971 A KR20077029971 A KR 20077029971A KR 101278776 B1 KR101278776 B1 KR 101278776B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- golomb
- language model
- user input
- grams
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 7
- 238000012896 Statistical algorithm Methods 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 1
- 241001274613 Corvus frugilegus Species 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013137 model compression technique Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
- G10L15/197—Probabilistic grammars, e.g. word n-grams
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Document Processing Apparatus (AREA)
- Enzymes And Modification Thereof (AREA)
Abstract
언어 모델을 압축하는 방법이 제공된다. 사용자 입력의 엘리먼트로부터 숫자 값 리스트가 생성된다. 이 값들의 리스트가 정렬된다. 리스트에서 인접하는 정수 값들 간의 차분이 계산된다. 각 계산된 차분은 골롬 코드를 이용하여 인코딩된다.
언어 모델, 인코딩, 자연 언어 처리, 컴퓨터 시스템 환경
Description
이하 논의는 단지 일반적인 배경 정보를 위하여 제공되는 것이며 청구된 주요 항목의 범위를 결정하는 것을 돕는 것으로서 이용되는 것을 의도하지 않는다.
언어 모델은 자연 언어 처리, 철자 검사 등과 같은 잡음이 있는 채널 애플리케이션을 포함하는 다양한 애플리케이션에서 이용된다. 자연 언어 애플리케이션에서, 음성 인식기는 통상적으로 음향 흔적(채널 모델)을, 사용자가 말할 가능성이 있는 것에 대한 예측(언어 모델)과 결합함으로써 동작한다. 언어 모델의 한 일반적인 형태로 트리-그램(tri-gram)을 언급하기도 한다.
일반적으로, n-그램은 일련의 n 토큰(워드)이다. 트리-그램은 일련의 3개의 토큰이다. 예를 들면, 어구 "to be or not to be"로부터는, 8개의 트리-그램: "$ $ to", "$ to be", "to be or", "be or not", "or not to", "not to be", "to be $", 및 "be $ $"가 생성될 수 있는데, 여기서는 입력 스트링은 "$"로 표기되는 2개의 특수한 토큰들로 채워졌다. 이러한 n-그램에는 사용자가 특정 입력을 의도하였을 가능성을 추정하도록 통계가 적용될 수 있다.
10억개의 워드 텍스트가 이용되는 것도 매우 크다고 생각됨에도 불구하고, 음성 인식을 위한 트레이닝(training) 세트는 일상적으로 100억개의 워드 텍스트에 대해서 트레이닝된다. 일반적으로, 대형 언어 모델은 잘 동작한다(이는 이들이 낮은 엔트로피를 가진다는 것을 의미한다); 그러나, 셀룰러 폰, PDA, 전자 플레너 등과 같은 모바일 장치에서 특히, 메모리 용량이 종종 제한되어 있다. 이러한 메모리 상황을 다루기 위한 한 하나의 기술은, 자주 사용되지 않는 워드 및 보기 드문 변형(uncommon variants)을 제거함으로써 언어 모델을 트리밍(trim)하는 것을 포함한다. 그러나, 이러한 용어의 제거는 언어 모델의 전체적인 효율성을 떨어뜨려, 트리밍된 모델에서 입력을 워드들에 매칭시킬 수 있는 능력이 없어지기 때문에 의미적 에러가 더 많이 발생한다.
본 발명의 상세한 설명 섹션은 몇 가지 개념을 간단한 형태로 소개하기 위하여 제공된 것이며, 이 개념들은 이하 실시예 섹션에서 기술될 것이다. 본 섹션은 청구된 주요 항목의 핵심적 특징 또는 본질적인 특징을 식별하는 것을 의도하지 않으며, 청구된 주요 항목의 범위를 결정하는 것을 돕는 데에 이용되는 것을 의도하지도 않는다.
일 실시예에서, 언어 모델은 골롬(Golomb) 인코딩 기술을 이용하여 압축된다. 언어 모델의 엘리먼트로부터 값들의 리스트가 생성된다. 이 정수 값의 리스트가 정렬(sort)되고, 각 엘리먼트에 대하여, 리스트에서의 인접한 정수 값들 간의 차분이 계산된다. 각 계산된 차분은 골롬 코드를 이용하여 인코딩된다.
다른 실시예에서, 사용자 입력을 처리하기 위한 시스템은 사용자 인터페이스, 메모리, 골롬 인코더/디코더, 및 프로세서를 포함한다. 사용자 인터페이스는 사용자 입력을 수신하도록 구성된다. 메모리는 정보를 저장하고 골롬 압축 언어 모델을 저장하도록 구성된다. 골롬 인코더/디코더는 사용자 입력을 인코딩하고 골롬 압축 언어 모델의 엘리먼트를 디코딩하도록 구성된다. 프로세서는 인코딩된 사용자 입력을 골롬 압축 언어 모델의 엘리먼트와 비교하여 가능한 매치를 식별하도록 구성된다.
다른 실시예에서, 골롬-인코딩된 언어 모델을 이용하여 사용자 입력을 디코딩하는 방법이 제공된다. 사용자 입력은 각각이 해쉬(hash) 기술을 이용하여 인코딩되는 복수의 엘리먼트로 나뉘어진다. 각 인코딩된 엘리먼트는 골롬-인코딩된 언어 모델의 엘리먼트들과 비교되어 가능한 매치들을 식별한다. 가능한 매치가 사용자 입력을 골롬-인코딩된 언어 모델에 올바르게 매핑시킨 것일 가능성을 추정하도록 가능한 매치들이 통계적으로 분석된다.
도 1은 실시예들이 실행될 수 있는 한 컴퓨팅 환경의 블록도.
도 2는 실시예들이 실행될 수 있는 대안적인 컴퓨팅 환경의 블록도.
도 3은 컴퓨팅 장치에 이용되는 언어 모델을 압축하기 위한 프로세스의 실시예의 간단한 흐름도.
도 4는 도 3의 프로세스에 따라 계산된 해쉬 값들 간의 차분을 골롬 코딩하기 위한 프로세스의 간단한 흐름도.
도 5는 1진(unary) 코드를 나타내는 허프만(Huffman) 트리의 간단한 블록도.
도 6은 골롬 코딩된 제1 차분을 디코딩하기 위한 프로세스의 실시예의 간단 한 흐름도.
도 7은 골롬 코딩 기법으로 압축된 언어 모델을 이용하도록 구성된 시스템의 실시예의 간단한 블록도.
도 8은 골롬-인코딩된 언어 모델에 대하여 사용자 입력을 디코딩하기 위한 프로세스의 실시예의 간단한 흐름도.
언어 모델은 음성 인식 시스템, 문맥 감응식 철자 교정 시스템, 아시아계 문자를 컴퓨터에 입력하는 데에 이용되는 인터페이스 등에서 이용된다. 골롬 압축 기법은 인터넷 등의 전역적인 컴퓨터 네트워크를 네비게이션하기 위한 URL(uniform resource locator) 데이터 등의 사용자 입력에 적용될 수 있다. 실제로 메모리는, 셀룰러폰, PDA 등과 같은 모바일 플랫폼에서 특히, 종종 제한되기 때문에, 언어 모델의 압축은 매우 유용할 수 있으며, 골롬 코딩 기술이 언어 모델을 압축하고 그 결과물을 디코딩하는 데에 모두 이용될 수 있다.
도 1은 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시하며 이러한 실시예에서 언어 모델 압축 기술이 구현될 수 있다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
본 발명의 실시예는 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 본 발명의 실시예에서 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전화 시스템, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등을 포함하지만 이에 제한되는 것은 아니다.
실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시되도록 설계된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
도 1과 관련하여, 실시예를 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함할 수 있지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standard Association) 로컬 버스, 그리고 메자닌 버스(Mezzanine bus)로도 알려진 PCI(Peripheral Component Interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장하는 데에 이용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코 딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함할 수 있다. 단지 예로서, 도 1은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 도시한다. 예시 적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다.
사용자는 키보드(162), 마이크(163) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 또한 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 또 하나의 퍼스널 컴퓨터, 핸드-헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 1에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 원격 컴퓨터(180)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
도 2는 예시적인 컴퓨팅 환경인 모바일 장치(200)의 블록도이다. 모바일 장치(200)는 마이크로프로세서(202), 메모리(204), 입출력(I/O) 컴포넌트(206), 및 원격 컴퓨터 또는 기타 모바일 장치와 통신하기 위한 통신 인터페이스(208)를 포함한다. 일 실시예에서, 전술한 컴포넌트들은 적절한 버스(210)를 통해 서로 통신하기 위해 연결된다.
메모리(204)는 모바일 장치(200)의 일반 전원이 꺼질 때에도 메모리(204)에 저장된 정보가 상실되지 않도록 하는 (도시되지 않은) 배터리 백업 모듈을 구비한 RAM 등의 비휘발성 전자 메모리로서 구현된다. 메모리(204)의 일부는 프로그램 실행을 위해 어드레싱(address)된 메모리로서 할당되는 것이 바람직한 반면, 메모리(204) 그 외의 부분은 디스크 드라이브 상의 저장 장치 시뮬레이션과 같은, 저장에 이용되는 것이 바람직하다.
메모리(204)는 운영 체제(212), 애플리케이션 프로그램(214) 및 개체 저장소(216)를 포함한다. 실행 중에, 운영 체제(212)는 메모리(204)로부터 프로세 서(202)에 의해 실행되는 것이 바람직하다. 한 바람직한 실시예에서, 운영 체제(212)는 마이크로소프트사로부터 구입가능한 윈도우즈® CE 계열 운영 체제이다. 운영 체제(212)는 모바일 장치용으로 설계되는 것이 바람직하며, 공개된 애플리케이션 프로그래밍 인터페이스(API) 및 메소드 집합을 통하여 애플리케이션(214)에 의해 이용될 수 있는 데이터베이스 특징을 구현한다. 개체 저장소(216)의 개체들은, 적어도 일부가 이러한 공개된 API 및 메소드 호출에 응답하여, 애플리케이션(214) 및 운영 체제(212)에 의해 보유된다.
통신 인터페이스(208)는 모바일 장치(200)가 정보를 송수신할 수 있게 해주는 다양한 장치 및 기술을 나타낸다. 장치는, 몇 개만 언급하자면, 유무선 모뎀, 위성 수신기 및 방송 튜너(broadcast tuner)를 포함한다. 모바일 장치(200)는 컴퓨터에 직접 접속되어 이 컴퓨터와 데이터를 교환할 수도 있다. 이러한 경우, 통신 인터페이스(208)는 적외선 송수신기 또는 직렬이나 병렬 통신 접속일 수 있는데, 이들은 모두 스트리밍 정보를 전송할 수 있다.
입출력 컴포넌트(206)는 접촉-감응식 화면, 버튼, 롤러, 및 마이크 등의 각종 입력 장치, 및 오디오 생성기, 진동 장치, 및 디스플레이를 비롯한 각종 출력 장치를 포함한다. 상기 열거된 장치들은 예시적인 것이며 이 모두가 모바일 장치(200)에 있어야 할 필요는 없다. 또한, 본 발명의 범위 내에서 다른 입출력 장치가 모바일 장치(200)에 장착되거나 이 모바일 장치(200)에 구비될 수 있다.
언어 모델의 플루닝(pruning)이 메모리 한계를 극복하기 위한 한 가능한 기술이지만, 압축은 메모리에 본래의 언어 모델을 더 많이 저장하게 하기 때문에, 보 다 매력적인 대안이다.
도 3은 컴퓨팅 장치에서 이용되는 언어 모델을 압축하기 위한 프로세스의 실시예의 간단한 흐름도이다. 다음의 수학식에 따르면, 프로세서는 (워드, URL, n-그램 등과 같은) 엘리먼트를 1 내지 10인 숫자 값으로 해슁한다:
HG=HASH(element)%P
여기서 P는 적절한 소수(prime)이다. 일 실시예에서, 예를 들면, 숫자 값은 정수 값일 수 있다. 본원에서 이용되는 용어 정수란 자연수, 이들의 음수, 및 0을 모두 포함하는 정수들을 말한다. 이 언어 모델의 모든 엘리먼트에 대하여, 프로세서는 입력의 엘리먼트 각각을 정수로 해슁한다(단계(300)). 해쉬 값(HG)이 정렬된다(단계(302)). 리스트 내의 인접 해쉬들(HG) 간의 제1 차분(XG)이 계산된다(단계(304)). 골롬 코드를 이용하여 도착간격들이 저장된다(단계(306)). 본원에 이용된 용어 "도착간격"이란 골롬 코딩된 데이터의 갭(gap) 또는 0을 칭한다. 예를 들면, 푸아송(Poisson) 프로세스의 도착 간격은 지수 분포를 가진다.
이 프로세스를 이용하여, N개의 엘리먼트를 저장하는 데에 필요한 메모리 비트 수는 다음의 수학식에 따라 계산될 수 있다:
여기서 N은 엘리먼트 개수를 나타낸다. 예를 들면, 연속되는 값들 간의 원하는 평균 차분을 N과 곱한 결과보다 큰 소수들 중 가장 작은 수인 소수 P는 메모 리 사용량과 손실량 간의 트레이드오프(tradeoff)를 나타낸다. 이 방법은 엘리먼트 사이즈에 독립적이어서, 긴 워드, URL, n-그램들이 (메모리 이용 측면에서) 짧은 것들보다 더 많은 비용은 들지 않는다.
도 4는 도 3의 프로세스에 따라 계산된 해쉬 값들 간의 차분들을 골롬 코딩하는 프로세스의 간단한 흐름도이다. 이 흐름도는 효율적인 골롬 코딩 스킴의 일례를 나타내는 것으로 이해되어야 한다. 당업자들은 인코딩의 메모리 요구사항에 대하여 서로 약간 다른 특징들을 가질 수 있도록, 몫과 나머지를 계산하는 다른 방식을 정의할 수 있을 것이다. 값 K는 다음의 수학식에 따라서 선택된다:
여기서 N은 입력 시퀀스에서의 (엘리먼트 또는 n-그램 등의) 아이템의 개수를 나타내며, 예를 들면, 연속되는 값들 간의 원하는 평균 차분을 N과 곱한 결과보다 큰 소수들 중 가장 작은 수인 P는 N보다 큰 적절한 소수를 나타내는데, ceil 함수는 이 함수의 인수보다 작지 않은 최소 정수를 나타낸다(단계(400)). 값 M은 다음의 수학식에 따라 선택된다(단계(402)):
M=2K
몫 값 Xq는 다음의 수학식에 따라 각 제1 차분 값(XG)에 대하여 계산된다:
Floor 함수는 이 함수의 인수보다 크지 않은 최대 정수를 나타낸다(단계(404)). 나머지 값 Xr은 다음의 수학식에 따라 각 제1 차분 값 XG에 대하여 계산된다(단계(406)):
몫 값 Xq는 1진 포맷으로 인코딩된다(1 비트가 뒤따르는 Xq의 0으로 이루어진 비트들)(단계(408)). 나머지 Xr은 K 비트로 된 2진 포맷으로 인코딩될 수 있다(단계(410)). 도 4에 도시된 골롬 코딩 기술은, 몫 값이 Xq+1 비트가 필요한 반면, 나머지 값은 log2M 비트가 필요하도록, 언어 모델을 저장하기 위한 메모리 요구량을 줄일 수 있다.
정렬된 해쉬 값들은, 바람직한 근사치로서, 푸아송 프로세스에 의해 생성되는 것으로 고려될 수 있다. 푸아송 프로세스에서, 도착 간격은 지수 분포를 가진다. 일반적으로, 확률은 다음과 같이 표현될 수 있다:
그리고 메모리 사용량은 다음의 수학식에 의해 정의된다:
그러므로, 메모리 사용량은 엘리먼트의 사이즈에 독립적이다. 이는 해쉬와 골롬 코딩은 함께, 예를 들어, 언어 모델의 전체 메모리 사용량을 줄인다는 것을 나타낸다.
도 5는 1진 코드를 나타내는 허프만 트리의 간단한 블록도이다. 이 예에서, 심볼 A는 0.5의 확률을 가지는 한편, 심볼 B는 0.25의 확률을 가지고, 그 다음 심볼들도 마찬가지로 적용된다. x의 확률이 다음과 같다고 가정하자:
여기서, B= 1/2이다. 그래프(500)는 각각의 자식 노드에 거의 같은 확률이 할당된 복수의 노드를 포함한다. 루트 노드(502)는 루크 워드 또는 심볼을 나타낸다. 심볼은 "A" 또는 다른 심볼 중 하나이다. 심볼이 A라면, 루트(502)로부터 노드(506A)로의 경로에 대응하는 "1" 값이 할당된다. 그 다음 시스템은 다음 비트 또는 비트 시퀀스에 대하여 검색을 한다. 심볼이 A가 아니라면, 시스템은 0을 할당한 다음 심볼이 B인지 검사한다. 심볼이 B라면, 시스템은 참조부호(504B)로부터 참조부호(506B)로의 경로에 대응하는 1을 할당한다. 그러면 심볼 B에 대한 결과 값은 "01"이 되는 한편, 심볼 A에 대한 결과 값은 "1"이 된다. 일반적으로, 그래프(500)는 z-1개의 0과 그 뒤에 오는 1의 1진 시퀀스를 나타난다.
다음의 표 1은 심볼의 확률을 루트 워드와 관련된 그래프 내에서의 그 심볼 의 위치에 기초하여 도시한다.
심볼 | 코드 | 길이 | 확률 |
A | 1 | 1 | 2-1 |
B | 01 | 2 | 2-2 |
C | 001 | 3 | 2-2 |
N | N(0) +1 | N | 2-N |
도 6은 골롬 코딩된 제1 차분을 디코딩하기 위한 프로세스의 간단한 흐름도이다. 몫 Xq의 심볼은 "1" 값이 탐지될 때까지 한번에 1 비트씩 판독된다(단계(600)). 나머지 Xr의 심볼들은 2진 단위로 판독된다(log2M 비트씩 판독된다)(단계(602)). 마지막으로, 다음과 같이 제1 차분 X가 Xq 및 Xr로부터 계산된다:
이 제1 차분은 출력 XG를 나타낸다(단계(604)). 이 예에서, 변수 M은 2로 나누고 양의 무한대 방향으로 가장 근접한 정수로 반올림한 제1 차분의 예상 값과 거의 같은 2승 값을 나타낸다.
도 7은 골롬 코딩된 언어 모델을 이용하도록 구성된 시스템(700)의 일 실시예의 간단한 블록도이다. 시스템(700)은 사용자 인터페이스(704), 메모리(708) 내의 골롬 압축된 언어 모델(706), 프로세서(710), 골롬 인코더/디코더(712), 및 통계적 알고리즘 세트(714)를 구비한 소프트웨어 애플리케이션(702)을 포함한다. 사용자는 사용자 인터페이스(704)를 통해 시스템(700)에 데이터를 입력한다. 골롬 인코더/디코더(712)는 사용자 입력을 인코딩하고 이 인코딩된 입력을 프로세서(710)에 전달하면, 이 프로세서(710)는 그 인코딩된 입력을 골롬 압축된 언어 모델(706)에 대하여 분석하여 가능한 매치 세트를 생성한다. 프로세서(710)는 이 압축된 언어 모델(706) 내의 워드들에 기초하는 하나 이상의 가능한 매치를 선택하는 데에 통계적 알고리즘(714)을 이용하며, 이 하나 이상의 가능한 매치를 사용자에게 디스플레이될 출력으로서 사용자 인터페이스(704)에 전달한다.
표 2는 본 발명의 실시예에 따른 몇 가지 파라미터 세팅(setting)을 열거한 것이다.
클릭 쓰루들(click throughs) | N(URL) | 평균 델타(P/N) | 1/log(2) + log2(P/N) | M(메모리) |
10 | 680,418 | 1,273 | 14 | 1,159,768 |
100 | 80,263 | 11,650 | 17 | 168,853 |
1000 | 5,888 | 55,701,699 | 29 | 21,383 |
표 2는 URL에 대하여 골롬 코딩된 해쉬 값의 일 실시예에 대한 메모리 사용량을 나타낸다. 메모리는 URL의 개수(N) 및 평균 델타(P/N) 모두에 의존적이다. 표는 평균 델타의, 각 URL 당 14-29 비트에 대응하는, 3개의 세팅을 나타낸다. 이러한 압축 유형은 대형 언어 모델이 휴대용 장치에 포함되는 것을 가능하게 한다.
일반적으로, 언어 모델은 사용자가 정보를 액세스하는 것을 돕는 데에 이용될 수 있다. 예를 들면, 검색 엔진에서, 골롬 코딩된 기술은 사용자가 제공한 검색어의 대안적인 철자들을 검사하는 데에 채용될 수 있다. 휴대용 장치 상의 웹 브라우저에 관련하여, 골롬 압축(코딩/디코딩) 기술은 잘못 타이핑된 URL을 교정하기 위하여 대안적인 URL 값들을 검사하도록 구성될 수 있다.
도 8은 골롬 코딩된 언어 모델에 관련하여 사용자 입력을 디코딩하는 실시예의 간단한 흐름도이다. 사용자 입력은 데이터 스트림, 파일, 또는 입력 장치로부터, 예를 들면, 심볼 단위로 수신되거나 판독된다(단계(800)). 사용자 입력은 복수의 n-그램으로 나뉘어진다(단계(802)). 각각의 복수의 n-그램은 해쉬 기술을 이용하여 인코딩된다(단계(804)). 각 인코딩된 n-그램은 골롬 코딩된 언어 모델과 비교되어 가능한 매치들을 식별한다(단계(806)). 각 가능한 매치에 대하여, 해당 가능한 매치가 골롬 코딩된 언어 모델 내의 엘리먼트와 수신된 사용자 입력이 올바르게 매핑된 것일 가능성이 통계적으로 추정된다(단계(808)). 소정의 매치가 올바른 것일 가능성을 추정하는 데에 임의의 개수의 통계적 알고리즘이 적용될 수 있다. 일반적으로, 각 n-그램은 도 4에 관련하여 상술한 바와 같이, 골롬-인코딩된 기술을 이용하여 인코딩될 수 있다.
본 발명은 특정 실시예를 참조하여 기술되었지만, 당업자들은 본 발명의 사상 및 범위로부터 벗어나지 않는 형태 및 상세한 사항에 변경이 이루어질 수 있다고 인식할 것이다.
Claims (20)
- 언어 모델을 압축하는 방법으로서,사용자 입력의 n-그램들(n-grams)로부터 숫자 값들의 리스트를 생성하는 단계;상기 값들의 리스트를 정렬하는 단계;상기 리스트에서의 인접 값들 간의 차분을 계산하는 단계; 및상기 리스트에서의 인접 값들 간의 상기 계산된 차분의 예상 값의 1/2이 되도록 값 M을 선택하는 것,각 계산된 차분에 대한 상기 값 M과 상기 계산된 차분의 비로부터 몫 값 및 나머지 값을 계산하는 것, 및메모리에 상기 몫 값 및 상기 나머지 값을 저장하는 것에 의해 골롬(Golomb) 코드를 이용하여 각 계산된 차분을 인코딩하는 단계를 포함하는 방법.
- 제1항에 있어서,상기 저장하는 것은,1진 포맷(unary format)으로 상기 몫 값을 저장하는 것, 및2진 포맷으로 상기 나머지 값을 저장하는 것을 포함하는 방법.
- 제1항에 있어서,상기 몫 값은, 가장 근접한 정수값으로 잘라 버림되는(rounded down) 상기 값 M에 대한 제1 차분의 비를 포함하는 방법.
- 제1항에 있어서,상기 나머지 값은, 가장 근접한 정수값으로 잘라 버림되는 상기 값 M에 대한 제1 차분의 비의 나머지를 포함하는 방법.
- 제1항에 있어서,메모리에 상기 인코딩된 차분을 저장하는 단계를 더 포함하는 방법.
- 제1항에 있어서,저장 매체 상에 컴퓨터 판독가능 명령어들을 저장하는 단계를 더 포함하며,상기 컴퓨터 판독가능 명령어들은, 상기 생성하는 단계, 상기 정렬하는 단계, 상기 계산하는 단계 및 상기 인코딩하는 단계를 정의하는 방법.
- 사용자 입력들을 처리하기 위한 시스템으로서,사용자 입력들을 수신하도록 되어 있는 사용자 인터페이스;정보를 저장하며, 골롬 압축된 언어 모델을 저장하도록 되어 있는 메모리;사용자 입력을 인코딩하며, 상기 골롬 압축된 언어 모델의 엘리먼트들을 디코딩하도록 되어 있는 골롬 인코더/디코더 - 상기 골롬 인코더/디코더는, 해쉬 값들의 리스트에서의 해쉬 값들 간의 차분의 예상 값에 기초하여 값 M을 계산하도록 되어 있으며, 상기 골롬 인코더/디코더는, 상기 예상 값에 대한 상기 차분의 비에 기초하여 몫 및 나머지를 계산하도록 되어 있음; 및사용자 입력과 상기 골롬 압축된 언어 모델의 엘리먼트들을 비교하여, 가능한 매치들을 식별하도록 되어 있는 프로세서를 포함하는 시스템.
- 제8항에 있어서,상기 가능한 매치들을 식별하기 위해서 상기 프로세서에 의해 이용하도록 되어 있는 통계적 알고리즘들의 세트를 더 포함하는 시스템.
- 제8항에 있어서,상기 프로세서는, 상기 식별된 가능한 매치들을 사용자에게 디스플레이하기 위한 출력으로서 상기 사용자 인터페이스에 제공하도록 되어 있는 시스템.
- 제8항에 있어서,상기 프로세서는 사용자 입력에 관련된 숫자 값들을 계산하도록 되어 있으며, 상기 골롬 인코더/디코더는 상기 계산된 숫자 값들을 인코딩하도록 되어 있는 시스템.
- 사용자 입력을 디코딩하는 방법으로서,수신된 사용자 입력을 복수의 n-그램으로 분할하는 단계;해쉬 기술을 이용하여 각 n-그램에 대한 n-그램 해쉬 값을 획득하도록 각 n-그램을 해슁하는 단계;인코딩된 n-그램들을 획득하도록 상기 n-그램 해쉬 값들을 골롬 인코딩하는 단계;가능한 매치들을 식별하도록 각 인코딩된 n-그램과 골롬 코딩된 언어 모델을 비교하는 단계; 및각 가능한 매치가 상기 골롬 코딩된 언어 모델 내의 엘리먼트에 대한 상기 수신된 사용자 입력의 올바른 매핑일 가능성을 통계적으로 추정하는 단계를 포함하며,상기 각 인코딩된 n-그램과 골롬 코딩된 언어 모델을 비교하는 단계는,상기 언어 모델에서의 인코딩된 n-그램들 간의 차분을, 누산 합이 상기 인코딩된 n-그램들의 값 이상이 될 때까지 합하는 단계, 및상기 언어 모델에서의 n-그램에 대한 값과 상기 수신된 사용자 입력을 연관시키는 단계를 포함하는 방법.
- 제12항에 있어서,상기 연관되는 수신된 사용자 입력은 상기 가능한 매치를 포함하는 방법.
- 제12항에 있어서,상기 복수의 n-그램은 n-그램들의 리스트를 포함하고,상기 골롬 인코딩하는 단계는,상기 리스트에서의 n-그램들에 대한 인접 n-그램 해쉬 값들 간의 차분을 계산하는 단계,각 계산된 차분에 대한 값 M을, 상기 리스트에서의 인접 n-그램 해쉬 값들 간의 상기 계산된 차분의 예상 값의 1/2이 되도록 선택하는 단계,각 계산된 차분에 대한 상기 값 M과 상기 차분의 비로부터 몫 값과 나머지 값을 계산하는 단계, 및1진 포맷의 상기 몫 값과 2진 포맷의 상기 나머지 값을 결합하여, 각 n-그램에 대한 인코딩된 n-그램을 형성하는 단계를 포함하는 방법.
- 제14항에 있어서,상기 n-그램들의 리스트는 숫자 값들을 포함하는 방법.
- 제12항에 있어서,저장 매체 상에 컴퓨터 판독가능 명령어들을 저장하는 단계를 더 포함하며,상기 컴퓨터 판독가능 명령어들은, 상기 분할하는 단계, 상기 인코딩하는 단계, 상기 비교하는 단계 및 상기 추정하는 단계를 정의하는 방법.
- 프로세서 및 메모리를 가지며, 제12항의 방법에 따라 사용자 입력과 골롬-압축된 언어 모델을 비교함으로써 상기 사용자 입력을 디코딩하도록 되어 있는 휴대용 컴퓨팅 장치.
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/159,712 | 2005-06-23 | ||
US11/159,712 US7363225B2 (en) | 2005-06-23 | 2005-06-23 | Compressing language models with Golomb coding |
PCT/US2006/022042 WO2007001764A2 (en) | 2005-06-23 | 2006-06-06 | Compressing language models with golomb coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080021044A KR20080021044A (ko) | 2008-03-06 |
KR101278776B1 true KR101278776B1 (ko) | 2013-06-25 |
Family
ID=37568671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077029971A KR101278776B1 (ko) | 2005-06-23 | 2006-06-06 | 골롬 코딩을 이용한 언어 모델 압축 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7363225B2 (ko) |
EP (1) | EP1891545B1 (ko) |
JP (1) | JP4912399B2 (ko) |
KR (1) | KR101278776B1 (ko) |
CN (1) | CN101283349B (ko) |
AT (1) | ATE529852T1 (ko) |
ES (1) | ES2372863T3 (ko) |
PT (1) | PT1891545E (ko) |
WO (1) | WO2007001764A2 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877258B1 (en) * | 2007-03-29 | 2011-01-25 | Google Inc. | Representing n-gram language models for compact storage and fast retrieval |
US8725509B1 (en) * | 2009-06-17 | 2014-05-13 | Google Inc. | Back-off language model compression |
US20120014433A1 (en) * | 2010-07-15 | 2012-01-19 | Qualcomm Incorporated | Entropy coding of bins across bin groups using variable length codewords |
US9195675B2 (en) * | 2011-02-24 | 2015-11-24 | A9.Com, Inc. | Decoding of variable-length data with group formats |
US20150254211A1 (en) * | 2014-03-08 | 2015-09-10 | Microsoft Technology Licensing, Llc | Interactive data manipulation using examples and natural language |
KR102492318B1 (ko) | 2015-09-18 | 2023-01-26 | 삼성전자주식회사 | 모델 학습 방법 및 장치, 및 데이터 인식 방법 |
KR20180001889A (ko) * | 2016-06-28 | 2018-01-05 | 삼성전자주식회사 | 언어 처리 방법 및 장치 |
CN110110292B (zh) * | 2018-01-29 | 2023-11-14 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN109743583A (zh) * | 2019-01-14 | 2019-05-10 | 东华理工大学 | 一种基于相邻差值图像压缩的方法 |
TW202102010A (zh) | 2019-05-24 | 2021-01-01 | 瑞典商赫爾桑茲股份有限公司 | 用於無損資料壓縮和解壓縮的方法、裝置、和電腦程式產品 |
WO2021260046A1 (en) * | 2020-06-23 | 2021-12-30 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatuses for encoding and decoding a sequence of integer values, methods for encoding and decoding a sequence of integer values and computer program for implementing these methods |
CN113765650A (zh) * | 2020-10-15 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据加密、解密方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074183A1 (en) | 2001-10-16 | 2003-04-17 | Xerox Corporation | Method and system for encoding and accessing linguistic frequency data |
US6668092B1 (en) | 1999-07-30 | 2003-12-23 | Sun Microsystems, Inc. | Memory efficient variable-length encoding/decoding system |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325091A (en) * | 1992-08-13 | 1994-06-28 | Xerox Corporation | Text-compression technique using frequency-ordered array of word-number mappers |
US5764374A (en) | 1996-02-05 | 1998-06-09 | Hewlett-Packard Company | System and method for lossless image compression having improved sequential determination of golomb parameter |
US6092038A (en) | 1998-02-05 | 2000-07-18 | International Business Machines Corporation | System and method for providing lossless compression of n-gram language models in a real-time decoder |
US6169969B1 (en) * | 1998-08-07 | 2001-01-02 | The United States Of America As Represented By The Director Of The National Security Agency | Device and method for full-text large-dictionary string matching using n-gram hashing |
US6665665B1 (en) * | 1999-07-30 | 2003-12-16 | Verizon Laboratories Inc. | Compressed document surrogates |
US6847735B2 (en) | 2000-06-07 | 2005-01-25 | Canon Kabushiki Kaisha | Image processing system, image processing apparatus, image input apparatus, image output apparatus and method, and storage medium |
US7103534B2 (en) | 2001-03-31 | 2006-09-05 | Microsoft Corporation | Machine learning contextual approach to word determination for text input via reduced keypad keys |
DE10204617B4 (de) | 2002-02-05 | 2005-02-03 | Siemens Ag | Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms |
US7328150B2 (en) | 2002-09-04 | 2008-02-05 | Microsoft Corporation | Innovations in pure lossless audio compression |
US20040071351A1 (en) | 2002-10-07 | 2004-04-15 | Johan Rade | Method and system for graphics compression and display |
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 |
US7231349B2 (en) | 2003-05-30 | 2007-06-12 | Microsoft Corporation | Method and apparatus for compressing asymmetric clustering language models |
-
2005
- 2005-06-23 US US11/159,712 patent/US7363225B2/en not_active Expired - Fee Related
-
2006
- 2006-06-06 EP EP06772381A patent/EP1891545B1/en not_active Not-in-force
- 2006-06-06 PT PT06772381T patent/PT1891545E/pt unknown
- 2006-06-06 JP JP2008518199A patent/JP4912399B2/ja not_active Expired - Fee Related
- 2006-06-06 WO PCT/US2006/022042 patent/WO2007001764A2/en active Application Filing
- 2006-06-06 CN CN2006800217962A patent/CN101283349B/zh not_active Expired - Fee Related
- 2006-06-06 KR KR1020077029971A patent/KR101278776B1/ko active IP Right Grant
- 2006-06-06 ES ES06772381T patent/ES2372863T3/es active Active
- 2006-06-06 AT AT06772381T patent/ATE529852T1/de not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6668092B1 (en) | 1999-07-30 | 2003-12-23 | Sun Microsystems, Inc. | Memory efficient variable-length encoding/decoding system |
US20030074183A1 (en) | 2001-10-16 | 2003-04-17 | Xerox Corporation | Method and system for encoding and accessing linguistic frequency data |
Also Published As
Publication number | Publication date |
---|---|
WO2007001764A2 (en) | 2007-01-04 |
JP4912399B2 (ja) | 2012-04-11 |
ES2372863T3 (es) | 2012-01-27 |
WO2007001764A3 (en) | 2007-10-04 |
EP1891545B1 (en) | 2011-10-19 |
EP1891545A4 (en) | 2010-08-25 |
EP1891545A2 (en) | 2008-02-27 |
PT1891545E (pt) | 2011-11-03 |
US20060293899A1 (en) | 2006-12-28 |
US7363225B2 (en) | 2008-04-22 |
JP2008547116A (ja) | 2008-12-25 |
CN101283349B (zh) | 2011-04-20 |
CN101283349A (zh) | 2008-10-08 |
KR20080021044A (ko) | 2008-03-06 |
ATE529852T1 (de) | 2011-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101278776B1 (ko) | 골롬 코딩을 이용한 언어 모델 압축 | |
US9223765B1 (en) | Encoding and decoding data using context model grouping | |
US10033405B2 (en) | Data compression systems and method | |
CN1269102C (zh) | 用于压缩字典数据的方法和装置 | |
RU2464630C2 (ru) | Двухпроходное хеш извлечение текстовых строк | |
US20170060956A1 (en) | Anomaly, association and clustering detection | |
US20070233477A1 (en) | Lossless Data Compression Using Adaptive Context Modeling | |
US20130141259A1 (en) | Method and system for data compression | |
US20230041067A1 (en) | Systems and methods of data compression | |
CN1673997A (zh) | 以apra标准格式表示经删除插值n字母语言模型 | |
US6839005B1 (en) | Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels | |
CN101626242A (zh) | 改进的霍夫曼解码方法及装置 | |
KR20160105848A (ko) | 데이터 심볼들에 대해 산술 코딩을 수행하는 방법 및 장치 | |
CN113778678A (zh) | 一种可压缩内存的敏感词快速查找方法及系统 | |
Topaloglu et al. | Polymorphic compression | |
Gupta et al. | Removing Redundancy in Dictionary based Compression Techniques | |
Ramachandra | Information Compression | |
Ryabko et al. | Prediction of Large Alphabet Processes and Its Application to Adaptive Source Coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160517 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170522 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180516 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190515 Year of fee payment: 7 |