본 발명은 사용자가 외국어를 기재하고 제안된 문장을 참조함으로써 그들의 문장을 다듬을 수 있게 하는 효과적인 시스템을 제공한다. 제안된 문장은, 확인 문장 및 힌트 문장일 수 있으며, 질의로서 사용자의 문장을 이용하여 문장 데이터베이스로부터 자동적으로 검색된다. 이 시스템을 실현하기 위해서, 여러 기술들이 제안된다. 예를 들어, 첫번째는 향상된 예시 문장 추천 방법에 관한 것이다. 두번째는 사용자의 모국어 검색을 수월하게 하는 향상된 교차언어 정보 검색 방법 및 기술에 관한 것이며, 다른 것들도 또한 제안된다.
도 1은 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 일예를 도시한다. 컴퓨팅 시스템 환경(100)은 적절한 컴퓨팅 환경의 단지 일예이며, 본 발명의 사용 또는 기능의 범위에 대한 임의의 제한을 암시하려는 것은 아니다. 컴퓨팅 환경(100)은 예시적인 운용 환경(100)에서 도시된 임의의 하나의 콤포넌트 또는 조합에 관하여 임의의 의존성 또는 요건을 갖는 것으로 이해되어서는 안된다.
본 발명은 수많은 다른 범용 또는 특정 목적 컴퓨팅 시스템 환경 또는 구성을 이용하여 동작한다. 본 발명이 사용하기에 적합할 수 있는 공지된 컴퓨팅 시스템, 환경, 및/또는 구성의 예는 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드, 또는 랩탑 장치, 셋탑 박스, 프로그래머블 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전화 시스템, 상기 시스템 또는 장치의 임의의 것을 포함하는 분산 컴퓨팅 환경 등을 포함하며 이에 한정되지는 않는다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 경우에 대하여 기재될 것이다. 통상, 프로그램 모듈은, 특정 태스크를 이행하거나 추상 데이터형을 구현하는 루틴, 프로그램, 오브젝트, 콤포넌트, 데이터 구조 등을 포함한다. 또한, 본 발명은 통신 네트워크를 통해 연결되는 원격 프로세싱 장치에 의해 태스크가 이행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈이 메모리 스토리지 장치를 포함하는 로컬 및 원격 컴퓨터 스토리지 장치에 모두 배치될 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은, 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 콤포넌트는 처리부(120), 시 스템 메모리(130) 및 시스템 메모리를 포함하는 여러 시스템 콤포넌트를 처리부(120)에 결합시키는 시스템 버스(121)를 포함할 수 있으며 이에 한정되지는 않는다. 시스템 버스(121)은 메모리 버스, 메모리 제어기, 병렬 버스, 및 다양한 버스 구조 중에서 임의의 것을 사용하는 로컬 버스를 포함하는 여러 유형의 버스 구조 중에서 임의의 것일 수 있다. 예를 들어 -한정이 아님-, 이러한 구조는 산업표준 구조(ISA) 버스, 마이크로 채널구조 (MCA) 버스, 향상된 ISA(EISA) 버스, 비디오 전자표준 협회(VESA) 로컬 버스, 및 메자닌(Messanine) 버스로도 알려진 병렬 콤포넌트 상호접속(PCI)을 포함한다.
통상, 컴퓨터(110)는 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능 매체일 수 있으며, 휘발성과 비휘발성, 분리형과 비분리형 매체를 모두 포함한다. 예를 들어 -한정이 아님-, 컴퓨터 판독가능 매체는 컴퓨터 스토리지 매체와 통신 매체를 포함할 수 있다. 컴퓨터 스토리지 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 스토리지에 대한 임의의 방법 또는 기술에서 구현되는 휘발성과 비휘발성, 분리형과 비분리형 매체를 포함한다. 컴퓨터 스토리지 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD), 또는 다른 광 디스크 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨터(110)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하며 이에 한정되지는 않는다. 컴퓨터 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예를 들어 -한정이 아님-, 통신 매체는, 유선 네트워크, 다이렉트 유선 접속과 같은 유선 매체, 및 음성, RF, 적외선과 다른 무선 매체와 같은 무선 매체를 포함한다. 또한, 상기의 임의의 조합은 컴퓨터 판독가능 매체의 범위 내에서 포함될 것이다.
시스템 메모리(130)는 판독 전용 메모리(ROM;131)와 랜덤 액세스 메모리(RAM;132)와 같이 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 스토리지 매체를 포함한다. 기본 입출력 시스템(133;BIOS)은 시동 동안과 같이 컴퓨터 내의 소자들 간의 정보를 전송할 수 있게 하는 기본 루틴을 포함하며, 통상 ROM(131) 내에 저장된다. 통상, RAM(132)은 처리부(120)에 즉시 액세스가능하고 또는 그에 의해 현재 실행되는 데이터 및/또는 프로그램 모듈을 포함한다. 예를 들어 -한정이 아님-, 도 1은 운용 시스템(134), 애플리케이션 프로그램(135), 다른 프로그램 모듈(136), 및 프로그램 데이터(137)를 포함한다.
컴퓨터(110)는 다른 분리형/비분리형 휘발성/비휘발성 컴퓨터 스토리지 매체를 포함할 수 있다. 단지 예를 들어, 도 1은 비분리형, 비휘발성 자기 매체로부터 판독하거나 이에 기재하는 하드 디스크 드라이브(141), 분리형, 비휘발성 자기 디스크(152)로부터 판독하거나 이에 기재하는 자기 디스크 드라이브(151), 및 CD ROM 또는 다른 광 매체와 같은 분리형, 비휘발성 광 디스크(156)로부터 판독하거나 이 에 기재하는 광 디스크 드라이브를 도시한다. 예시적인 운용 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 스토리지 매체는, 자기 테이프 카세트, 플래시 메모리 카드, 디지털 다용도 디스크, 디지털 비디오 테이프, 고체상태 RAM, 고체상태 ROM 등을 포함하며 이에 한정되지는 않는다. 하드 디스크 드라이브(141)는 통상 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(1231)에 접속되며, 자기 디스크 드라이브(151)와 광 디스크 드라이브(155)는 통상 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
상술한 드라이브 및 그들의 관련된 컴퓨터 스토리지 매체는 컴퓨터(110)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 및 다른 데이터의 스토리지를 제공하는 도 1에서 도시된다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운용 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로서 도시된다. 이들 콤포넌트는 운용 시스템(134), 애플리케이션 프로그램(135), 다른 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 상이할 수 있다. 운용 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 그들이 다른 복사본이라는 것을 나타내기 위해 다른 번호가 주어진다.
사용자는 키보드(162), 마이크로폰(163), 마우스, 트랙볼 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 컴퓨터(110)에 명령 또는 정보를 입력한다. 다른 입력장치(미도시)는 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 장치는 종종 시스템 버스에 결합되는 사용자 입력 인터페이스(160)를 통해 처리부(120)에 접속되며, 병렬 포트, 게임 포트 또는 범용 직렬 버스(USB)와 같은 다른 인터페이스 또는 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치가 또한 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터 뿐만 아니라, 컴퓨터는 출력 병렬 인터페이스를 통해 접속될 수 있는 스피커(197), 및 프린터(196) 등의 다른 병렬 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터에 대한 논리적 접속을 사용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 개인용 컴퓨터, 핸드헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있으며, 컴퓨터(110)에 대한 상술한 소자를 다수 또는 모두 포함한다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN;171) 및 원거리 통신망(WAN;173)을 포함하지만, 다른 네트워크를 또한 포함할 수 있다. 이러한 네트워킹 환경은 사무소, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷 및 인터넷에서는 흔하다.
LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(119)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 통상 모뎀(172) 또는 인터넷과 같이 WAN(173)을 통한 통신을 설정하는 다른 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 다른 적절한 메커니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워킹 환경에서, 컴퓨터(110) 또는 그 일부에 대하여 도시된 프로그램 모듈은 원격 메모리 스토리지 장치에 저장될 수 있다. 예를 들어 -한정이 아님-, 도 1은 원격 컴퓨터(180)에 상주하는 애플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적이며 컴퓨터 사이에서의 통신 링크를 설정하는 다른 수단이 사용될 수 있다.
도 2는 예시적인 컴퓨팅 환경인 이동 장치(200)의 블록도이다. 이동 장치(200)는 마이크로프로세서(202), 메모리(204), 입출력(I/O) 콤포넌트(206), 및 원격 컴퓨터 또는 다른 이동장치와 통신하기 위한 통신 인터페이스를 포함한다. 일 구현예에서, 상술한 콤포넌트는 적절한 버스(210)를 통해 서로 통신하기 위해 결합된다.
메모리(204)는 메모리(204)에 저장된 정보가 이동 장치(200)에 대한 범용 전력이 셧다운되는 경우에 소실되지 않도록 배터리 백업 모듈(미도시)를 갖는 랜덤 액세스 메모리(RAM)와 같은 비휘발성 전자 메모리로서 구현된다. 메모리(204)의 일부는 프로그램 실행을 위한 어드레싱가능 메모리로서 할당되는 것이 바람직하지만, 메모리(204)의 다른 부위는 디스크 드라이브 상의 스토리지를 시뮬레이트하는 등의 스토리지를 위해 사용되는 것이 바람직하다.
메모리(204)는 운용 시스템(212), 애플리케이션 프로그램(214) 뿐만 아니라 오브젝트 저장소(216)를 포함한다. 동작 동안, 운용 시스템(212)은 메모리(204)로부터 프로세서(202)에 의해 실행되는 것이 바람직하다. 운용 시스템(212)은 바람직한 일 구현예에서, 마이크로소프트사로부터 상업적으로 입수가능한 운용 시스템인 WINDOWS
CE 브랜드이다. 운용 시스템(212)은 이동 장치에 대하여 설계되는 것이 바람직하며, 일련의 공개된 애플리케이션 프로그래밍 인터페이스 및 방법을 통해 애플리케이션(214)에 의해 이용될 수 있는 데이터 베이스 특성을 구현한다. 오브젝트 저장소(216) 내의 오브젝트는, 공개된 애플리케이션 프로그래밍 인터페이스와 방법에 대한 호출에 적어도 부분적으로 응답하여 애플리케이션(214)과 운용 시스템(212)에 의해 유지된다.
통신 인터페이스(208)는 이동 장치(200)가 정보를 송수신할 수 있게 하는 수많은 장치 및 기술을 나타낸다. 그 장치는 일부를 언급하면 유선 및 무선 모뎀, 위성 수신기, 및 방송 튜너를 포함한다. 이동 장치(200)는 컴퓨터에 직접 접속되어 데이터를 교환한다. 이러한 경우, 통신 인터페이스(208)는 적외선 트랜시버 또는 직렬 또는 병렬 통신 접속일 수 있으며, 이들 모두는 스트리밍 정보를 전송할 수 있다.
입출력 콤포넌트(206)는 터치 민감 스크린, 버튼, 롤러, 및 마이크로폰과 같은 다양한 입력 장치 뿐만 아니라 오디오 생성기, 진동 장치, 및 디스플레이를 포함하는 다양한 출력 장치를 포함한다. 상기 열거된 장치들은 예시이며, 이동 장치(200) 상에 모두 존재할 필요는 없다. 더욱이, 다른 입출력 장치가 본 발명의 범위 내에서 이동 장치(200)에 부착되거나 발견될 수 있다.
본 발명의 다양한 양태에 따라서, 외국인을 위한 영어 쓰기를 지원하는 실용 툴을 제거하는 방법 및 시스템이 제안된다. 본 발명은 사용자에게 철자와 문법을 지원하는 것에 초점을 맞추는 것이 아니라 문장 다듬기 지원에 초점을 맞춘다. 통상, 영어로 기재할 필요가 있는 사용자들은 종종 기본적인 영어 어휘와 문법을 갖추어야 하는 것으로 가정된다. 다시 말하면, 사용자는 주어진 선택에서 좋은 문장과 나쁜 문장을 분별할 수 있는 능력을 갖는다.
본 발명의 구현예를 사용한 접근은 그 또는 그녀가 무엇을 기재하건 언제 기재하건 간에 사용자에게 적절한 문장을 제공하는 것이다. 그 시나리오는 매우 간단한데, 사용자가 문장을 기재할 때마다, 시스템이 그 또는 그녀의 의도를 파악하여, 몇몇 예시 문장을 제공한다. 그 후, 사용자는 예시 문장을 참조함으로써 그 또는 그녀의 문장을 다듬는다. 이 기술은 "예시 문장의 지능형 추천(intelligent recommendation of expamle sentences)"이라 불리운다.
도 3은 사용자가 영문을 구성하고 다듬을 수 있도록 지원하는 본 발명의 시스템 및 방법을 도시하는 블록도이다. 보다 일반적으로, 사용자가 제1 언어로서 기재된 문장을 구성하고 다듬을 수 있도록 지원하는 시스템 및 방법이 영어 문장 다듬기를 참조하여 기재된다. 시스템(300)은 수신하는 데 사용되는 입력(305)를 포함하거나 입력 질의를 시스템에 입력한다. 입력 질의는 일부 또는 전부의 영어 문장, 일부 또는 전부의 중국어 문장(또는 보다 일반적으로 제2 언어의 문장)을 포함하는 다양한 형태일 수 있으며, 제1 언어로부터의 단어와 제2 언어의 문장 구조 또는 문법을 혼합한 형태(예를 들어, "중국어 유사 영어")일 수도 있다.
질의 프로세싱 콤포넌트(310)는 관련 콤포넌트 부분에서 또는 전체적으로 질의를 검색 엔진(315)에 제공한다. 검색 엔진(315)은 질의 용어 또는 그 질의 용어로부터 생성된 정보를 사용하여 문장 데이터베이스(320)를 검색한다. 전체 입력 질의가 프로세싱과 검색을 위해 검색 엔진(315)에 제공되는 구현예에서, 질의 프로 세싱 콤포넌트(310)는 입력(305)과 결합될 수 있다. 그러나, 일부 구현예에서, 질의 프로세싱 콤포넌트(310)는 질의에 대한 일부 프로세싱 함수, 예를 들어, 질의로부터 용어를 발췌하여 그 용어를 검색 엔진(315)에 전달하는 등을 이행할 수 있다. 또한, 본 발명이 대부분 전부 또는 일부가 검색 엔진(315)에 의해 구현되는 방법을 참조하여 기술되었지만, 다른 구현예에서, 일부 또는 전부의 방법이 콤포넌트(310) 내에 부분적으로 구현될 수 있다.
데이터베이스(320)는 표준 영어 문서로부터 발췌된 다수의 예시 문장을 포함한다. 검색 엔진(315)은 데이터베이스로부터 사용자 의도 예시 문장(user-intended example sentence)을 검색한다. 그 예시 문장은 검색 엔진(315)에 의해 순위가 정해지며, 그 또는 그녀의 기재된 문장을 다듬을 때 사용자에 의해 참조용으로 문장 출력 콤포넌트(325)에서 제공된다.
사용자는 도 1과 도 2에서 도시된 컴퓨터 또는 컴퓨팅 환경상에서 실행하는 워드프로세싱 프로그램에 무엇인가를 기재함으로써 질의를 입력한다. 예를 들어, 그 또는 그녀는 단일 단어, 또는 어구, 또는 전체 문장을 입력할 수 있다. 종종, 궁극적인 목적이 문장을 제1 또는 외국어(예를 들어, 영어)로서 기재하는 것일지라도, 질의는 그 또는 그녀의 모국어로서 기재된다. 사용자의 입력은 검색 엔진(315)에 대한 질의로서 처리될 것이다. 검색 엔진은 문장 데이터베이스(320)를 검색하여 관련 문장을 발견한다. 그 관련 문장은 확인 문장과 힌트 문장 2개의 클래스로 분류된다.
확인 문장이 사용자의 문장 구조를 확인 또는 가이드하는 데 사용되는 반면, 힌트 문장은 확장 표현을 제공하는 데 사용된다. 확인 문장은 문법적 예시로서 기능하기 위해서 문장 구조 또는 형태상 사용자의 입력 질의 또는 의도된 입력 질의와 근접해야 한다. 힌트 문장은 사용자의 입력 질의에 의미상 유사하여야 하며, 사용자에게 특정 사상을 표현하는 다른 방법을 제공하는 데 사용된다. 본 발명의 양태는 후술되는 바와 같이 검색 엔진 콤포넌트(315)에서 구현된다. 그러나, 본 발명의 특정 양태는 다른 구현예에서 질의 프로세싱 콤포넌트(310)에서 구현될 수 있다. 비록 본 발명이 중국어와 영어의 경우에 대하여 기술되었지만, 본 발명은 언어 독립적이며 다른 언어로 용이하게 확장될 수 있다.
상술된 하나 이상의 도전에 대한 솔루션을 제공하기 위해서, 시스템(300)과 그것이 구현하는 방법은 자연어 프로세싱 인에이블(natural language processing-enabled;NLP 인에이블) 교차 언어 정보 검색 설계를 이용한다. 그것은 종래의 정보 검색(information retrieval;IR) 모델을 베이스라인으로 사용하고 NLP 기술을 적용하여 검색 정확도를 향상시킨다.
베이스라인 시스템
검색 엔진(315)이 향상되는 베이스라인 시스템은 전통적인 IR 시스템에서 광범위하게 사용되는 접근법이다. 이 접근의 일 구현예의 일반적인 설명은 다음과 같다.
D로 지칭되는 예시 문장의 전체 모음(collection)은 각각의 문서가 실제 문장 데이터베이스(320) 내의 예시 문장인 다수의 "문서"로 이루어진다. 종래의 IR 인덱싱 접근을 이용한 문서(단지 하나의 문장을 포함)에 대한 인덱싱 결과는 식 1에서 나타낸 가중치 벡터로서 나타낼 수 있다.
여기서, dik (1≤k≤m)은 문서 Di에서 용어 tk의 가중치이며, m은 벡터 공간의 크기이고, 이는 모음에서 발견되는 다른 용어의 수에 의해 결정된다. 일 구현예에서, 용어들은 영어 단어이다. 문서 내의 용어의 가중치 dik 는, 문서 내의 발생 빈도(tf- 용어 빈도) 뿐만 아니라 전체 모음 내의 분포(idf-역 문서 빈도)에 따라 계산된다. 용어의 가중치 dik 를 계산하고 정의하는 여러 방법이 있다. 여기서, 예를 들어, 식 2에 도시된 관계를 사용한다.
여기서, fik는 문서 Di에서 용어 tk의 발생 빈도이고, N은 모음에서 문서의 총수이며, nk는 용어 tk를 포함하는 문서의 수이다. 이는 IR에서 가장 흔하게 사용되는 TF-IDF 가중치 방식 중의 하나이다.
TF-IDF 가중치 방식에서 흔한 바와 같이, 질의 Q는 사용자의 입력 문장으로서, 유사한 방식으로 인덱싱되며, 벡터는 식 3에 나타낸 질의에 대하여 또한 획득된다.
문서 모음 내의 문서(문장) Di와 질의 문장 Qj 간의 유사성 Sim(Di,Qj)은 식 4에 나타낸 바와 같이 이들 벡터의 내적으로서 계산될 수 있다.
NLP 인에이블 교차언어 정보검색 설계
또한, 또는 그 대신에, 상술한 바와 같은 문장 검색에 대한 베이스라인 접근법을 이용하여, 검색 엔진(315)은 NLP 인에이블 교차 언어 정보검색 방법 또는 접근법을 이용함으로써 그 접근법을 구성한다. NLP 기술 방법은 후술하는 바와 같이 검색 정확성을 향상시킨다. 검색 정확성을 향상시키기 위해서, 시스템(300)은 2개의 확장 인덱싱 단위 방법을 단독으로 또는 조합으로 사용한다. 첫째, 문장을 구성하는 언어학적 중요성을 반영하기 위해서, 다른 유형의 인덱싱 단위가 다른 가중치로 할당된다. 둘째, 힌트 문장 검색을 향상시키기 위해서, 새로운 접근법이 채용된다. 질의 문장에 있어서, 모든 단어는 그들의 유사 또는 관련 단어, 예를 들어, 사전의 유사어로서 대체된다. 그 후, 의존성 트리플(dependency triple) 데이터베이스는 가능한 잡음 확장을 제거하기 위해서 불법적인 배치를 필터링하는 데 사용된다.
검색 엔진(315)에서(또는 콤포넌트(315)에서) 질의 번역을 향상시키기 위해 서, 새로운 의존성 트리플 기반 번역모델이 채용된다. 첫째, 주요 의존성 트리플이 질의로부터 발췌되고, 그 후, 이들 트리플에 기초하는 번역이 이행된다. 의존성 트리플 데이터베이스의 검토는 후술된다.
의존성 트리플 데이터베이스
의존성 트리플은 주요어, 종속어구, 및 주요어와 종속어구 간의 종속 관계로 이루어진다. 종속 파서를 이용하여, 문장은 식 5에 나타낸 바와 같은 형태로서 일련의 의존성 트리플 trp로 분석된다.
예를 들어, 영어 문장 "I have a brown dog"에 있어서, 의존성 파서는 도 4a에 도시된 바와 같은 일련의 트리플을 얻을 수 있다. 의존성 파싱 결과의 표준 표현은 (have, sub, I), (have, obj, dog), (dog, adj, brown), (dog,det,a)이다. 유사하게, 중국어 문장 "
"에 있어서 (영어로는 "The nation has issued the plan"), 의존성 파서는 도 4b에 도시된 일련의 의존성 트리플을 획득할 수 있다. 의존성 파싱 결과의 표준 표현은
이다.
일부 구현예에서, 본 발명의 검색 엔진(315)은 의존성 트리플 데이터베이스(360)을 사용하여 질의로부터 발췌된 주요 의존성 트리플의 검색 용어를 확장시킨다. 따라서, 의존성 트리플 데이터베이스는 질의 프로세싱 콤포넌트(310)와 검색 엔진(315) 내에 포함되거나 결합될 수 있다. 도 5a은 의존 성 트리플 데이터베이스(360)를 생성하는 방법을 나타낸다. 후술할 도 8은 트리플 데이터베이스(360)에 결합된 검색엔진을 나타낸다.
도 5a에서 도시된 바와 같이, 텍스트 자료(text corpus)로부터의 각 문장은 의존성 파서(355;dependency parser)에 의해 파싱되어, 일련의 의존성 트리플이 생성된다. 각각의 트리플은 트리플 데이터베이스(360)에 저장된다. 트리플의 인스턴스화(instantiation)는 트리플 데이터베이스(360) 내에 이미 존재하면, 트리플의 빈도는 증가한다. 모든 문장이 파싱된 후에, 수천개의 트리플을 포함하는 트리플 데이터베이스가 생성된다. 파서는 100% 정확하지 않을 수 있으므로, 일부 파싱 에러가 동시에 초래될 수 있다. 원한다면, 필터 콤포넌트(365)는 파싱 오류에 의해 초래되는 잡음 트리플을 제거하여 데이터베이스(360) 내에 올바른 트리플 만을 남게 할 수 있다.
NLP 기술을 이용하여 검색 정확성을 향상
본 발명에 따라서, 검색 엔진(315)은 2개의 방법 중의 하나 또는 둘 모두를 사용하여 "확인 문장" 검색 결과를 향상시킨다. 한 방법은 확장 인덱싱 용어를 사용한다. 다른 방법은 새로운 순위 알고리즘을 사용하여 검색 확인 문장에 순위를 정한다.
확장 인덱싱 용어
종래의 IR 접근법을 사용하여, 검색 엔진(315)은 입력 질의의 렘마만을 사용하여 문장 데이터베이스(320)를 검색하여 검색용 인덱싱 단위를 정의한다. "렘마"는 단어의 기본적인, 어미활용되지 않은 형태이며, 어근으로도 알려져 있다. 본 발명에 따르면, 문장 데이터베이스(320) 내의 확인 문장에 대한 검색을 향상시키기 위해서, 렘마에 더하여 (1) 품사를 갖는 렘마 단어(POS); (2) 동사구; 및 (3) 의존성 트리플 중에서 하나 이상이 인덱싱 단위로서 추가된다:
예를 들어, 입력 질의 문장: "The scientist presided over the workshop"을 고려하자. 종래의 IR 인덱싱 방법을 사용하면, 상기 정의된 베이스라인 시스템과 같이, 단지 렘마만이 인덱싱 단위로서 사용된다(즉, 기능어는 정지어로서 제거된다). 표 1은 이 예의 입력 질의 문장에 대한 렘마를 나타낸다.
렘마 |
scientist, preside, over, workshop |
본 발명의 확장 인덱싱 방법을 사용하여, 동일 예시 문장에 대하여, 표 2에 나타낸 인덱싱 용어는 또한 검색 엔진(315)에 의해 데이터베이스 검색에서 채용된다:
렘마 |
scientist, preside, over, workshop |
POS를 갖는 렘마 |
scientist_noun, workshop_noun, preside_verb |
동사구 |
preside~over |
의존성 트리플 |
preside~Dobj~workshop |
하나 이상의 가능 확장 인덱싱 단위(POS를 갖는 렘마 단어, 동사구, 및 의존성 트리플)이 렘마 인덱싱 단위에 추가될 수 있는 반면에, 본 발며의 일부 구현예에서는, 렘마 인덱싱 단위에 모든 세 유형의 확장 인덱싱 단위를 추가함으로써 유리한 결과가 획득될 수 있다. 특정 입력 질의에 대한 확장 인덱싱 단위를 사용하여 검색 엔진(315)에 의한 문장 데이터베이스(320)로부터 검색된 확인 문장이 그 후에 새로운 순위 알고리즘을 사용하여 순위가 정해진다.
순위 알고리즘
검색 엔진(315)이 데이터베이스로부터 다수의 확인 문장을 검색한 후에, 예를 들어, 상술한 확장 인덱싱 단위 방법 또는 다른 방법을 사용하여, 확인 문장은 입력 질의에 문법적으로 또는 구조적으로 가장 유사한 문장을 결정하도록 순위가 정해진다. 그 후, 출력(325)를 사용하여, 하나 이상의 확인 문장이 사용자에게 표시되며, 그 최상위(가장 유사) 확인 문장은 첫번째로서 제공되거나 가장 관련있는 것으로서 상세히 설명된다. 예를 들어, 순위가 정해진 확인 문장이 예를 들어 도 3에서 도시된 바와 같이, 넘버링된 리스트로서 표시될 수 있다.
본 발명의 구현예에 따라서, 순위 알고리즘은 입력 질의를 갖는 그들 각각의 유사성 Sim(Di,Qj)에 기초하여 확인 문장의 순위를 정한다. 순위 알고리즘 유사성 계산은 식 6에 나타낸 관계를 이용하여 이행된다.
여기서,
Di는 i번째 확인 문장의 벡터 가중치 표현 (식 1 참조)
,
Li는 Di의 문장길이,
f(Li)는 Li의 함수(예를 들어, f(Li)=Li
2)또는 문장 길이 팩터; 및
Wjk는 용어 qjk 의 언어학적 가중치
일 구현예에서 서로다른 품사에 대한 언어학적 가중치가 표 3의 제2열에서 제공된다. 그러나, 본 발명은 임의의 특정 가중치에 한정되지는 않는다.
Verb-Obj |
10 |
동사 어구 |
8 |
동사 |
6 |
형용사/부사 |
5 |
명사 |
4 |
기타 |
2 |
예를 들어, 식 4에 도시된 바와 같은 종래의 IR 순위 알고리즘과 비교하면, 식 6에 도시된 유사성 관계를 사용하는 본 발명의 순위 알고리즘은, 입력 질의에 대해 확인 문장의 언어학적 중요성을 보다 잘 반영하는 2개의 새로운 특징을 포함한다. 하나는 질의 Qj 내의 용어의 언어학적 가중치 Wjk이다. 예를 들어, 동사-목적어 의존성 트리플은 최상위 가중치로 할당될 수 있는 반면에, 동사 어구, 동사 등은 각각 다른 가중치로 할당되어, 각각이 특정 유형의 용어, 문장 구성성분, 또는 관련 확인 문장을 선택시의 POS 관계의 중요성을 반영한다.
문장 구조와 단어 조합을 반영하는 쟁점에 보다 많은 주의를 기울인다. 예를 들어, 명사보다 동사에 집중한다. 따라서, 언어학적 가중치는 통상의 사용자에게 가장 중요한 것으로 여겨지는 특정 유형의 용어, 문장 구성성분, POS 관계를 갖는 확인 예시 문장을 검색하도록 할당될 수 있다.
유사성 함수에 추가된 제2 특징은 문장길이 팩터 또는 함수 f(Li)이다. 일 구현예서 사용된 직감은 보다 짧은 문장은 동일한 조건의 보다 긴 문장보다 상위에 순위가 정해져야 한다는 점이다. 예시 문장 길이 팩터 또는 f(Li)=Li
2
은 적어도 부분적으로 길이에 기초하여 확인 문장의 순위를 정하는 것을 지원하는 하나의 가능한 함수이다. 다른 함수가 또한 사용될 수 있다. 예를 들어, 다른 지수 길이 함수가 사용될 수 있다. 더욱이, 다른 구현예에서, 그렇게 행하는 것이 유리하다고 간주되면, 길이 팩터는 보다 긴 확인 문장이 보다 높은 순위가 되도록 선택될 수 있다.
이 특성 유사성 순위 알고리즘에 사용된 2개의 새로운 특징 (Wjk와 f(Li))가 확인 문장 검색을 향상시키기 위해서 식 6에 나타내 바와 같이 함께 적용될 수 있지만, 다른 구현예에서, 이들 각각의 특징은 다른 특징의 사용없이 사용될 수 있다. 즉, 식 7과 식 8에 나타낸 바와 같은 유사성 순위 알고리즘 Sim(Di, Qj)이 그 대신에 사용될 수 있다.
힌트 문장의 향상된 검색
시스템(300)에서, 검색 엔진(315)은 본 발명의 질의 확장 방법을 사용하여 힌트 문장 검색을 개선한다. 질의 확장 방법(400)은 도 5b의 블록도에서 일반적으로 나타낸다. 질의 확장 방법은 문장 데이터베이스(320)의 검색에 사용하기 위한 다른 표현을 제공한다.
확장 절차는 다음과 같다: 우선, 405에서 나타낸 바와 같이, 예를 들어, Wordnet와 같은 머신 판독가능 사전에서 정의된 유사어를 사용하여 질의 내 용어를확장한다. 이 방법은 종종 종래의 IR 시스템에서 질의 확장에 사용된다. 그러나, 단독으로는 이 방법이 잡음 확장의 문제점을 겪게 된다. 잡음 확장의 문제를 방지하기 위해서, 검색 엔진(315)에 의해 사용된 방법(400)은 힌트 문장에 대한 문장 데이터베이스를 검색하기 전에 추가적인 단계(410,415)를 구현한다.
410에서 나타낸 바와 같이, 확장된 용어는 모든 가능한 트리플을 형성하도록 조합된다. 그 후, 415에서 나타낸 바와 같이, 모든 가능한 트리플은 도 5a과 도 8에서 도시된 의존성 트리플 데이터베이스(360)에 대하여 점검된다. 트리플 데이터베이스에서 나타나는 트리플만이 확장된 질의 용어로서 선택된다. 트리플 데이터베이스에서 발견되지 않은 확장 트리플은 폐기된다. 그 후, 문장 데이터베이스는 420에서 나타낸 바와 같이 잔류 확장 용어를 사용하여 힌트 문장에 대하여 검색된다.
예를 들어,
질의: I will take the job
동의어모음(Synset): take|accept|acquire|admit|aim|ask|...
트리플 데이터베이스 내의 트리플:accept~Dobj~job,
잔류 확장 용어: accept~Dobj~job
힌트 문장 검색의 혼동 방법
종종, 사용자는 제1 언어로부터의 단어 및 제2 언어로부터의 문법의 혼합하여 질의를 입력할 수 있다. 예를 들어, 영어로 기재하는 중국어 사용자는 "중국어 유사 영어"로 통상 지칭되는 것으로 질의를 입력할 수 있다. 본 발명의 일부 구현예에서, 검색 엔진(315)은 힌트 문장에 대한 문장 데이터베이스를 검색하기 전에 사용자의 의도를 파악하도록 설계된다. 검색 엔진은 2개의 방법 중에서 하나 또는 모두를 사용하여 사용자의 의도를 파악할 수 있다.
사용자의 의도를 파악하는 제1 방법(450)은 예시와 함께 도 6a에서 나타낸다. 이는 번역 방법으로서 알려져 있다. 이 방법을 사용하여, 사용자의 질의는 455에 나타낸 바와 같이 수신되며, 제1 언어(제2 언어의 문법, 구조, 배치 등을 갖음)에서 도 460에 나타낸 제2 언어로 번역된다. 465에서 나타낸 바와 같이, 그 후, 질의는 제2 언어로부터 다시 제1 언어로 번역된다. 예를 들어, 단계 460및 465는 중국어와 영어 문장에 대하여 나타낸다. 그러나, 이들 단계는 임의의 특정 제1 및 제2 언어로 한정되지는 않음을 주의하여야 한다.
이러한 제1 예에서, 단계 455에 대응하는 470에 나타낸 질의 입력은, 일반 배치 오류(common collocation mistake)를 포함하는 중국어 유사 영문 질의 "Open the light"이다. 단계 460에 대응하는 475에 나타낸 바와 같이, 중국어 유사 영어 질의는 중국어 질의
로 번역된다. 그 후, 단계 465에 대응하는 480에서 나타낸 바와 같이, 중국어 질의는 원래의 질의에서의 배치 오류를 포함하지 않은 영문 질의 "Turn on the light"로 다시 번역된다. 이 방법은 사용자의 사고 동작(thinking behavior)을 모방하는 데 사용되지만, 정확한 번역 콤포넌트를 요구한다. 방법 450은 번역 품질이 열악하면 과도한 잡음을 생성할 것이다. 따라서, 도 6b에 나타낸 방법(500)이 그 대신에 사용될 수 있다.
여기서 "혼동 방법(confusion method)"으로 지칭되는 제2 방법은 혼동 집합 데이터베이스를 사용하여 사용자 질의에서 단어 쌍을 확장한다. 이 방법은 도 6c에 나타내지만, 혼동 집합 데이터베이스를 구성하는 방법은 도 6b에서 나타낸다. 혼동 집합은 "open/turn on"과 같이 혼동되는 단어 쌍을 포함하는 데이터베이스이다. 이는 단어 간의 배치, 번역에 혼동되는 단일 단어, 및 다른 혼동되는 단어 쌍을 포함한다. 통상, 단어 쌍은 동일 언어일 것이지만, 원한다면, 번역 단어로 주석이 달릴 수 있다.
도 6b를 참조하면, 사용자의 의도를 파악할 때 검색 엔진(315)에 의해 사용되기 위한 혼동 집합 데이터베이스(505)를 구성하는 방법(500)이 나타낸다. 혼동 집합의 모음, 또는 혼동 집합 데이터베이스(505)의 구성은 2개 국어의 자료(510;bilingual corpus)로 정렬된 단어와 문장의 지원으로 행해질 수 있다. 여기서 사용되는 예에서, 자료(510)는 영어-중국어 2개 국어 자료이다. 515에서 도시된 바와 같이, 그 방법은 중국어 단어 쌍의 영어 단어 쌍으로의 인간 번역(Eng'로 나타내는 인간 번역)을 포함한다. 영어 번역 단어 쌍 Eng'는 그 후에 520에서 나타낸 바와 같이 올바른 영어 번역 단어 쌍(Eng로 표시)으로 정렬된다. 이 정렬은 올바른 번역은 원래의 2개국어 자료에서 용이하게 입수가능하기 때문에 가능하다. 이 때, 특정 단어 쌍에 대하여 영어 번역을 영어 원문 단어쌍에 상관시키는 단어 쌍의 집합이 정의된다(2개국어 자료에서 정렬에 의해 정의되는 바와 같은 올바른 번역 단어 쌍):
{영어 번역, 영어 원문}
임의의 단어 쌍 집합은, 번역 단어 쌍과 원래의 단어 쌍이 동일한 {영어 번역, 영어 원문} 또는 {Eng', Eng}이 식별되어 혼동 집합으로부터 제거된다. 영어 번역이 영어 원문과 동일하지 않은 집합들은 혼동 집합 데이터베이스(505)에 남게된다. 또한, 혼동 집합은 교과서(525)에서 정의되거나 혼동 단어의 개인 모음(530)에서 존재하는 것과 같은 일부 통상의 혼동 단어 쌍을 추가함으로써 확장될 수 있다.
도 6c은 혼동 집합 데이터베이스(505)를 사용하여 사용자의 질의에서 단어쌍을 확장함으로써 사용자의 의도를 판정하는 방법(600)을 나타낸다. 605에서 나타낸 바와 같이, 사용자의 질의는 입력 콤포넌트에서 수신된다. 사용자의 질의 내의 단어 쌍은 그 후 검색 엔진의 비교 콤포넌트(610)에서 나타낸 바와 같이 혼동 집합 데이터베이스 내의 단어 쌍과 비교된다. 통상, 이는 사용자 질의의 영어 단어 쌍과 데이터베이스 내에서 대응하는 인간 번역된 단어 쌍, Eng'의 비교일 것이다. 혼동 단어 데이터베이스에서 매칭 엔트리 Eng'를 갖는 사용자 질의 내의 단어 쌍은 그 후 질의 확장 콤포넌트 또는 단계 615에서 나타낸 바와 같은 집합으로부터 원래의 단어 쌍, Eng로 대체된다. 즉, 그들은 올바른 번역 단어쌍으로 대체된다. 검 색 엔진(315)의 문장 검색 콤포넌트는 그 후 혼동 집합 데이터베이스를 사용하여 생성된 새로운 질의를 사용하여 문장 데이터베이스(320)를 검색한다. 또한, 혼동 집합 방법이 모국어가 중국어인 사람에 의해 기재된 영어 단어쌍을 참조하여 설명되었지만, 이들 방법은 언어 독립적이며 다른 언어 조합에 또한 적용될 수 있다.
질의 번역
또한, 검색 엔진(315)은 도 7에서 나타낸 바와 같이 문장의 검색을 향상시키기 위해 질의 번역을 사용한다. 사용자의 검색(655에서 도시된)이 주어지면, 주요 의존성 트리플이 660에서 나타낸 바와 같이 강인한 파서에 의해 발췌된다. 그 후, 605에서 나타낸 바와 같이 트리플은 하나씩 번역된다. 결국, 트리플의 모든 번역은 검색 엔진(315)에 의해 질의 용어로서 사용된다.
중국어 의존성 트리플 c=(w
C1
, rel
C
, w
C2
)를 영어 의존성 트리플 e=(w
E1
,rel
E
,w
E2
)로 번역하려 한다고 가정하자. 이는 통계적 번역 모델에 따라 P(e|c)값을 최대화시킬 emax를 발견하는 것과 동등하다.
Bayes' 정리를 이용하면,
으로 기재할 수 있다.
분모 P(c)는 e에 대하여 독립이며, 주어진 중국어 트리플에 있어서 상수이 며,
여기서, P(e) 팩터는 영어 내의 의존성 트리플 e의 발생 가능성의 측정치이다. 이는 e의 출력을 자연스럽고 문법적으로 만든다. P(e)는 목표 언어에만 의존하는 언어모델로서 통상 불리운다. P(c|e)는 통상 번역 모델로 불린다.
단일 트리플 번역에서, P(e)는 MLE(최대 가능성 추정)을 사용하여 추정될 수 있으며,
으로 다시 적을 수 있다.
또한,
P(relC|e)는 특정 단어에 의존하는 파라미터이다. 그러나, 이는
중국어 의존성 관계와 영어 의존성 관계 사이의 대응 가정에 따르면,
P(rel
C|rel
E
)
1이다. 더욱이, 번역에서 단어의 선택은 의존성 관계의 유형과 독립적이다고 가정하기 때문에, w
C1은 단지 w
E1에만 관련되고, w
C2는 단지 w
E2에만 관련된다고 가정할 수 있다. 단어 번역 확률
P(c|e
)는 병렬 자료를 이용하여 추정될 수 있다.
따라서,
를 갖는다.
따라서, 중국어 트리플이 주어지면, 영어 번역은 이 통계적 접근법을 이용하여 획득될 수 있다.
전체 시스템
도 8은 여기서 개시된 다양한 확인 및 힌트 문장 검색 개념을 포함하는 검색 엔진(315)의 구현예 315-1을 나타내는 블록도이다. 도 8에 도시된 검색 엔진 구현예(315-1)는 여기서 개시된 다양한 특징의 조합을 이용하여 확인 및 힌트 문장 검색을 향상시키지만, 상술한 바와 같이, 검색 엔진(315)의 다른 구현예는 단지 이들 특징들 중의 단지 하나, 또는 이들 특징의 여러 조합을 포함한다. 따라서, 본 발 명의 검색 엔진은 상술한 특징의 모든 조합을 포함하는 것으로 이해되어져야 한다.
도 8의 705에서 나타낸 바와 같이, 입력 질의는 검색 엔진 315-1에 의해 수신된다. 710에서 나타낸 바와 같이, 검색 엔진(315-1)은 질의가 영어(또는 보다 일반적으로 제1 언어)인지를 판단하는 언어 판단 콤포넌트를 포함한다. 질의가 영어(또는 제1 언어)가 아닌 경우, 예를 들어, 질의가 중국어인 경우, 질의 번역 모듈 또는 콤포넌트(715)에서 나타낸 바와 같이 질의는 영어 또는 제1 언어로 번역된다. 질의 번역 모듈 또는 콤포넌트(715)는, 예를 들어, 도 7 및 식 10 내지 식 14를 참조하여 상술한 질의 번역 방법을 사용한다.
질의가 영어 또는 제1 언어이면, 또는 질의를 영어 또는 제1 언어로의 번역 후에, 분석 콤포넌트 또는 단계(720)는 파서(725)를 사용하여 의존성 트리플 형태(논리 형태임)로 표시되는 파싱 결과를 획득한다. 사용자가 영어로 기재한 구현예에서, 다른 공지된 파서가 또한 사용될 수 있지만, 파서는 마이크로소프트 리서치 레드몬드에 의해 개발된 NLPWin과 같은 영어 파서이다. 질의에 관련된 이들 용어(730)를 획득한 후에, 검색 엔진(315-1)의 검색 콤포넌트는 문장 데이터베이스(320)로부터 문장을 검색한다. 확인 문장 검색을 위하여, 문장 검색은 상술한 확장 인덱싱 용어 방법을 사용하는 검색을 포함한다. 그 후, 검색된 문장은 예를 들어 식 6 내지 식 8을 참조하여 설명되고 745에서 예시로서 제공된 순위 방법을 사용하여 순위가 정해진다. 이 절차는 확인 문장 검색을 실현한다.
힌트 문장을 검색하기 위해서, 용어 리스트는 확장 콤포넌트 또는 단계 750을 사용하여 확장된다. 용어 확장은 두개의 자원, 사전(755; 도 5b에서 참조하여 설명한 바와 같이) 및 혼동 집합(505; 도 6b와 도6c을 참조하여 설명한 바와 같이) 중에서 하나를 사용하여 이행된다. 그 후, 확장된 용어는 상술한 트리플 데이터베이스(360)를 갖는 필터링 콤포넌트 또는 단계(760)를 이용하여, 예를 들어, 도 5b를 참조하여 필터링된다. 결과는 트리플 데이터베이스에도 역시 존재하는 확장된 용어(765)의 집합이다. 확장된 용어는 그 후 예시(745)에 대한 힌트 문장을 검색하기 위해 검색 콤포넌트(735)에 의해 사용된다. 힌트 문장은 확인 문장과 동일한 방식으로 740에서 순위가 정해질 수 있다. 대화형 검색 모드에서, 검색 문장이 만족스럽지 않으면, 사용자는 그 또는 그녀가 초점을 맞추고자 하는 단어에 강조할 수 있으며, 다시 검색한다.
본 발명은 특정 구현예를 참조하여 설명하였지만, 당업자는 본 발명의 정신 및 범위를 벗어나지 않으면서 형태상 또는 미세하게 변경될 수 있음을 인식할 것이다. 예를 들어, 중국어 화자에 의해 영문을 기재하는 것을 참조하여 설명된 예시는, 기재하고자 하는 제1 언어와 다른 제2 언어가 모국어인 사람에 의해 행해지는 개념에도 적용될 수 있다. 또한, 참조는 제2 언어에서의 단어에 대하여 제1 언어에서의 번역어를 식별 또는 저장하도록 행해질 수 있으며, 이 참조는 제2 언어의 단어에 대응하는 제2 언어의 어구를 식별 또는 저장하는 것 및 제2 언어의 어구에 대응하는 제1 언어의 단어를 식별 또는 저장하는 것을 포함한다.