KR100895940B1 - 문법 저작에서의 세그먼테이션 모호성의 자동 해결 - Google Patents

문법 저작에서의 세그먼테이션 모호성의 자동 해결 Download PDF

Info

Publication number
KR100895940B1
KR100895940B1 KR1020040023190A KR20040023190A KR100895940B1 KR 100895940 B1 KR100895940 B1 KR 100895940B1 KR 1020040023190 A KR1020040023190 A KR 1020040023190A KR 20040023190 A KR20040023190 A KR 20040023190A KR 100895940 B1 KR100895940 B1 KR 100895940B1
Authority
KR
South Korea
Prior art keywords
rewrite
rule
probability
segmentation
grammar
Prior art date
Application number
KR1020040023190A
Other languages
English (en)
Other versions
KR20040086842A (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 KR20040086842A publication Critical patent/KR20040086842A/ko
Application granted granted Critical
Publication of KR100895940B1 publication Critical patent/KR100895940B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01DHARVESTING; MOWING
    • A01D46/00Picking of fruits, vegetables, hops, or the like; Devices for shaking trees or shrubs
    • A01D46/24Devices for picking apples or like fruit
    • A01D46/247Manually operated fruit-picking tools
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01DHARVESTING; MOWING
    • A01D46/00Picking of fruits, vegetables, hops, or the like; Devices for shaking trees or shrubs
    • A01D46/22Baskets or bags attachable to the picker

Abstract

룰 기반의 문법이 생성된다. 세그먼테이션 모호성이 훈련 데이터에서 식별된다. 모호한 세그먼테이션에 대한 재기록 룰이 열거되고 각각에 대한 확률이 생성된다. 모호성은 확률에 기초하여 분석된다. 일 실시예에서, 이것은 추정치 최대화(EM) 알고리즘을 적용함으로써 수행된다.

Description

문법 저작에서의 세그먼테이션 모호성의 자동 해결{AUTOMATIC RESOLUTION OF SEGMENTATION AMBIGUITIES IN GRAMMAR AUTHORING}
도 1은 본 발명이 사용될 수 있는 예시적인 환경의 블록도.
도 2a는 본 발명의 일 실시예에 따른 모델-저작 컴포넌트의 일 실시예의 블록도.
도 2b는 예시적인 스키마를 나타낸 도면.
도 2c는 예시적인 스키마에 대해 생성된 예시적인 룰들의 세트를 나타낸 도면.
도 2d는 주석 처리된 문장의 예를 나타낸 도면.
도 2e는 예시적인 파스 트리를 나타낸 도면.
도 2f는 예시적인 단어들에 대한 가능한 프리터미널들(preterminals)의 표를 나타낸 도면.
도 2g는 연관된 계산들과 가능성들을 갖는 재기록 룰들의 표를 나타낸 도면.
도 3a는 문법 저작 컴포넌트를 더 상세히 나타낸 블록도.
도 3b는 도 3a에 나타낸 문법 저작 컴포넌트의 동작을 나타낸 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
202 : 모델 저작 컴포넌트
204 : 사용자 인터페이스
206 : 스키마
208 : 훈련 예 텍스트 스트링 및 주석
209 : 문법 라이브러리
210 : 룰에 기초한 문법
본 발명은 문법 저작(grammar authoring)에 관한 것이다. 더 구체적으로는 자동 문법 저작 시스템에서 세그먼테이션 모호성 제거(segmentation disambiguation)에 관한 것이다.
음성 구현 애플리케이션 및 서비스의 개발을 촉진하기 위해서, 의미론적 기반의 강인한 이해 시스템들(semantic-based robust understanding systems)이 현재 개발 중에 있다. 이러한 시스템들은 대화형 연구 시스템들(conversational, research systems)에서 널리 사용되고 있다. 그러나, 이러한 시스템들은 대화형 시스템을 수행함에 있어서 종래의 개발자들이 사용하는 데는 별로 실용적이지 않다. 이러한 구현들은 상당한 정도까지는, 도메인 특정 문법들(domain-specific grammars)의 수동적 개발에 의존해 왔다. 이러한 작업은 시간 소모적이고, 오류가 발생하기 쉬우며, 도메인에 있어서의 상당한 전문적 기술을 요구한다.
음성 구현 애플리케이션 및 서비스의 개발을 진척시키기 위해서, 예-기반 문 법 저작 도구(example-based grammar authoring tool)가 도입되었다. 이러한 도구는 "SGStudio"로 알려져 있으며, 2001년 이탈리아 마돈나 디 캄피글리오(Madonna D. Campiglio)에서 개최된, 자동 음성 인식 및 이해에 관한 IEEE 워크숍(IEEE Workshop on Automatic Speech Recognition and Understanding)에서 "Y. Wang" 및 "A. Acero"가 발표한 "GRAMMAR LEARNING FOR SPOKEN LANGUAGE UNDERSTANDING"과, 2002년 미국 플로리다주 올랜도(Orlando)에서, ICASSP 회의에서, "Y. Wang" 및 "A. Acero"가 발표한 "EVALUATION OF SPOKEN LANGUAGE GRAMMAR LEARNING IN ATIS DOMAIN"에 자세히 소개되었다. 이러한 도구는 많은 다른 소스들의 종래 정보를 이용하여 문법 개발을 상당히 용이하게 한다. 또한, 이러한 도구는 언어적 지식이 적은 보통의 개발자로 하여금 구어(spoken language) 이해를 위한 의미론적 문법(semantic grammar)을 생성할 수 있도록 한다. 이러한 시스템은 소량의 데이터로 상대적으로 양질의 의미론적 문법들을 반자동적으로 생성할 수 있도록 도와준다. 또한, 이러한 도구는 문법을 개발하는데 드는 노력을 상당히 경감시킬 뿐만 아니라, 다른 도메인들에 관한 이해 정확도(understanding accuracy)를 개선시킨다.
그러나, 이러한 도구도 개선되어야 할 여지가 있다. 이러한 도구는 모호성(ambiguities)이 해결되어야 할 때 문법 룰들을 도입하기 위해서는 종종 사용자에게 의지한다. 이것은 문법 개발에 방해가 되며, 문법 개발의 속도를 저하하게 된다.
룰 기반의 문법(rules-base grammar)이 생성된다. 세그먼테이션 모호성(segmentation ambiguities)은 데이터를 훈련(training)함에 있어서 확인된다. 모호성의 세그먼테이션들에 대한 재기록 룰들(rewrite rules)이 열거되고, 각각에 대한 가능성들이 생성된다. 모호성들은 가능성들에 기초하여 해결된다. 일 실시예에서, 이것은 EM(expectation maximization) 알고리즘을 적용함으로써 수행된다.
<실시예>
본 발명은 문법 저작 도구에 관한 것이다. 더 구체적으로, 본 발명은 문법 저작 중의 세그먼테이션들의 자동 모호성 제거(automatic disambiguation)에 관한 것이다. 그러나, 본 발명에 대해 더 자세히 설명하기에 앞서, 본 발명을 사용할 수 있는 예시적인 환경에 대해 설명할 것이다.
도 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(131) 및 RAM(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)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도시된 논리적 접속은 근거리 통신망(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)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
본 발명이 도 1에 관하여 상술된 바와 같은 컴퓨터 시스템 상에서 수행될 수 있다는 점을 알아야 한다. 그러나, 본 발명은 메시지 처리 전용 컴퓨터, 서버 또는 분산형 컴퓨팅 시스템의 상이한 부분에서 본 발명의 상이한 부분들이 수행될 수 있는 분산형 컴퓨터 상에서도 수행이 가능하다.
도 2a는 본 발명의 일 실시예에 따른 모델 저작 시스템(model authoring system)(200)의 블럭도이다. 모델 저작 시스템(200)은 모델 저작 컴포넌트(202) 및 선택적 사용자 인터페이스(204)를 포함한다. 도 2a에 있어서, 모델 저작 컴포넌트(202)는 스키마(schema)(206), 훈련 예 텍스트 문자열 및 주석(annotation)들의 집합(208) 및 선택적 문법 라이브러리(209)를 입력으로서 수신하고, (문맥 자유 문법(context free grammer, CFG)와 같은) 룰-기반 문법(rules-based grammar)를 출력한다. 선택적 문법 라이브러리(209)는 애플리케이션 데이터로부터 얻을 수 있는 도시 명칭, 항공선과 같은 도메인에 의존적인 개념 뿐만 아니라, 날짜 및 시간과 같은 도메인에 독립적인 개념에 대한 정의를 포함한다.
시스템(200)의 자세한 동작은 아래에 보다 상세히 기술된다. 간단히 말하여, 사용자는 모델 저작 컴포넌트(202)에게 스키마(206)와 훈련 예 텍스트 문자열(208)를 제공한다. 이것은 선택적 사용자 인터페이스(204) 또는 기타 다른 사용자 입력 메커니즘 또는 자동화된 수단을 통하여 수행될 수 있다. 모델 저작 컴포넌트(202)는 입력들을 수신하고, 그 입력들에 기초하여 룰-기반 문법을 생성한다. 룰-기반 문법의 한가지 예로는, 컴퓨터가 입력을 텍스트의 의미론적 표시로 맵핑할 수 있게끔 하는 문맥 자유 문법(CFG)을 들 수 있다.
스키마(206)는 모델링되고 있는 도메인의 의미론적 기술이다. 스키마의 한가지 실례가 도 2b에 나타나 있다. 도 2b는 개발자(developer)에 의하여 시스템(200)으로 입력될 수 있는 매우 간략화된 스키마(212)를 나타낸다. 스키마(212)는, 상이한 도시들로부터 출발하여 상이한 도시들로 도착하며 상이한 출발 및 도착 시간을 갖는 항공편을 보여주기 위하여 사용자로부터의 입력에 대한 다양한 텍스트 문자열의 의미를 나타내는 스키마이다. 스키마(212)는 항공편을 보여주는 명령어(ShowFlight)가 Flight에 대한 의미론적 클래스를 슬롯으로서 포함한다는 것을 표시한다. 스키마(212)는 또한, 출발 시간, 도착 시간, 출발 도시 및 도착 도시에 대응하는 4개의 슬롯을 가지고 있음을 표시하는 Flight에 대한 의미론적 클래스를 나타낸다.
스키마(212)로부터, 모델 저작 컴포넌트(202)는 도 2c에 나타나 있는 룰들의 집합을 생성할 수 있다. 룰 1은, 특성(property) 부분인 ShowFlightProperties의 앞에 오는 명령 부분인 ShowFlightCmd를 ShowFlight 문장이 항상 갖는다는 것을 보여준다.
룰 2는 ShowFlightProperties 부분이 그 안에 1개 이상의 특성을 가질 수 있다는 것을 표시한다. 예를 들어, 룰 2는, 선택적인 ShowFlightProperties 부분의 앞에 올 수 있는 적어도 하나의 ShowFlightProperty를 ShowFlightProperty 부분이 포함한다는 것을 표시한다. 이러한 ShowFlightProperties의 재귀적인 정의(recursive definition)는 그 표현을 간략화하고, 1개 이상의 특성을 갖는 것을 가능케 한다.
룰 3은 ShowFlightProperty 부분이 ShowFlightPreFlight 부분, Flight portion, 및 ShowFlightPostFlight 부분을 포함한다는 것을 보여준다. 이것은 스키마 내의 Flight 슬롯이 프리앰블(preamble) 및 포스트앰블(postamble) 모두를 가질 수 있음을 표시한다.
룰 4는 스키마 내의 Flight 개체가 명령 부분을 갖지 않고 특성 부분(ShowFlightProperties)을 가질 뿐이라는 것을 표시하는데, 이것은 ShowFlight가 명령인 반면, Flight는 스키마 내의 개체이기 때문이다. 룰 5는 FlightProperties 부분이, 선택적인 FlightProperties의 앞에 오는 적어도 하나의 FlightProperty를 포함하는 것으로 재귀적으로 정의되는 것을 보여준다.
룰 6 내지 9는 도 2b에 나타난 스키마(212) 내의 4개의 슬롯에 대응한다. 룰 6은 프리앰블 (FlightPreDepartureCity) 및 포스트앰블 (FlightPostDepartureCity) 사이에 있는 출발 도시 슬롯을 갖는 것으로 제1 특성을 정의한다. 룰 7은 동일한 방식으로 도착 도시를 정의하며, 룰 8 및 9는 유사한 방법으로 각각 출발 시간 및 도착 시간을 정의한다.
도 2c에서 확인되는 모든 룰들이 모델 저작 컴포넌트(202)에 의해 스키마(212)로부터 자동으로 생성될 수 있다는 사실이 부여될지라도, 어떤 특정 단어가 실제로 특정 프리-터미널(pre-terminal)(명령 의미 클래스(command semantic class)에 대한 명령뿐만 아니라 슬롯들에 대한 프리앰블과 포스트앰블)로 맵핑됨을 나타내는 재기록 룰은 여전히 없다. 예를 들어, "Please show me the flights..."라는 구절이 ShowFlightCmd로 맵핑됨을 나타내는 룰은 없다. 유사하게도, 어떤 단어가 예컨대 FlightPreArrivalCity 프리앰블 등으로 특정하게 맵핑되는지를 나타내는 재기록 룰은 없다. 따라서, 개발자는 또한 훈련 예 텍스트 문자열(training example text string) 및 주석(208)을 입력하여, 모델 저작 컴포넌트(202)가 이러한 재기록 룰들을 익힐 수 있다.
도 2d는 텍스트 문자열(213)에 대응하는 의미 주석(214)과 함께 예시적인 텍스트 문자열(213)인 "Flight from Seattle to Boston"의 일 예를 도시한다. 의미 주석(214)은 개발자에 의해 제공되고, 문자열(213)의 의미(semantic meaning)를 나타낸다. 예를 들어, 의미 주석(214)은 입력 텍스트 문자열(213)이 모두 도시인 두개의 슬롯을 갖는 하나의 슬롯 Flight를 갖는 ShowFlight 명령에 대응하는 것을 보여준다. Flight 슬롯에서의 두 슬롯을 슬롯명에 의해서만 구분한다. 하나는 "Arrival" 도시로서 간주되고, 다른 하나는 "Departure" 도시로서 간주된다. 의미 주석(214)은 또한 "Boston"이라는 단어를 "Arrival" 도시 슬롯으로 맵핑하고, "Seattle"이라는 단어를 "Departure" 도시 슬롯으로 맵핑한다. 따라서, 상기 주석(214)에 기초하여, 모델 저작 컴포넌트(202)는 어떠한 슬롯이 "Seattle"과 "Boston"이라는 단어들로 맵핑하는지를 알 것이다.
도 2c에 도시된 주석이 달린 예시와 템플릿 문법 룰들로부터, 모델 저작 컴포넌트(202)가 도 2e에 도시된 파스 트리(parse tree; 216)와 같은 룰-기반 문법 (또는 CFG) 파스 트리를 생성할 수 있다. 파스 트리(216)의 제1 레벨(218)(ShowFlight가 ShowFlightCmd 및 ShowFlightProperties로 구성됨을 나타내는 부분)은 도 2c의 룰 1로부터 형성된다.
제2 레벨(220)(ShowFlightProperties가 ShowFlightProperty로 구성됨을 나타내는 부분)은 선택적인 ShowFlightProperties 부분이 사용되지 않는 룰 2로부터 생성된다.
다음 레벨(222)(ShowFlightProperty가 ShowFlightPreFlight, Flight 및 ShowFlightPostFlight로 구성됨을 나타내는 부분)은 도 2c의 룰 3으로부터 생성된다.
다음 레벨(224)(Flight 오브젝트가 FlightProperties 섹션으로 구성됨을 나타냄)은 도 2c의 룰 4로부터 생성된다.
다음 레벨(226)(FlightProperties 부분은 FlightProperty 부분 및 FlightProperties 부분으로 구성됨을 나타내는 부분)은 도 2c의 룰 5로부터 생성된다.
다음 레벨(228)(FlightProperty 부분은 FlightPreDepartureCity 프리앰블, City 슬롯 및 FlightPostDepartureCity 포스트앰블로 구성됨을 나타내는 레벨)은 룰 6으로부터 생성되고, 다음 레벨(230)(FlightProperties가 FlightPreArrivalCity 프리앰블, City 슬롯 및 FlightPostArrivalCity 포스트앰블로 구성됨을 나타내는 레벨)은 룰 7로부터 생성된다.
마지막으로, "Seattle"이라는 단어가 레벨(228)의 City 슬롯으로 맵핑되고, "Boston"이라는 단어가 레벨(230)의 City 슬롯으로 맵핑됨을 나타내는 레벨은 사용자에 의하여도 입력되는 의미 주석(214)으로부터 생성된다. 따라서, 모델 저작 컴포넌트(202)는 입력 문장의 "Seattle"과 "Boston"이라는 단어들로부터 도 2c에서 생성되는 룰과 CFG 파스 트리로 맵핑되는 방법을 익힐 수 있다. 도시 룰들은 또한 주석이 달린 데이터 대신에 라이브러리 문법(도메인-특정 데이터베이스로부터 데이터를 취함으로써 차례로 구축될 수 있음)으로부터 획득될 수 있음을 주목해야 한다.
그러나, 입력 문장에는 여전히 트리로 맵핑되지 않는 수많은 단어들이 있다. 이러한 단어들은 "Flight", "from" 및 "to"를 포함한다. "Flight"와 "from"이라는 단어는 "Seattle"이라는 단어에 선행하기 때문에, FlightCmd, ShowFlightPreFlight 및 FlightPreDepartureCity를 포함하는 파스 트리(216)의 다양한 프리터미널로 맵핑될 수 있다. 유사하게도, "to"라는 단어는 입력 텍스트 문자열에서 "Seattle"과 "Boston"이라는 단어 사이에 존재하기 때문에, "to"라는 단어는 FlightPostDepartureCity나 FlightPreArrivalCity 중 하나에 맵핑될 수 있다.
"to"라는 단어는 전치사라는 것이 알려져 있기 때문에, "to" 이후에 오는 것을 수정해야 한다. 따라서, "to"라는 단어가 파스 트리(216)의 FlightPreArrivalCity 프리터미널로 맵핑되도록 결정될 수 있다.
그러나, "Flight"와 "from"이라는 단어가 파스 트리(216)에 존재하는지가 여 전히 알려져 있지 않다. 또한, 이 두 단어에 대한 특정 세그먼테이션이 알려져 있지 않다. 예를 들어, 하나의 실시예로서, "from"이라는 단어가 ShowFlightPreFlight로 맵핑되는 동안 "Flight"라는 단어는 ShowFlightCmd로 맵핑될 수 있다. 그 경우에, 프리터미널 FlightPreDepartureCity는 공집합(empty set)으로 맵핑된다.
또 다른 실시예로서, 다른 프리터미널들인 ShowFlightPreFlight와 FlightPreDepartureCity 모두 공집합으로 맵핑되는 동안 "Flight"와 "from"이라는 단어는 모두 ShowFlightCmd로 맵핑된다.
또 다른 실시예에서는, "Flight"는 ShowFlightCmd로 맵핑되고 "from"은 FlightPreDepartureCity로 맵핑되는 반면, 남아있는 프리터미널 ShowFlightPreFlight는 공집합으로 맵핑된다.
이는 개발자로부터의 추가적인 정보가 없음으로 인하여 역사적으로 해결되지 않았던 세그먼테이션의 모호한 표현을 나타낸다. 몇몇 이전의 시스템에서는, 가능한 세그먼테이션 각각이 단순히 사용자에게 표시되었고, 사용자는 이러한 세그먼테이션들 중 하나를 선택하도록 허용되었다.
그러나, 이는 수많은 문제점을 야기시켰다. 우선, 사용자와의 이런 유형의 상호작용은 방해를 받고 시간을 소모하게 된다. 또한, 입력 텍스트 문자열에 더 가능한 프리터미널과 더 정렬되지 않은 단어들이 있는 경우에, 사용자에게 제시되는 수많은 가능성들이 상당히 증가한다. 사용자에 의한 선택에 대한 그런 모든 후보 세그먼테이션을 효과적으로 표시하기는, 비록 불가능하지 않더라도, 매우 어렵 다. 또한, 세그먼테이션이 사용자에 의한 선택에 대하여 적절히 표시되더라도, 사용자는 종종 세그먼테이션 또는 세그먼트 유사 텍스트 문자열에서 일관되지 않게 에러를 범한다.
본 발명의 일 실시예에 따르면, 추정치 최대화(expectation maximization; EM) 알고리즘이 세그먼테이션의 선택을 명확하게 하기 위하여 모델 컴포넌트(202)에서의 세그먼테이션의 모호한 표현에 적용된다. 이 EM 알고리즘은 대체로 상기 모델이 관측불가능한 숨겨진 변수를 포함하는 경우 최대 가능도 추정량(maximum likelihood estimator)으로서 모델 파라미터들을 추정하기 위한 알고리즘이다.
도 3a는 모델 저작 컴포넌트(202)를 보다 상세하게 도시하는 블록도이다. 도 3a는 모델 저작 컴포넌트(202)가 템플릿 문법 생성기(300), 세그먼테이션 EM 어플리케이션 컴포넌트(302) 및 전정(pruning) 컴포넌트(304)를 예시적으로 포함함을 보여준다. 템플릿 문법 발생기(300)는 스키마(206)와, 스키마(206)에서의 의미 클래스들에 의하여 (적절한 유형의 단일화를 통해) 간주되는 선택적인 문법 라이브러리(209)에서의 임의의 룰들을 받아들이고, 선택적인 문법 라이브러리(209)와 스키마(206)로부터 익히거나 모아질 수 있는 모든 룰들을 포함하는 템플릿 문법을 생성한다. 템플릿 문법은 이후 EM 세그먼테이션 컴포넌트에 의해 훈련 예들(텍스트 문자열 및 그 주석)과 함께 입력으로서 취해진다. EM 세그먼테이션 컴포넌트(302)는 훈련 예들에서의 세그먼테이션의 모호한 표현을 찾아내기 위하여 템플릿 문법을 사용할 것이다. 상기 컴포넌트(302)는 이후 임의의 세그먼테이션의 모호한 표현을 명확하게 하도록 동작한다. 이러한 명확화 동작에 기초하여, 재기록 룰들이 룰-기반 문법(210)을 제공하기 위해 전정 컴포넌트(304)를 사용하여 상기 문법으로부터 전정될 수 있다.
EM 세그먼테이션 컴포넌트(302)의 동작을 더 설명하기 위하여, 도 2f 및 도 2g는 예시적인 테이블을 제공한다. 도 2f는 예들의 세트를 포함하는 테이블을 도시한다. 이들 중 제1 예는 단어 "from"이 프리터미널(preterminal) ShowFlightCmd 또는 프리터미널 FlightPreDepartureCity에 혹시 맵핑할 수 있다는 것을 도시한다. 이 예는 예문 "from Seattle to Boston"으로부터 컴포넌트(302)에 의하여 수확(harvest)될 수 있다. 제2 예는 단어들 "Flight from"이 프리터미널 ShowFlightCmd 및 FlightPreDepartureCity에 맵핑될 수 있다는 것을 나타낸다. 이 예는 "Flight from Seatle to Boston"과 같은 예문으로부터 컴포넌트(302)에 의하여 수확될 수 있다. 제3 예는 단어들 "Flight to"가 프리터미널 ShowFlightCmd 및 "FlightPreArrivalCity에 맵핑될 수 있다는 것을 나타내고, 이것은 "Flight to Boston on Tuesday"와 같은 예로부터 컴포넌트(302)에 의하여 유사하게 획득될 수 있다. 그러나, 예들의 세그먼테이션은 모호하다. 환언하면, 제1 예에서 단어 "from"이 프리터미널 ShowFlightCmd에 또는 프리터미널 FlightPreDepartureCity에 맵핑될지 아직 알려져 있지 않다. 마찬가지로, 단어들 "Flight from"이 프리터미널 ShowFlightCmd와 FlightPreDeparture간에 어떻게 맵핑되는지가 알려져 있지 않다. 또한, 물론 단어들 "Flight to"가 가능한 프리터미널 ShowFlightCmd와 FlightPreArrivalCity간에 어떻게 맵핑되는지가 알려져 있지 않다.
도 2g는 EM 알고리즘 애플리케이션 컴포넌트(302)의 동작을 더 설명하는 테이블이다. 도 3b는 컴포넌트(302)의 동작을 설명하는 흐름도이고, 도 2f 및 도 2g와 함께 설명될 것이다.
먼저, 컴포넌트(302)는 모든 가능한 세그먼테이션을 열거한다. 이것은, 가능한 재기록 룰(possible re-write rules)이라고 하는, 도 2g의 좌측 열에 도시되어 있다. 도 2g에 도시된 재기록 룰에서, 프리터미널 네임을 형성하는 몇몇 단어는 약기된다(abbreviated). 따라서, 예를 들어, 재기록 룰 SFCmd →ε은, ShowFlightCmd (약기된 SFCmd) 프리터미널이 빈 세트(empty set)로 맵핑되는 세그먼테이션을 나타낸다. 마찬가지로, 재기록 룰 SFCmd →from은, 단어 "from"이 프리터미널 ShowFlightCmd에 맵핑되는 세그먼테이션을 표시한다. 또한, FPDCity →ε은, 프리터미널 FlightPreDepartureCity (약기된 FPDCity)가 빈 세트로 맵핑되는 세그먼테이션을 표시하고, FPACity →ε은 프리터미널 FlightPreArrivalCity (약기된 FPACity)가 빈 세트로 맵핑되는 세그먼테이션을 나타낸다. 이들 예로부터, 도 2g에 도시된 테이블의 재기록 룰 부분의 다른 표기(notation)도 그 표기로부터 내용을 알 수 있다. 도 2f에 도시된 예들에 대하여 각각의 가능한 세그먼테이션이 열거된다고 일단 말해두면 충분하다.
도 2f의 제1 예로부터, 하나의 세그먼테이션은 단어 "from"이 ShowFlightCmd에 맵핑된다는 것을 나타내고, 다른 세그먼테이션은 단어 "from"이 FlightPreDepartureCity에 맵핑된다는 것을 나타낸다.
도 2f의 제2 예는 다수의 상이한 세그먼테이션 대안들(alternatives)도 지원한다. 예를 들면, 하나의 세그먼테이션 대안에 따라, 단어들 "Flight from"은 둘다 프리터미널 ShowFlightCmd에 맵핑되고, 프리터미널 FlightPreDepartureCity은 ε에 맵핑된다. 다른 세그먼테이션 대안에서, 단어들 "Flight from"은 둘다 프리터미널 FlightPreDepartureCity에 맵핑되고, 프리터미널 "ShowFlightCmd"는 ε에 맵핑된다. 또 다른 대안에서, 단어들 "Flight" 및 "from"은, 단어 "Flight"가 프리터미널 ShowFlightCmd에 맵핑되고 단어 "from"이 프리터미널 FlightPreDepartureCity에 맵핑되도록 분리된다. 또한, 이들 세그먼테이션 각각은 도 2g에서 열거된 재기록 룰에 도시된다.
제3 예는, 단어들 "Flight to"가 프리터미널 ShowFlightCmd 또는 프리터미널 FlightPreArrivalCity에 맵핑될 수 있는 반면에, 다른 프리터미널은 ε에 맵핑 되거나, 단어들 "Flight to"가 프리터미널 ShowFlightCmd와 FlightPreArrivalCity간에 분리될 수 있다는 점에서, 제2 예와 유사한 방식으로 세그먼테이션될(segmented) 수 있다. 다시, 이들 세그먼테이션 각각은 도 2g에 도시된 재기록 룰으로 표시된다.
모든 가능한 세그먼테이션의 열거(enumeration)는 도 3b의 흐름도의 블록 "306"에 의하여 나타내어진다.
세그먼테이션을 지원하는 재기록 룰들이 일단 열거되면, 이들은 각각 확률이 할당된다. 초기에, 도 2g에 도시된 모든 세그먼테이션은 동일한 확률이 할당된다. 이것은 도 3b의 블록 "308"에 의하여 나타내어진다.
다음, 컴포넌트(302)는, 도 2f에 도시된 예에서의 카운트의 가능한 발생(occurrences)에 기초하여, 새로운 기대 카운트(expected counts)를 열거된 재기록 룰에 할당한다. 이것은 블록 "310"에 의하여 나타내어진다. 예를 들면, 제1 예로부터, 두 가지 가능한 세그먼테이션이 있는데, 하나는 단어 "from"을 ShowFlightCmd로 맵핑하고 프리터미널 FlightPreDepartureCity를 ε에 맵핑하며, 다른 하나는 ShowFlightCmd를 ε에 맵핑하고 단어 "from"을 프리터미널 FlightPreDepartureCity에 맵핑한다. 제1 재기록 룰은, ShowFlightCmd 프리터미널이 ε(빈 세트)로 맵핑된다는 것을 말한다. 따라서, 예 1의 세그먼테이션들 중 절반은 도 2g의 테이블에 도시된 제1 재기록 룰을 지원한다. 그러므로, 제1 예로부터, 제1 재기록 룰(ShowFlightCmd →ε)은 1/2의 카운트가 할당된다.
상술한 바와 같이, 제2 예는 세 개의 상이한 세그먼테이션을 지원하는데, 하나는 단어들 "Flight from"을 둘다 프리터미널 ShowFlightCmd에 할당하고 프리터미널 FlightPreDepartureCity를 ε에 할당하며, 다른 하나는 단어 "Flight"를 프리터미널 ShowFlightCmd에 할당하고 단어 "from"을 프리터미널 FlightPreDepartureCity에 할당하고, 마지막 하나는 프리터미널 ShowFlightCmd를 ε에 할당하고 단어들 "Flight from"를 둘다 프리터미널 FlightPreDepartureCity에 할당한다. 이들 세 개의 세그먼테이션 중에서, 하나는 제1 재기록 룰(SFCmd →ε)을 지원한다. 따라서, 제2 예로부터, 제1 재기록 룰은 1/3의 카운트가 할당된다.
동일한 방식으로, 제3 예는 세 개의 가능한 세그먼테이션을 갖는데, 이들 중 하나는 프리터미널 ShowFlightCmd를 ε에 맵핑한다. 따라서, 제3 예로부터, 도 2g에 도시된 제1 재기록 룰은 1/3의 카운트가 다시 할당된다.
이러한 유형의 분석을 사용하면, 제2 재기록 룰(SFCmd →from)은 제1 예에 의해서만 지원된다는 것을 알 수 있다. 따라서, 제1 예에 대해서 두 개의 가능한 세그먼테이션이 있고 이들 중 하나는 제2 재기록 룰을 지원하기 때문에, 제2 재기록 룰(SFCmd →from)은 1/2의 카운트가 할당된다.
제3 재기록 룰(SFCmd →Flight)은 도 2f에 도시된 제2 및 제3 예 각각으로부터의 세그먼테이션 중 하나에 의하여 지원된다. 따라서, 이들 예 각각은 세 개의 가능한 세그먼테이션을 갖고 있기 때문에, 제3 재기록 룰(SFCmd →Flight)은 각각의 예로부터 1/3의 카운트가 할당된다.
컴포넌트(302)는 이러한 방식으로 도 2g의 열거된 재기록 룰 각각에 카운트를 할당하고, 이들 카운트는 도 2g에 도시된 테이블의 제2 열에서 도시된다. 카운트들은 공통 분모를 가지도록 변환되고, 그 후 확률을 얻기 위하여 각각의 프리터미널에 대하여 정규화되어진다(normalized). 환언하면, ShowFlightCmd 터미널에 대한 총 확률 질량(total probability mass)에 1을 더해야 한다. 따라서, 각각의 재기록 룰에 대한 카운트는, 그 재기록 룰에 연관된 확률을 획득하기 위하여 표준화 인자(normalization factor)에 의하여 곱해진다.
예를 들면, 프리터미널 ShowFlightCmd에 대한 카운트의 총 수는 3이라는 것을 알 수 있다. 따라서, 제1 재기록 룰(SFCmd →ε)은 7/18이다. 마찬가지로, 제2 재기록 룰(SFCmd →from)에 대한 확률은 3/18 등이다. 컴포넌트(302)는, 이 확률을 획득하기 위하여 각각의 프리터미널 및 각각의 재기록 룰에 대한 카운트를 처리한다.
그러므로, 프리터미널 FPDCity에 대하여, 모든 상이한 룰에 대한 카운트의 합은 2라는 것을 알 수 있으므로, 표준화 인자는 1/2이다. 마지막 프리터미널 FPACity에 대하여, 하나의 카운트만이 있어서, 표준화 인자는 1이다. 그러므로, 컴포넌트(302)는, 각각의 재기록 룰에 연관된 확률을, 예들에 의하여 지원되는 재기록 룰의 발생을 더 정확하게 반영하는 것으로 재설정한다. 새로운 확률을 획득하기 위하여 카운트를 정규화하는 것은 도 3b의 블록 "312"에 의하여 나타내어진다.
컴포넌트(302)는, 카운트들 및 확률들이 수렴할 때까지, 이 프로세스(카운트들을 재평가하고 새로운 확률들을 획득하는 것)를 반복한다. 이것은 블록 "314"에 의하여 나타내어진다. 예를 들면, 제1 재기록 룰에 대한 새로운 카운트
Figure 112008069242757-pat00001
를 획득하기 위하여, 컴포넌트(302)는, 비터미널 시퀀스(non-terminal sequence) ShowFlightCmd 및 FPDCity가 주어진 단어 "from"을 관찰할 총 가능성을 먼저 탐색하는 식 1을 아래와 같이 구현한다.
식 1
Figure 112004013912363-pat00002
이러한 합에서, 빈 문자열(empty string)을 ShowFlightCmd에 그리고 "from"을 FPDCity에 할당하는 세그먼테이션에 대한 비율은 새로운 기대 카운트
Figure 112004013912363-pat00003
이 된다.
식 2
Figure 112004013912363-pat00004
마찬가지로, 재2 재기록 룰(SFCmd →from)에 대한 새로운 카운트
Figure 112004013912363-pat00005
은 다음과 같이 계산된다.
식 3
Figure 112004013912363-pat00006
이 프로세스는 각 예로부터 카운트 C를 수집하기 위하여 각 재기록 룰에 대하여 계속된다. 이어서, 새로운 카운트는 새로운 확률을 획득하기 위하여 표준화 인자에 의하여 곱해진다. 도 3b에서 나타난 바와 같이, 컴포넌트(302)는 이 프로세스에 대하여 반복되어, 확률이 수렴할 때까지 새로운 카운트와 새로운 확률을 재계산한다.
일단 반복이 완료되면, 컴포넌트(302)는 열거된 재기록 룰의 각각과 연관된 새로운 카운트 및 새로운 확률을 계산하였을 것이다. 이는 훈련 중에 획득된 상이한 분할에 대응하는 룰의 분할의 각각에 확률을 할당하였으므로 그 자체로서 매우 유용하지만, 소망했던 최종 결과는 아닐 수도 있다. 예를 들어, 일부 파서(parser)는 확률을 이용하지 못한다. 또한, 일부 파싱 컴포넌트에서, 많은 수의 룰은 파서를 효과적이지 못하게 한다.
따라서, 본 발명의 일 실시예에 따라, 컴포넌트(302)는 룰 및 연관된 확률을 그 룰이 전정되는 전정 컴포넌트(304)에 제공한다. 이는 도 3b의 블록(316, 318)에 의하여 지시된다. 전정 컴포넌트(304)는 수많은 상이한 방법들 중 하나로 (블록(320)에 의하여 지시되는 바와 같이) 룰을 전정할 수 있다. 예를 들어, 전정 컴포넌트(304)는 소망된 문턱 레벨 아래의 확률을 갖는 룰을 전정할 수 있다. 이어서, 컴포넌트(304)는 잔존하는 룰을 룰 기반 문법(210)에 도입한다.
또 다른 실시예에 따르면, 전정 컴포넌트(304)는 각 예에 대응하는 높은 가능성을 갖는 소정의 수의 분할을 제외한 모두를 제거하고, 잔존하는 분할에 따라 문법에 재기록 룰을 도입한다. 예를 들어, 컴포넌트(304)는 가장 높은 확률을 갖는 하나를 제외하고 각 예에 대응하는 모든 분할을 제거할 수 있다. 따라서, 예 1로서, 단어 "from"을 프리터미널 FlightPreDepartureCity에 맵핑(mapping)한 분할이, 단어 "from"을 프리터미널 ShowFlightCmd에 할당한 분할보다 높은 확률을 갖는다고 가정하자. 이 예에서, 제2 분할(단어 "from"을 프리터미널 ShowFlightCmd에 맵핑한 분할)이 제거된다. 이 경우, 선택된 분할을 지원하는 두 개의 재기록 룰이 문법에 추가된다. 따라서, 재기록 룰 "SFCmd→ε"과 재기록 룰 "FPDCity→from"은 모두 문법에 추가된다.
유사하게, 임의의 예의 최선의 분할에 의하여 더 이상 지원되지 않는 룰이 도 2g에서 나타난 열거된 룰으로부터 제거될 수 있다. 따라서, 룰 "SFCmd → from"은 제거된 예 1에 대한 분할에 의해서만 지원되었으므로, 제거될 수 있다.
이러한 식의 EM 알고리즘의 응용이 더욱 수식적이고 수학적인 용어로 설명될 것이다. 분할 모호성 해결(segmentation ambiguity resolution)은, 각 블록이 N=NT1, NT2, ..., NTm의 시퀀스로 프리터미널에 할당되도록 하는 단어 시퀀스 w=w1, w2, ..., wn에 대한 m개의 블록 파티션 π=α1, α2, ...,α m를 찾는 문제로서 수식화될 수 있다. 블록은 w로부터의 0 또는 그 이상의 단어를 포함할 수 있다.
만일 π, N 및 w의 결합 확률을
식 4
Figure 112004013912363-pat00007
로 모델링하면, N과 w가 주어진 경우, 가장 가능성있는 분할은 다음과 같이 얻어질 수 있다.
식 5
Figure 112004013912363-pat00008
이러한 파티션은 비테르비 검색(Viterbi search)으로 찾아질 수 있다. 따라서, 남은 유일한 문제는 모든 프리터미널(또는 컨셉트) NT 및 단어 시퀀스 α에 대하여 모델 파라미터 P(NT→α)를 계산하는 것이다. 만일 훈련 데이터가 각 프리터미널에 대한 단어 시퀀스와 짝지워진 프리터미널의 목록이면, 이 계산은 최대 가능성 계산으로 될 수 있다. 그러나, 저작 도구를 통하여 사용자로부터 얻어진 훈련 예는, 설명에 도움이 되도록 프리터미털 시퀀스와 터미널 시퀀스의 쌍이다. 파티션 또는 분할은 숨겨진 변수이고 툴에게 알려져 있지 않다.
EM 알고리즘은 최초로 모델에 대하여 파라미터 PΦ를 설정하고, 이어서 반복적으로 파라미터를 PΦ'로 변경하여 관찰 가능성 D가 증가하도록 한다.
이러한 PΦ'를 찾기 위하여, 식 6에서 보조 함수 Q를 정의한다.
식 6
Figure 112004013912363-pat00009
이는, 두 개의 모델 파라미터화 사이의 훈련 데이터의 로그 가능성의 차이, L(D|PΦ')-L(D|PΦ)의 하한이다. EM 알고리즘은, 프리터미널에 대한 모든 가능한 재기록 룰의 합은 1이 되어야 한다는 제한을 받으며, 새로운 파라미터화에 의한 훈련 샘플 가능성의 증가를 최대화하기 위하여 Q를 최대화함으로써 탐욕적으로(greedily) 파라미터 PΦ'를 재설정한다. 따라서, 각 룰 NT→α에 대하여 그 새로운 확률은 아래의 등식을 해결함으로써 획득될 수 있다.
식 7
Figure 112004013912363-pat00010
왜냐하면,
Figure 112004013912363-pat00011
이면,
식 8
Figure 112004013912363-pat00012
따라서, 확률은 예상 카운트와 표준화 인자 -1/λ의 곱으로 재설정되어야 한다:
식 9
Figure 112004013912363-pat00013
예상 카운트를 계산하기 위해서, 다음을 주의하라.
식 10
Figure 112004013912363-pat00014
따라서,
식 11
Figure 112004013912363-pat00015
프리터미널 시퀀스 N을 단어 시퀀스 w로 재기록하는 프로세스에서 N의 k번째 프리터미널이 서브 시퀀스 α=w1,...,wj를 생성하는데 룰 NT→α가 사용되는 이벤트를 Ek ij=(N⇒w1,...,wi-1,NTk,wj+1,...,w n)라고 하고, 시퀀스 N에서 위치 s로부터 t까지의 프리터미널이 터미널 단어 wp,...,wq-1를 커버할 확률을 λt s(p,q)라고 하면,
식 12
Figure 112004013912363-pat00016
식 13
Figure 112004013912363-pat00017
이다.
따라서, 만일 λt s(p,q)를 계산할 수 있으면, 식(9), (11) 및 (13)을 결합하여 예상 카운트를 획득하고 모델 파라미터를 재설정할 수 있다. 사실, λt s(p,q)는 식(14)에 따라 동적 프로그래밍으로 계산될 수 있다. 식(14)에서, ε는 널 스트링이다.
식 14
Figure 112004013912363-pat00018
식(11)에서 PΦ(N,w)=λm 1(1,n+1)가 사용될 수 있음을 주의하라.
따라서, 본 발명의 일 실시예는 분할 모호성을 제거하기 위하여 EM 알고리즘을 적용한다. 이는 문법 저작 프로세스를 완전히 자동화하여 개발자의 관여의 필요성을 감소시킨다. 이는 또한 일관된 모호성 제거를 수행하고 템플릿 문법 생성 후에 할당되지 않은 수많은 프리터미널과 단어가 있을 때에도 모호성 제거를 자동적으로 수행할 수 있다.
본 발명이 특정 실시예를 참조하여 설명되었지만, 당업자는 본 발명의 범위 를 벗어나지 않고도 형태 및 세부에 있어서 변형이 행해질 수 있다는 것을 알 수 있을 것이다.
본 발명은 기존의 문법 저작 도구가 모호성이 해결되어야 할 때 문법 룰들을 도입하기 위해서 종종 사용자에게 의지하는 점을 개선하여 문법 개발의 속도를 증가시키고, 문법 개발을 용이하게 한다.

Claims (25)

  1. 자연 언어 처리를 위한 룰 기반의 문법을 생성하는 방법으로서,
    해당 훈련 데이터의 세그먼테이션이 모호한 훈련 데이터의 세그먼테이션 모호성을 식별하는 단계;
    모든 모호한 세그먼테이션에 대하여 재기록 룰을 열거하는 단계; 및
    상기 훈련 데이터에 의해 지지되는 상기 재기록 룰의 발생(occurrence)에 기초하여 열거된 재기록 룰 각각에 대한 확률을 생성함으로써 자동으로 상기 세그먼테이션 모호성을 해결하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 세그먼테이션 모호성을 해결하는 단계는,
    상기 훈련 데이터에 의해 지지되는 상기 열거된 재기록 룰의 발생에 기초하여 열거된 재기록 룰 각각에 대한 카운트를 추정하는 단계;
    상기 추정된 카운트에 기초하여 상기 열거된 재기록 룰 각각에 대한 확률을 생성하는 단계;
    생성된 재기록 룰 각각에 대한 상기 확률에 기초하여 상기 열거된 재기록 룰에 대한 상기 카운트를 재추정하는 단계; 및
    상기 카운트 및 상기 확률이 수렴할 때까지 상기 확률을 생성하는 단계 및 상기 카운트를 재추정하는 단계를 반복하는 단계
    를 포함하는 방법.
  3. 제2항에 있어서,
    상기 훈련 데이터를 수신하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 훈련 데이터를 수신하는 단계는 스키마 및 1 이상의 의미론적으로 주석이 달린 텍스트 스트링을 수신하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 세그먼테이션 모호성을 식별하는 단계는 상기 훈련 데이터로부터 재기록 룰을 포함하는 템플릿(template) 문법을 생성하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 세그먼테이션 모호성을 식별하는 단계는 상기 스키마, 상기 재기록 룰 및 상기 주석이 달린 텍스트 스트링으로부터 파스 트리(parse tree)를 생성하는 단계를 포함하는 방법.
  7. 제6항에 있어서,
    재기록 룰 각각은 상기 텍스트 스트링의 일부에 상기 파스 트리 내의 리프(leaf)를 맵핑하고, 상기 세그먼테이션 모호성을 식별하는 단계는 상기 파스 트리 내의 1 이상의 가능한 리프로 맵핑될 수 있는 상기 텍스트 스트링의 모호한 일부를 식별하는 단계를 포함하는 방법.
  8. 제7항에 있어서,
    모든 모호한 세그먼테이션에 대하여 재기록 룰을 열거하는 단계는 상기 파스 트리 내의 상기 가능한 리프들 각각에 상기 텍스트 스트링의 상기 모호한 일부를 맵핑하는 재기록 룰을 열거하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    열거된 재기록 룰 각각에 대한 확률을 생성하는 단계는 동일 리프에 적용되는 재기록 룰 각각에 대한 상기 카운트를 정규화하는 단계를 포함하는 방법.
  10. 제2항에 있어서,
    카운트를 추정하는 단계에 앞서, 동일 값에 대한 세그먼테이션 모호성 예의 가능한 세그먼테이션 각각에 대한 확률을 정하는 단계를 포함하는 방법.
  11. 제2항에 있어서,
    상기 세그먼테이션 모호성을 해결하는 단계는 상기 생성된 확률에 기초하여 상기 열거된 재기록 룰을 전정(pruning)하는 단계를 포함하는 방법.
  12. 제11항에 있어서,
    전정하는 단계는,
    재기록 룰 각각에 대하여 생성된 확률이 임계치를 만족시키는지 여부를 결정하는 단계; 및
    상기 결정에 기초하여 상기 재기록 룰을 전정하는 단계
    를 포함하는 방법.
  13. 제12항에 있어서,
    전정하는 단계는 상기 임계치를 만족시키지 않는 재기록 룰을 전정하는 단계를 포함하는 방법.
  14. 제11항에 있어서,
    전정하는 단계는 세그먼테이션 모호성의 모든 훈련예에 대하여 가장 높은 확률의 세그먼테이션에 의해 지지되지 않은 재기록 룰을 전정하는 단계를 포함하는 방법.
  15. 룰 기반 문법을 저작하기 위한 컴퓨터 실행 문법 저작 시스템으로서,
    훈련 데이터를 수신하여 상기 훈련 데이터에서의 세그먼테이션 모호성에 대응하는 모호한 재기록 룰을 포함하는 템플릿 문법을 생성하도록 구성되는 템플릿 문법 생성기;
    상기 템플릿 문법 생성기에 결합되고, 상기 모호한 재기록 룰을 수신하며, 상기 모호한 재기록 룰에 대한 확률을 생성하도록 구성되는 모호성 제거 컴포넌트; 및
    상기 모호성 제거 컴포넌트에 결합되고, 상기 생성된 확률에 기초하여 상기 모호한 재기록 룰을 전정하도록 구성되는 전정 컴포넌트
    를 포함하는 문법 저작 시스템.
  16. 제15항에 있어서,
    상기 모호한 재기록 룰이 각각 하나의 세트의 모호한 세그먼테이션 내의 가능한 세그먼테이션에 대응하는 문법 저작 시스템.
  17. 제16항에 있어서,
    상기 모호성 제거 컴포넌트가, 추정치 최대화(Estimation Maximization; EM) 알고리즘을 가능한 세그먼테이션 각각과 연관된 확률을 생성하는데 적용하도록 구성되는 EM 알고리즘 애플리케이션 컴포넌트를 포함하는 문법 저작 시스템.
  18. 제17항에 있어서,
    상기 EM 알고리즘 애플리케이션 컴포넌트는,
    상기 훈련 데이터에 의해 지지되는 상기 열거된 재기록 룰의 발생에 기초하여 열거된 재기록 룰 각각에 대한 카운트를 추정하고;
    상기 추정된 카운트에 기초하여 상기 열거된 재기록 룰 각각에 대한 확률을 생성하며;
    생성된 재기록 룰 각각에 대한 상기 확률에 기초하여 상기 열거된 재기록 룰에 대한 상기 카운트를 재추정하고;
    상기 카운트 및 상기 확률이 수렴할 때까지 상기 확률 생성 및 상기 카운트 재추정을 반복하도록 구성되는 문법 저작 시스템.
  19. 제18항에 있어서,
    상기 훈련 데이터는 스키마 및 1 이상의 의미론적으로 주석이 달린 텍스트 스트링을 포함하는 문법 저작 시스템.
  20. 제19항에 있어서,
    상기 템플릿 문법 생성기는 상기 스키마, 상기 재기록 룰 및 상기 주석이 달린 텍스트 스트링으로부터 파스 트리를 생성하도록 구성되는 문법 저작 시스템.
  21. 제20항에 있어서,
    재기록 룰 각각은 상기 텍스트 스트링의 일부에 상기 파스 트리 내의 리프를 맵핑하고, 상기 템플릿 문법 생성기는 상기 파스 트리 내의 1 이상의 가능한 리프로 맵핑될 수 있는 상기 텍스트 스트링의 모호한 일부를 식별하도록 구성되는 문법 저작 시스템.
  22. 제21항에 있어서,
    상기 템플릿 문법 생성기는 상기 파스 트리 내의 상기 가능한 리프들 각각에 상기 텍스트 스트링의 상기 모호한 일부를 맵핑하는 재기록 룰을 열거하도록 구성되는 문법 저작 시스템.
  23. 제15항에 있어서,
    상기 전정 컴포넌트는,
    재기록 룰 각각에 대하여 생성된 확률이 임계치를 만족시키는지 여부를 결정하고;
    상기 결정에 기초하여 상기 재기록 룰을 전정하도록 구성되는 문법 저작 시스템.
  24. 제23항에 있어서,
    상기 전정 컴포넌트는 상기 임계치를 만족시키지 않는 재기록 룰을 전정하도록 구성되는 문법 저작 시스템.
  25. 제15항에 있어서,
    상기 전정 컴포넌트는 세그먼테이션 모호성의 모든 훈련예에 대하여 가장 높은 확률의 세그먼테이션에 의해 지지되지 않은 재기록 룰을 전정하도록 구성되는 문법 저작 시스템.
KR1020040023190A 2003-04-03 2004-04-03 문법 저작에서의 세그먼테이션 모호성의 자동 해결 KR100895940B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/406,524 US7328147B2 (en) 2003-04-03 2003-04-03 Automatic resolution of segmentation ambiguities in grammar authoring
US10/406,524 2003-04-03

Publications (2)

Publication Number Publication Date
KR20040086842A KR20040086842A (ko) 2004-10-12
KR100895940B1 true KR100895940B1 (ko) 2009-05-07

Family

ID=32850648

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040023190A KR100895940B1 (ko) 2003-04-03 2004-04-03 문법 저작에서의 세그먼테이션 모호성의 자동 해결

Country Status (7)

Country Link
US (1) US7328147B2 (ko)
EP (1) EP1465155B1 (ko)
JP (1) JP4738753B2 (ko)
KR (1) KR100895940B1 (ko)
CN (1) CN100351837C (ko)
AT (1) ATE348383T1 (ko)
DE (1) DE602004003609T2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059149A1 (en) * 2003-11-12 2008-03-06 Koninklijke Philips Electronics N.V. Mapping of semantic tags to phases for grammar generation
US8229745B2 (en) * 2005-10-21 2012-07-24 Nuance Communications, Inc. Creating a mixed-initiative grammar from directed dialog grammars
US7774202B2 (en) * 2006-06-12 2010-08-10 Lockheed Martin Corporation Speech activated control system and related methods
US8516457B2 (en) 2011-06-28 2013-08-20 International Business Machines Corporation Method, system and program storage device that provide for automatic programming language grammar partitioning
US8676826B2 (en) 2011-06-28 2014-03-18 International Business Machines Corporation Method, system and program storage device for automatic incremental learning of programming language grammar
US10102275B2 (en) 2015-05-27 2018-10-16 International Business Machines Corporation User interface for a query answering system
US10146858B2 (en) 2015-12-11 2018-12-04 International Business Machines Corporation Discrepancy handler for document ingestion into a corpus for a cognitive computing system
US10176250B2 (en) 2016-01-12 2019-01-08 International Business Machines Corporation Automated curation of documents in a corpus for a cognitive computing system
US9842161B2 (en) * 2016-01-12 2017-12-12 International Business Machines Corporation Discrepancy curator for documents in a corpus of a cognitive computing system
US11308281B1 (en) * 2018-11-08 2022-04-19 Amazon Technologies, Inc. Slot type resolution process
US11138374B1 (en) * 2018-11-08 2021-10-05 Amazon Technologies, Inc. Slot type authoring
US11281857B1 (en) * 2018-11-08 2022-03-22 Amazon Technologies, Inc. Composite slot type resolution

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020040359A1 (en) 2000-06-26 2002-04-04 Green Edward A. Method and apparatus for normalizing and converting structured content

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1045342C (zh) * 1993-12-07 1999-09-29 张飞鹏 反映语法特征的汉语表意拼音文字输入法及键盘
US6052483A (en) * 1994-11-04 2000-04-18 Lucent Technologies Inc. Methods and apparatus for classification of images using distribution maps
US6292767B1 (en) 1995-07-18 2001-09-18 Nuance Communications Method and system for building and running natural language understanding systems
US6317708B1 (en) 1999-01-07 2001-11-13 Justsystem Corporation Method for producing summaries of text document
US7031908B1 (en) 2000-06-01 2006-04-18 Microsoft Corporation Creating a language model for a language processing system
US6865528B1 (en) 2000-06-01 2005-03-08 Microsoft Corporation Use of a unified language model
US6952666B1 (en) * 2000-07-20 2005-10-04 Microsoft Corporation Ranking parser for a natural language processing system
US7003444B2 (en) * 2001-07-12 2006-02-21 Microsoft Corporation Method and apparatus for improved grammar checking using a stochastic parser
US7039579B2 (en) 2001-09-14 2006-05-02 International Business Machines Corporation Monte Carlo method for natural language understanding and speech recognition language models
US7805302B2 (en) 2002-05-20 2010-09-28 Microsoft Corporation Applying a structured language model to information extraction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020040359A1 (en) 2000-06-26 2002-04-04 Green Edward A. Method and apparatus for normalizing and converting structured content

Also Published As

Publication number Publication date
EP1465155A3 (en) 2005-05-11
DE602004003609T2 (de) 2007-04-05
JP2004326750A (ja) 2004-11-18
EP1465155A2 (en) 2004-10-06
CN1542650A (zh) 2004-11-03
DE602004003609D1 (de) 2007-01-25
KR20040086842A (ko) 2004-10-12
EP1465155B1 (en) 2006-12-13
ATE348383T1 (de) 2007-01-15
US20040199374A1 (en) 2004-10-07
US7328147B2 (en) 2008-02-05
CN100351837C (zh) 2007-11-28
JP4738753B2 (ja) 2011-08-03

Similar Documents

Publication Publication Date Title
EP1475778B1 (en) Rules-based grammar for slots and statistical model for preterminals in natural language understanding system
US7529657B2 (en) Configurable parameters for grammar authoring for speech recognition and natural language understanding
US7496621B2 (en) Method, program, and apparatus for natural language generation
US7031908B1 (en) Creating a language model for a language processing system
US7072837B2 (en) Method for processing initially recognized speech in a speech recognition session
US5870706A (en) Method and apparatus for an improved language recognition system
EP1538535A2 (en) Determination of meaning for text input in natural language understanding systems
US11776533B2 (en) Building a natural language understanding application using a received electronic record containing programming code including an interpret-block, an interpret-statement, a pattern expression and an action statement
JPH0320800A (ja) 音声認識方法および装置
EP1475779B1 (en) System with composite statistical and rules-based grammar model for speech recognition and natural language understanding
KR100895940B1 (ko) 문법 저작에서의 세그먼테이션 모호성의 자동 해결
Wang et al. Combination of CFG and n-gram modeling in semantic grammar learning.
JP5120749B2 (ja) 木構造辞書を記録した記憶媒体、木構造辞書作成装置、及び木構造辞書作成プログラム
KR20040018008A (ko) 품사 태깅 장치 및 태깅 방법
Babhulgaonkar et al. Experimenting with factored language model and generalized back-off for Hindi
Triantafyllou Automated semantic grammar generation in dialogue-based task-oriented systems
Sindana Development of robust language models for speech recognition of under-resourced language
Collins Head-driven probabilistic parsing for word lattices
JPH06223102A (ja) 自然言語処理装置
Goblirsch A Software System for Training Phonetic Hidden Markov Models Version 2.0 (* DRAFT*)
JPH0990984A (ja) 翻訳言語モデルの推定方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee