KR20040086825A - 2 레벨 형태론 규칙을 컴파일하는 방법 및 장치 - Google Patents

2 레벨 형태론 규칙을 컴파일하는 방법 및 장치 Download PDF

Info

Publication number
KR20040086825A
KR20040086825A KR1020040022932A KR20040022932A KR20040086825A KR 20040086825 A KR20040086825 A KR 20040086825A KR 1020040022932 A KR1020040022932 A KR 1020040022932A KR 20040022932 A KR20040022932 A KR 20040022932A KR 20040086825 A KR20040086825 A KR 20040086825A
Authority
KR
South Korea
Prior art keywords
finite state
rule
core
state
context
Prior art date
Application number
KR1020040022932A
Other languages
English (en)
Inventor
커티스이. 휴텐하워
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20040086825A publication Critical patent/KR20040086825A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Machine Translation (AREA)
  • Devices For Executing Special Programs (AREA)
  • Complex Calculations (AREA)

Abstract

맞춤법 규칙(rule)을 컴파일링하는 방법은 상기 규칙의 구성 요소를 유한 상태 변환기(Finite State Transducer) 템플릿에 삽입함으로써 개별 유한 상태 변환기로 제1 및 제2 맞춤법 규칙을 컴파일링하는 단계를 포함한다. 개별적인 유한 상태 변환기가 결합되어 단일의 유한 상태 변환기를 형성한다. 일 실시예에서, 유한 상태 변환기는 먼저 유한 상태 변환기들 내의 공통 코어(core)에 기초하여 결합된다. 코어들에 대한 결합된 유한 상태 변환기들이 결합되어 맞춤법 규칙의 세트에 대해 단일의 유한 상태 변환기를 형성한다.

Description

2 레벨 형태론 규칙을 컴파일하는 방법 및 장치{METHOD AND APPARATUS FOR COMPILING TWO-LEVEL MORPHOLOGY RULES}
본 발명은 언어 처리에 관한 것이다. 특히, 표면 텍스트를 어휘 표현으로 변환하는 것에 관한 것이다.
언어 처리에서, 음성의 상이한 부분과 연관된 형태론(morphology)에 의해 야기되는 단어의 스펠링의 변화를 제거하기 위하여 단어의 표면 형태(surface form)를 어휘 형태(lexical form)로 변환하는 것은 일반적이다. 예를 들면, "happiness"의 표면 형태는 어휘 형태 "happy + ness"로 변환되고, "found"는 어휘 형태에 추가된 과거시제에 대한 마커(marker)를 갖는 "find"로 변환된다. 이러한 변환은 단어의 보다 적은 변화가 지원될 필요가 있기 때문에 단어의 이후 처리를 간략화 시킨다.
이러한 변환을 수행하는 일반적인 방법에서는 유한 상태 변환기(Finite State Transducer)가 사용된다. 유한 상태 변환기에서는, 단어의 표면 형태에 있는 문자를 어휘 형태의 문자 또는 마킹(marking)으로 매핑시키는 전이(transition)에 의해서 2개의 상태가 연결된다. 많은 시스템에서, 표면 형태의 문자로부터 어휘 형태의 문자로의 맵핑을 기술하는 규칙(rule)의 세트에 기초하여 유한 상태 변환기가 생성된다. 이들 규칙 중 일부는 유한 상태 변환기에서 좌측 문맥, 우측 문맥 또는 둘 다를 포함하며, 2개 이상의 상태를 요구한다. 예를 들면, i로부터 y로의 변환에 대한 규칙이 글자 i 앞에 표면 형태의 "p"를 요구하는 "p:p"의 좌측 문맥과, 글자 i 뒤에 "n"을 요구하는 "n:n"의 우측 문맥을 포함한다면, 완성된 유한 상태 변환기는 시작 상태, 제2 상태로의 글자 p에 대한 전이, 제2 상태로부터 제3 상태로의 변환 i:y에 대한 전이, 및 제3 상태로부터 글자 "n"에 대한 전이를 포함한다.
표면 형태를 유한 상태 변환기에 대한 입력으로서 적용하는 것에 의해 단어의 어휘 형태를 생성하기 위해서 2 레벨 형태론 유한 상태 변환기들이 사용된다. 각 상태에서, 유한 상태 변환기는, 입력에 있는 현재의 문자가 현재 상태로부터 다음 상태로의 전이를 취하기 위해서 사용될 수 있는지의 여부를 판정한다. 그렇다면, 유한 상태 변환기는 그 전이를 다음 상태로 이동하고 입력에서 다음 문자를 선택한다. 현재 문자가 상태로부터의 전이 중 임의의 것과 매칭되지 않는 경우, 유한 상태 변환기는 실패하여 유한 상태 변환기의 시작 상태로 되돌아간다.
종래 기술에서, 규칙의 각 부분, 즉 좌측 문맥, 코어, 및 우측 문맥은 별도의 유한 상태 변환기로서 규정되었다. 이들 유한 상태 변환기 각각은 실행 시간으로서 알려진 형태론 처리를 행하는 동안 사용될 수 있는 이진(binary) 표시로 개별적으로 변환되었다.
실행 시간에, 사용자 입력에 기초하여 다양한 유한 상태 변환기가 동적으로결합됨으로써, 입력에 맞춘 단일의 가상 유한 상태 변환기를 생성한다.
비록 유한 상태 변환기를 실행시에 결합하는 것은 작업하는 형태론 시스템을 제공한다고 해도, 그것은 형태론 처리를 매우 느리게 한다.
맞춤법 규칙을 컴파일링하는 방법은 규칙의 코어에 대한 코어 유한 상태 변환기 및 규칙의 문맥에 대한 문맥 유한 상태 변환기를 형성하는 단계를 포함한다. 코어 유한 상태 변환기는 문맥 유한 상태 변환기와 결합되어 규칙의 연산자(operator)와 연관된 템플릿(templet)에 기초하여 규칙 유한 상태 변환기를 형성한다. 그 후, 규칙 유한 상태 변환기는 실행가능한 유한 상태 변환기를 생성하는데 사용된다. 일 실시예에서, 규칙 유한 상태 변환기는 유한 상태 변환기의 공통 코어에 기초하여 더 결합되어 코어 유한 상태 변환기를 형성한다. 그 후, 코어 유한 상태 변환기는 맞춤법 규칙의 세트에 대한 세트 유한 상태 변환기를 형성하도록 결합된다. 그 후, 세트 유한 상태 변환기는 실행가능한 유한 상태 변환기로 변환된다.
도 1은 본 발명의 실시예를 구현하는 일반적인 컴퓨팅 환경을 나타낸 블록도.
도 2는 본 발명에 따른 유한 상태 변환기를 형성하고 사용하는 시스템을 나타낸 블록도.
도 3은 본 발명에 따른 유한 상태 변환기를 형성하는 방법을 나타낸 순서도.
도 4는 "발생할 수 있는(may occur)" 유한 상태 변환기에 대하여 나타낸 상태도.
도 5는 "발생해야 하는(must occur)" 유한 상태 변환기에 대하여 나타낸 상태도.
도 6은 "코어 표면 문자가 발생하는 경우에 발생해야 하는(must occcur if a core surface character occurs)" 유한 상태 변환기에 대하여 나타낸 상태도.
도 7은 "발생하지 말아야하는(must not occur)" 유한 상태 변환기에 대하여 나타낸 상태도.
도 8은 코어(core)를 가진 규칙(rule)에 대한 유한 상태 변환기를 나타낸 도면.
도 9는 도 8과 동일한 코어를 가진 제2 규칙에 대한 유한 상태 변환기를 나타낸 도면.
도 10은 도 8 및 도 9의 유한 상태 변환기를 결합하여 형성된 유한 상태 변환기를 나타낸 도면.
도 11은 코어를 가진 규칙에 대하여 나타낸 유한 상태 변환기를 나타낸 도면.
도 12는 도 11과 동일한 코어를 가진 제2 규칙을 위한 유한 상태 변환기를 나타낸 도면.
도 13은 도 11 및 도 12의 유한 상태 변환기를 결합하여 형성된 유한 상태 변환기를 나타낸 도면.
도 14는 유한 상태 변환기를 최소화하는 하나의 방법을 나타낸 순서도.
도 15는 도 10 및 도 13의 유한 상태 변환기를 결합하여 형성된 유한 상태 변환기를 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
200 : 맞춤법 규칙
202 : 컴파일러
204 : 규칙 FST 형성기
206 : 규칙 결합기
208 : 최소화기
210 : 코어 결합기
212 : 최소화기
214 : 실행가능한 FST
216 : 표면 형태
218 : 어휘 형태
도 1은 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 나타낸다. 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 일 예이며 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 결합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안 된다.
본 발명은 많은 다른 범용 또는 특수목적의 컴퓨팅 시스템 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋 탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전화통신 시스템, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되는 것은 아니다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령과 일반적으로 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 태스크를 수행하는 분산형 컴퓨팅 환경에서 실행될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트규칙러를 포함하는 몇 가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 메자닌(Mezzanine) 버스로도 알려진 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능한 매체를 포함한다. 컴퓨터 판독가능한 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 불휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈 또는 그밖의 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 불휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈, 또는 그밖의 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의 임의의 조합이 컴퓨터 판독가능한 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(read only memory)(131) 및 RAM(random access memory)(132) 등의 휘발성 및/또는 불휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)을 즉시 액세스할 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, 도 1은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/불휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1에는 비분리형의 불휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(141), 분리형의 불휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 분리형의 불휘발성 광학디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/불휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되는 것은 아니다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151)와 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)를 위한 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 컴포넌트는 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다. 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다.
사용자는 일반적으로 키보드(162), 마이크로폰(163), 및 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161)와 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시되지 않음)는 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB) 와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치는 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터외에도, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 접속될 수 있는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 핸드-헬드 장치, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 그밖의 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 구축하기 위한 모뎀(172) 또는 다른 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 컴퓨터(180)에 상주하는 원격 애플리케이션 프로그램(185)을 도시하며, 이에 한정되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있음이 이해될 것이다.
본 발명은 실행 시간에 표면 언어 형태(surface linguistic form)를 어휘 형태로 변환하기 위해 효과적으로 동작하는 유한 상태 변환기(Finite State Transducer)를 구성하는 방법을 제공한다.
도 2 및 도 3은 각각 본 발명의 실시예들의 기본 동작을 나타내는 단순 블록도 및 흐름도를 제공한다. 도 3의 단계 300에서, 표면 형태로부터 어휘 형태로의 가능한 변환을 기술하기 위하여 언어학자에 의해 맞춤법 규칙(200)의 세트가 기록된다. 디폴트로서, 표면 형태의 각 문자는 어휘 형태의 동일 문자와 맵핑되는 것으로 가정한다. 각 규칙은 그 디폴트 맵핑에 대한 예외를 기술한다.
일 실시예에서, 각 규칙은 비-디폴트(non-default) 맵핑을 정의하는코어(core), 좌측 문맥, 및 우측 문맥을 포함한다. 이 요소들 각각은 콜론(colon)으로 구분되는 한 쌍의 문자로서 기록되며, 좌측의 문자는 표면 형태의 문자를 나타내고, 우측의 문자는 어휘 형태의 문자를 나타낸다. 따라서, 코어 "i : y"는 표면 형태 문자 "i"로부터 어휘 형태 문자 "y"로의 맵핑을 나타낸다. 마찬가지로, "a:b"의 좌측 문맥은 표면 형태 코어 문자의 좌측에 "a"가 있고, 어휘 형태 코어 문자의 좌측에 "b"가 있는 것을 나타낸다. 일반적으로, 좌측 문맥의 표면 형태와 어휘 형태의 문자들은 "a:a"에서와 같이 서로 매칭된다. 또한, 우측 문맥의 표면 형태와 어휘 형태의 문자들도 서로 일치하는 경향이 있다.
일 실시예에서, 규칙이 발생할 수 있는(may occur), 발생해야 하는(must occur), 코어의 표면 형태 문자가 발견되는 경우에 발생해야 하는(must occur if the surface form character of the core is found), 또는 발생하지 말아야하는(must not occur)지의 여부에 기초하여, 4가지 타입의 규칙들이 있다. 이들 규칙은 각각 분리 연산자 ->, <->, <-, 및 >< 에 의해서 각각 표시된다. 일반적으로, 이들 규칙은 이하의 형태로 기록된다:
코어 연산자 좌측 문맥 --- 우측 문맥
예를 들면, 이 규칙:
a:b -> c:c --- d:d
은 c:c의 좌측 문맥과 d:d의 우측 문맥이 있는 경우 발생될 수 있는 "a"로부터 "b"로의 코어 맵핑을 나타낸다.
맞춤법 규칙(200)은 컴파일러(202)에 제공된다. 단계 302에서, 유한 상태변환기(Finite State Transducer; FST)들은 컴파일러(202)에서 규칙 FST 형성기에 의해 각 규칙에 대하여 생성된다. 규칙 FST 형성기(204)는 먼저 단계 301에서 각 규칙을 구문분석하여 각 규칙의 코어, 연산자, 좌측 문맥 및 우측 문맥을 식별한다. 단계 302에서, 규칙 FST 형성기(204)는 각 코어, 좌측 문맥 및 우측 문맥에 대하여 별도의 FST를 형성한다. 그 다음, 각 규칙의 좌측 문맥 FST는 각 규칙의 연산자와 연관되는 템플릿(template)을 사용하여 규칙의 각각의 코어 FST와 결합된다. 이 결합된 FST는 그 다음에 규칙에 대하여 각각의 우측 문맥 FST와 결합됨으로써, 동일한 템플릿에 기초한 규칙 FST를 형성한다.
4개의 상이한 가능한 연산자들이 있기 때문에, 연산자의 각 타입에 대하여 4개의 별도 템플릿이 있다.
도 4는 연산자를 발생시킬 수 있는 템플릿 유한 상태 변환기를 도시한다. 템플릿은 3개의 상태들(400, 406 및 414)을 포함한다. 상태들(400 및 406)은 이들 상태에서 유한 상태 변환기가 종료될 때 연속값을 생성하는 수락 상태(accepting state)를 나타낸다. 상태(414)는 유한 상태 변환기가 그 상태에서 종료될 때 실패값을 생성하는 거절 상태이다. 일반적으로, 본 출원서에 도시된 도면에서는, 수락 상태는 2중 동심원으로서 도시되고 거절 상태는 단일 원으로서 도시된다.
도 4의 템플릿에서, Ls:Ll에 의해서 나타내는 상태(400)와 상태(406) 사이의 전이(402)를 따라 규칙에 대한 좌측 문맥이 삽입된다. 이 좌측 문맥은 상태(406)으로부터 뻗어 상태(406)로 되돌아오는 자기 루프(slef-loop) 전이(408)를 따라 위치되기도 한다. 따라서, 유한 상태 변환기에서, 좌측 문맥이 표면 형태와 어휘 형태에서 만나면서(encounter) 상태 변환기가 상태(400) 또는 상태(406)에 있는 경우, 유한 상태 변환기는 상태(406)로 이동할 것이다. 또한, 상태(400)는 좌측 문맥을 만날 때까지 상태(400) 상에서 유한 상태 변환기가 루프를 이루게 하는 디폴트 전이를 포함한다.
코어 Cs:C1은 그 다음에 상태(406)와 상태(414) 사이의 전이(412)를 따라 삽입된다. 코어의 표면 형태 Cs는 어휘 형태 중 임의의 가능한 문자를 나타내는 "*" 문자와 쌍을 형성하도록 사용된다. 다음에, 이 쌍은 상태(406)로부터 상태(412)로의 전이(410)를 따라 삽입된다. 따라서, 유한 상태 변환기가 상태(406)에 있으면, 코어와 만나는 경우 상태(414)로 전이될 것이고, 좌측 문맥과 다시 만나는 경우 상태(406)로 되돌아갈 것이고, 임의의 다른 값과 만나는 경우 상태(400)로 되돌아갈 것이다.
우측 문맥 Rs:Rl은 상태(414)와 상태(400) 사이의 전이(416)에 삽입된다. 유한 상태 변환기가 상태(414)에 있으면서 우측 문맥과 만나는 경우, 유한 상태 변환기는 상태(400)로 되돌아갈 것이다. 그러나, 임의의 다른 값을 상태(414)에서 만나는 경우, 유한 상태 변환기는 거절 상태(414)에서 실패하여 종료된다.
도 5는 발생하지 말아야하는 연산자(must not occur operator)를 위한 템플릿 유한 상태 변환기를 도시한다. 템플릿은 3개의 수락 상태들(500, 502, 및 504)과 1개의 거절 상태(506)를 포함한다. 좌측 문맥 Ls:L1은 상태(500)와 상태(502) 사이의 전이(508) 및 상태(502)에 대한 자기 루프 전이(510)에 삽입된다. 코어 Cs:C1은 상태(502)와 상태(504) 사이의 전이(512)에 삽입되고, 우측 문맥 Rs:R1은상태(504)와 상태(506) 사이에 삽입된다.
동작 시에, 도 5의 유한 상태 변환기는 좌측 문맥이 상태(500) 또는 상태(502)에 있으면서 만나는 경우, 상태(502)로 전이한다. 상태(502)에 있으면서 코어를 만나는 경우, 유한 상태 변환기는 상태(504)로 전이한다. 상태(502)에서 코어나 좌측 문맥을 모두 만나지 않는 경우, 유한 상태 변환기는 전이(512)를 따라 상태(500)로 되돌아간다. 상태(504)에 있으면서 우측 문맥을 만나는 경우, 유한 상태 변환기는 거절 상태(506)로의 전이(514)를 따르고, 좌측 문맥, 코어, 우측 문맥의 시퀀스를 만났기 때문에 유한 상태 변환기는 실패로 된다. 상태(504)에서 우측 문맥을 만나지 않으면, 전이(516)를 따라서 상태(500)로 진행한다.
도 6은 코어의 의미 형태를 만나는 경우에 발생해야 하는(must occur) 연산자에 대한 템플릿을 제공한다. 도 6의 템플릿은 수락 상태들(600 및 602)과 거절 상태(604)를 포함하며, 이것들은 도 4의 발생할 수 있는 템플릿(may occur templet)의 상태들(400, 406, 및 414)과 유사하다. 또한, 템플릿은 수락 상태(606)와 거절 상태(608)를 포함한다. 좌측 문맥 Ls:L1은 전이(610, 612 및 614)에 삽입되고, 이 전이들은 상태(602)에서 종료된다. 코어 Cs:C1은 전이(616)에 삽입되고, 코어 Cs의 표면 형태 문자는 어휘 형태에 대한 "*"과 결합하여 전이(618)에 삽입된다. 우측 문맥 Rs:R1은 전이(620)와 전이(622)에 삽입된다.
실행 시에, 도 6의 유한 상태 변환기는 그것이 좌측 문맥과 만나는 경우, 상태(600)로부터 상태(602)로 이동한다. 좌측 문맥과 만나지 않는 경우, 전이(624)를 따라 상태(600) 상에 루프가 이루어진다. 상태(602)에서, 유한 상태 변환기는코어와 만나는 경우 상태(604)로 이동하고, 좌측 문맥과 다시 만나는 경우 상태(602) 상에서 루프를 이루고, 코어의 어휘 형태 문자 이외의 임의의 값을 갖는 코어의 표면 형태 문자와 만나는 경우 상태(606)로 전이하고, 그 외의 모든 경우에는 상태(606)로 되돌아간다. 상태(604)에서, 유한 상태 변환기는 우측 문맥과 만나는 경우 수락 상태(600)로 되돌아간다. 유한 상태 변환기는 우측 문맥과 만나지 않는 경우, 상태(604)에서 실패로 된다.
상태(606)에서, 우측 문맥과 만나면 유한 상태 변환기는 실패 상태(608)로 전이한다. 따라서, 좌측 문맥, 코어의 어휘 형태 이외의 문자와 쌍을 이루는 코어의 표면 형태, 및 우측 문맥을 포함하는 시퀀스를 만나는 경우, 템플릿은 상태(608)에서 실패가 된다. 상태(606)에서 좌측 문맥과 만나는 경우, 유한 상태 변환기는 상태(602)로 되돌아간다. 상태(606)에서 임의의 다른 값에 대해서는, 유한 상태 변환기는 디폴트 전이(626)를 따라 상태(600)로 되돌아간다.
도 7은 발생해야 하는(must occur) 연산자에 대한 템플릿을 제공한다. 템플릿은 도 6의 템플릿과 유사하고, 3개의 수락 상태들(700, 702 및 706)과 2개의 거절 상태들(794 및 708)을 포함한다. 좌측 문맥은 전이(710 및 714) 상에서 상태(702)에 삽입되고, 코어는 전이(716) 상에서 상태(704)에 삽입되고, 우측 문맥은 전이(718) 상에서 상태(700)에 그리고 전이(720) 상에서 상태(708)에 삽입된다. 상태들(702와 706) 사이 및 상태들(706과 700) 사이에 디폴트 전이(722 및 724)가 제공된다.
도 3의 단계 302에서 적절한 템플릿에 규칙을 삽입함으로써 개별적인 유한상태 변환기를 형성한 후에, 각 코어에 대한 개별적인 유한 상태 변환기는 도 2의 컴파일러(202)에서 규칙 결합기(206)에 의해 코어 별(core by core) 기준으로 결합된다. 유한 상태 변환기의 이러한 결합의 일 예가 도 8, 도 9 및 도 10에 도시되어 있다. 도 8은 코어 "a:b"에 대한 제1 유한 상태 변환기를 제공하고 있고, 도 9는 코어 "a:b"에 대한 제2 유한 상태 변환기를 제공한다. 코어 "a:b"에 대한 결합 유한 상태 변환기가 도 10에 도시되어 있다.
도 8에 도시된 유한 상태 변환기는 규칙:
a:b -> c:c --- d:d
을 나타내고, 도 9에 도시된 유한 상태 변환기는 규칙:
a:b <- d:d --- e:e
를 나타낸다.
이들 규칙에 대하여 2가지가 주목된다. 첫째, 이들은 상이한 연산자를 포함하고 있다. 본 발명에서, 임의의 연산자들에 대한 유한 상태 변환기는 단계 304에서 결합될 수 있다. 둘째, 도 8의 유한 상태 변환기에 대한 규칙의 우측 문맥은 도 9의 유한 상태 변환기의 좌측 문맥을 형성한다. 따라서, 규칙은 순차적으로 실행된다.
도 8 및 도 9의 유한 상태 변환기를 결합하는 제1 단계는 도 10의 유한 상태 변환기에서의 초기 상태(800 및 900)를 단일의 초기 상태(1000)로 결합시키는 것이다. 도 8의 상태들(802 및 804)은 상태들(1002 및 1004)로서 도 10의 유한 상태 변환기에 삽입되고, 도 9의 상태들(902, 904, 906 및 908)은 각각 상태들(1006,1008, 1010 및 1012)로서 삽입된다. 초기의 유한 상태 변환기에서 발견되는 상태들 사이의 전이는 한 쌍의 예외를 갖는 결합 유한 상태 변환기에 유지된다. 첫번째로, 별도의 초기 상태들이 단일의 초기 상태(1000)로 교체되었기 때문에, 초기 상태들(800 및 900)로 및 그 초기 상태들(800 및 900)로부터의 전이는 초기 상태(1000)로 및 초기 상태(1000)로부터의 전이로 변경된다. 두번째로, 도 8의 유한 상태 변환기의 우측 문맥이 도 9의 유한 상태 변환기의 좌측 문맥이기 때문에, 도 8의 유한 상태 변환기의 우측 문맥에 대한 상태(804)로부터 상태(800)로의 전이는 결합된 유한 상태 변환기에서 변경되어, 초기 상태(1000) 대신에 상태(1006)에서 종료되도록 한다. 이것은 표면 시퀀스 "cadae"가 상태들(1000, 1002, 1004, 1006, 1008)을 진행하고 상태(1000)로 되돌아감으로써 "cad"와 "dae"의 두개에 대한 상태들을 추적할 수 있게 한다.
마지막으로, 코어 전이에 선행하는 각 상태는 모든 수락 상태로부터 좌측 문맥 전이를 통해 도달 가능해야 한다. 이를 위해서, 추가 전이가 추가된다. 구체적으로, 상태(1002)로의 전이(1014 및 1016)가 추가되어 좌측 문맥 "c:c"를 지원하고, 상태(1006)로의 전이(1018)가 추가되어 좌측 문맥 "d:d"를 지원한다.
동일한 코어에 대한 추가의 유한 상태 변환기는 동일한 초기 상태를 공유하고, 각 수락 상태로부터 코어 전이 이전의 상태로 좌측 문맥 전이가 있음을 보증하고, 규칙의 캐스케이딩을 이용하기 위해 우측 문맥 전이들을 적절하게 연결함으로써, 도 10의 유한 상태 변환기와 결합될 수 있음을 유의한다.
도 11, 도 12 및 도 13은 제2 코어 "h:i"에 대한 유한 상태 변환기를 결합하는 다른 예를 도시하고 있다. 도 11의 유한 상태 변환기는 규칙:
h:i -> g:g --- j:j
에 대한 것이고, 도 12의 유한 상태 변환기는 규칙:
h:i -> k:k --- n:n
에 대한 것이다.
상기 예에서와 같이, 도 11 및 도 12의 유한 상태 변환기의 독립적인 상태들(1100 및 1200)은, 각각 도 13의 유한 상태 변환기의 단일의 초기 상태(1300)로 결합된다. 개별적인 초기 상태로 및 그 초기 상태로부터의 전이는 단일의 초기 상태(1300)로 및 그 초기 상태(1300)로부터의 전이로 변경된다. 이들 규칙들이 캐스케이딩(cascading)하지 않기 때문에, 각 규칙의 우측 문맥은 초기 상태(1300)로 되돌아간다.
또한, 좌측 문맥이 임의의 수락 상태로부터 발생하게 할 수 있게 하기 위해서, 상태들(1306과 1308)로의 전이들(1302 및 1304)가 추가된다. 전이(1302)는 수락 상태(1306)로부터 상태(1308)로 좌측 문맥 "g:g"를 지원한다. 전이(1304)는 수락 상태(1308)로부터 상태(1306)로의 좌측 문맥 "k:k"를 지원한다.
특정 코어에 대한 유한 상태 변환기가 단일의 유한 상태 변환기로 결합된 후에, 결합된 코어 유한 상태 변환기를 최소화하는 선택적 단계가 도 2의 최소화기(minimizer)(208)에 의해서 단계 306에서 수행된다. 이러한 최소화 기술은 본 기술 분야에 잘 알려져 있으며, 도달할 수 없는 상태를 제거하고, 등가 상태들이 동일한 입력값에 대한 상태들의 동일 세트로 전이하는 등가 상태들을 결합하는 것을 포함한다.
도 14는 유한 상태 변환기를 최소화하는 종래 기술 하에서 일 기술의 순서도를 도시하고 있다. 이 프로세스는 단계 1400에서 시작하며 이 단계에서 상태들은 이들이 수락 상태 또는 거절 상태인지의 여부에 기초하여 2개의 그룹 중 하나로 분할된다. 단계 1402에서, 각 그룹의 상태는, 주어진 표면 형태/어휘 형태 쌍에 대하여 이들이 전이하는 그룹에 기초하여 서브 그룹으로 분할된다. 따라서, 수락 그룹에 있는 상태로 전이하는 상태는 하나의 서브 그룹에 놓여지고, 거절 그룹에 있는 상태로 전이하는 상태는 다른 서브 그룹에 놓여진다.
단계 1404에서, 본 방법은 가능한 표면 형태/어휘 형태 쌍 중 임의의 것에 대하여 적어도 두개의 서브 그룹이 형성되었는지의 여부를 알아보기 위해 검사한다. 서브 그룹들이 형성되었으면, 그 그룹은 단계 1406에서 분할되어 각 서브 그룹은 별도의 그룹이 된다. 그 다음, 프로세스는 단계 1402로 되돌아가서 현재 그룹의 세트가 더 분할될 수 있는지를 알아본다. 단계 1404에서 그룹이 더 이상 분할되지 않는 경우, 각 그룹의 상태들은 단일 상태로 결합되고, 단계 1408에서 이들 개별 상태로의 및 이들 개별 상태로부터의 전이는 단일의 결합된 상태로 및 그 단일의 결합 상태로부터 이루어진다.
단계 306에서 코어 유한 상태 변환기가 최소화된 후에, 코어 유한 상태 변환기는 도 2의 코어 결합기(210)에 의해서 단일의 유한 상태 변환기로 결합된다. 도 15는 도 10 및 도 13의 코어 유한 상태 변환기를 결합하여 형성된 단일의 유한 상태 변환기를 나타낸다.
유한 상태 변환기를 결합하여 코어 유한 상태 변환기를 형성하는 경우와 같이, 코어 유한 상태 변환기를 결합하는 단계는 각 코어 유한 상태 변환기의 초기 상태들을 하나의 상태로 결합하는 것을 포함한다. 따라서, 상태들(1000 및 1300)은 도 15에서 상태(1500)가 되고 상태들(1000 및 1300)로의 및 그 상태들(1000 및 1300)로부터의 전이는 상태(1500)로 및 그 상태(1500)로부터의 전이가 된다.
좌측 문맥을 지원하기 위해서, 각 좌측 문맥에 대한 전이는 각 수락 상태로부터 코어 전이 이전의 적절한 상태로 연장되어야 한다. 따라서, 가능한 좌측 문맥의 각각을 지원하기 위해서는 다수의 전이가 추가되어야 한다. 예를 들면, 좌측 문맥 "g:g"를 상태(1506)에 지원하기 위해 전이(1502 및 1504)가 추가된다. 또한, 우측 문맥에 대한 전이는 코어 유한 상태 변환기를 형성하는 경우 행해진 규칙의 캐스케이딩을 허용하도록 수정되어야 한다.
도 15의 유한 상태 변환기는 규칙의 세트에 대한 단일의 유한 상태 변환기의 하나의 작은 예시라는 것을 유의한다. 실제로, 단일의 유한 상태 변환기는 더 클 것이다.
단계 308에서 단일의 유한 상태 변환기가 형성된 후에, 이것은 단계 310에서 최소화기(212)를 이용하여 최소화된다. 그 결과 세트 유한 상태 변환기는 맞춤법 규칙(200) 전체를 나타내는 단일의 유한 상태 변환기가 된다. 그 다음에 이 세트 유한 상태 변환기는 단계 312에서 실행가능한 유한 상태 변환기로 변환된다. 실행가능한 유한 상태 변환기는 실행 시간에 직접 실행될 수 있다. 실행 중에, 표면 형태(216)의 문자의 시퀀스는 실행가능한 유한 상태 변환기(214)에 적용된다. 표면 형태에 기초하여, 유한 상태 변환기(214)는 상태들 사이를 이동하고, 이에 의해 어휘 형태(218)를 생성한다. 모든 규칙에 대하여 단일의 유한 상태 변환기가 존재하기 때문에, 실행 시간은 종래 시스템보다 매우 빨라진다.
비록, 본 발명은 특정 실시예를 참조하여 설명하였지만, 당 분야에서 숙련된 자는 본 발명의 사상과 범주를 벗어나지 않으면서 형태나 세부 사항에 있어서 변경을 행할 수 있음을 인식할 것이다.
본 발명에 따르면, 실행 시간에 표면 언어 형태를 어휘 형태로 변환하기 위해 효과적으로 동작하는 유한 상태 변환기를 구성하는 방법이 제공된다.

Claims (21)

  1. 실행가능한 유한 상태 변환기(finite state transducer)를 형성하기 위해 맞춤법 규칙들(orthography rules)을 컴파일링하는 방법으로서,
    맞춤법 규칙의 코어(core)를 위한 코어 유한 상태 변환기를 형성하는 단계;
    상기 맞춤법 규칙의 문맥(context)을 위한 문맥 유한 상태 변환기를 형성하는 단계;
    상기 코어 유한 상태 변환기와 상기 문맥 유한 상태 변환기를 결합하여 상기 맞춤법 규칙의 연산자(operator)와 연관된 템플릿(templet)에 기초하여 규칙 유한 상태 변환기를 형성하는 단계; 및
    상기 규칙 유한 상태 변환기를 사용하여 실행가능한 유한 상태 변환기를 형성하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 맞춤법 규칙의 제2 문맥을 위한 제2 문맥 유한 상태 변환기를 형성하는 단계
    를 더 포함하고,
    상기 규칙 유한 상태 변환기를 형성하는 단계는 상기 코어 유한 상태 변환기, 상기 문맥 유한 상태 변환기, 및 상기 제2 문맥 유한 상태 변환기를 상기 템플릿에 기초하여 결합하는 단계를 포함하는 방법.
  3. 제2항에 있어서,
    상기 맞춤법 규칙은 제1 맞춤법 규칙이고, 상기 규칙 유한 상태 변환기는 제1 규칙 유한 상태 변환기이며,
    제2 맞춤법 규칙을 위한 코어 유한 상태 변환기와 문맥 유한 상태 변환기를 형성하는 단계 및 상기 제2 규칙의 연산자와 연관된 템플릿에 기초하여 상기 코어 유한 상태 변환기와 문맥 유한 상태 변환기를 제2 규칙 유한 상태 변환기로 결합하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 제2 맞춤법 규칙의 템플릿은 상기 제1 맞춤법 규칙의 템플릿과 다른 것을 특징으로 하는 컴파일 방법.
  5. 제4항에 있어서,
    상기 제1 맞춤법 규칙의 연산자는 상기 제2 맞춤법 규칙의 연산자와 다른 것을 특징으로 하는 컴파일 방법.
  6. 제1항에 있어서,
    복수의 규칙 유한 상태 변환기를 생성하는 단계를 더 포함하며, 각각의 규칙유한 상태 변환기는 상이한 규칙과 연관되는 방법.
  7. 제6항에 있어서,
    상기 규칙 유한 상태 변환기를 사용하는 단계는, 동일한 코어를 갖는 규칙 유한 상태 변환기를 결합하여 각 코어에 대해 단일의 결합된 코어 유한 상태 변환기를 형성하는 단계를 포함하는 방법.
  8. 제7항에 있어서,
    상기 규칙 유한 상태 변환기를 사용하는 단계는, 상기 코어들에 대하여 결합된 코어 유한 상태 변환기들을 결합하여 세트 유한 상태 변환기를 형성하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서,
    상기 세트 유한 상태 변환기를 형성하기 전에 각 결합된 코어 유한 상태 변환기를 최소화하는 단계를 더 포함하는 방법.
  10. 맞춤법 규칙에서의 연산자를 식별하는 단계;
    상기 연산자에 기초하여 템플릿을 선택하는 단계; 및
    유한 상태 변환기를 형성하기 위해 상기 맞춤법 규칙의 구성 요소들을 상기 템플릿에 삽입하는 단계
    를 수행하는 컴퓨터 실행가능한 명령들을 포함하는 컴퓨터 판독가능한 매체.
  11. 제10항에 있어서,
    상기 맞춤법 규칙은 표면 형태(surface form)로부터 어휘 형태(lexical form)로의 맵핑을 나타내는 코어를 포함하는 컴퓨터 판독가능한 매체.
  12. 제11항에 있어서,
    상기 맞춤법 규칙은 좌측 문맥과 우측 문맥을 더 포함하는 컴퓨터 판독가능한 매체.
  13. 제12항에 있어서,
    상기 맞춤법 규칙의 구성 요소들을 삽입하는 단계는 상기 템플릿에 상기 코어, 좌측 문맥 및 우측 문맥을 삽입하는 단계를 포함하는 컴퓨터 판독가능한 매체.
  14. 제10항에 있어서,
    연산자를 식별하는 단계, 템플릿을 선택하는 단계, 및 복수의 유한 상태 변환기를 형성하기 위해 복수의 규칙의 각각에 대하여 구성 요소들을 삽입하는 단계를 수행하는 것을 더 포함하는 컴퓨터 판독가능한 매체.
  15. 제14항에 있어서,
    2개 이상의 유한 상태 변환기들을 결합하여 결합된 유한 상태 변환기를 형성하는 단계를 더 포함하는 컴퓨터 판독가능한 매체.
  16. 제15항에 있어서,
    상기 2개 이상의 유한 상태 변환기들을 결합하는 단계는 동일한 코어를 갖는 모든 유한 상태 변환기들을 결합하는 단계를 포함하는 컴퓨터 판독가능한 매체.
  17. 제16항에 있어서,
    상기 2개 이상의 유한 상태 변환기들을 결합하는 단계는, 제1 코어를 갖는 모든 유한 상태 변환기들을 결합함으로써 제1 결합 유한 상태 변환기를 형성하고 제2 코어를 갖는 모든 유한 상태 변환기들을 결합함으로써 제2 결합 유한 상태 변환기를 형성하는 단계를 포함하는 컴퓨터 판독가능한 매체.
  18. 제17항에 있어서,
    상기 제1 결합 유한 상태 변환기와 상기 제2 결합 유한 상태 변환기를 결합하여 세트 유한 상태 변환기를 형성하는 단계를 더 포함하는 컴퓨터 판독가능한 매체.
  19. 제17항에 있어서,
    상기 제1 결합 유한 상태 변환기를 최소화하고 상기 제2 결합 유한 상태 변환기를 최소화하는 단계를 더 포함하는 컴퓨터 판독가능한 매체.
  20. 제9항 또는 제19항에 기재된 방법 또는 컴퓨터 판독가능한 매체는 상기 세트 유한 상태 변환기를 최소화하는 단계를 더 포함하는 방법 또는 컴퓨터 판독가능한 매체.
  21. 제20항에 있어서,
    상기 세트 유한 상태 변환기로부터 실행가능한 유한 상태 변환기를 형성하는 단계를 더 포함하는 방법 또는 컴퓨터 판독가능한 매체.
KR1020040022932A 2003-04-03 2004-04-02 2 레벨 형태론 규칙을 컴파일하는 방법 및 장치 KR20040086825A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/406,021 2003-04-03
US10/406,021 US7617089B2 (en) 2003-04-03 2003-04-03 Method and apparatus for compiling two-level morphology rules

Publications (1)

Publication Number Publication Date
KR20040086825A true KR20040086825A (ko) 2004-10-12

Family

ID=32850637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040022932A KR20040086825A (ko) 2003-04-03 2004-04-02 2 레벨 형태론 규칙을 컴파일하는 방법 및 장치

Country Status (5)

Country Link
US (1) US7617089B2 (ko)
EP (1) EP1465081A3 (ko)
JP (2) JP2004334848A (ko)
KR (1) KR20040086825A (ko)
CN (1) CN1609849A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136210A1 (en) * 2012-11-14 2014-05-15 At&T Intellectual Property I, L.P. System and method for robust personalization of speech recognition
US8972243B1 (en) * 2012-11-20 2015-03-03 Amazon Technologies, Inc. Parse information encoding in a finite state transducer
US11145296B1 (en) * 2019-03-25 2021-10-12 Amazon Technologies, Inc. Language and grammar model adaptation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032111A (en) * 1997-06-23 2000-02-29 At&T Corp. Method and apparatus for compiling context-dependent rewrite rules and input strings
US6760636B2 (en) * 2000-04-03 2004-07-06 Xerox Corporation Method and apparatus for extracting short runs of ambiguity from finite state transducers
US7010476B2 (en) * 2000-12-18 2006-03-07 Xerox Corporation Method and apparatus for constructing finite-state networks modeling non-concatenative processes
US20040193399A1 (en) 2003-03-31 2004-09-30 Microsoft Corporation System and method for word analysis

Also Published As

Publication number Publication date
EP1465081A2 (en) 2004-10-06
CN1609849A (zh) 2005-04-27
US7617089B2 (en) 2009-11-10
US20040199376A1 (en) 2004-10-07
JP2008108266A (ja) 2008-05-08
JP2004334848A (ja) 2004-11-25
EP1465081A3 (en) 2006-07-26

Similar Documents

Publication Publication Date Title
US11501066B2 (en) System and method for unsupervised text normalization using distributed representation of words
CN101622616B (zh) 共享语言模型
KR101130351B1 (ko) 영숫자 개념용 음성 인식 문법 생성
CN103392177A (zh) 本体扩展
CN101641691A (zh) 集成拼音和笔画输入
KR20080021064A (ko) 중국어 2행연구의 생성
CN1704882A (zh) 使用键盘的亚洲语言输入
KR20040086825A (ko) 2 레벨 형태론 규칙을 컴파일하는 방법 및 장치
JP7247593B2 (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
CN109582318A (zh) Portobuf本地化的处理方法、装置、终端及存储介质
Khatri et al. SkillBot: Towards Data Augmentation using Transformer language model and linguistic evaluation
KR20060043595A (ko) 구조화된 태스크 명명법
Sproat et al. Applications of lexicographic semirings to problems in speech and language processing
JP2022123566A (ja) 言語処理システム、言語処理方法および言語処理プログラム
Agarwal et al. Next Word Prediction Using Hindi Language
Gautam et al. Translation into Pali Language from Brahmi Script
JP2009103962A (ja) 音素モデルをクラスタリングする装置、方法およびプログラム
CN108021559A (zh) 自然语言理解系统以及语意分析方法
JP2020166501A (ja) 分割モデル生成システム、テキスト分割装置および分割モデル生成方法
JP3982726B2 (ja) 翻訳知識学習装置及び機械翻訳装置
WO2022091536A1 (ja) 意味表現解析システム及び意味表現解析方法
Hayadi et al. English-Indonesian Translation Methods in the Story of “Malin Kundang”
US20130080144A1 (en) Machine translation apparatus, a method and a non-transitory computer readable medium thereof
WO2024034399A1 (ja) 推論システム、方法、および推論器
Mauro The Documentation and Development of a Spelling System for San Bartolomé Quialana Zapotec

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application