KR20020033549A - 비교를 위해 스트링을 맵핑하는 방법 및 시스템 - Google Patents
비교를 위해 스트링을 맵핑하는 방법 및 시스템 Download PDFInfo
- Publication number
- KR20020033549A KR20020033549A KR1020010066789A KR20010066789A KR20020033549A KR 20020033549 A KR20020033549 A KR 20020033549A KR 1020010066789 A KR1020010066789 A KR 1020010066789A KR 20010066789 A KR20010066789 A KR 20010066789A KR 20020033549 A KR20020033549 A KR 20020033549A
- Authority
- KR
- South Korea
- Prior art keywords
- characters
- hangul
- indexed
- weight
- jamo
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/53—Processing of non-Latin text
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Document Processing Apparatus (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
인덱싱된 표현을 나타내는 문자의 조합 및 비인덱싱된 표현을 나타내는 문자의 조합을 포함하는 스트링내의 다수의 문자를 맵핑하는 방법 및 시스템이 개시되었다. 일 실시예는 인덱싱된 표현 및 비인덱싱된 표현을 갖는 제1 및 제2 스트링을 비교하도록 사용될 수 있는 웨이트 어레이를 생성한다. 일 실시예에서, 방법은 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 문자에 대한 스페셜 웨이트값의 세트를 생성한다. 그후에, 본 발명은 인덱싱된 표현의 웨이트값을 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관시키고, 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 스페셜 웨이트값 및 상기 인덱싱된 표현의 상기 연관된 웨이트값을 검색함으로써 웨이트 어레이를 생성한다.
Description
본 발명은 컴퓨터 소프트웨어에 관한 것이고, 보다 상세하게는 상이한 대표 웨이트값을 갖는 텍스트 스트링을 맵핑하고 비교하는 방법 및 시스템에 관한 것이다.
스트링은 일반적으로 기본 데이터 타입으로 여겨지고 많은 컴퓨터 애플리케이션은 일반적으로 스트링을 비교하는 능력을 갖는다. 스트링 비교 기능이 다수의 소프트웨어 어플리케이션에서 발견될 수 있지만, 하나의 특정 어플리케이션은 텍스츄얼 데이터를 비교하기 위해 스트링을 사용하는 것이다. 예를 들어, 텍스츄얼 스트링간의 비교는 다양한 언어내의 문자 및 단어를 정렬시키기 위해 소프트웨어 어플리케이션 및 오퍼레이팅 시스템에 의해 사용된다.
텍스츄얼 스트링을 비교하기 위해 설계된 컴퓨터로 실현되는 많은 알고리즘이 있다는 것은 당업자에게 잘 알려져 있다. 예를 들어, 스트링 비교 알고리즘은 많은 오퍼레이팅 시스템의 핵심부분으로 존재하고 대부분의 데이터베이스 프로그램의 필수적인 부분이다. 이러한 기존의 시스템은 결국 다양한 언어를 나타내는 텍스트를 분류하고 배열하기 위해 사용되는 스트링 비교를 수행하기에 충분하다. 당업자에게 알려진 바와 같이, 숫자 코드는 스트링내 문자를 나타내기 위해 스트링 비교 알고리즘에서 사용되고, 각 문자는 임의의 언어의 알파벳으로부터 글자를 나타낼 수 있다. 보다 상세하게는, 문자를 나타내는 숫자 코드는 예를 들어 스트링을 알파벳 순서로 배열하는 데이터베이스와 같이, 요구되는 포맷에 따라 문자 스트링을 배열, 분류 및 우선순위선정하도록 컴퓨팅 디바이스에 의해 사용된다.
일반적으로 유니코드로 불리는 하나의 알려진 유니버셜 코딩 및 인덱싱 시스템은 텍스츄얼 스트링을 분류하고 배열하기 위해 컴퓨팅 어플리케이션에서 사용된다. 유니코드 스탠더드의 일반적인 배경 정보는 "Unicode Standard Version 3.0, Addison Wesley, Unicode Consortium, ISBN 0-201-61633-5"로 표제된 발행물에서 발견할 수 있는데, 그 내용은 구체적으로 여기에 언급하여 참조되었다. 일반적으로 이 유니코드 스탠더드는 공통 언어로부터 다양한 글자 및 단어를 나타내는 텍스츄얼 스트링을 소프트웨어 어플리케이션이 분류하고 배열할 수 있게 하는 기능을 한다. 보다 상세하게는, 일반적으로, 유니코드 스탠더드는 연속적인 16 비트 값의 시리즈로 공통 언어로부터 심볼을 그룹화한다. 당업자가 이해할 수 있는 바와 같이, 가장 널리 알려진 언어가 유니코드 시스템에서 인덱싱된다. 그러나, 유니코드 스탠더드가 모든 단어 또는 문자를 맵핑, 정렬 및 비교하는 방법을 제공하지 않는, 복수의 알파벳 및/또는 문자 세트를 포함하는 많은 언어가 여전히 존재한다. 스탠더드 인덱싱 시스템의 일부가 아닌 이러한 알파벳 및/또는 문자는 비인덱싱된(non-indexed) 문자로 불린다.
텍스츄얼 스트링 비교 어플리케이션의 일 실시예는 한글(Hangul)을 포함하는 한국어를 포함한다. 당업자가 이해하는 바와 같이, 현대 한글은 음절 당 정확하게 하나의 현대 한글 문자인 바람직한 특성을 가지고 있다. 현대 한글 문자간의 비교를 용이하게 하기 위해, 각 현대 한글 문자/음절은 그 결과로서 유일한 숫자 웨이트값이 할당된다. 당업자는 유니코드가 다양한 언어내의 각 문자에 유일한 숫자 표시가 주어진 16 비트 인코딩 스탠더드인 것을 이해할 것이다. 따라서, 각 현대 한글 문자에 오름순 방식으로 숫자 웨이트값을 할당함으로써, 문자의 숫자 웨이트값을 수학적으로 비교하여 한글 문자가 비교된다.
상술된 시스템이 대부분의 현대 문자를 비교하는 시스템을 제공하지만, 한국어와 같은 특정 언어는 구 한글 문자와 같은 특정 문자가 기존의 코딩 또는 인덱싱 시스템에 완전히 통합되지 않는 특이한 상황을 제공한다. 예를 들어, 구 한글 문자는 유니코드 시스템에 완전히 통합되지 않는다. 따라서, 구 한글 문자는 일반적으로 알려진 문자 비교 및 정렬 방법으로 현대 한글 문자에 용이하게 비교될 수 없다.
따라서, 상기 문제로 인해, 코딩 시스템에 완전히 인덱싱되지 않는 복잡한 언어를 포함하는 스트링 비교 기능을 컴퓨팅 디바이스가 실행할 수 있게 하는 시스템 및 방법이 필요하게 되었다. 또한, 구 한글 문자를 현대 한글 문자와 함께 정렬시키고 처리하는 시스템 및 방법이 필요하게 되었다.
도 1은 본 발명의 태양을 설명하기 위해 설명된 한국어 단어의 구조를 도시하는 도면,
도 2는 본 발명의 일 예시에서 사용되는 한글 문자에 할당된 코드를 도시하는 유니코드 테이블을 도시한 도면,
도 3은 상기 유니코드 표준에 따른 웨이팅된 값을 포함하는 데이터 테이블을 도시한 도면,
도 4a-4c는 본 발명에 따라 사용되는 자모 특별 웨이트값을 도시하는 다수의 데이터 테이블을 도시한 도면,
도 5는 본 발명에 따라 구 한글 문자 및 현대 한글 문자를 나타내는 정렬된 코드의 세트를 설명하는 수정된 유니코드 테이블을 도시한 도면,
도 6은 본 발명에 따라 구 한글 문자 및 현대 한글 문자에 대한 웨이트값을 설명하는 수정된 유니코드 테이블을 도시한 도면,
도 7은 본 발명에 따른 숫자 웨이트값 맵핑 프로세스를 예시한 순서도,
도 8은 본 발명에 따른 자모 타당성 검사 서브루틴의 순서도, 및
도 9는 본 발명이 실현될 수 있는 하나의 적당한 컴퓨팅 시스템 환경의 예를도시한 도면.
본 발명은 인덱싱된 표현을 나타내는 문자의 조합 및 비인덱싱된 표현을 나타내는 문자의 조합을 포함하는 스트링내의 다수의 문자를 맵핑하는 방법 및 시스템을 제공한다. 일 실시예는 인덱싱된 표현 및 비인덱싱된 표현을 갖는 제1 및 제2스트링을 비교하도록 사용될 수 있는 웨이트 어레이를 생성한다. 일 구체적인 실시예에서, 방법은 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 복수의 문자에 대한 스페셜 웨이트값의 세트를 생성한다. 그후에, 이 방법은 인덱싱된 표현의 웨이트값을 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관시키고, 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 스페셜 웨이트값 및 인덱싱된 표현의 연관된 웨이트값을 검색함으로서 웨이트 어레이를 생성한다. 그후에 본 발명의 비교 방법은 인덱싱된 표현 및 비인덱싱된 표현을 갖는 제1 및 제2 스트링을 비교하기 위해 웨이트 어레이내의 웨이트값을 사용한다.
또 다른 실시예에서, 방법은 구 한글 및 현대 한글을 갖는 제1 및 제2 스트링을 비교하기 위해 사용될 수 있는 웨이트 어레이를 생성한다. 이러한 실시예에서, 이 방법은 구 한글 및 새 한글을 나타내는 복수의 자모 조합에 대한 스페셜 웨이트값의 세트를 생성한다. 그후에, 이 방법은 현대 한글의 웨이트값을 특정 구 한글을 나타내는 특정 그룹의 자모 문자와 연관시키고, 특정 구 한글을 나타내는 특정 그룹의 자모 문자와 연관된 복수의 스페셜 웨이트값 및 현대 한글의 연관된 웨이트값을 검색함으로써 웨이트 어레이를 생성한다. 대안적인 일 실시예에서, 이 웨이트 어레이는 특정 그룹의 자모 문자와 연관된 복수의 스페셜 웨이트값을 현대 한글의 연관된 웨이트값에 부가(append)함으로써 구성된다.
본 발명의 또 다른 실시예에서, 구 한글 문자의 유효성을 테스트하는 루틴은 웨이트 어레이를 생성하기 위해 웨이트 맵핑 프로세스와 결합된다. 본 발명에 의해 생성되는 웨이트 어레이는 인덱싱된 문자 및 비인덱싱된 문자를 갖는 2개 이상의스트링의, 컴퓨터로 실현되는 텍스트 비교를 가능하게 한다.
본 발명은 텍스츄얼 스트링을 맵핑하고 비교하는 방법 및 시스템을 목적으로 한다. 본 발명은 제1 및 제2 문자의 비교를 용이하게 하기 위해, 숫자 웨이트값의 제2 세트를 갖는 언어 문자의 제2 세트에, 숫자 웨이트값의 제1 세트를 갖는 언어 문자의 제1 세트를 맵핑하는 시스템 및 방법에 관하여 설명될 것이다. 일 예에서, 문자를 맵핑하는 하나의 방법은 현대 한글 숫자 웨이트값에 구 한글 자모 문자 숫자 웨이트값의 텍스트 스트링을 정렬시키는 단계를 포함한다. 관련 분야의 당업자들이 용이하게 이해할 수 있는 바와 같이, 본 발명의 시스템 및 방법은 임의의 다른 언어에 적용될 수 있기 때문에 구 한국어 한글 문자 및 현대 한국어 한글 문자에 본 발명의 적용이 제한되지 않는다. 따라서, 본 개시된 실시예는 예일 뿐 제한되는 것으로 해석해서는 안된다.
먼저, 본 발명의 하기 요약은 본 발명이 실현될 수 있는 하나의 적당한 컴퓨팅 환경의 개요를 제공한다. 그다음, 이 요약은 문자를 정렬시키고 맵핑하는 방법의 일반적인 설명을 제공한다. 마지막으로, 이 요약은 문자를 정렬시키고 맵핑하는 하나의 컴퓨터로 실행되는 방법의 예를 제공한다.
도 9는 본 발명이 실현될 수 있는 적당한 컴퓨팅 시스템 환경의 예를 도시한다. 이 컴퓨팅 시스템 환경은 적당한 컴퓨팅 환경의 하나의 예일 뿐이고 사용 또는 기능의 범위에 임의의 제한을 두려고 의도된 것은 아니다. 또한 이 컴퓨팅 환경은 전형적인 작동 환경에서 도시된 구성요소의 임의의 하나 또는 조합에 관한 종속성 필요조건을 갖는 것으로 해석되어서는 안된다.
본 발명은 주지된 컴퓨팅 시스템, 환경 및/또는 구성과 같은 수많은 다른 일반 목적에서 사용가능하다. 본 발명을 실현하기에 적당할 수 있는 그러한 예는 퍼스널 컴퓨터, 서버 컴퓨터, 랩톱 디바이스, 멀티프로세서 시스템, 마이크로프로세서에 기초한 시스템, 네트워크 PCs, 미니컴퓨터, 대형 컴퓨터, 상기 임의의 시스템을 포함하는 분포 컴퓨팅 환경등을 포함하지만, 그에 제한되지는 않는다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능한 명령의 일반 환경에서 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 업무를 실행하거나 특정 추상 데이터형을 실행하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 연결된 원격 처리 디바이스에 의해 태스크가 실행되는 분포 컴퓨팅 환경에서 실현될 수 있다. 분포 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 디바이스를 포함하는 원격 컴퓨터 저장 매체 및 로컬 컴퓨터 저장 매체내 모두에 위치될 수 있다.
도 9에서, 본 발명을 실현하는 전형적인 시스템은 컴퓨터(20)의 형태로 범용 컴퓨팅 디바이스를 포함한다. 컴퓨터(20)의 구성요소는 프로세스 유닛(22), 시스템 메모리(24), 및 이 시스템 메모리를 포함하는 다양한 시스템 구성요소를 프로세서에 연결하는 시스템 버스(26)를 포함하지만, 그에 제한되지는 않는다. 이 시스템 버스는 메모리 버스 또는 메모리 컨트롤러를 포함하는 버스 구조, 주변 버스 및 다양한 버스 아키텍쳐를 사용하는 로컬 버스의 임의의 타입일 수 있다. 예를 들어, 그러한 구조는 인더스트리 스탠더드 아키텍쳐(ISA) 노멀 캐피털리제이션 버스, 마이크로 채널 아키텍쳐(MCA)버스, 개선된 ISA(EISA)버스, 비디오 일렉트로닉 스탠더드 어소시에이션(VESA)로컬 버스, 및 또한 메자닌 버스로 알려진 주변 구성요소 인터커넥트(PCI)버스를 포함하지만 그에 제한되지는 않는다.
이 컴퓨터(20)는 보통 다양한 컴퓨터 판독 매체를 포함한다. 컴퓨터 매체는 컴퓨터(20)에 의해 액세스될 수 있고 휘발성 및 비휘발성 매체, 소거가능 및 비소거가능 매체를 모두를 포함하는 임의의 유용한 매체일 수 있다. 예를 들어, 컴퓨터 판독 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 그에 제한되지 않는다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 버서틀 디스크(DVD) 또는 다른 광디스트 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 기억 장치 또는 다른 자기 기억 디바이스, 또는 필요한 정보를 기억하기 위해 사용될 수 있는 임의의 다른 매체를 포함하지만, 그에 제한되는 것은 아니다.
이 통신 매체는 보통 컴퓨터 판독 명령, 데이터 구조, 프로그램 모듈 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호에서의 다른 데이터를 실현하고 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 하나 이상의 문자 세트를 갖고 신호내의 정보를 인코딩하는 방식으로 변하는 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 다이렉트 유선 접속과 같은 유선 매체 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하지만, 그에 제한되는 것은 아니다. 또한 상기 임의의 것들의 조합은 컴퓨터 판독가능 매체의 범위내에 포함되어야 한다.
이 시스템 메모리(24)는 읽기 전용 메모리(ROM;28) 및 랜덤 액세스메모리(RAM;30)와 같은 휘발성 및/또는 비휘발성 메모리의 형태로 컴퓨터 기억 매체를 포함한다. 스타트-업 기간과 같은 컴퓨터(20)내의 소자사이에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입력/출력 시스템(32;BIOS)은 보통 ROM(28)내에 저장된다. RAM(30)은 보통 프로세스 유닛(22)에 의해 현재 동작되고 있고, 및/또는 즉각 액세스가능한 프로그램 모듈 및/또는 데이터를 포함한다. 예를 들어, 도 9는 오퍼레이팅 시스템(46), 적용 프로그램(48), 다른 프로그램 모듈(50) 및 프로그램 데이터(52)를 도시하지만, 그에 제한되는 것은 아니다.
또한 컴퓨터(20)는 소거가능/비소거가능, 휘발성/비휘발성 컴퓨터 기억 매체를 포함할 수 있다. 단지 예로서, 도 9는 비소거가능, 비휘발성 자기 매체(36)로부터 판독하거나 기록하는 자기 디스크 드라이브(34), 소거가능, 비휘발성 자기 디스크(40)로부터 판독하거나 기록하는 자기 드라이브(38), 및 CD-ROM 또는 다른 광 매체와 같은 소거가능, 비휘발성 광 디스크(44)로부터 판독하거나 기록하는 광 디스트 드라이브(42)를 도시한다. 전형적인 동작 환경에서 사용될 수 있는 다른 소거가능/비소거가능, 휘발성/비휘발성 컴퓨터 기억 매체는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, Bernoulli 캡 카트리지, 고체 RAM, 고체 ROM등을 포함하지만, 그에 제한되지 않는다. 이 하드 디스크 드라이브(34), 자기 디스크 드라이브(38), 및 광 디스크 드라이브(42)는 각각 하드 디스크 드라이브 인터페이스(54), 자기 디스크 드라이브 인터페이스(56), 및 광 드라이브 인터페이스(60)에 의해 시스템 버스(26)에 연결될 수 있다. 대안적으로, 하드 디스크 드라이브(34), 자기 디스크 드라이브(38), 및 광 디스크 드라이브(42)는 보통소형 컴퓨터 시스템 인터페이스(SCSI)에 의해 시스템 버스(26)에 접속된다.
상기 논의되고 도 9에 도시된 드라이브 및 그와 연결된 컴퓨터 기억 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 컴퓨터(20)에 대한 다른 데이터를 저장한다. 도 9에서, 예를 들어, 하드 디스크 드라이브(34)는 오퍼레이팅 시스템(46), 응용 프로그램(48), 다른 프로그램(50), 및 프로그램 데이터(52)를 저장하는 것으로 도시되어있다. 이러한 구성요소는 오퍼레이팅 시스템(46), 다른 프로그램 모듈(50), 및 프로그램 데이터(52)와 동일하거나 상이할 수 있다는 것에 주목해야 한다. 사용자는 보통 마우스, 트랙 볼 또는 터치 패드로 불리는 포인팅 디바이스(62) 및 키보드(60)와 같은 입력 디바이스를 통해 컴퓨터(20)에 명령 및 정보를 입력할 수 있다. 다른 입력 디바이스(도시되지 않음)는 마이크로폰, 조이스택, 게임 패드, 위성 디시, 스캐너등을 포함할 수 있다. 이러한 여러 입력 디바이스는 종종 사용자 입력 인터페이스(64)를 통해 프로세스 유닛(22)에 연결되고 병렬 포트, 게임 포트 또는 다른 유니버셜 시리얼 버스(USB)와 같은 버스 구조 및 다른 인터페이스를 통해 접속될 수 있다.
이 컴퓨터(20)는 하나 이상의 원격 컴퓨터(65)로의 논리 접속을 사용하여 네트워크 환경에서 동작할 수 있다. 이 원격 컴퓨터(65)는 퍼스널 컴퓨터, 서버, 루터, 네트워크 PC, 피어 디바이스 또는 다른 공통 네트워크 노드일 수 있고, 보통 메모리 저장 디바이스만이 도 9에 도시되어 있지만, 컴퓨터(20)에 관련한 상술된 많은 요소 또는 모든 요소를 포함한다. 도 9에 묘사된 논리 접속은 랜(LAN;66) 및 완(WAN;67)을 포함하지만, 다른 네트워크 역시 포함한다. 그러한 네트워크 환경은사무실, 엔터프라이즈-와이드 컴퓨터 네트워크, 인트라넷, 및 인터넷에서 흔한 것이다. 당업자는 적어도 하나의 네트워크 접속이 비연속적이도록 컴퓨터(20)가 구성될 수 있다는 것을 이해할 것이다. 따라서, 이 컴퓨터(20)는 네트워크 접속이 디스에이블링되는 기간동안 원격 컴퓨터(65)와 통신할 수 없다. 그러한 구성은 일반적으로 "오프-라인" 구성으로 설명된다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(20)는 네트워크 인터페이스 어댑터(68)을 통해 LAN(66)에 접속된다. 완 네트워크 환경에서 사용될 때, 컴퓨터는 보통 완(68)을 통해 통신을 하는 인터넷과 같은 다른 수단 및 모뎀을 포함한다. 내장되거나 외장될 수 있는 모뎀은 시리얼 포트 인터페이스 또는 다른 적당한 메커니즘을 통해 시스템 버스(26)에 접속될 수 있다. 네트워킹된 환경에서, 컴퓨터(20)와 관련하여 또는 그 일부로서 묘사된 프로그램 모듈은 원격 메모리 저장 디바이스내에 저장될 수 있다. 예를 들어, 도 9는 메모리 디바이스(24)에 존재하는 것으로 원격 응용 프로그램(48)을 도시하였지만, 그에 제한되지 않는다. 도시된 네트워크 접속은 예이고 컴퓨터 사이에서 통신하는 다른 수단이 사용될 수 있다는 것을 이해할 것이다. 컴퓨터(20)의 많은 다른 인터넷 구성요소가 도시되지 않았지만, 당업자는 그러한 구성요소 및 인터커넥션이 주지된 것이라는 것을 이해할 것이다. 따라서, 컴퓨터(20)의 내부 구조에 관한 부가적인 상세한 사항은 본 발명과 관련하여 설명될 필요가 없다.
당업자는 ROM(28), RAM(30), 하드 디스크 드라이브(34), 자기 디스크 드라이브(38), 또는 광 디스크 디바이스(42)를 포함할 수 있는 컴퓨터(20)의 메모리 저장디바이스를 통해 오퍼레이팅 시스템(46)과 같은 프로그램 모듈, 응용 프로그램(48) 및 데이터(52)가 컴퓨터(20)에 제공된다는 것을 이해할 것이다. 하드 디스크 드라이브(34)는 데이터(52) 및 프로그램을 저장하기 위해 사용되고 오퍼레이팅 시스템(46) 및 응용 프로그램(48)을 포함한다.
컴퓨터(20)가 턴 온 되거나 리셋될 때, ROM에 저장된 BIOS(32)는 프로세스 유닛(22)이 하드 디스크 드라이브(34)로부터 RAM(30)으로 오퍼레이팅 시스템을 로딩하도록 명령한다. 일단 오퍼레이팅 시스템(46)이 RAM(30)으로 로딩되면, 프로세스 유닛은 오퍼레이팅 시스템 코드를 실행시키고 오퍼레이팅 시스템의 사용자 인터페이스에 연결된 시각적 요소가 모니터상에 디스플레이되도록 한다. 사용자가 응용 프로그램(48)을 열 때, 프로그램 코드 및 관련 데이터는 하드 디스크 드라이브로부터 판독되고 RAM(38)에 저장된다.
본 발명의 일 태양에 따라서, 문자의 스트링을 비교하고 맵핑하는 방법이 제공된다. 하기 설명되는 바와 같이, 한국어를 포함하는 예에서, 본 발명의 일 방법은 유일한 숫자 웨이트값 도표를 사용함으로써 구 한글을 현대 한글로 맵핑한다. 그후에, 맵핑 방법의 결과는 구 한글 문자 및 현대 한글 문자의 텍스트 스트링을 비교하는 방법에서 사용된다.
본 발명의 하나의 예시적인 실시예를 용이하게 아래에 요약하기 위해서, 한국어를 일반적으로 설명한다. 일반적으로 설명되는 바와 같이, 한국어 단어는 한글로 쓰여지고 한국어 한글은 자모로 불리는 개별적인 문자로부터 구성된다. 도 1에서, 한국어 단어의 구조를 설명하는 도면이 도시되었다. 도 1에 도시된 바와 같이,2개의 한글 문자(11,12)는 "한글"을 의미하는 단어(10)를 형성하도록 조합되었다. 또한, 도 1은 개별적인 자모 문자(13 내지 18)가 어떻게 각 한글 문자(11,12)를 형성하도록 조합되는지를 개략적으로 설명한다. 도 1에 묘사된 한국어 문자(11,12)는 현대 한글 문자로 생각되고 있다.
한국어에서, 각 현대 한글은 2개 또는 3개의 문자에 의해 표시되는 것은 주지된 사실이다. 또한 모든 자모 문자는 3개의 세트, 즉, "리딩 자음"으로 불리는 제1 세트, "모음"으로 불리는 제2 세트, 및 "트레일링 자음"으로 불리는 제3 세트로 정렬된다는 것이 알려져 있다. 따라서, 현대 한글 문자는 항상 2개의 형태, 즉, (1)하나의 리딩 자음 및 하나의 모음을 갖는 하나의 형태 또는 (2)하나의 리딩 자음, 하나의 모음 및 하나의 트레일링 자음을 갖는 다른 형태로 기록된다.
자모 문자의 전체 세트에서, 96개의 리딩 자음, 66개의 모음, 및 82개의 트레일링 자음이 있다. 모든 자모 문자중에서, 자모 문자의 부분집합만이 현대 한글 문자를 구성하도록 사용된다. 보다 상세하게는, 현대 한글 문자는 19개의 리딩 자음, 21개의 모음, 및 27개의 트레일링 자음만을 사용한다. 유니코드 스탠더드에 따라, 자모 문자의 이러한 부분집합은 특정 범위의 코드에 할당된다. 보다 상세하게는, 리딩 자음은 (U+1100) 내지 (U+1112)의 유니코드 범위를 갖고, 모음은 (U+1161) 내지 (U+1175)의 유니코드의 범위를 갖고, 트레일링 자음은 (U+11A8) 내지 (U+11C2)의 유니코드 범위를 갖는다. 따라서, 자모 문자의 이러한 부분집합은 ((19×21×27+19×21)=11,172)개의 가능한 조합을 생성한다. 즉, 자모 문자의 부분집합은 11,172개의 뚜렷한 현대 한글 문자를 생성하도록 조합될 수 있다. 고정된수의 현대 한글 문자가 존재하기 때문에, 현대 한글 문자에는 각각 유니코드 스탠더드에 따라 특정 코드가 할당된다. 보다 상세하게는, 현대 한글 문자는 (U+AC00)내지 (U+D7A3)의 유니코드 범위로 할당된다.
자모 문자의 부분집합 및 한글 문자사이의 이러한 관계가 있기 때문에, 현대 한글 문자(U+AC00 내지 U+D7A3)를 나타내는 코드는 자모 문자의 조합을 나타내는 코드로 맵핑될 수 있다. 따라서, 데이터 테이블은 자모 문자의 조합을 각 현대 한글에 연결시키도록 생성될 수 있다. 예를 들어, 도 2는 현대 한글 문자 및 연관된 자모 문자사이의 관계를 도시하는 문자 맵의 일 실시예를 도시하는 데이터 테이블을 도시한 도면이다.
도 2에 도시된 바와 같이, (U+AC00)의 코드를 갖는 제1 현대 한글 문자는 (U+1100)의 코드를 갖는 제1 리딩 자음 및 (U+1161)의 코드를 갖는 제1 모음으로 구성된다. 코드(U+AC01)의 제2 한글 문자는 (U+1100)의 코드를 갖는 제1 리딩 자음, (U+1161)의 코드를 갖는 제1 모음, 및 (U+11A8)의 코드를 갖는 제1 트레일링 자음으로 구성된다. 도 2에 도시된 바와 같이, 한글 문자를 나타내는 코드는 오름순으로 배열되고 각 자모 조합은 또한 규칙적으로 오름순으로 배열된다. 따라서, 자모 조합에 대한 잔여 코드는 (U+D7A3)의 코드를 갖는 마지막 한글 문자 및 (U+1112), (U+1175) 및 (U+11C2)의 자모 코드의 조합에 의해 표시된 바와 같이, 테이블을 완성하도록 추정될 수 있다. 당업자에게 알려진 바와 같이, 상술된 유니코드 시스템은 현대 한글과 같이, 컴퓨터 프로그램이 텍스트 스트링내에 문자를 정렬시키도록 돕는 웨이팅 시스템을 사용한다. 따라서, 유니코드 웨이트값은 각 한글문자를 나타내는 코드에 연관될 수 있다. 예를 들어, 도 3은 10개의 한글 문자(라인 1-8)에 대한 다수의 유니코드 웨이팅 값을 도시하는 데이터 테이블을 도시한 도면을 설명한다. 도 3의 데이터 테이블의 라인(1-3)은 도 2에 도시된 처음 3개의 한글 문자(라인 1-3)에 대한 웨이팅 값을 설명한다.
도 3에 도시된 바와 같이, 제1 열에는 각 한글에 대한 유니코드를 기입하고, 제2 열은 스크립트 멤버를 나타내고, 제3 열은 영숫자 웨이트값을 나타내고, 제4 열은 다이아크리틱 웨이트값을 나타내고, 제5 열은 각 한글의 케이스 웨이트값을 나타낸다. 당업자에게 알려진 바와 같이, 유니코드 스탠더드를 사용하는 시스템은 할당된 스크립트 멤버, (3)의 영숫자 웨이트값에 의해 그리고 그후에, 다른 잔여 웨이트값에 의해 각 문자를 배열한다. 예를 들어, 제1 문자(U+AC00)는 0X80의 스크립트 멤버 및 3의 영숫자 웨이트값을 갖고, 제2 문자(U+AC01)는 동일한 스크립트 멤버를 갖지만 더 큰 영숫자 웨이트값을 갖기 때문에 제2 문자(U+AC01)는 제1 문자(U+AC00)뒤로 정렬될 것이다.
상술된 바와 같이, 유니코드 시스템은 자모 및 현대 한글 문자로 구성된 스트링의 배열 및 정렬에 대하여 현대 한글 문자에 대한 웨이트 코드 맵을 제공한다. 그러나, 상술된 유니코드 시스템은 한국어의 모든 문자를 완전히 수용하지는 않는다. 예를 들어, 상술된 유니코드 시스템은 구 한글로 알려진 문자에 대해 할당된 코드를 가지고 있지 않다. 또한, 기존의 자모 유니코드는 그 한글의 구성 룰이 현대 한글의 구성 룰과 상이하기 때문에 구 한글을 정렬시키는데 사용될 수 없다. 보다 상세하게는, 구 한글 문자는 3개보다 많은 자모로 구성된다. 상술된 바와 같이,현대 한글 문자는 3개의 자모, 즉, 리딩 자음, 모음, 및 트레일링 자음으로 일반적으로 표시된다. 한편, 구 한글은 1개 내지 3개의 리딩 자음, 1개 내지 3개의 모음으로 표시되고, 0개 내지 3개의 트레일링 자음을 가질 수 있다. 따라서, 구 한글 문자는 2개 내지 9개의 자모로 구성될 수 있다.
상술된 바와 같이, 자모 문자 코드의 조합으로부터 현대 한글 문자를 식별하고 정렬시키는 일반 유니코드 룰은 구 한글을 정렬시키는 방법에는 적용될 수 없다. 예를 들어, 하나의 구 한글 문자는 2개의 리딩 자음, 하나의 모음 및 하나의 트레일링 자음으로 구성될 수 있다. 유니코드 스탠더드를 이러한 예에 적용할 때, 구 한글 문자는 자모 코드, (U+1100), (U+1103),(U+1161),(U+11A8)로 표시될 수 잇다. 도 2의 유니코드 테이블에서, 자모 코드의 이러한 조합은 기존 시스템이 2개의 리딩 자음을 갖는 조합을 수용하지 않기 때문에 적당하게 정렬될 수 없었다. 또 다른 예에서, 구 한글 문자는 코드, (U+1113), (U+1161), 및 (U+11A8)로 표시되는 자모 문자로부터 구성될 수 있다. 이러한 리딩 자음 코드, (U+1113)는 현대 한글에 대한 할당된 리딩 자음의 범위, (U+1100) 내지 (U+1112)를 벗어나기 때문에, 자모 문자의 이러한 조합은 유니코드 시스템에 따라 적당하게 정렬될 수 없었다.
다른 상황에서, 유니코드 시스템을 사용하는 컴퓨터 프로그램은 자모 문자의 분석에 기초하여 현대 한글로부터 구 한글을 쉽게 구별할 수 없다. 예를 들어, (U+1100), (U+1103)에 대한 코드 조합이 구 한글에 대한 유효한 자모 조합일지라도, (U+1100),(U+1101)의 코드 조합은 구 한글에 대한 유효한 자모 조합이 아니다. 자모 문자의 시퀀스에서의 이러한 불일치 때문에, 구 한글 문자 및 현대 한글 문자는 상응하는 자모 문자의 단순화된 분석에 의해 용이하게 정렬될 수 없다. 이러한 불일치의 예 및 전형적인 솔루션이 도 6의 데이터 테이블과 관련하여 아래에 더 상세하게 설명된다. 구 한글 및 현대 한글 사이에서 스트링 비교를 용이하게 하기 위해, 본 발명의 일 태양은 자모 문자 조합 및 다양한 자모 문자에 대한 웨이팅 도표를 제공한다. 보다 상세하게는, 리딩 자음, 모음, 및 트레일링 자음의 조합에 자모 스페셜 웨이트값을 할당하는 것이 본 발명의 일 태양이다. 현대 한글 및 구 한글 모두를 구성하는 자모 문자의 세트에 자모 스페셜 웨이트값을 할당함으로써, 컴퓨팅 디바이스는 구 한글 및 현대 한글을 구별하고 정렬시킬 수 있다.
도 4a 내지 도 4c에서, 웨이팅 도표의 일 실시예가 도시된다. 일반적으로 설명되는 것처럼, 도 4a 내지 도 4c에 도시된 각 문자 맵을 도시한 도면은 자모 문자의 조합 및 자모 문자의 배열된 세트에 특정 웨이트값을 할당하는 하나의 방법을 설명한다. 도 4a에 도시된 바와 같이, 모든 유효한 자음 자모 조합에 대한 자모 스페셜 웨이트값을 설명하는 데이터 테이블의 도면이 도시된다. 도 4a의 웨이팅 도표 테이블의 어셈블리에서, 각 리딩 자음, 및 자모 리딩 자음의 조합은 한국 언어의 문법에 따라 오름순으로 정렬된다. 일단 각 리딩 자음이 적합하게 배열되면, 유일한 코드가 각 리딩 자음에 할당될 수 있다. 예를 들어, 도 4a의 테이블의 제1 행에 도시된 바와 같이, (U+1100)에 의해 표시된 자모 문자는 (0X03)의 자모 스페셜 웨이트값이 할당된다. 그다음, 잔여 자모 구성은 오름순으로 스페셜 웨이트값이 할당된다. 또한 도 4a에 도시된 바와 같이, 웨이팅 도표 테이블의 구성은 스크립트 멤버와 같은 다른 스탠더드 유니코드 웨이팅 값의 통합을 포함할 수 있다.
도 4b 및 도 4c는 자모 모음 및 트레일링 자음의 유효한 조합에 대해 2개의 웨이팅 도표 테이블의 일 실시예를 각각 설명한다. 자모 모음 및 트레일링 자음에 대한 자모 스페셜 웨이트값을 설명하는 각 데이터 테이블은 도 4a에 도시된 웨이팅 테이블의 구성과 유사한 방식으로 구성된다. 보다 상세하게는, 도 4b의 웨이팅 테이블을 도시한 도면에서, 자모 모음, 및 자모 모음의 조합은 한국어의 문법에 따라 정렬된다. 각 테이블의 배열에서, 자모 스페셜 웨이트값의 순서는 각 자모 스페셜 웨이트값이 유효한 자모에 상응하는 오름순으로 세워져야 한다. 도 4b에 도시된 바와 같이, 각 자모 모음에는 유일한 자모 스페셜 웨이트값이 할당된다. 제1 자모 모음에는 (0x03)의 자모 스페셜 웨이트값이 할당되고, 제2 자모 모음에는 (0x04)의 웨이트값이 할당되고, 나머지도 그와 같이 할당된다. 이와 마찬가지로, 제1 트레일링 자음에는 (0x03)의 자모 스페셜 웨이트값이 할당되고, 제2 트레일링 자음에는 (0x04)의 웨이트값이 할당되고, 나머지도 그와 같이 할당된다. 또한 도 4b 및 도 4c에 도시된 바와 같이, 이러한 웨이팅 도표의 구성은 스크립트 멤버와 같은 다른 스탠더드 유니코드 웨이팅 값의 통합을 포함할 수 있다.
자모 스페셜 테이블의 상술된 실시예로부터, 정렬된 구 한글 문자 및 현대 한글 문자의 조합을 갖는 데이터 테이블은 적합하게 생성될 수 있다. 도 5에, 구 한글 문자 및 현대 한글 문자를 갖는 데이터 테이블의 하나의 섹션의 예가 도시되어 있다. 일 실시예에서, 도 5의 테이블은 도 4a 내지 도 4c의 리딩 자음, 모음, 및 트레일링 자음 테이블에 따라 정렬된 자모 문자의 모든 가능한 조합을 정렬시킴으로써 생성된다. 예를 들어, 구 한글 및 현대 한글 테이블의 계층은 도 4a에 도시된 바와 같이, 리딩 자음 스페셜 웨이트값 테이블에 따라 리딩 자음에 의해 자모 문자의 각 그룹을 먼저 정렬시킴으로써 배열된다. 그후에, 동일한 리딩 자음을 갖는 문자의 각 그룹은 도 4b에 도시된 바와 같이, 모음 스페셜 웨이트값 테이블에 따른 모음의 순서에 의해 정렬된다. 따라서, 그후에, 동일한 모음을 갖는 문자의 각 그룹은 도 4c에 도시된 바와 같이, 트레일링 자음 스페셜 웨이트값 테이블에 따른 트레일링 자음의 순서에 의해 정렬된다.
스페셜 웨이트값 테이블에 따라 각 자모 조합을 정렬시킴으로써, 현대 한글 및 구 한글을 나타내는 자모 코드 조합은 적합하게 정렬될 수 있다. 도 5의 라인 4와 관련하여, 코드 (U+1100),(U+1161),(U+11A8) 및 (U+11AB)를 갖는 자모 문자에 의해 표시되는 제1 구 한글 문자는 한글 코드(U+AC02)로 표시되는 현대 한글 문자후에 그리고 한글 코드(U+AC03)로 표시되는 현대 한글 문자전에 적합하게 배열된다. 구한글 문자에 대한 상응하는 트레일링 자음, (U+11A8) 및 (11AB)는 한글 코드(U+AC02)로 표시되는 현대 한글 문자에 대하여, 트레일링 자음,(U+11A9)뒤에 배열되기 때문에 이러한 제1 한글 문자는 한글 코드(U+AC02)뒤에 놓인다.
각 나머지 구 한글 문자는 도 4a 내지 도 4c의 웨이팅 테이블에 따라 도 5의 테이블에서 정렬되고 맵핑된다. 예를 들어, 도 5의 테이블의 라인(5)에 도시된 바와 같이, 코드 (U+1100), (U+1161), (U+11C3)을 갖는 자모 문자로 표시되는 제2 구 한글 문자는 제1 구 함글 문자뒤에 적합하게 배열된다. 제2 구 한글 문자는 도 4c에 도시된 트레일링 자음 스페셜 웨이트값 테이블의 순서 때문에 제1 구 한글 문자뒤에 놓인다. 모든 유효한 자모 조합으로 표시된 나머지 구 한글 문자 및 현대 한글 문자는 상술된 배열 방법을 사용함으로써 유사한 방식으로 정렬된다. 또한 도 5에서 도시된 바와 같이, 다른 유니코드 스탠더드 코드는 정렬된 문자 테이블로 통합될 수 있다. 예를 들어, 도 5의 정렬된 문자의 예는 또한 각 현대 한글 문자에 대한 한글 유니코드, 유니코드 스탠더드내에 통합된 각 조합에 대한 상응하는 스크립트 멤버(SM) 및 상응하는 영숫자 웨이트값(AW)을 포함한다. 이러한 특정 웨이트값이 이러한 예에서 설명되었지만, 임의의 다른 코드 또는 웨이트값이 본 발명의 범위를 벗어남 없이 그러한 테이블에 부가될 수 있다는 것을 당업자들은 이해할 수 있다. 예를 들어 설명하자면, "O's"는 구 한글 문자를 나타내는 코드를 갖는 테이블 행에 기입된다. 따라서, "M's"는 현대 한글 문자를 나타내는 코드를 갖는 테이블 행에 기입된다.
정렬된 구 한글 문자 및 현대 한글 문자의 문자 테이블이 구성된 후에, 스페셜 코드는 할당된 유니코드 값을 갖지 않는 한글 문자와 연관될 수 있다. 보다 상세하게는, 한국어를 포함하는 예에서, 웨이팅 값은 구 한글 문자를 나타내는 각 자모 조합과 연관된다. 본 발명의 일 실시예에서, 각 구 한글 문자와 연관된 스크립트 멤버(SM) 및 영숫자 웨이트(AW)값은 이전 현대 한글 문자의 (SM) 및 (AW) 값과 동일하다. 예를 들어, 도 6의 수정된 유니코드 테이블에서, 제2 현대 한글 문자(라인 3)의 (SM=0x80) 및 (AW=0x05)는 제1 구 한글 문자(라인 4)와 연관된다. 당업자가 이해할 수 있는 것처럼, 구 한글 문자로의 (SM) 및 (AW)의 조합은 주지된 정렬 알고리즘이 구 한글 문자 및 현대 한글 문자를 적합하게 정렬시킬 수 있게 하는 코드 맵을 생성한다. 예를 들어, (SM) 및 (AW)을 분석함으로써, 제1 구 한글 문자(라인 4)는 제3 현대 한글(라인 3) 뒤에 그리고 제4 현대 한글(라인 7) 전에 적합하게 정렬될 것이다.
또한 도 6의 예에서 도시된 바와 같이, 제 2 현대 한글 문자(라인 3)의 (SM) 및 (AW)값은 제2 및 제3 구 한글 문자(라인 5 및 라인 6)와 연관된다. 그래서, 제2 및 제3 구 한글 문자(라인 5 및 라인 6)는 (SM=0x80) 및 (AW=0x05)의 웨이팅 값과 연관된다. 나머지 구 한글 문자의 (SM) 및 (AW) 웨이트값은 유사한 방식으로 다른 웨이팅 값과 연관된다. 예를 들어, 제4 구 한글 문자(라인 8)의 (SM) 및 (AW) 웨이트값은 제4 현대 한글 문자(라인 7)와 동일한 (SM) 및 (AW) 웨이트값과 연관된다. 그래서, 제4 구 한글 문자(라인 8)는 (SM=0x80) 및 (AW=0x06)의 웨이팅 값과 연관된다.
일단 각 구 한글 문자가 특정 스크립트 멤버(SM) 및 영숫자 웨이트값(AW)에 연관되면, 다른 웨이트값은 구 한글 문자에 할당된 (SM) 및 (AW)에 더해진다. 보다 상세하게는, 본 발명의 맵핑 방법의 일 실시예에서, 자모 스페셜 웨이트값은 각 구 한글 문자와 연관된다. 일반적으로 설명된 바와 같이, 각 구 한글 문자로의 자모 스페셜 웨이트값의 이러한 연관은 컴퓨터로 실행되는 알고리즘이 구 한글 문자를 용이하게 구별하고 정렬시킬 수 있게 하는 코드 계층을 제공한다.
일 실시예에서, (도 4a 내지 도 4c의) 자모 스페셜 웨이트값은 각 구 한글의 (SM) 및 (AW)에 부가된다. 보다 상세하게는, 상응하는 리딩 자음, 모음, 및 트레일링 자음의 자모 스페셜 웨이트값이 각 구 한글 문자의 (SM) 및 (AW) 웨이팅 값에 연관된다. 예를 들어, 제1 구 한글 문자(도 6의 라인 4)는 [0x03],[0x03] 및[0x05]의 자모 스페셜 웨이트값에 할당된다. 도 4a 내지 도 4c의 자모 스페셜 웨이트값과 관련하여, 이러한 스페셜 웨이트값은 상응하는 리딩 자음(U+1100),[0x03]; 모음(U+1161),[0x03]; 및 상응하는 트레일링 자음(U+11A8, U+11AB), [0x05]에 대한 자모 스페셜 웨이트값으로부터 얻어진다. 또한 도 6의 수정된 유니코드 테이블에 도시된 바와 같이, 각 구 한글 문자의 스크립트 멤버로부터 필러 값으로 기능하는 [0xFF]값과 같은 다른 독단적인 코드가 필러로서 다른 필드에 할당될 수 있다. 다른 [0x01] 코드는 어떻게 다른 유니코드 값이 자모 스페셜 웨이트값에 부가될 수 있는지를 보여 설명하기 위해 제공되었다.
상술된 맵핑 방법을 사용함으로써, 컴퓨터에 실현되는 알고리즘은 구 한글 문자 및 현대 한글 문자를 용이하게 구별하고 정렬시킬 수 있다. 또한, 상술된 맵핑 방법은 기존의 유니코드 시스템과 호환가능한, 수정된 코드 구조를 제공한다.
문자를 정렬시키고 맵핑하는 방법의 요약이 설명되었으므로, 문자를 맵핑하고 정렬시키는, 컴퓨터로 실행되는 방법을 설명한다. 아래에 설명된 바와 같이, 한국어를 포함하는 예에서, 본 발명의 일 방법은 유일한 숫자 웨이팅 도표를 사용함으로써 현대 한글에 구 한글을 맵핑한다. 그다음, 이 맵핑 방법의 결과는 구 한글 문자 및 현대 한글 문자의 스트링을 비교하는 방법에 적용된다.
도 2 내지 도 6의 데이터 테이블과 연결된 도 7 및 도 8에서, 구 한글 문자를 현대 한글 문자와 함께 정렬시키는 컴퓨터로 실행되는 루틴의 일 예가 도시되고 아래에 설명되었다. 보다 상세하게는, 도 7은 본 발명에 따른 숫자 웨이트값 맵핑 프로세스(100)의 순서도를 도시한다. 이 숫자 웨이트값 맵핑 프로세스(100)의 서브루틴으로서, 도 8은 본 발명에 따른 자모 타당성 검사 서브루틴(200)의 순서도를 도시한다.
숫자 웨이트값 맵핑 프로세스의 예에서, 한글 문자 및 한국어 자모의 스트링은 분석되고 웨이트 어레이가 생성된다. 이러한 실시예에서, 웨이트 어레이는 도 6의 테이블의 라인(4-6)에 도시된 자모 스페셜 코드를 갖는 웨이트 어레이와 유사할 수 있다. 일단 생성되면, 웨이트 어레이는 문자의 스트링을 비교하는 또 다른 정렬 프로세스에 의해 사용될 수 있다.
도 7에 도시된 바와 같이, 숫자 웨이트값 맵핑 프로세스(100)는 블록(102)에서 개시하고, 여기에서 웨이트 어레이는 초기화되고 포인터는 분석될 스트링내의 제1 문자로 설정된다. 일 실시예에서, 웨이트 어레이는 도 6에 도시된 테이블의 라인(4)에 도시된 데이터 필드와 같이, 다수의 16진법의 코드를 저장할 수 있는 컴퓨터 메모리 디바이스내의 다수의 데이터 필드일 수 있다.
다음으로, 판정 블록(104)에서, 테스트는 스트링의 엔드에 도달하였는지를 결정하기 위해 수행된다. 당업자가 이해할 수 있는 바와 같이, 스트링의 엔드를 결정하는 많은 주지된 방법이 있어서, 프로세스에서 이러한 부분은 더 이상 논의되지 않을 것이다. 판정 블록(104)에서, 스트링의 엔드에 도달하면, 프로세스(100)는 웨이트 어레이가 압축되는 블록(106)으로 계속된다. 프로세스의 이러한 부분에서, 웨이트 어레이는 임의의 알려진 압축 기술로 압축될 수 있다. 일단 웨이트 어레이가 압축되면, 프로세스(100)는 종료한다. 아래에 더 상세하게 설명되는 바와 같이, 프로세스(100)의 종료후에, 웨이트 어레이는 정렬 루틴에 의해 사용될 수 있다.
그러나, 스트링의 엔드에 도달되지 않았다면, 판정 블록(110)에서 스트링의 다음 문자가 얻어진다. 프로세스의 이러한 부분은 포인터의 메모리 로케이션에서 ASCII 또는 유니코드 문자 값과 같은 문자 값을 판독함으로써 이루어질 수 있다. 일단 문자 값이 판독되면, 포인터는 스트링내의 다음 문자로 진행할 수 있고 맵핑 프로세스(100)는 블록(112)으로 계속된다.
블록(112)에서, 문자에 대한 숫자 웨이트값이 얻어진다. 본 발명의 실제 실시예에서, 오퍼레이팅 시스템은 문자에 대한 유니코드 16-비트 숫자 코드를 리턴하기 위해 유니코드 문자 룩업 테이블을 사용한다. 당업자가 이해할 수 있는 바와 같이, 숫자 웨이트값 또는 코드는 수많은 주지된 코드 검색 방법에 의해 얻어질 수 있다. 일단, 문자에 대한 숫자 웨이트값이 얻어지면, 맵핑 프로세스(100)는 판정 블록(114)로 계속된다.
판정 블록(114)에서, 문자가 한글 자모인지를 결정하기 위해 테스트가 실행된다. 본 발명의 실제 실시예에서, 문자에 대한 숫자 웨이트값이 자모 문자에 대한 코드의 범위내에 있는지를 결정하기 위해 분석이 수행될 수 있다. 블록(114)의 프로세스의 일 예에서, 문자에 대한 코드가 (U+1100) 내지 (U+1159)의 모든 리딩 자음; (U+1161) 내지 (U+11A2)의 모음; 또는 (U+11A8) 내지 (U+11F9)의 모든 트레일링 자음에 대한 범위내에 있는지를 컴퓨팅 디바이스는 결정할 수 있다.
문자가 한글 자모가 아니라면, 프로세스(100)는 스트링의 엔드에 도달되었는지를 결정하기 위해 테스트가 다시 수행되는 블록(104)로 다시 되돌아간다. 그러나, 판정 블록(114)에서, 문자가 한글 자모 문자라면, 프로세스는 현대 및 구 한글웨이트값에 대한 변수의 세트가 리셋되는 블록(116)으로 계속된다. 또한, 블록(116)의 프로세스는 유효한 구 자모 스트링 플래그가 리셋되는 단계를 포함한다. 상술된 바와 같이, 모든 자모 문자 스트링이 유효할 수는 없다. 따라서, 본 발명의 일 실시예는 자모 문자가 유효한 구 한글 문자를 나타내는지를 프로세스(100)가 결정하는 블록(118)으로 진행한다.
블록(118)에서, 프로세스(100)는 처리된 자모 문자가 유효한지를 검증하기 위해 자모 타당성 검사 서브루틴을 초기화한다. 도 8에, 자모 타당성 검사 서브루틴(118)의 순서도가 도시되어 있다. 타당성 검사 서브루틴(118)은 문자가 스트링으로부터 얻어지는 블록(202)에서 개시한다. 블록(102)에 관하여 상술된 바와 같이, 포인터는 스트링으로부터 얻어질 문자를 마킹하기 위해 사용될 수 있다.
일단 문자가 블록(202)의 프로세스에서 얻어지면, 판정 블록(204)에서, 포인터가 구 한글의 엔드에 있는지를 결정하기 위해 테스트가 수행된다. 일 실시예에서, 서브루틴(118)은 문자가 리딩 자음이고 이전에 얻어진 문자가 트레일링 자음이라면 포인터가 구 한글의 엔드에 있다고 결정할 수 있다. 이러한 예가 블록(204)의 프로세스의 일 실시예를 설명하기 위해 사용되었지만, 연결된 문법에 따른 임의의 테스트가 이러한 프로세스에서 사용될 수 있다. 따라서, 포인터가 구 한글의 엔드에 있다면, 서브루틴(118)은 종료하고 숫자 웨이트값 맵핑 프로세스(100)로 돌아간다. 동시에, 완전한 구 한글 자모 시퀀스가 발견된다면, 타당성 검사 플래그는 참으로 설정되고, 자모 세트에 대한 웨이트 및 현대 웨이트 인덱스는 프로세스(100)로 돌아갈 것이다. 그렇지 않으면, 타당성 검사 플래그는 거짓으로 설정될 것이고,완전한 구 한글 자모 시퀀스가 발견되지 않았다는 것을 표시하기 위해 프로세스(100)로 돌아간다.
그러나, 판정 블록(204)에서, 포인터가 구 한글의 엔드에 있지 않다면, 서브루틴(118)은 문자가 리딩 자음, 모음 또는 트레일링 자음 그룹내의 유효한 전이 문자(transition character)인지를 결정하기 위해 테스트가 수행되는 판정 블록(208)로 계속된다. 상술된 바와 같이, 자모 문자는 리딩 자음, 모음, 또는 트레일링 자음으로 특징지어질 수 있다. 따라서, 일 실시예에서, 판정 블록(208)의 프로세스는 문자가 유효한 전이 문자인지를 결정하기 위해 도 4a, 도 4b 및 도 4c와 같은 테이블 및 자모 문자의 상술된 유니코드 범위를 사용할 수 있다. 본 발명의 실제 실시예에서, 자모 문자가 구 한글 스트링의 일부의 각각에 대한 제1 문자를 따르고 있다면, 자모 문자는 유효한 전이 문자이다. 예를 들어, 구 한글에서, 3개의 리딩 자음까지 구 한글 음절을 나타내기 위해 사용될 수 있다. 예를 들어, 도 4a에서, 이전 문자가 U+1100이고 현 문자는 U+1105이라면, 그 자모 문자는 유효한 전이 문자가 아니다. 그러나, (도 4a 라인 3으로부터) 이전 문자가 U+1100이고, 현 문자가 U+1103이라면, 그 자모 문자는 유효한 전이 문자이다. 또한, 자모 문자의 시리즈가 문법에 합치한다면, 그 문자는 유효한 전이 문자이다. 예를 들어, 문자가 제4 리딩 자음이라면, 그것은 구 한글 문법이 최대 3개의 리딩 자음 문자를 허용하기 때문에 유효한 전이 문자가 아니다.
판정 블록(208)에서, 문자가 유효한 전이 문자라면, 서브루틴(118)은 구 한글에 대한 타당성 검사 플래그가 업데이트되는 블록(222)으로 계속된다. 아래에 더상세하게 설명될 것처럼, 블록(222)에서 업데이트된 구 한글 타당성 검사 플래그는 맵핑 프로세스(100)에 의해 사용된다.
판정 블록(208)에서, 문자가 유효한 전이 문자가 아니라면, 서브루틴(118)은 문자가 리딩 자음인지를 서브루틴(118)이 결정하는 블록(210)으로 계속된다. 상술된 바와 같이, 리딩 자음의 존재를 결정하는 프로세스는 유니코드가 모든 리딩 자음에 대한 코드의 범위내에 있는지를 결정하기 위해 유니코드를 분석함으로써 수행될 수 있다. 문자가 리딩 자음인지를 결정하는 것에 더하여, 블록(210)의 프로세스는 서브루틴(118)이 리딩 자음을 이전에 분석하였는지를 결정한다. 프로세스의 이러한 부분에서, 서브루틴(118)은 블록(212)에서 업데이트되는 플래그를 분석한다. 일반적으로 설명된 바와 같이, 블록(212)의 프로세스는 제1 리딩 자음이 서브루틴에서 처리된 후에 플래그를 설정한다. 따라서, 판정 블록(210)의 프로세스에서, 서 브루틴(118)은 문자가 리딩 자음이라면 그리고 서브루틴(118)이 리딩 자음을 아직 처리하지 않았다면 블록(212)으로 계속된다. 그러나, 판정 블록(210)에서, 문자가 리딩 자음이 아니고 리딩 자음 플래그가 블록(212)에서 설정되었다고 서브루틴(118)이 결정한다면, 서브루틴(118)은 판정 블록(214)로 계속된다.
판정 블록(214)에서, 서브루틴(118)은 문자가 모음인지를 결정한다. 상술된 바와 같이, 유니코드가 모음의 범위내에 있는지를 결정하기 위해 그리고 문자의 유니코드를 분석함으로써 모음의 존재를 결정하는 프로세스는 수행될 수 있다. 문자가 모음인지를 결정하는 것에 더하여, 블록(214)의 프로세스는 서브루틴(118)이 이전에 모음을 분석하였는지를 결정한다. 프로세스의 이러한 부분에서,서브루틴(118)은 블록(216)에서 업데이트되는 플래그를 분석한다. 일반적으로 설명된 바와 같이, 블록(216)의 프로세스는 제1 모음이 서브루틴(118)에서 처리된 후에 플래그를 설정한다. 따라서, 판정 블록(214)의 프로세스에서, 서브루틴(118)은 문자가 모음이고 서브루틴(118)이 아직 모음을 처리하지 않았다면 블록(216)으로 계속된다. 그러나, 판정 블록(214)에서, 서브루틴(18)이 문자가 모음이 아닌 것과 플래그가 블록(216)에서 설정되었다는 것을 결정한다면, 서브루틴(118)은 판정 블록(218)으로 계속된다.
판정 블록(218)에서, 서브루틴(118)은 문자가 트레일링 자음인지를 결정한다. 상술된 바와 같이, 트레일링 자음의 존재를 결정하는 프로세스는 유니코드가 트레일링 자음에 대한 코드의 범위내에 있는지를 결정하기 위해 유니코드를 분석함으로써 수행될 수 있다. 문자가 트레일링 자음인지를 결정하는 것에 더하여, 블록(218)의 프로세스는 서브루틴(118)이 이전에 트레일링 자음을 분석하였는지를 결정한다. 프로세스의 이러한 부분에서, 서브루틴(118)은 블록(220)에서 업데이트되는 플래그를 분석한다. 일반적으로 설명되는 바와 같이, 블록(220)의 프로세스는 제1 트레일링 자음이 서브루틴에서 처리된 후에 플래그를 설정한다. 따라서, 판정 블록(218)에서, 서브루틴(118)은 문자가 트레일링 자음이고 서브루틴(118)이 아직 트레일링 자음을 처리하지 않았다면 블록(220)으로 계속된다. 그러나, 판정 블록(218)에서, 서브루틴(118)이 문자가 트레일링 자음이 아니고 트레일링 자음 플래그가 블록(220)에서 설정되었다고 결정하면, 서브루틴(118)은 종료하고 맵핑 프로세스(100)로 되돌아간다.
블록(212,216 또는 220)의 프로세스후에, 서브루틴(118)은 유효한 구 한글이 처리중이라는 것을 나타내도록 플래그가 설정되는 블록(222)으로 계속된다. 본 발명의 일 실시예에서, 플래그의 디폴트 상태는 구 한글이 유효하다는 것을 나타낸다. 그러나, 블록(222)에서 업데이트된 플래그는 문자의 배열이 관련 문법을 따르지 않을 때 구 한글 문자가 유효하지 않다는 것을 나타내는 상태로 바뀐다. 예를 들어, 블록(222)의 프로세스는 스트링에 4개 이상의 연속 리딩 자음이 있을 때 구 한글이 유효하지 않다는 것을 나타낸다.
구 한글 타당성 검사 플래그가 블록(222)에서 설정된 후에, 서브루틴(118)은 현대 웨이트값이 얻어지는 블록(224)에서 계속된다. 일반적으로 설명되는 바와 같이, 서브루틴(118)의 이러한 부분은 처리된 자모 문자를 분석하고 이 처리된 자모 문자에 의해 표시되는 구 한글 문자를 적합하게 식별하는 하나 이상의 웨이트값을 생성한다. 일 실시예에서, 블록(224)의 프로세스는 처리된 자모 문자와 가장 밀접하게 연관된 현대 한글의 하나 이상의 웨이트값을 얻는다. 보다 상세하게는, 구 한글 문자를 처리하는 현대 한글의 웨이트값이 얻어진다. 이것은 도 5의 예시된 데이터 테이블과 유사한 데이터베이스를 사용함으로써 수행될 수 있다.
블록(224)의 프로세스의 일 예가 도 5의 데이터 테이블에 도시되었다. 서브루틴(118)이 (U+1100), (U+1161), 및 (U+11A8, U+11AB)의 자모 코드로 표시된 자모 문자의 세트를 처리한다면, 블록(224)의 프로세스는 [0x80] 및 [0x05]인 이전 현대 한글 문자의 웨이트값을 얻게 될 것이다. 상술된 바와 같이, 이전 현대 한글 문자는 도 4a 내지 도 4c에 도시된 바와 같이, 구 한글 문자 및 현대 한글 문자 모두를나타내는 자모 문자의 하나 이상의 정렬된 리스트에 의해 결정된다.
다음으로, 블록(226)에서, 처리된 자모에 대한 웨이트값이 얻어진다. 본 발명의 실제 실시예에서, 블록(226)의 프로세스는 다수의 자모 스페셜 웨이트값을 리턴한다. 자모 스페셜 웨이트값의 일 예가 도 4a 내지 도 4c의 데이터 테이블에 도시되었다. 상술된 예의 적용에서, 서브루틴(118)이 (U+1100), (U+1161), 및 (U+11A8, U+11AB)의 자모 코드로 표시된 자모 문자의 세트를 처리한다면, 블록(226)의 프로세스는 [0x03], [0x03], 및 [0x05]의 자모 스페셜 웨이트값을 얻게 될 것이다. 이러한 단계의 실현에서, 오퍼레이팅 시스템 또는 프로그램은 문자에 대한 웨이팅 값을 리턴하는 다양한 기능중 임의의 하나를 사용할 수 있다. 예를 들어, 블록(226)의 프로세스는 임의의 다른 유사한 방법에 의해 또는 도 4a 내지 도 4c에 도시된 바와 같이 데이터 테이블로부터 웨이트값을 검색할 수 있다. 일단 구 한글 자모에 대한 스페셜 웨이트값이 얻어지면, 서브루틴(118)은 스트링내의 다음 문자가 얻어지는 블록(202)으로 리턴한다. 따라서, 서브루틴(118)은 완전한 시리즈의 구 한글 자모 문자(9개의 자모 문자까지)가 처리될 때까지 반복적인 프로세스를 실행한다.
도 7로 돌아가서, 서브루틴(118)이 자모 문자를 처리한 후에, 판정 블록(120)에서, 스트링내의 자모 문자의 시리즈가 유효한 지를 결정하기 위해 테스트된다. 본 발명의 실제 실시예에서, 이러한 단계는 프로세스 블록(222)에 할당된 타당성 검사 플래그를 분석함으로써 수행된다(도 8). 판정 블록(120)에서, 타당성 검사 플래그가 구 한글이 유효하지 않다고 나타내면, 프로세스(100)는 자모 조합에대한 웨이팅 값이 얻어지는 블록(123)으로 계속된다. 일 실시예에서, 블록(123)의 프로세스는 블록(226)에서 얻어진 웨이트값과 같이 각 자모 문자의 자모 스페셜 웨이팅 값을 리턴한다.
그러나, 판정 블록(120)에서, 유효한 구 한글 플래그가 설정되면, 프로세스(100)는 하나 이상의 웨이트값이 얻어지는 블록(122)으로 진행한다. 프로세스의 이러한 부분에서, 프로세스 블록(224,226)에서 발생된 웨이트값이 얻어진다. 상기 예에 적용된 바와 같이, 블록(122)의 프로세스로 [0x80] 및 [0x05]의 웨이트값을 얻는다. 또한, 블록(122)의 프로세스로 [0x03],[0x03],및 [0x05]의 자모 스페셜 웨이트값을 얻는다.
웨이트값이 얻어진 후에, 프로세스(100)는 웨이트값이 스페셜 웨이트값과 연관되는 블록(124)으로 계속된다. 일 실시예에서, 자모 스페셜 웨이트값은 웨이트 어레이를 연산하기 위해 웨이트값에 부가된다. 상기 예에 적용된 바와 같이, 블록(124)의 프로세스는 [0x80],[0x05],[0x03], 및 [0x05]의 웨이트 어레이를 생성한다.
블록(123,124)의 프로세스후에, 맵핑 프로세스(100)는 이 생성된 웨이트값을 유니코드 시스템과 같은 표준화된 인덱싱 시스템에 따른 다른 웨이트값과 조합한다. 예를 들어, 도 6의 라인 4의 제1 구 한글 문자의 예에서, [0x80],[0x05],[0x03],[0x03],및 [0x05]의 웨이트 어레이는 스탠더드 인덱싱 시스템에 따라 웨이트 어레이를 적합하게 포맷팅하는 필러 코드의 세트와 같은 다른 코드[0xFF]와 조합된다. 이러한 예가 현대 한글의 웨이트값 및 자모 스페셜 웨이트값을 갖는 웨이트 어레이만을 설명하였지만, 임의의 다른 코드가 삽입, 첨가, 및/또는 이러한 웨이트값과 연관될 수 있다. 따라서, 도 6의 라인 4에 도시된 것과 유사한 웨이트 어레이가 생성될 수 있다. 본 발명의 일 실시예에서, 상술된 맵핑 방법(100)은 도 6의 데이터 테이블을 형성하기 위해 사용될 수 있다. 또 다른 실시예에서, 상술된 맵핑 방법(100)은 스트링이 비교되거나 정렬될 때 개별적인 웨이트 어레이를 생성하기 위해 사용될 수 있다.
상술된 바와 같이, 맵핑 프로세스(100)는 스트링내의 문자 모두가 분석될 때까지 블록(102) 내지 블록(126)을 반복적으로 계속된다. 그에 따라 웨이트 어레이가 생성된다. 이 웨이트 어레이는 가장 일반적으로 알려진 텍스트 또는 스트링 정렬 방법으로 사용될 수 있다. 당업자가 이해할 수 있는 바와 같이, 2개 이상의 유니코드 스트링의 비교는 2개의 스트링의 숫자 웨이트값을 비교함으로써 수행할 수 있다. 예를 들어, 오퍼레이팅 시스템 기능이 2개의 유니코드 텍스츄얼 스트링을 비교하는 요청을 획득할 때, 오퍼레이팅 시스템은 이 스트링을 얻어 각 스트링을 SM, AW, 및 다른 자모 스페셜 웨이트값과 같은 숫자 웨이트값의 시퀀스로서 리턴한다. 수학 함수를 사용함으로써, 오퍼레이팅 시스템은 웨이트값의 시퀀스를 비교하여 스트링 사이의 상대적 순서를 결정할 수 있다.
본 발명에 따르면, 이전 현대 한글 웨이트값의 사용은 구 한글 자모의 현대 한글 문자와의 비교를 용이하게 한다. 또한, 구 한글 문자를 이전 웨이트값에 부가함으로써, 동일한 이전 현대 한글 문자를 갖는 2개의 구 한글 자모의 비교 또한 용이해진다. 스트링 비교를 가능하게 하기 위해 대표 웨이트값의 제1 숫자 세트에 상응하는 스트링의 대표 웨이트값의 제2 숫자 세트에 상응하는 제2 스트링으로의 맵핑을 본 발명이 용이하게 한다는 것을 당업자는 이해할 것이다.
본 발명의 예의 실시예가 도시되고 설명되었지만, 다양한 변형이 본 발명의 범위를 벗어남 없이 만들어질 수 있다는 것을 이해할 것이다. 이와 유사하게, 여기에 설명된 임의의 프로세스 단계가 동일한 결과를 얻기 위해 다른 단계와 교환될 수도 있다. 또한, 개시된 정확한 형태로 본 발명을 제한하거나 철저히 설명하려고 상술된 예가 의도된 것은 아니다. 예를 들어, 여기에 개시된 본 실시예가 한국어를 포함하지만, 인덱싱되지 않은 단어 또는 문자를 갖는 다른 언어에 본 발명의 방법이 적용될 수 있다는 것을 이해할 수 있다.
Claims (21)
- 인덱싱된 표현을 나타내는 문자의 조합 및 비인덱싱된 표현을 나타내는 문자의 조합을 포함하는 스트링내의 복수의 문자를 맵핑하는 방법에 있어서, 상기 방법은,스페셜 웨이트값의 순서가 복수의 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 복수의 문자의 순서에 기초하고 복수의 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 복수의 문자에 대한 스페셜 웨이트값의 세트를 생성하는 단계;상기 스트링내의 특정 그룹의 문자가 특정 비인덱싱된 표현을 나타낸다면, 인덱싱된 표현의 웨이트값을 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관시키는 단계;특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 스페셜 웨이트값을 검색하는 단계; 및인덱싱된 표현의 연관된 웨이트값 및 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 스페셜 웨이트값을 포함하는 웨이트 어레이를 생성하는 단계;를 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 상기 웨이트값은 이전 인덱싱된 표현의 인덱싱된 웨이트값과 매칭하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 웨이트 어레이는 유니코드 스탠더드와 호환가능한 포맷으로 구성되는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 웨이트값은 유니코드 스탠더드에 따른 영숫자 웨이트값을 나타내는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 각 인덱싱된 표현은 현대 한글 문자를 나타내고, 각 비인덱싱된 표현은 구 한글 문자를 나타내는 것을 특징으로 하는 방법.
- 제 5 항에 있어서, 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 웨이트값은 이전 인덱싱된 표현의 인덱싱된 웨이트값과 매칭하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 비인덱싱된 표현을 나타내는 특정 문자에 대한 스페셜 웨이트값의 세트는 각 카테고리의 문자의 문법에 의해 배열된 복수의 카테고리의 문자를 독립적으로 인덱싱함으로써 생성되는 것을 특징으로 하는 방법.
- 제 7 항에 있어서, 문자의 카테고리는 리딩 자음의 제1 카테고리, 모음의 제2 카테고리, 및 트레일링 자음의 제3 카테고리를 포함하는 것을 특징으로 하는방법.
- 제 1 항에 있어서, 상기 스트링내의 특정 그룹의 문자가 구 한글 문자를 적합하게 나타내는지를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 유효한 수의 리딩 자음이 특정 그룹의 문자내에 존재하는지를 결정함으로써 유효하다고 결정되는 스트링내의 특정 그룹의 문자가 유효한지를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 웨이트 어레이를 압축하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 스트링내의 인덱싱된 표현은 유니코드 스탠더드에 따라 인덱싱되는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 웨이트 어레이를 생성하는 단계는 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 스페셜 웨이트값을 비인덱싱된 표현의 연관된 웨이트값에 부가하는 단계를 포함하는 것을 특징으로 하는 방법.
- 실행될 때 제 1 항의 방법을 수행하는 컴퓨터 실행가능 코드를 갖는 것을 특징으로 하는 컴퓨터-판독가능 매체.
- 실행될 때 제 1 항의 방법을 수행하는 컴퓨터 실행가능 코드를 갖는 것을 특징으로 하는 컴퓨터 시스템.
- 복수의 표준화된 웨이트값에 의해 인덱싱된 현대 한글을 나타내는 자모의 조합 및 구 한글을 나타내는 자모의 조합을 포함하는 스트링내의 복수의 문자를 맵핑하는 방법에 있어서, 상기 방법은,복수의 현대 한글 및 구 한글을 나타내는 복수의 자모 문자에 대한 스페셜 웨이트값의 세트를 발생하는 단계로서, 상기 스페셜 웨이트의 순서는 복수의 현대 한글 및 구 한글을 나타내는 복수의 문자의 순서에 기초하는 단계;상기 스트링내의 특정 그룹의 자모가 특정 구 한글을 나타낸다면, 현대 한글의 적어도 하나의 표준화된 웨이트값을 특정 구 한글을 나타내는 특정 그룹의 자모와 연관시키는 단계;상기 특정 구 한글을 나타내는 특정 그룹의 자모와 연관된 복수의 스페셜 웨이트값을 검색하는 단계; 및현대 한글의 연관되고 표준화된 웨이트값 및 특정 구 한글을 나타내는 특정 자모와 연관된 복수의 스페셜 웨이트값을 포함하는 웨이트 어레이를 생성하는 단계;를 포함하고 있으며, 상기 연관된 표준화된 웨이트값은 상기 구 한글 이전의 상기 현대 한글로부터 선택되는 것을 특징으로 하는 방법.
- 제 16 항에 있어서, 상기 표준화된 웨이트값은 유니코드 스탠더드에 따라 영숫자 웨이트값을 나타내는 것을 특징으로 하는 방법.
- 실행될 때 제 16 항의 방법을 수행하는 컴퓨터 실행가능 코드를 갖는 것을 특징으로 하는 컴퓨터-판독가능 매체.
- 실행될 때 제 16 항의 방법을 수행하는 컴퓨터 실행가능 코드를 갖는 것을 특징으로 하는 컴퓨터 시스템.
- 제1 세트의 문자 및 제2 세트의 문자를 정렬시키는 방법에 있어서, 상기 방법은,제1 세트의 문자에 대한 웨이트 어레이를 생성하여서, 상기 제1 세트의 문자에 대한 복수의 웨이팅 값을 제공하는 단계;상기 제1 세트의 문자에 대한 복수의 웨이팅 값을 상기 제2 세트의 문자에 대한 할당된 세트의 웨이팅 값에 비교하는 단계; 및상기 복수의 웨이팅 값 및 할당된 웨이팅 값의 비교에 기초하여 제1 세트의 문자 및 제2 세트의 문자를 정렬시키는 단계;를 포함하는 것을 특징으로 하는 방법.
- 인덱싱된 표현의 연관된 웨이트값 및 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 스페셜 웨이트값을 갖는 웨이트 어레이를 포함하는 것을 특징으로 하는 데이터 구조를 저장한 컴퓨터-판독가능 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24428800P | 2000-10-30 | 2000-10-30 | |
US60/244,288 | 2000-10-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020033549A true KR20020033549A (ko) | 2002-05-07 |
KR100902966B1 KR100902966B1 (ko) | 2009-06-15 |
Family
ID=22922135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010066789A KR100902966B1 (ko) | 2000-10-30 | 2001-10-29 | 비교를 위해 스트링을 맵핑하는 방법 및 시스템 |
Country Status (3)
Country | Link |
---|---|
US (2) | US6873986B2 (ko) |
JP (1) | JP4213378B2 (ko) |
KR (1) | KR100902966B1 (ko) |
Families Citing this family (134)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8645137B2 (en) | 2000-03-16 | 2014-02-04 | Apple Inc. | Fast, language-independent method for user authentication by voice |
US7130470B1 (en) * | 2002-03-15 | 2006-10-31 | Oracle International Corporation | System and method of context-based sorting of character strings for use in data base applications |
US8181109B2 (en) * | 2003-03-13 | 2012-05-15 | International Business Machines Corporation | Enabling unicode input in legacy operating systems |
WO2006029508A1 (en) * | 2004-09-13 | 2006-03-23 | Solace Systems Inc. | Highly scalable subscription matching for a content routing network |
US7831908B2 (en) * | 2005-05-20 | 2010-11-09 | Alexander Vincent Danilo | Method and apparatus for layout of text and image documents |
EP1746516A1 (en) * | 2005-07-20 | 2007-01-24 | Microsoft Corporation | Character generator |
US8677377B2 (en) | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US20070131865A1 (en) * | 2005-11-21 | 2007-06-14 | Microsoft Corporation | Mitigating the effects of misleading characters |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
KR100724141B1 (ko) * | 2006-12-29 | 2007-05-31 | 주식회사 네오패드 | 한글 표출 장치 및 그 방법 |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US8315482B2 (en) * | 2007-06-26 | 2012-11-20 | Microsoft Corporation | Integrated platform for user input of digital ink |
US9053089B2 (en) | 2007-10-02 | 2015-06-09 | Apple Inc. | Part-of-speech tagging using latent analogy |
US8620662B2 (en) * | 2007-11-20 | 2013-12-31 | Apple Inc. | Context-aware unit selection |
US9275019B2 (en) * | 2007-12-21 | 2016-03-01 | Sap Se | System and method for performing Unicode matching |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US8996376B2 (en) | 2008-04-05 | 2015-03-31 | Apple Inc. | Intelligent text-to-speech conversion |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US8107671B2 (en) | 2008-06-26 | 2012-01-31 | Microsoft Corporation | Script detection service |
US8019596B2 (en) * | 2008-06-26 | 2011-09-13 | Microsoft Corporation | Linguistic service platform |
US8073680B2 (en) * | 2008-06-26 | 2011-12-06 | Microsoft Corporation | Language detection service |
US8266514B2 (en) | 2008-06-26 | 2012-09-11 | Microsoft Corporation | Map service |
US20100030549A1 (en) | 2008-07-31 | 2010-02-04 | Lee Michael M | Mobile device having human language translation capability with positional feedback |
WO2010067118A1 (en) | 2008-12-11 | 2010-06-17 | Novauris Technologies Limited | Speech recognition involving a mobile device |
US8140517B2 (en) * | 2009-04-06 | 2012-03-20 | International Business Machines Corporation | Database query optimization using weight mapping to qualify an index |
US10255566B2 (en) | 2011-06-03 | 2019-04-09 | Apple Inc. | Generating and processing task items that represent tasks to perform |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US9431006B2 (en) | 2009-07-02 | 2016-08-30 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US20110087687A1 (en) * | 2009-10-14 | 2011-04-14 | International Business Machines Corporation | Position sensitive type-ahead matching for resource navigation |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
WO2011089450A2 (en) | 2010-01-25 | 2011-07-28 | Andrew Peter Nelson Jerram | Apparatuses, methods and systems for a digital conversation management platform |
US8682667B2 (en) | 2010-02-25 | 2014-03-25 | Apple Inc. | User profiling for selecting user specific voice input processing information |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US8271520B1 (en) * | 2011-03-31 | 2012-09-18 | Accenture Global Services Limited | Expression editor tool |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US8994660B2 (en) | 2011-08-29 | 2015-03-31 | Apple Inc. | Text correction processing |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
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 |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US20140082021A1 (en) * | 2012-09-18 | 2014-03-20 | Geoffrey R. Hendrey | Hierarchical ordering of strings |
US9547647B2 (en) | 2012-09-19 | 2017-01-17 | Apple Inc. | Voice-based media searching |
DE112014000709B4 (de) | 2013-02-07 | 2021-12-30 | Apple Inc. | Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
WO2014144579A1 (en) | 2013-03-15 | 2014-09-18 | Apple Inc. | System and method for updating an adaptive speech recognition model |
AU2014233517B2 (en) | 2013-03-15 | 2017-05-25 | Apple Inc. | Training an at least partial voice command system |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
WO2014197336A1 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
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 |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
EP3937002A1 (en) | 2013-06-09 | 2022-01-12 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
AU2014278595B2 (en) | 2013-06-13 | 2017-04-06 | Apple Inc. | System and method for emergency calls initiated by voice command |
DE112014003653B4 (de) | 2013-08-06 | 2024-04-18 | Apple Inc. | Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen |
US9594742B2 (en) * | 2013-09-05 | 2017-03-14 | Acxiom Corporation | Method and apparatus for matching misspellings caused by phonetic variations |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
TWI566107B (zh) | 2014-05-30 | 2017-01-11 | 蘋果公司 | 用於處理多部分語音命令之方法、非暫時性電腦可讀儲存媒體及電子裝置 |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10789041B2 (en) | 2014-09-12 | 2020-09-29 | Apple Inc. | Dynamic thresholds for always listening speech trigger |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US9578173B2 (en) | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
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 |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
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 |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
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 |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
DK179588B1 (en) | 2016-06-09 | 2019-02-22 | Apple Inc. | INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
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 |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
DK179343B1 (en) | 2016-06-11 | 2018-05-14 | Apple Inc | Intelligent task discovery |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
DK179049B1 (en) | 2016-06-11 | 2017-09-18 | Apple Inc | Data driven natural language event detection and classification |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
DK201770439A1 (en) | 2017-05-11 | 2018-12-13 | Apple Inc. | Offline personal assistant |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
DK201770431A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
DK201770432A1 (en) | 2017-05-15 | 2018-12-21 | Apple Inc. | Hierarchical belief states for digital assistants |
DK179560B1 (en) | 2017-05-16 | 2019-02-18 | Apple Inc. | FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES |
US10482344B2 (en) * | 2018-01-04 | 2019-11-19 | Wipro Limited | System and method for performing optical character recognition |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6028027B2 (ja) * | 1981-03-31 | 1985-07-02 | 富士通株式会社 | 韓国語ソ−ト制御方式 |
JPS6029989B2 (ja) * | 1981-03-31 | 1985-07-13 | 富士通株式会社 | 韓国語ソ−ト制御システム |
US5860075A (en) * | 1993-06-30 | 1999-01-12 | Matsushita Electric Industrial Co., Ltd. | Document data filing apparatus for generating visual attribute values of document data to be filed |
JP3457061B2 (ja) * | 1994-06-28 | 2003-10-14 | 富士通株式会社 | 属性混在文字列のソート装置及び属性混在文字列のソート方法 |
US5873111A (en) * | 1996-05-10 | 1999-02-16 | Apple Computer, Inc. | Method and system for collation in a processing system of a variety of distinct sets of information |
US6292770B1 (en) * | 1997-01-22 | 2001-09-18 | International Business Machines Corporation | Japanese language user interface for messaging system |
US6003049A (en) * | 1997-02-10 | 1999-12-14 | Chiang; James | Data handling and transmission systems employing binary bit-patterns based on a sequence of standard decomposed strokes of ideographic characters |
AU8772498A (en) * | 1997-09-05 | 1999-03-29 | Altus Biologics Inc. | Carbohydrate crosslinked glycoprotein crystals |
US6438516B1 (en) * | 1998-12-07 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for optimizing unicode composition and decomposition |
US6389386B1 (en) * | 1998-12-15 | 2002-05-14 | International Business Machines Corporation | Method, system and computer program product for sorting text strings |
US6539118B1 (en) * | 1998-12-31 | 2003-03-25 | International Business Machines Corporation | System and method for evaluating character sets of a message containing a plurality of character sets |
US6430314B1 (en) * | 1999-01-20 | 2002-08-06 | Sony Corporation | Method and apparatus for entering data strings including hangul (Korean) and ASCII characters |
-
2001
- 2001-10-29 KR KR1020010066789A patent/KR100902966B1/ko not_active IP Right Cessation
- 2001-10-29 US US10/021,546 patent/US6873986B2/en not_active Expired - Fee Related
- 2001-10-30 JP JP2001332062A patent/JP4213378B2/ja not_active Expired - Fee Related
-
2005
- 2005-03-29 US US11/096,964 patent/US7260574B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4213378B2 (ja) | 2009-01-21 |
US20050171949A1 (en) | 2005-08-04 |
US7260574B2 (en) | 2007-08-21 |
US6873986B2 (en) | 2005-03-29 |
US20020059224A1 (en) | 2002-05-16 |
JP2002196865A (ja) | 2002-07-12 |
KR100902966B1 (ko) | 2009-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100902966B1 (ko) | 비교를 위해 스트링을 맵핑하는 방법 및 시스템 | |
US5721899A (en) | Retrieval apparatus using compressed trie node and retrieval method thereof | |
CA1265623A (en) | Method of facilitating computer sorting | |
US7092871B2 (en) | Tokenizer for a natural language processing system | |
US6877003B2 (en) | Efficient collation element structure for handling large numbers of characters | |
US20090024384A1 (en) | Data processing method and system, program for realizing the method, and computer readable storage medium storing the program | |
US20160006456A1 (en) | Compression device, compression method, dictionary generation device, dictionary generation method, decompression device, decompression method, information processing system, and recording medium | |
US6049869A (en) | Method and system for detecting and identifying a text or data encoding system | |
KR101132150B1 (ko) | 주소 정형화를 위한 주소 처리방법 및 장치, 그리고 이를 위한 기록매체 | |
TWI604318B (zh) | 資料排序方法 | |
US5950184A (en) | Indexing a database by finite-state transducer | |
Chew et al. | Language identification of web pages based on improved n-gram algorithm | |
US20050091035A1 (en) | System and method for linguistic collation | |
US20050251519A1 (en) | Efficient language-dependent sorting of embedded numerics | |
KR100288144B1 (ko) | 한글로 표기된 외래어 코드화 방법 및 그를 이용한 검색 방법 | |
Kumolalo et al. | Development of a syllabicator for Yorùbá language | |
CN112183087B (zh) | 一种敏感文本识别的系统和方法 | |
CN115034230B (zh) | 语义级多模态多粒度文档重复度评估方法和系统 | |
Lehal et al. | Automatic Bilingual Legacy-Fonts Identification and Conversion System. | |
JP5846658B1 (ja) | テキスト比較装置、テキスト比較プログラム及びテキスト比較方法 | |
JP2880387B2 (ja) | Ocr住所処理装置 | |
Nyman et al. | Self Verifying Data–Testing without an Oracle | |
WO2023091765A1 (en) | Computerized systems and methods of data compression | |
CN118036607A (zh) | 实体识别方法及相关设备 | |
Selim et al. | Mapping Bangla Unicode Text to Keyboard Layout Specific Keystrokes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120518 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |