KR100902966B1 - 비교를 위해 스트링을 맵핑하는 방법 및 시스템 - Google Patents

비교를 위해 스트링을 맵핑하는 방법 및 시스템 Download PDF

Info

Publication number
KR100902966B1
KR100902966B1 KR1020010066789A KR20010066789A KR100902966B1 KR 100902966 B1 KR100902966 B1 KR 100902966B1 KR 1020010066789 A KR1020010066789 A KR 1020010066789A KR 20010066789 A KR20010066789 A KR 20010066789A KR 100902966 B1 KR100902966 B1 KR 100902966B1
Authority
KR
South Korea
Prior art keywords
characters
hangul
indexed
representing
jamo
Prior art date
Application number
KR1020010066789A
Other languages
English (en)
Other versions
KR20020033549A (ko
Inventor
맥코넬존아이.
비네트줄리에디.
린융-신
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20020033549A publication Critical patent/KR20020033549A/ko
Application granted granted Critical
Publication of KR100902966B1 publication Critical patent/KR100902966B1/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/53Processing of non-Latin text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Document Processing Apparatus (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

인덱싱된 표현을 나타내는 문자의 조합 및 비인덱싱된 표현을 나타내는 문자의 조합을 포함하는 스트링내의 다수의 문자를 맵핑하는 방법 및 시스템이 개시되었다. 일 실시예는 인덱싱된 표현 및 비인덱싱된 표현을 갖는 제1 및 제2 스트링을 비교하도록 사용될 수 있는 웨이트 어레이를 생성한다. 일 실시예에서, 방법은 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 문자에 대한 특수 웨이트의 세트를 생성한다. 그후에, 본 발명은 인덱싱된 표현의 웨이트값을 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관시키고, 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 특수 웨이트 및 상기 인덱싱된 표현의 상기 연관된 웨이트값을 검색함으로써 웨이트 어레이를 생성한다.
Figure R1020010066789
스트링, 문자, 자모, 인덱싱된 표현, 비인덱싱된 표현, 맵핑, 비교, 연관, 웨이트값, 웨이트 어레이

Description

비교를 위해 스트링을 맵핑하는 방법 및 시스템{METHOD AND SYSTEM FOR MAPPING STRINGS FOR COMPARISON}
도 1은 본 발명의 태양을 설명하기 위해 설명된 한국어 단어의 구조를 도시하는 도면,
도 2는 본 발명의 일 예시에서 사용되는 한글 문자에 할당된 코드를 도시하는 유니코드 테이블을 도시한 도면,
도 3은 상기 유니코드 표준에 따른 웨이팅된 값을 포함하는 데이터 테이블을 도시한 도면,
도 4a-4c는 본 발명에 따라 사용되는 자모(Jamo) 특수 웨이트값을 도시하는 다수의 데이터 테이블을 도시한 도면,
도 5는 본 발명에 따라 구 한글 문자 및 현대 한글 문자를 나타내는 정렬된 코드의 세트를 설명하는 수정된 유니코드 테이블을 도시한 도면,
도 6은 본 발명에 따라 구 한글 문자 및 현대 한글 문자에 대한 웨이트값을 설명하는 수정된 유니코드 테이블을 도시한 도면,
도 7은 본 발명에 따른 숫자 웨이트값 맵핑 프로세스를 예시한 순서도,
도 8은 본 발명에 따른 자모 타당성 검사 서브루틴의 순서도, 및
도 9는 본 발명이 실현될 수 있는 하나의 적당한 컴퓨팅 시스템 환경의 예를 도시한 도면.
본 발명은 컴퓨터 소프트웨어에 관한 것이고, 보다 상세하게는 상이한 대표 웨이트값을 갖는 텍스트 스트링을 맵핑하고 비교하는 방법 및 시스템에 관한 것이다.
스트링은 일반적으로 기본 데이터 타입으로 여겨지고 많은 컴퓨터 애플리케이션은 일반적으로 스트링을 비교하는 능력을 갖는다. 스트링 비교 기능이 다수의 소프트웨어 어플리케이션에서 발견될 수 있지만, 하나의 특정 어플리케이션은 텍스츄얼 데이터를 비교하기 위해 스트링을 사용하는 것이다. 예를 들어, 텍스츄얼 스트링간의 비교는 다양한 언어내의 문자 및 단어를 정렬시키기 위해 소프트웨어 어플리케이션 및 오퍼레이팅 시스템에 의해 사용된다.
텍스츄얼 스트링을 비교하기 위해 설계된 컴퓨터로 실현되는 많은 알고리즘이 있다는 것은 당업자에게 잘 알려져 있다. 예를 들어, 스트링 비교 알고리즘은 많은 오퍼레이팅 시스템의 핵심부분으로 존재하고 대부분의 데이터베이스 프로그램의 필수적인 부분이다. 이러한 기존의 시스템은 결국 다양한 언어를 나타내는 텍스트를 분류하고 배열하기 위해 사용되는 스트링 비교를 수행하기에 충분하다. 당업자에게 알려진 바와 같이, 숫자 코드는 스트링내 문자를 나타내기 위해 스트링 비교 알고리즘에서 사용되고, 각 문자는 임의의 언어의 알파벳으로부터 글자를 나타 낼 수 있다. 보다 상세하게는, 문자를 나타내는 숫자 코드는 예를 들어 스트링을 알파벳 순서로 배열하는 데이터베이스와 같이, 요구되는 포맷에 따라 문자 스트링을 배열, 분류 및 우선순위선정하도록 컴퓨팅 디바이스에 의해 사용된다.
일반적으로 유니코드로 불리는 하나의 알려진 유니버셜 코딩 및 인덱싱 시스템은 텍스츄얼 스트링을 분류하고 배열하기 위해 컴퓨팅 어플리케이션에서 사용된다. 유니코드 스탠더드의 일반적인 배경 정보는 "Unicode Standard Version 3.0, Addison Wesley, Unicode Consortium, ISBN 0-201-61633-5"로 표제된 발행물에서 발견할 수 있는데, 그 내용은 구체적으로 여기에 언급하여 참조되었다. 일반적으로 이 유니코드 스탠더드는 공통 언어로부터 다양한 글자 및 단어를 나타내는 텍스츄얼 스트링을 소프트웨어 어플리케이션이 분류하고 배열할 수 있게 하는 기능을 한다. 보다 상세하게는, 일반적으로, 유니코드 스탠더드는 연속적인 16 비트 값의 시리즈로 공통 언어로부터 심볼을 그룹화한다. 당업자가 이해할 수 있는 바와 같이, 가장 널리 알려진 언어가 유니코드 시스템에서 인덱싱된다. 그러나, 유니코드 스탠더드가 모든 단어 또는 문자를 맵핑, 정렬 및 비교하는 방법을 제공하지 않는, 복수의 알파벳 및/또는 문자 세트를 포함하는 많은 언어가 여전히 존재한다. 유니코드가 할당되지 않은 이러한 알파벳 및/또는 문자는 비인덱싱된(non-indexed) 문자로 불린다.
텍스츄얼 스트링 비교 어플리케이션의 일 실시예는 한글(Hangul)을 포함하는 한국어를 포함한다. 당업자가 이해하는 바와 같이, 현대 한글은 음절 당 정확하게 하나의 현대 한글 문자인 바람직한 특성을 가지고 있다. 현대 한글 문자간의 비교를 용이하게 하기 위해, 각 현대 한글 문자/음절은 그 결과로서 유일한 숫자 웨이트값이 할당된다. 당업자는 유니코드가 다양한 언어내의 각 문자에 유일한 숫자 표시가 주어진 16 비트 인코딩 스탠더드인 것을 이해할 것이다. 따라서, 각 현대 한글 문자에 오름순 방식으로 숫자 웨이트값을 할당함으로써, 문자의 숫자 웨이트를 수학적으로 비교하여 한글 문자가 비교된다.
상술된 시스템이 대부분의 현대 문자를 비교하는 시스템을 제공하지만, 한국어와 같은 특정 언어는 구 한글 문자와 같은 특정 문자가 기존의 코딩 또는 인덱싱 시스템에 완전히 통합되지 않는 특이한 상황을 제공한다. 예를 들어, 구 한글 문자는 유니코드 시스템에 완전히 통합되지 않는다. 따라서, 구 한글 문자는 일반적으로 알려진 문자 비교 및 정렬 방법으로 현대 한글 문자에 용이하게 비교될 수 없다.
따라서, 상기 문제로 인해, 코딩 시스템에 완전히 인덱싱되지 않는 복잡한 언어를 포함하는 스트링 비교 기능을 컴퓨팅 디바이스가 실행할 수 있게 하는 시스템 및 방법이 필요하게 되었다. 또한, 구 한글 문자를 현대 한글 문자와 함께 정렬시키고 처리하는 시스템 및 방법이 필요하게 되었다.
본 발명은 인덱싱된 표현을 나타내는 문자의 조합 및 비인덱싱된 표현을 나타내는 문자의 조합을 포함하는 스트링내의 다수의 문자를 맵핑하는 방법 및 시스템을 제공한다. 일 실시예는 인덱싱된 표현 및 비인덱싱된 표현을 갖는 제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"는 구 한글 문자를 나타내는 코드를 갖는 테이블 행에 기입된다. 따라서, "M"은 현대 한글 문자를 나타내는 코드를 갖는 테이블 행에 기입된다.
정렬된 구 한글 문자 및 현대 한글 문자의 문자 테이블이 구성된 후에, 스페셜 코드는 할당된 유니코드 값을 갖지 않는 한글 문자와 연관될 수 있다. 보다 상세하게는, 한국어를 포함하는 예에서, 웨이팅 값은 구 한글 문자를 나타내는 각 자모 조합과 연관된다. 본 발명의 일 실시예에서, 각 구 한글 문자와 연관된 스크립트 멤버(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. 인덱싱된 표현을 나타내는 문자를 비인덱싱된 표현을 나타내는 문자에 맵핑하는 단계를 포함하는, 인덱싱된 표현을 나타내는 문자의 조합 및 비인덱싱된 표현을 나타내는 문자의 조합을 포함하는 스트링내의 복수의 문자에 대하여 맵핑 동작을 수행하는 컴퓨터로 실현되는 방법에 있어서, 상기 방법은, 프로세스 유닛에서,
    복수의 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 복수의 문자에 대한 특수 웨이트의 세트를 생성하는 단계;
    상기 스트링내의 특정 그룹의 문자가 특정 비인덱싱된 표현을 나타낸다면, 인덱싱된 표현의 웨이트값을 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관시키는 단계;
    특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 특수 웨이트를 검색하는 단계; 및
    인덱싱된 표현의 연관된 웨이트값 및 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 특수 웨이트를 포함하는 웨이트 어레이를 생성하는 단계;를 포함하고, 상기 복수의 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 복수의 문자에 대한 특수 웨이트의 순서는 복수의 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 복수의 문자 사이의 각각의 개별적인 문자가 상기 스트링내에 나타나는 순서에 기초하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 상기 웨이트값은 이전 인덱싱된 표현의 인덱싱된 웨이트값과 매칭하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 웨이트 어레이는 유니코드 스탠더드와 호환가능한 숫자 포맷으로 구성되는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 상기 웨이트값은 유니코드 스탠더드에 따른 영숫자 웨이트값을 나타내는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 각 인덱싱된 표현은 현대 한글 문자를 나타내고, 각 비인덱싱된 표현은 구 한글 문자를 나타내는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서, 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 웨이트값은 이전 인덱싱된 표현의 인덱싱된 웨이트값과 매칭하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서, 비인덱싱된 표현을 나타내는 특정 문자에 대한 특수 웨이트의 세트는 각 문자의 카테고리의 문법규칙에 의해 순서부여된 복수의 문자의 카테고리를 독립적으로 인덱싱함으로써 생성되는 것을 특징으로 하는 방법.
  8. 제 7 항에 있어서, 상기 문자의 카테고리는 리딩 자음의 제1 카테고리, 모음의 제2 카테고리, 및 트레일링 자음의 제3 카테고리를 포함하는 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서, 상기 스트링내의 특정 그룹의 문자가 특정 구 한글 문자를 나타내는지를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 1 항에 있어서, 유효한 수의 리딩 자음이 특정 그룹의 문자내에 존재하는지를 결정함으로써 유효하다고 결정되는, 스트링내의 특정 그룹의 문자가 유효한지를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제 1 항에 있어서, 상기 웨이트 어레이를 압축하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 제 1 항에 있어서, 상기 스트링내의 인덱싱된 표현은 유니코드 스탠더드에 따라 인덱싱되는 것을 특징으로 하는 방법.
  13. 제 1 항에 있어서, 상기 웨이트 어레이를 생성하는 단계는 특정 비인덱싱된 표현을 나타내는 특정 그룹의 문자와 연관된 복수의 특수 웨이트를 비인덱싱된 표현의 연관된 웨이트값에 추가하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 실행될 때 제 1 항의 방법을 수행하는 컴퓨터 실행가능 코드를 갖는 것을 특 징으로 하는 컴퓨터-판독가능 매체.
  15. 컴퓨터 시스템으로서,
    스트링 내의 복수의 문자에 대하여 맵핑 동작을 수행하기 위한 복수의 컴퓨터 실행가능 코드를 저장하는 메모리; 및
    상기 컴퓨터 실행가능 코드들을 처리하는 프로세싱 유닛을 포함하고,
    상기 스트링은 비인덱싱된 표현들을 나타내는 문자들의 조합과 인덱싱된 표현들을 나타내는 문자들의 조합을 포함하고,
    상기 맵핑 동작은 인덱싱된 표현들을 나타내는 상기 문자들을 비인덱싱된 표현을 나타내는 상기 문자들에 맵핑하는 것을 포함하고,
    상기 컴퓨터 실행가능 코드들은,
    복수의 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 복수의 문자에 대한 특수 웨이트들(special weights)의 세트를 생성하는 제1 코드;
    상기 스트링내의 특정 그룹의 문자들이 특정의 비인덱싱된 표현을 나타낸다면, 인덱싱된 표현의 웨이트값을 상기 특정의 비인덱싱된 표현을 나타내는 상기 특정 그룹의 문자들과 연관시키는 제2 코드;
    상기 특정의 비인덱싱된 표현을 나타내는 상기 특정 그룹의 문자들과 연관된 복수의 특수 웨이트를 검색하는 제3 코드; 및
    상기 특정의 비인덱싱된 표현을 나타내는 상기 특정 그룹의 문자들과 연관된 상기 복수의 특수 웨이트와 상기 인덱싱된 표현의 상기 연관된 웨이트값을 포함하는 웨이트 어레이를 생성하기 위한 제4 코드를 포함하고,
    상기 특수 웨이트들의 순서는 상기 복수의 인덱싱된 표현 및 비인덱싱된 표현을 나타내는 상기 복수의 문자중의 각각의 개별적인 문자가 상기 스트링내에 나타나는 순서에 기초하는, 컴퓨터 시스템.
  16. 복수의 표준화된 웨이트값에 의해 인덱싱된 현대 한글을 나타내는 자모를 구 한글을 나타내는 자모에 맵핑하는 단계를 포함하는, 복수의 표준화된 웨이트값에 의해 인덱싱된 현대 한글을 나타내는 자모의 조합 및 구 한글을 나타내는 자모의 조합을 포함하는 스트링내의 복수의 문자에 대하여 맵핑 동작을 수행하는 컴퓨터로 구현되는 방법에 있어서, 상기 방법은, 프로세스 유닛에서,
    복수의 현대 한글 및 구 한글을 나타내는 복수의 자모 문자에 대한 특수 웨이트의 세트를 생성하는 단계;
    상기 스트링내의 특정 그룹의 자모가 특정 구 한글을 나타낸다면, 현대 한글의 적어도 하나의 표준화된 웨이트값을 특정 구 한글을 나타내는 특정 그룹의 자모와 연관시키는 단계;
    상기 특정 구 한글을 나타내는 특정 그룹의 자모와 연관된 복수의 특수 웨이트를 검색하는 단계; 및
    현대 한글의 연관되고 표준화된 웨이트값 및 특정 구 한글을 나타내는 특정 자모와 연관된 복수의 특수 웨이트를 포함하는 웨이트 어레이를 생성하는 단계;를 포함하고 있으며,
    상기 특수 웨이트의 순서는 복수의 현대 한글 및 구 한글을 나타내는 복수의 문자 사이의 각각의 개별적인 문자가 상기 스트링내에 나타나는 순서에 기초하고, 상기 연관된 표준화된 웨이트값은 상기 구 한글 이전의 상기 현대 한글로부터 선택되는 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서, 상기 표준화된 웨이트값은 유니코드 스탠더드에 따라 영숫자 웨이트값을 나타내는 것을 특징으로 하는 방법.
  18. 실행될 때 제 16 항의 방법을 수행하는 컴퓨터 실행가능 코드를 갖는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  19. 컴퓨터 시스템으로서,
    스트링 내의 복수의 문자에 대하여 맵핑 동작을 수행하기 위한 복수의 컴퓨터 실행가능 코드를 저장하는 메모리; 및
    상기 컴퓨터 실행가능 코드들을 처리하는 프로세싱 유닛을 포함하고,
    상기 스트링은 구 한글을 나타내는 자모의 조합과 복수의 표준화된 웨이트값에 의해 인덱싱된 현대 한글을 나타내는 자모의 조합을 포함하고,
    상기 맵핑 동작은 복수의 표준화된 웨이트값에 의해 인덱싱된 상기 현대 한글을 나타내는 자모들을 상기 구 한글을 나타내는 자모들에 맵핑하는 것을 포함하고,
    상기 컴퓨터 실행가능 코드들은,
    복수의 현대 한글 및 구 한글을 나타내는 복수의 자모 문자에 대한 특수 웨이트들(special weights)의 세트를 생성하는 제1 코드;
    상기 스트링내의 특정 그룹의 자모가 특정의 구 한글을 나타낸다면, 현대 한글의 적어도 하나의 표준화된 웨이트값을 상기 특정의 구 한글을 나타내는 상기 특정 그룹의 자모와 연관시키는 제2 코드;
    상기 특정의 구 한글을 나타내는 상기 특정 그룹의 자모와 연관된 복수의 특수 웨이트를 검색하는 제3 코드; 및
    상기 특정의 구 한글을 나타내는 특정 자모와 연관된 상기 복수의 특수 웨이트와 상기 현대 한글의 상기 연관되고 표준화된 웨이트값을 포함하는 웨이트 어레이를 생성하는 제4 코드를 포함하고,
    상기 특수 웨이트들의 순서는 상기 복수의 현대 한글 및 구 한글을 나타내는 복수의 문자중의 각각의 개별적인 문자가 상기 스트링내에 나타나는 순서에 기초하고, 상기 연관된 표준화된 웨이트값들은 상기 구 한글 이전의 상기 현대 한글로부터 선택되는, 컴퓨터 시스템.
  20. 삭제
  21. 삭제
KR1020010066789A 2000-10-30 2001-10-29 비교를 위해 스트링을 맵핑하는 방법 및 시스템 KR100902966B1 (ko)

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 KR20020033549A (ko) 2002-05-07
KR100902966B1 true 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)

* Cited by examiner, † Cited by third party
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
US8266514B2 (en) 2008-06-26 2012-09-11 Microsoft Corporation Map service
US8073680B2 (en) 2008-06-26 2011-12-06 Microsoft Corporation Language detection service
US8107671B2 (en) 2008-06-26 2012-01-31 Microsoft Corporation Script detection service
US8019596B2 (en) * 2008-06-26 2011-09-13 Microsoft Corporation Linguistic service platform
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
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
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
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
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by 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
EP3809407A1 (en) 2013-02-07 2021-04-21 Apple Inc. Voice trigger for a digital assistant
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
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
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
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
KR101922663B1 (ko) 2013-06-09 2018-11-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
JP2016521948A (ja) 2013-06-13 2016-07-25 アップル インコーポレイテッド 音声コマンドによって開始される緊急電話のためのシステム及び方法
AU2014306221B2 (en) 2013-08-06 2017-04-06 Apple Inc. Auto-activating smart responses based on activities from remote devices
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
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
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
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language 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
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
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
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
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
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
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
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
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
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
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
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
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
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
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
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10482344B2 (en) * 2018-01-04 2019-11-19 Wipro Limited System and method for performing optical character recognition

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57162018A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Korean language sorting controlling system
JPS57162017A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Korean language sorting controlling system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE69839563D1 (de) * 1997-09-05 2008-07-10 Altus Pharmaceuticals Inc Kohlenhydrat-vernetzte glykoproteinkristalle
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57162018A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Korean language sorting controlling system
JPS57162017A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Korean language sorting controlling system

Also Published As

Publication number Publication date
JP4213378B2 (ja) 2009-01-21
JP2002196865A (ja) 2002-07-12
US7260574B2 (en) 2007-08-21
US6873986B2 (en) 2005-03-29
KR20020033549A (ko) 2002-05-07
US20020059224A1 (en) 2002-05-16
US20050171949A1 (en) 2005-08-04

Similar Documents

Publication Publication Date Title
KR100902966B1 (ko) 비교를 위해 스트링을 맵핑하는 방법 및 시스템
US5721899A (en) Retrieval apparatus using compressed trie node and retrieval method thereof
US7092871B2 (en) Tokenizer for a natural language processing system
JP4685348B2 (ja) 多数の文字を扱うための効率的な照合要素構造
JP2693780B2 (ja) テキストプロセシングシステム、及び単位又は化学式が正確且つ一貫して使用されているかどうかをテキストプロセシングシステムでチェックするための方法
US8266179B2 (en) Method and system for processing text
JP3121568B2 (ja) 言語を特定する方法およびシステム
US9690788B2 (en) File type recognition analysis method and system
US6049869A (en) Method and system for detecting and identifying a text or data encoding system
US20160006456A1 (en) Compression device, compression method, dictionary generation device, dictionary generation method, decompression device, decompression method, information processing system, and recording medium
CN104008093A (zh) 用于中文姓名音译的方法和系统
CN1950819B (zh) 检索信息的系统和方法以及储存信息的系统和方法
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) 한글로 표기된 외래어 코드화 방법 및 그를 이용한 검색 방법
JP2019159814A (ja) 情報処理装置、情報処理方法及びプログラム
US6470362B1 (en) Extracting ordered list of words from documents comprising text and code fragments, without interpreting the code fragments
CN110399729A (zh) 一种基于组件特征权重的二进制软件分析方法
JP5846658B1 (ja) テキスト比較装置、テキスト比較プログラム及びテキスト比較方法
Nyman et al. Self Verifying Data–Testing without an Oracle
JP2880387B2 (ja) Ocr住所処理装置
CN114880523A (zh) 字符串处理方法、装置、电子设备及存储介质
JP2023156212A (ja) 文字コード判別装置及び文字コード判別方法
KR100724988B1 (ko) 통계 모델을 이용하는 멀티바이트 텍스트 인코딩에서의노이즈 제거

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