KR20100029221A - 명칭 엔터티와 신규 단어를 검출하는 것 - Google Patents

명칭 엔터티와 신규 단어를 검출하는 것 Download PDF

Info

Publication number
KR20100029221A
KR20100029221A KR1020097027483A KR20097027483A KR20100029221A KR 20100029221 A KR20100029221 A KR 20100029221A KR 1020097027483 A KR1020097027483 A KR 1020097027483A KR 20097027483 A KR20097027483 A KR 20097027483A KR 20100029221 A KR20100029221 A KR 20100029221A
Authority
KR
South Korea
Prior art keywords
string
candidate
input
input entry
database
Prior art date
Application number
KR1020097027483A
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 KR20100029221A publication Critical patent/KR20100029221A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition

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)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

명칭 엔터티 및/또는 신규 단어를 입력 엔트리로부터 검출하기 위한 다양한 측면들이 구현될 수 있다. 일반적으로, 일 측면은 문자열을 포함하는 입력 엔트리를 수신하는 단계를 포함하는 방법일 수 있다. 본 방법은 또한 입력 엔트리로부터 분할 정보를 식별하는 단계를 포함한다. 본 방법은 분할 정보에 기초하여 입력 엔트리의 문자열로부터 후보 문자열을 생성하는 단계를 더 포함한다. 이러한 측면의 다른 구현물에는 대응하는 시스템, 장치 및 처리 엔진이 포함된다.

Description

명칭 엔터티와 신규 단어를 검출하는 것{DETECTING NAME ENTITIES AND NEW WORDS}
본 개시내용은 일반적으로 명칭 엔터티 및/또는 신규 단어를 입력 엔트리로부터 검출하는 것에 관련되어 있다.
명칭 엔트리 및/또는 신규 단어(이하에서는 "NENW")를 검출하는 것(예컨대, 식별해서 추출하는 것)은 철자 교정, 표의문자 입력, 기계 번역, 웹 검색, 음성 인식, 광학식 문자 판독(OCR, Optical Character Recognition) 등과 같은 다수의 어플리케이션에 대하여 유용할 수 있다. 명칭 엔터티(혹은 명명된 엔터티)는 속담, 관영구 혹은 사람을 지칭하는 고유명사, 장소, 조직 혹은 다른 고유의 엔터티를 포함할 수 있다. 신규 단어는 현재 사전에 포함되지 않은 의미론적으로 의미 있는 일련의 문자, 예컨대 다른 언어로부터 도입된 단어나 과학 분야로부터 채택된 단어일 수 있다. 예를 들어, "블루레이"라는 용어는 디지털 매체의 저장용으로 블루레이저 기반의 고밀도 광학 디스크 포맷을 기술하는 새로운 단어이다. 일단 신규 단어가 일반적으로 수용되고 나면, 어휘 목록의 일부로 되어 사전에 포함될 수 있다.
본 명세서는 예컨대 검색 쿼리와 사용자 입력 문서 등의 입력 엔트리로부터 명칭 엔터티 및/또는 신규 단어를 검출하는 것에 관련되는 다양한 측면을 기술한다. 일반적으로, 일 측면은 문자열을 포함하는 입력 엔트리를 수신하는 단계를 포함하는 방법일 수 있다. 본 방법은 또한 입력 엔트리로부터 분할 정보를 식별하는 단계를 포함한다. 본 방법은 분할 정보에 기초하여 입력 엔트리의 문자열로부터 후보 문자열을 생성하는 단계를 더 포함한다. 이러한 측면의 다른 구현물에는 대응하는 시스템, 장치 및 처리 엔진이 포함된다.
다른 일반적인 측면은 사용자가 문자열을 입력할 수 있도록 구성되어 있는 입력 엔트리 컴포넌트를 구비하는 시스템일 수 있다. 본 시스템은 또한 상기 입력 문자열로부터 후보 문자열을 생성하기 위한 수단을 포함한다. 본 시스템은 상기 후보 문자열이 데이터베이스에 이미 존재하는지 여부를 결정하고, 상기 후보 문자열이 상기 데이터베이스나 사전에 이미 저장되어 있지 않은 경우에 상기 데이터베이스에 상기 후보 문자열을 저장하도록 구성된 데이터베이스를 더 구비한다.
상술한 및 다른 일반적은 측면은 다음의 특정한 측면들 중 하나 이상을 선택적으로 포함할 수 있다. 본 방법은 상기 분할 정보가 이용 가능하지 않은 경우, 상기 문자열 전체를 상기 후보 문자열과 연관짓는 단계를 포함할 수 있다. 또한, 본 방법은 상기 후보 문자열에 대하여 표준형 카운트를 생성하는 단계; 및 상기 후보 문자열을 사전과 비교하는 단계를 포함할 수 있다. 본 방법은 상기 비교에 의하여 상기 후보 문자열이 상기 사전에 이미 저장되어 있지 않는 것으로 결정되는 경우에, 상기 후보 문자열을 기준 문자열로서 데이터베이스에 저장하는 단계를 더 포함할 수 있다. 본 방법은 상기 후보 문자열을 상기 데이터베이스와 비교하는 단계; 상기 비교에 기초하여 상기 후보 문자열이 철자가 잘못되어 있는지 여부를 결정하는 단계; 및 상기 후보 문자열의 철자가 잘못되어 있는 경우에 선택적인 문자열을 생성하는 단계를 더 포함할 수 있다.
상기 입력 엔트리는, 검색 엔진에 대한 사용자 쿼리, 인스턴트 메세지용 스크립트 혹은 입력 방식 편집기에 대한 사용자 입력을 포함할 수 있다. 상기 문자열은 로마어가 아닌 언어에서 하나 이상의 단어를 포함할 수 있다. 상기 로마어가 아닌 언어는 중국어, 일본어 혹은 한국어일 수 있다. 상기 분할 정보는 상기 문자열의 단어나 구문 사이를 구별하거나 강조하기 위하여 사용 가능한 사용자 생성 분할을 포함할 수 있다. 상기 후보 문자열은 하나 이상의 명칭 엔터티나 신규 단어를 포함할 수 있다. 상기 사전은 고유명사 사전을 포함할 수 있다. 상기 사용자 생성 분할은 스페이스, 탭, 인용구 표시, 괄호 혹은 구두점 표시를 포함할 수 있다. 상기 명칭 엔터티는 관용구, 속담 및 사람, 조직 혹은 장소의 명칭을 포함할 수 있다. 상기 신규 단어는 사전에 현재 포함되어 있지 않은 단어를 포함할 수 있다.
특정한 측면들은 다음의 이점 중 하나 이상을 실현하기 위하여 구현될 수 있다. 로마어가 아닌 언어에 있어서 NENW(Name Entities and/or New Words)는 예컨대 하나 이상의 사용자 생성 분할에 기초하여 입력 엔트리(예컨대, 검색 쿼리, 인스턴트 메세지 "IM" 스크립트, Microsoft Word와 같은 편집기에 사용자가 입력한 문장)로부터 검출(예컨대, 추출 및 식별)될 수 있다. 사용자 생성 분할은 스페이스, 탭, 인용구 표시, 괄호 혹은 모든 구두점 표시에 의하여 명시적 혹은 내재적으로 범위가 정해지는 일련의 하나 이상의 사용자가 입력한 문자일 수 있다.
입력 엔터티에 있어서 철자 보정의 범위는 검출된 NENW에 기초하여 증가할 수 있다. 부가적으로, 신규 명칭 엔터티/단어는 사람이 주석을 단 데이터에 의존하지 않고서 자동으로 검출될 수 있다. 스케일러블(Scalable) 철자 오류 보정 데이터베이스는 새롭게 검출된 명칭 엔터티/단어를 통합하기 위하여 사용 가능하다. 따라서, 철자 보정에 있어서 높은 정확성을 구현할 수 있다. 나아가, 로마어가 아닌 문자, 예컨대 중국어, 일본어 및 한국어(CJK, Chinese, Japanese and Korean) 문자의 경우 입력 방식 편집기(IME, Input Method Editor)에 대한 보다 나은 단어 제안을 구현할 수 있다. 개선된 IME는 동일하거나 유사한 발음을 갖는 단어를 구별하는데 사용될 수 있다. 예컨대, 중국어 IME는 서로 다른 성을 가정할 경우 사용자에게 "
Figure 112009081656212-PCT00001
"나 "
Figure 112009081656212-PCT00002
" 중 어느 하나를 제안할 수 있다. 따라서 NENW의 검출은 CJK 언어에 대한 적응형 IME 사전을 구축하는데 도움이 될 수도 있다.
더욱 타겟형으로 된 검색 쿼리 결과가 잠재적으로 얻어질 수도 있는데, 그 이유는 키워드 기반의 검색을 이용하는 것으로부터의 오탐지(False-Positive) 결과를 회피할 수 있기 때문이다. 예컨대, 사용자가 검색 엔진에 대한 입력 쿼리에 "New York Traveling"이라는 구문을 입력하는 경우에, 명칭 엔터티 "New York"이 검출될 수 있다. "New"와 "York"이라는 단어를 별개로 포함하는 웹 페이지와 같은 오탐지된 검색 결과를 회신하기보다는, 뉴욕 도시에 대해 원하는 여행 정보를 사용자에게 제공할 수 있다. 부가적으로, 타겟형 검색 쿼리 결과를 제공하는 기능은 휴대전화, PDA, 양방향 페이저(Two-way Pager) 혹은 스마트폰 등 이동식 장치를 이용하여 생성된 검색 쿼리에 대하여 바람직할 수 있다.
일반적인, 그리고 특유한 측면들은 시스템, 방법 혹은 컴퓨터 프로그램이나 그러한 시스템, 방법 및 컴퓨터 프로그램의 어떠한 조합을 이용하여서라도 구현될 수 있다. 하나 이상의 구현물에 대한 세부사항들은 첨부도면과 이하의 상세한 설명에서 제시된다. 다른 특징, 측면 및 이점들은 상세한 설명, 도면 및 청구범위로부터 명백해질 것이다.
이제 상술한 그리고 다른 측면들은 다음의 도면을 참조하여 상세하게 설명할 것이다.
도 1은 입력 엔트리로부터 NENW를 검출함으로써 데이터베이스를 생성하는 시스템의 개념도.
도 2a는 입력 엔트리의 다양한 후보 NENW를 나타내는 도면.
도 2b는 후보 NENW의 목록 및 도 2a의 입력 엔트리로부터의 연관된 출현/카운트를 나타내는 도면.
도 2c는 후보 NENW의 목록 및 도 2a의 입력 엔트리로부터의 연관된 표준형 카운트를 나타내는 도면.
도 3은 입력 엔트리로부터 명칭 엔터티/신규 단어를 검출하는 프로세스를 나타내는 순서도.
도 4는 철자 보정을 위해 입력 엔트리로부터 검출된 명칭 엔터티/신규 단어를 이용하는 프로세스를 나타내는 순서도.
도 5는 컴퓨터 장치와 시스템의 블록도.
다양한 도면에서 동일한 참조기호는 동일한 요소를 나타낸다.
도 1은 명칭 엔터티 및/또는 신규 단어(NENW)를 입력 엔트리로부터 검출하는 시스템(100)의 개념도이다. 본 시스템(100)은 입력 엔트리 컴포넌트(110)를 가지고 있으며, 이는 예컨대 사용자로 하여금 검색 쿼리를 입력할 수 있도록 하는 검색 엔진(예컨대, Google 검색 엔진)의 쿼리 박스를 포함할 수 있다. 본 시스템(100)은 또한 NENW 검출 컴포넌트(120)를 포함하며, 이는 예컨대 입력 엔트리 컴포넌트(110)로부터 잠재적인 NENW를 식별하고 추출할 수 있다. 이하에서 더욱 자세하게 설명하는 바와 같이, 잠재적인 NENW의 검출은 예컨대 검색 쿼리에 있어서 사용자 생성 분할에 기초할 수 있다. 이러한 분할은 사용자가 NENW를 강조하기 위하여 사용할 수 있는 스페이스, 인용구 표시, 괄호 혹은 다른 구두점 표시일 수 있다.
본 시스템(100)은 데이터베이스(130)를 더 포함하며, 이는 예컨대 기준(Canonic) NENW를 포함하는 철자 보정 및/또는 IME 데이터베이스일 수 있다. 이하에서 더욱 자세하게 설명하는 바와 같이, NENW 검출 컴포넌트(120)에 의해 식별되는 모든 잠재적인 NENW가 기준 NENW로 되는 것은 아니다. 식별된 명칭 엔터티/신규 단어가 정말로 명칭 엔터티/신규 단어인지 여부의 결정은 검색 쿼리의 표준화된 카운트(Normalized Count)와 세션 로그(Session Log)에 기초할 수 있다. 이러한 방식으로, 입력 엔트리 컴포넌트(110)에 사용자가 제시한 잠재적인 NENW는 NENW 검출 컴포넌트(120)에 의하여 검출(예컨대, 식별되고 추출됨)될 수 있다.
검출된 NENW는 데이터베이스(130)(예컨대, 철자 보정/IME 데이터베이스)에 부가될 수도 있다. 따라서, 신규 명칭 엔터티/단어(예컨대, 새로운 음악가나 신곡의 명칭 및 새로운 관용구나 속담)가 데이터베이스에서 검출 및 저장될 수 있기 때문에, 데이터베이스(130)는 스케일러블할 수 있다. 나아가, 데이터베이스는 새로운 명칭 엔터티/단어를 쉽게 통합할 수 있기 때문에, 철자 오류 보정 및/또는 IME 제안의 높은 커버리지를 구현할 수 있다.
영어와 같은 일부 로마어의 경우, 대문자 사용 정보가 NENW 검출에 있어서 중요한 역할을 수행할 수 있다. 일부 비 로마어의 경우, 특히 중국어, 일본어 및 한국어(CJK)와 같은 표의어의 경우, 대문자와 소문자 없이 하나의 작성 형태를 갖는다. 나아가, 일반적으로 이러한 CJK 언어는 그 작성 형태의 단어들 간에 스페이스(간격)를 사용하지 않는다. 따라서, 이러한 CJK 언어에 있어서 NENW 검출은 어려울 수 있다.
부가적으로, CJK 언어와 같은 비 로마어에 대한 철자 보정은 복잡하고 어려울 수 있다. 보통 철자 보정은 잘못된 단어를 검출하고 그 잘못된 단어에 대한 적절한 대체어를 결정하는 것을 포함한다. 알파벳, 즉 영어와 같은 로마어 기반의 언어에 있어서 대부분의 철자 오류는 예컨대 "than" 대신 "thna"와 같이 어휘가 잘못된(철자 오류형) 단어이거나, 예컨대 "stranger than"이라 하지 않고 "stranger then"이라 하는 것처럼 문맥상 부적절하게 사용된 유효 단어 중 하나이다. 로마어 기반의 언어에서 잘못된 어휘의 철자 오류를 검출하고 보정하는 철자 검사기는 잘 알려져 있다.
그러나, CJK 언어와 같은 비 로마어 기반의 언어는 예컨대 중국어 GB2312 및 UTF-8 문자 세트와 같은 어떠한 컴퓨터 문자로도 인코딩된 무효 문자를 가지지 않기 때문에, 대부분의 철자 오류는 어휘가 잘못된 철자 오류라기보다는 문맥에서 부적절하게 사용된 유효한 문자들이다. 중국어, 일본어 및 한국어의 경우, 문자/단어의 정확한 사용은 대개 문맥에서만 결정될 수 있다. 예컨대, "
Figure 112009081656212-PCT00003
" 및 "
Figure 112009081656212-PCT00004
"는 모두 중국어에서 이름(First Name)으로 사용될 수 있다. 그러나, 이들을 포함하는 대부분의 흔한 전체 이름은 각각 "
Figure 112009081656212-PCT00005
"(장교 이름) 및 "
Figure 112009081656212-PCT00006
"(가수 이름)이다. 따라서 비 로마어 기반의 언어에 대한 효과적인 철자 검사기는 문맥상 어떤 문자 및/또는 단어가 적합하지 않은지를 결정하기 위해 문맥 정보를 이용하여야 한다.
철자 보정 이외에도, 시스템(100)은 CJK 언어에 대한 적응형 IME 사전을 구축하는데 유용할 수 있다. 예컨대, 컴퓨터 상에서 중국어 텍스트를 입력하고 처리하는 것은 매우 어려울 수 있다. 이는, 텍스트 표준화에 있어서 중국어가 갖는 내재적인 문제, 복수의 동음어 및 중국어 텍스트 처리를 어렵게 만들 수 있는 모호함의 원인이 되는 보이지 않는(숨겨진) 단어 구간은 물론이고, 중국어 문자의 숫적으로도 부분적인 원인이 있다.
중국어 텍스트를 컴퓨터 시스템에 입력하기 위한 일반적인 방법은 예컨대 병음 등의 음성 표기 입력(Phonetic Input)을 사용하는 것이다. 병음은 로마 문자를 사용하고, 복수 음절의 단어 형태로 나열된 어휘를 갖는다. 그러나, 병음 입력 방식은 중국어 처리에 있어서 동음어 문제를 낳을 수 있다. 특히, 성조를 갖는 대략 1,300개의 서로 다른 음성 표기의 음절(병음으로 표현 가능함)과 성조를 갖지 않는 대략 410개의 음성 표기의 음절만으로 수만개의 중국 문자(한자)를 나타내고 있기 때문에, 성조를 갖거나 갖지 않는 하나의 음성 표기 음절은 다수의 서로 다른 한자에 대응할 수 있다. 예컨대, 만다린의 "yi" 발음은 100개가 넘는 한자에 대응할 수 있다. 이는 음성 표기의 음절을 한자로 변환하는 경우에 모호함을 유발할 수 있다.
다수의 음성 표기의 입력 시스템은 다중 선택 방식을 사용하여 이러한 동음어 문제를 해결하고 있다. 일단 사용자가 음성 표기의 음절을 입력하면, 같은 발음을 갖는 가능성 있는 한자 문자들의 목록이 표시되어 사용자에게 제시된다. 그러나, 각 음절에 대해 대응하는 한자를 입력하고 선택하는 절차는 느리고 지겨우며 시간 소모적일 수 있다. 다른 음성 표기의 입력 시스템은 인접한 한자에 기초하여 각각의 가능한 한자에 대한 가능성을 결정하는 것에 기초한다. 이러한 확률 접근법은 문법적인 제한조건과 추가적으로 결합될 수 있다.
그러나, 이러한 방식으로 음성 표기를 한자로 변환하는 것의 정확성은 보통 문학(예컨대, 다수의 묘사적인 문장과 관용구를 가짐)에 대한 적용 및/또는 예컨대 사용자 쿼리 및/또는 게시판 시스템(BBS, Bulletin Board System)의 웹 상에서 사용되는 것과 같은 구어체나 비형식적인 언어에 대한 적용의 경우에는 제한적이다. 나아가, 사전에 대한 커버리지가 낮은 경우 구어체에 있어서의 변환 품질이 낮게 된다. 따라서, 시스템(100)을 이용하는 경우, 적응형 IME 사전을 구축하여, 예컨대 CJK 문자와 같은 비 로마어 문자에 대한 IME에 있어서 보다 나은 단어 제안을 구현할 수 있다.
철자 보정 및 IME에 부가하여, 시스템(100)은 더욱 표적화된 검색 결과를 제공하기 위해 검출된 명칭 엔터티를 사용할 수도 있다. 이는 다음의 예로 설명 가능하다. 사용자가 뉴욕시의 여행에 관한 더 많은 정보를 찾는데 관심이 있다고 가정하자. 그러면 그는 검색 엔진에 대한 입력 쿼리에서 "New York Traveling(뉴욕 여행)"이라는 문구를 입력한다. 전형적인 키워드 기반의 검색을 이용하여, 검색 엔진은 "New York"이 명칭 엔터티임을 인지하지 못하고 "New"와 "York"을 포함하는 웹 페이지들과 같은 오탐지된 검색 결과를 회신할 수 있다. 반면에, 시스템(100)은 "New York"이 명칭 엔터티임을 감지하고, 사용자가 원하는 정보에 타게팅된 검색 결과를 회신할 수 있다.
또한, 타게팅된 검색 쿼리 결과를 제공하는 기능은 휴대전화, PDA, 양방향 페이저나 스마트폰과 같은 휴대용 장치를 이용하여 생성되는 검색 쿼리의 경우에 유용할 수 있다. 데스크탑 컴퓨터에 의한 전형적인 웹 검색과는 달리, 휴대용 장치로 생성된 검색 쿼리는 다운로드를 위한 특정한 파일이거나 구매를 위한 상품에 더욱 타게팅되어 있을 수 있다. 예컨대, 휴대용 장치의 사용자는 보통 특정한 음악가의 사진이나 노래를 다운로드하거나, 특정한 영화나 인물에 관한 정보를 요청하거나, 혹은 신상품에 관한 정보를 요청하는 것과 같이, NENW에 기초하여 검색 쿼리를 제시한다.
시스템(100)이 NENW를 검출하는 방법에 관한 동작의 개요는 도 2a 내지 2c에 나타낸 다음의 예로 설명할 수 있다. 도 2a는 입력 엔트리에서 사용자가 입력한 다양한 문자열을 나타낸다. 도 2a의 예는 8개의 입력 엔트리가 존재한다고 가정하며, 각각의 입력 엔트리는 중국어와 같은 비 로마어 기반 언어의 일련의 6개 문자/단어를 포함하고 있다. 예컨대, 문자열로 일련의 6개의 중국어 문자/단어인 "
Figure 112009081656212-PCT00007
"이 있을 수 있는데, 이는 상해시 시장 "
Figure 112009081656212-PCT00008
"을 의미한다. 중국어의 경우, 각 문자는 단어를 나타낼 수도 있는데, 예를 들면 "
Figure 112009081656212-PCT00009
"(예제 문자열에서 6개 문자 중 하나임)는 "city(도시)"라는 단어의 의미를 갖는 한개의 중국어 문자이다.
전술한 바와 같이, 비 로마어 기반의 CJK 언어는 대문자를 갖지 않는다. 나아가, 중국어와 일본어는 대개 단어와 문장 사이에 간격을 두지 않아, 이들 언어에서 후보 NENW를 검출하는 것은 어려울 수 있다. 다만, 사용자가 가끔 입력 문자열의 나머지로부터 자신이 강조하거나 구별하기를 원하는 NENW를 나타내기 위하여 입력 엔트리에 분할(예컨대, 스페이스, 탭, 인용구 표시 혹은 기타 구두점 표시)을 입력한다. 도 2a에 나타낸 입력 엔트리는 다양한 문자열을 표시하고 있으며, 그 각각은 입력 엔트리용으로 사용자가 입력한 일련의 6개의 문자/단어를 포함하고 있다. 이들 문자열로부터, 분할 정보가 식별되고 가능성이 있는 후보 NENW가 생성될 수 있다.9
예를 들어, 첫번째 입력 엔트리에서(8개의 입력 엔트리 중에서 3회 발생하고, 따라서 이는 해당 입력 엔트리에 카운트 3을 제공함), 사용자는 단어#1, 단어#2, 단어#3 및 단어#4(예컨대, "
Figure 112009081656212-PCT00010
")를 포함하는 하위열을 단어#5와 단어#6(예컨대, "
Figure 112009081656212-PCT00011
")을 포함하는 다른 하위열로부터 이격하기 위하여 분할(205)을 입력하였다. 일 구현예의 경우, 시스템(100)은 첫번째 입력 문자열에서 이와 같은 사용자 생성 분할(205)을 식별할 수 있다. 나아가, 상기 식별된 분할(205)을 이용하여, 시스템(100)은 후보 명칭 엔터티/신규 단어(210)와 후보 엔터티/신규 단어(215)인 2개의 후보 NENW를 생성할 수 있다. 분할(205)은 사용자가 의도적으로 혹은 비의도적으로 입력한 것일 수 있다. 후술하는 바와 같이, 분할(205)이 의도적이거나 비의도적인지 여부에 관계없이, 시스템(100)은 예컨대 높은 표준형 카운트를 갖는 엔터티나 단어에 기초하여 기준 명칭 엔터티/신규 단어를 생성할 수 있다.
또한, 두번째 입력 엔트리에서(8개의 입력 엔트리 중에서 2회 발생하고, 따라서 이는 해당 입력 엔트리에 카운트 2를 제공함), 사용자는 단어#1 및 단어#2(예컨대, "
Figure 112009081656212-PCT00012
")를 포함하는 하위열을 단어#3과 단어#4(예컨대, "
Figure 112009081656212-PCT00013
")를 포함하는 다른 하위열로부터 이격하기 위하여 분할(220)을 입력하였다. 부가적으로, 그 사용자는 단어#3 및 단어#4(예컨대, "
Figure 112009081656212-PCT00014
")를 포함하는 하위열을 단어#5와 단어#6(예컨대, "
Figure 112009081656212-PCT00015
")을 포함하는 다른 하위열로부터 이격하기 위하여 분할(225)을 입력하였다. 일 구현예의 경우, 시스템(100)은 두번째 입력 문자열에서 사용자 생성 분할(220 및 225) 양자를 식별할 수 있다. 나아가, 상기 식별된 분할(220 및 225)을 이용하여, 시스템(100)은 후보 NENW(230, 235 및 215)인 3개의 후보 NENW를 생성할 수 있다.
세번째 입력 엔트리에서(8개의 입력 엔트리 중에서 1회 발생하고, 따라서 이는 해당 입력 엔트리에 카운트 1을 제공함), 사용자는 단어#1, 단어#2 및 단어 #3(예컨대, "
Figure 112009081656212-PCT00016
")를 포함하는 하위열을 단어#4(예컨대, "
Figure 112009081656212-PCT00017
")를 포함하는 다른 하위열로부터 이격하기 위하여 분할(245)을 입력하였다. 부가적으로, 그 사용자는 단어#4(예컨대, "
Figure 112009081656212-PCT00018
")를 포함하는 하위열을 단어#5와 단어#6(예컨대, "
Figure 112009081656212-PCT00019
")을 포함하는 다른 하위열로부터 이격하기 위하여 분할(255)을 입력하였다. 일 구현예의 경우, 시스템(100)은 세번째 입력 문자열에서 사용자 생성 분할(245 및 255) 양자를 식별할 수 있다. 나아가, 상기 식별된 분할(245 및 255)을 이용하여, 시스템(100)은 후보 NENW(250, 260 및 215)인 3개의 후보 NENW를 생성할 수 있다.
네번째 입력 엔트리에서(8개의 입력 엔트리 중에서 2회 발생하고, 따라서 이는 해당 입력 엔트리에 카운트 2를 제공함), 아무런 분할을 입력하지 않았다. 일 구현예의 경우, 시스템(100)은 사용자 생성 분할이 존재하지 않는 것으로 결정할 수 있다. 이러한 방식으로, 후보 명칭 엔터티/신규 단어는 사용자 생성 분할에 기초하여 생성되지 않는다. 그러나, 이 경우, 시스템(100)은 단어#1, 단어#2, 단어#3, 단어#4, 단어#5 및 단어#6(예컨대, "
Figure 112009081656212-PCT00020
")을 포함하는 후보 명칭 엔터티/신규 단어(265)와 네번째 입력 엔트리의 문자열이나 전체 구문을 연관지을 수 있다.
가능한 후보 NENW의 수는, 문자열에 일련의 문자/단어가 주어진 경우, 수학적으로 표현될 수 있다. N개의 문자(예컨대, "ABC", N=3)를 갖는 시퀀스는 G(N) 후보 단어를 생성할 수 있으며, 신규 문자(예컨대, "D")가 해당 시퀀스에 부가된다. 그 신규 문자는 N개의 새로운 후보 단어를 생성하기 위해 이전 시퀀스의 N개 후보 단어 중 어느 것과도 결합될 수 있다. 또한, 그 신규 문자 자체가 단일의 문자 단어일 수 있다. 예컨대, 신규 문자 "D"는 시퀀스 "ABC"에 부가되는 경우 4개의 후보 단어인 "ABCD", "BCD", "CD" 및 "D"가 자동으로 존재할 수 있다. 따라서, N개 문자의 시퀀스에 하나 더 문자를 추가하는 경우 N+1개의 신규 후보가 생성될 수 있다.
다시 말해, G(N+1)=G(N)+(N+1)의 순환 관계와 G(1)=1이 N개 문자의 시퀀스로부터 얻어질 수 있다. 수학식 G(N)=N*(N+1)/2는 이 순환 관계로부터 얻어질 수 있다. 이러한 방식으로, N개의 문자를 포함하는 엔트리에 N*(N+1)/2(여기서 N은 양의 정수)개의 가능한 후보 NENW가 존재할 수 있다. 예컨대, 입력 엔트리 (N=4)에 4개의 단어가 존재한다면, 가능한 후보 NENW의 수는 10이다. 마찬가지로, 도 2a에 나타낸 예의 경우 입력 엔트리 (N=6)에 6개의 문자/단어가 존재한다. 따라서, 21개의 가능한 후보 NENW가 존재할 수 있다.
도 2b는 후보 NENW의 목록과 도 2a의 입력 엔트리로부터의 연관된 출현/카운트를 나타낸다. 도 2b에 도시한 바와 같이, 도 2a에 있어서 4개의 서로 다른 입력 문자열로 총 8개의 입력 엔트리(각 엔트리는 일련의 6개의 문자/단어를 포함함)로부터 생성된 7개의 후보 NENW가 존재한다. 7개의 후보 NENW는 후보 명칭 엔터티/신규 단어(210)를 포함하며, 이는 8개의 입력 엔트리에서 3회 출현하였으므로 3의 카운트를 갖는다. 후보 명칭 엔터티/신규 단어(215)는 8개의 입력 엔트리에서 6회 출현하였으므로 6의 카운트를 갖는다. 후보 명칭 엔터티/신규 단어(230)는 8개의 입력 엔트리에서 2회 출현하였으므로 2의 카운트를 갖는다.
나아가, 후보 명칭 엔터티/신규 단어(235)는 8개의 입력 엔트리에서 2회 출 현하였으므로 2의 카운트를 갖는다. 후보 명칭 엔터티/신규 단어(250)는 8개의 입력 엔트리에서 1회 출현하였으므로 1의 카운트를 갖는다. 후보 명칭 엔터티/신규 단어(260)는 8개의 입력 엔트리에서 1회 출현하였으므로 역시 1의 카운트를 갖는다. 끝으로, 후보 명칭 엔터티/신규 단어(260)는 8개의 입력 엔트리에서 2회 출현하였으므로 2의 카운트를 갖는다.
따라서, 본 시스템(100)은 입력 엔트리에서 후보 NENW에 관한 이러한 출현 내지 카운트를 축적하고, 후보 NENW 중 어느 것이 기준 NENW로 되어 데이터베이스(130)에 저장될 수 있는지를 결정할 수 있다. 일 구현예에서, 본 시스템(100)은 카운트의 임계값을 가질 수 있으며, 그에 따라 후보 명칭 엔터티/신규 단어 카운트가 그 임계값을 넘는 경우 그 후보 명칭 엔터티/신규 단어는 기준 명칭/엔터티 신규 단어가 된다. 그러한 출현은 사용자 입력으로부터의 원래의 수이거나, 각각의 개별적인 문자나 문자 시퀀스의 형태에 따라 표준화되거나 추출된 수일 수 있다.
예를 들어, "
Figure 112009081656212-PCT00021
"(중국어에서 "I am(나는)"을 의미함)의 출현이 사용자 입력에서 극도로 높은 출현율을 갖는다고 하더라도, 문자 "
Figure 112009081656212-PCT00022
"와 "
Figure 112009081656212-PCT00023
"의 출현에 의하여 개별적으로 표준화된 경우 그것은 낮은 표준화된 빈도를 가질 수 있다. 일 구현예에서, 기준 NENW를 결정하기 위해 사용되는 표준화된 빈도는 다음의 식 h(c1,c2)*log{f(c1,c2)/[f(c1)*f(c2))]}을 사용하여 연산 가능하며, 여기서 f()는 특정한 단어나 구문의 상대적인 빈도를 나타내는 함수(출현에 대해 선형적인 함수)이며, h()는 출현에 대하여 단조 증가하는 함수이다. 예컨대, h()는 h(c1,c2)=f(c1,c2) 혹은 h(c1,c2)=logf(c1,c2)와 같이 f()와 단조 증가하는 한 어떠한 함수라도 될 수 있다. 이러한 방식으로, h() 함수는 대부분의 공통된 문자의 조합이 후보 명칭 엔터티/신규 단어로서 생성되도록 선택될 수 있다.
선택적으로, 시스템(100)은 후보 명칭 엔터티/신규 단어가 기준 명칭 엔터티/신규 단어로 되는지 여부를 결정하기 위하여 사용자 입력 엔트리의 사용자 쿼리 로그를 사용할 수 있다. 예컨대, 명칭 엔터티/신규 단어가 식별되지 않고 검색 쿼리에서 사용자가 철자를 잘못 쓴 경우에, 잘못된 쿼리 결과가 제공된다(혹은 아예 제공되지 않는다). 그러나, 이와 같은 경우 사용자는 원하는 검색 결과를 얻기 위해 해당 명칭 엔터티/신규 단어의 철자를 수동으로 보정할 수 있다. 일 구현예에서, 시스템(100)은 가능한 후보 NENW를 생성하고 데이터베이스(130)를 강화하기 위해 성공적인 쿼리 결과 및/또는 사용자 보정의 이같은 이력을 이용할 수 있다.
도 2c는 후보 NENW의 목록 및 도 2a의 입력 엔트리로부터의 연관된 표준형 카운트를 나타낸다. 일 구현예에서, 시스템(100)은 의미론적으로 무의미한 일반적인 문자의 시퀀스를 생성하는 것을 방지하기 위하여, 후보 명칭 엔터티/신규 단어에 대해 표준형 카운트를 사용할 수 있다. 이 표준형 카운트는 주어진 입력 엔트리의 수에 대한 후보 명칭 엔터티/신규 단어의 카운트의 비율을 연산함으로써 생성될 수 있다. 이러한 방식으로, 본 시스템(100)은 기준 NENW로서 후보 명칭 엔터티/신규 단어를 높은 표준형 카운트와 연계시킬 수 있다.
도 2c에 도시한 바와 같이, 후보 명칭 엔터티/신규 단어(210)는 3/8, 즉 0.375의 표준형 카운트를 갖는데, 이는 8개의 입력 엔트리에서 3회 출현하였기 때 문이다. 후보 명칭 엔터티/신규 단어(215)는 6/8, 즉 0.75의 표준형 카운트를 갖는데, 이는 8개의 입력 엔트리에서 6회 출현하였기 때문이다. 후보 명칭 엔터티/신규 단어(230)는 2/8, 즉 0.25의 표준형 카운트를 갖는데, 이는 8개의 입력 엔트리에서 2회 출현하였기 때문이다. 후보 명칭 엔터티/신규 단어(235)는 2/8, 즉 0.25의 표준형 카운트를 갖는데, 이는 8개의 입력 엔트리에서 2회 출현하였기 때문이다. 후보 명칭 엔터티/신규 단어(250)는 1/8, 즉 0.125의 표준형 카운트를 갖는데, 이는 8개의 입력 엔트리에서 1회 출현하였기 때문이다. 후보 명칭 엔터티/신규 단어(260) 역시 1/8, 즉 0.125의 표준형 카운트를 갖는데, 이는 8개의 입력 엔트리에서 1회 출현하였기 때문이다. 끝으로, 후보 명칭 엔터티/신규 단어(260)는 2/8, 즉 0.25의 표준형 카운트를 갖는데, 이는 8개의 입력 엔트리에서 2회 출현하였기 때문이다.
상술한 바와 같이, 높은 표준형 카운트를 갖는 후보 명칭 엔터티/신규 단어는 기준 명칭 엔터티/신규 단어가 될 수 있다. 일 구현예에서, 시스템(100)은 0.5를 넘는 표준형 카운트를 갖는 모든 후보 NENW가 기준 NENW가 되어 데이터베이스(130)에 저장되도록 구성할 수 있다. 이와 같은 경우에, 도 2c에 나타낸 후보 NENW 중에서 시스템(100)은 표준형 카운트 0.75를 갖는 후보 명칭 엔터티/신규 단어(215)에 기초하여 기준 명칭 엔터티/신규 단어를 생성할 것이다.
나아가, 상술한 임계 표준형 카운트를 이용하여 생성된 기준 명칭 엔터티/신규 단어가 정확한 철자의 명칭 엔터티/신규 단어를 항상 나타내지 않을 수 있다. 예컨대, 높은 수의 검색 쿼리가 "blue-ray"라는 용어를 포함하고 후보 신규 단어는 예컨대 입력 문자열에서 사용자가 생성한 분할에 기초하여 생성된다고 가정하자. 또한, 후보 신규 단어 "blue-ray"의 표준형 카운트는 그 높은 출현 빈도로 인해 0.8이라고 가정하자. 이 후보 신규 단어 "blue-ray"는 상술한 임계값(즉, 0.5)을 넘는 표준형 카운트를 가질 것이며, 예컨대 도 1의 데이터베이스(130)에 저장될 수 있는 기준 신규 단어로 될 것이다. 이것은 정확한 철자가 "blu-ray(블루레이)"이어야 한다는 점에도 불구하고 대부분의 사용자들이 이를 "blue-ray"로 철자를 잘못 사용한 경우이다. 이러한 방식으로, 시스템(100)은 사용자들이 철자를 종종 잘못 쓰는 경우조차 NENW를 검출하는 것이 가능하다.
도 3은 입력 엔트리로부터 NENW를 검출하는 프로세스(300)를 나타내는 순서도이다. 305에서, 프로세스(300)는 입력 엔트리를 수신하며, 이는 예컨대 상술한 바와 같이 입력 방식 편집기나 Google 검색 엔진과 같은 온라인 검색 엔진에 대한 검색 쿼리일 수 있다. 310에서, 프로세스(300)는 예컨대 입력 엔트리에서의 사용자 생성 분할 등 분할 정보를 식별한다. 상술한 바와 같이, 입력 엔트리의 사용자 생성 분할은 구두점 표시, 스페이스 혹은 2개의 단어나 구문 사이를 구별하거나 강조하기 위해 사용 가능한 다른 어떠한 표시도 될 수 있다.
315에서, 만약 분할 정보가 이용 가능하다면(예컨대, 하나 이상의 사용자 생성 분할이 이용 가능함), 325에서 후보 NENW가 상기 분할 정보에 기초하여 생성된다. 후보 NENW가 생성되는 방법의 예에 관해서는 전술한 도 2a 내지 2c에 도시되어 있고 자세히 설명한바 있다. 다른 한편으로, 만약 입력 엔트리에서 이용 가능한 분할 정보가 없다면, 프로세스(300)는 전체 입력 엔트리 문자열을 후보 명칭 엔터티/ 신규 단어와 연계시킨다. 예컨대, 이는 도 2a에 나타낸 네번째 입력 엔트리와 유사할 것이며, 이는 사용자 생성 분할을 갖지 않는다.
330에서, 프로세스(300)는 NENW가 사용자 생성 분할을 갖는 엔트리로부터 혹은 사용자 생성 분할을 갖지 않는 엔트리로부터의 것인지 여부에 관계 없이 각각의 후보 명칭 엔터티/신규 단어에 대한 표준형 카운트를 생성한다. 도 2c에서 설명한 바와 같이, 각각의 후보 명칭 엔터티/신규 단어에 대한 표준형 카운트는 문자/단어의 시퀀스를 포함하는 주어진 수의 입력 엔트리에 대한 후보 명칭 엔터티/신규 단어의 카운트의 비율을 연산함으로써 생성될 수 있다.
332에서, 프로세스(300)는 후보 명칭 엔터티/신규 단어의 표준형 카운트가 소정의 임계값보다 큰지 여부를 결정한다. 만약 표준형 카운트가 임계값을 초과하지 않는다면, 345에서 후보 명칭 엔터티/신규 단어는 기준 명칭 엔터티/신규 단어로서 저장되지 않는다. 예컨대, 전술한 바와 같이 후보 명칭 엔터티/신규 단어는 의미론적으로 무의미한 일반적인 일련의 문자일 수 있다.
다른 한편으로, 만약 표준형 카운트가 임계값을 초과한다면, 335에서 프로세스(300)는 그 후보 명칭 엔터티/신규 단어가 예컨대 소정의 및/또는 잘 알려진 NENW의 목록을 포함할 수 있는 고유명사 사전 등의 사전에 이미 포함되어 있는지 여부를 결정한다. 이는 다수의 후보 NENW가 이미 잘 알려져 있고 일부 사전에 포함되어 있을 수 있기 때문이다. 예를 들어, "
Figure 112009081656212-PCT00024
"나 "
Figure 112009081656212-PCT00025
"는 잘 알려진 고유명사이며, 이러한 단어는 기준 NENW 데이터베이스에 추가될 필요가 없다.
만약 후보 명칭 엔터티/신규 단어가 이미 사전(예컨대, 고유명사)에서 알려 진 것이거나 데이터베이스에 저장되어 있다면, 345에서 기준 NENW의 데이터베이스(예컨대, 도 1의 데이터베이스(130))를 업데이트할 필요는 없다. 그러나, 만약 후보 명칭 엔터티/신규 단어가 사전에 알려져 있지 않거나 데이터베이스에 저장되어 있지 않다면, 340에서 프로세스(300)는 그 후보 명칭 엔터티/신규 단어를 기준 명칭 엔터티/신규 단어로서 데이터베이스에 저장한다. 이와 같이, 새로운 NENW(예컨대, 새로운 음악 아티스트나 신곡의 명칭)가 검출되어 데이터베이스에 저장될 수 있기 때문에, 상기 데이터베이스는 스케일러블할 수 있다. 나아가, 상기 데이터베이스는 손쉽게 새로운 명칭 엔터티/단어를 통합할 수 있기 때문에, 철자 오류 보정이나 입력 방식 제안에 대한 높은 커버리지가 구현될 수 있다.
도 4는 철자 보정을 위해 입력 엔트리로부터 추출된 NENW를 이용하는 프로세스(400)를 나타내는 순서도이다. 405에서, 프로세스(400)는 원본 입력 엔트리(OIE, Original Input Entry)를 수신하는데, 이는 예컨대 Google 검색 엔진을 이용하는 검색 쿼리일 수 있다. 410에서, 프로세스(400)는 원본 입력 엔트리에서 가능한 NENW를 생성한다. 415에서, 프로세스(400)는 가능한 NENW를 기준 NENW의 데이터베이스와 비교하는데, 이것은 예컨대 도 3에 도시한 340에서 언급된 데이터베이스일 수 있다.
420에서, 프로세스(400)는 상기 가능한 NENW가 기준 데이터베이스의 NENW와 유사한지 여부를 결정한다. 일 구현예에서, 유사도 측정은 소정 수의 텍스트 하위열(예컨대, 문자)의 거리를 편집할 수 있도록 구현 가능하다. 예를 들어, 기준 엔터티가 "
Figure 112009081656212-PCT00026
"이고, 일부 사용자가 상기 입력 엔트리 대신에 "
Figure 112009081656212-PCT00027
"를 입력한다고 가정하자. 이 경우, 프로세스(400)는 유사도 측정을 위하여 해당 문자열의 4개 문자 전부를 비교할 수 있다.
만약 가능한 명칭 엔터티/신규 단어가 기준 데이터베이스의 NENW 중 어느 것과도 유사하지 않다면, 425에서 프로세스(400)는 철자 보정을 구현하지 않는다. 예컨대, 만약 가능한 명칭 엔터티/신규 단어가 중국어 구문인 "
Figure 112009081656212-PCT00028
"이라면, 데이터베이스의 기준 엔터티 "
Figure 112009081656212-PCT00029
"와 비교한 경우에 철자 보정이 수행되지 않을 것이다. 그러나, 만약 가능한 명칭 엔터티/신규 단어가 기준 데이터베이스의 NENW와 유사하다면, 430에서 프로세스(400)는 가능한 명칭 엔터티/신규 단어가 데이터베이스의 기준 NENW 중 어느 것과도 상이한지 여부를 결정한다. 만약 그렇지 않다면, 425에서 프로세스(400)는 철자 보정을 수행하지 않는데, 이는 가능한 명칭 엔터티/신규 단어가 이미 기준 NENW 데이터베이스에 포함되어 있고 따라서 이미 철자 보정을 보유하고 있기 때문이다.
그러나, 만약 가능한 명칭 엔터티/신규 단어가 유사하지만 기준 NENW 데이터베이스와는 상이하다면, 435에서 프로세스(400)는 그 가능한 명칭 엔터티/신규 단어를 상기 데이터베이스로부터 얻어진 그 유사한 기준 명칭 엔터티/신규 단어로 대체함으로써 선택적인 입력 엔트리(AIE, Alternative Input Entry)에 대한 선택적인 문자열을 생성한다. 440에서, 프로세스(400)는 AIE가 OIE보다 검색 쿼리에서 출현할 가능성이 더 많은지 여부를 결정한다. 예컨대, 쿼리 "
Figure 112009081656212-PCT00030
"의 가능성은 사용자 입력 데이터의 통계에 따라 "
Figure 112009081656212-PCT00031
"의 경우보다 한 차수 크 기가 더 높을 수 있다. 만약 그렇지 않다면, 425에서 프로세스(400)는 철자 보정을 수행하지 않는다. 한편, 만약 AIE가 OIE보다 출현할 가능성이 더 크다면, 445에서 프로세스(400)는 철자 보정을 수용한다. 450에서 프로세스(400)는 검색 쿼리에 있어서 철자 보정을 위한 제안으로서 사용자에게 AIE를 제시한다.
도 5는 예컨대 시스템(100)을 구현하기 위해 사용 가능한 컴퓨터 장치와 시스템(500, 550)의 블록도이다. 컴퓨터 장치(500)는 랩탑, 데스크탑, 워크스테이션, PDA, 서버, 블레이드 서버, 메인프레임 및 기타 적절한 컴퓨터 등 다양한 형태의 디지털 컴퓨터를 대표하는 것으로 의도되어 있다. 컴퓨터 장치(550)는 PDA, 휴대전화, 스마트폰 및 기타 유사한 연산 장치 등 다양한 형태의 모바일 장치를 대표하는 것으로 의도되어 있다. 여기에 나타낸 컴포넌트와 그들의 접속 및 관계, 기능들은 본 문서에서 설명 및/또는 청구한 본 발명의 구현예를 제한하려는 의도가 아니라 단지 예시적인 것임을 의미한다.
컴퓨터 장치(500)는 프로세서(502), 메모리(504), 저장 장치(506), 고속 확장 포트(510)와 메모리(504)에 접속하는 고속 인터페이스(508) 및 저속 버스(514)와 저장 장치(506)에 접속하는 저속 인터페이스(512)를 포함한다. 컴포넌트(502, 504, 506, 508, 510 및 512) 각각은 여러가지 버스를 사용하여 상호 접속되며, 적절하게 다른 방식으로 공통 마더보드 상에 탑재될 수 있다. 프로세서(502)는 고속 인터페이스(508)에 결합된 디스플레이(516)와 같이 외부의 입/출력 장치 상에서 GUI에 대한 그래픽 정보를 디스플레이하기 위하여 저장 장치(506) 상에서 혹은 메모리(504) 내에서 저장된 명령을 포함하여, 컴퓨터 장치(500) 내에서의 실행을 위 한 명령을 처리할 수 있다. 다른 구현예의 경우, 다중 프로세서 및/또는 다중 버스가 복수 타입의 메모리 및 다중 메모리와 함께 적당히 사용될 수 있다. 또한, 다중 컴퓨터 장치(500)가 필요한 동작의 일부를 제공하는 각 장치(예컨대, 서버 뱅크, 일 그룹의 블레이드 서버, 혹은 다중 프로세서 시스템)와 접속될 수 있다.
메모리(504)는 컴퓨터 장치(500) 내에서 정보를 저장한다. 일 구현예의 경우, 메모리(504)는 컴퓨터로 판독 가능한 매체이다. 일 구현예의 경우, 메모리(504)는 휘발성 메모리 유닛 혹은 유닛들이다. 다른 구현예의 경우, 메모리(504)는 비휘발성 메모리 유닛 혹은 유닛들이다.
저장 장치(506)는 컴퓨터 장치(500)에 대한 대용량 저장을 제공할 수 있다. 일 구현예의 경우, 저장 장치(506)는 컴퓨터로 판독 가능한 매체이다. 다양한 다른 구현예의 경우, 저장 장치(506)는 플로피디스크 장치, 하드디스크 장치, 광학디스크 장치, 혹은 테이프 장치, 플래시메모리나 기타 유사한 고체 상태의 메모리 장치, 혹은 저장 영역 네트워크 내의 장치들을 포함하는 장치들의 어레이나 기타의 구성일 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 저장매체에 실체적으로 탑재될 수 있다. 컴퓨터 프로그램 제품은 실행 시 상술한 바와 같은 하나 이상의 방법을 수행하는 명령을 포함한다. 정보 저장매체는 메모리(504)와 같이 컴퓨터 내지 기계로 판독 가능한 매체, 저장 장치(506), 프로세서(502) 상의 메모리 혹은 전파형 신호이다.
고속 제어기(508)는 컴퓨터 장치(500)에 대한 대역폭 집중적인 동작을 관리하는 반면에, 저속 제어기(512)는 더 낮은 수준의 대역폭 집중적인 동작을 관리한 다. 이러한 기능의 할당은 단순히 예시적인 것일 뿐이다. 일 구현예에서, 고속 제어기(508)가 메모리(504), 디스플레이(516)에 (예컨대 그래픽 프로세서나 가속기를 통해) 결합되고, 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(510)에 결합된다. 상기 구현예에서, 저속 제어기(512)는 저장 장치(506) 및 저속 확장 포트(514)에 결합된다. 다양한 통신 포트(예컨대 USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 장치, 스캐너 등 하나 이상의 입/출력 장치나 예컨대 네트워크 어댑터를 통하여 라우터나 스위치 등 네트워킹 장치에 결합될 수 있다.
컴퓨터 장치(500)는 도면에 도시한 바와 같이 다수의 다양한 형태로 구현될 수 있다. 예컨대, 표준 서버(520)나 그러한 서버 그룹의 다중 배수로서 구현될 수 있다. 랙(Rack) 서버 시스템(524)의 일부로 구현될 수도 있다. 나아가, 랩탑 컴퓨터(522)와 같은 PC에 구현될 수도 있다. 선택적으로, 컴퓨터 장치(500)로부터의 컴포넌트들은 장치(550)와 같은 모바일 장치의 다른 컴포넌트들(미도시)과 결합될 수 있다. 그러한 장치들 각각은 하나 이상의 컴퓨터 장치(500, 550)를 포함할 수 있으며, 전체 시스템은 상호 통신하는 다중 컴퓨터 장치(500, 550)로 구성될 수 있다.
컴퓨터 장치(550)는 다른 컴포넌트들 중에서도 프로세서(552), 메모리(564), 디스플레이(554)와 같은 입/출력 장치, 통신 인터페이스(566) 및 트랜시버(568)를 포함하고 있다. 또한, 이 장치(550)에는 추가적인 저장소를 제공하기 위하여 마이크로드라이브나 다른 장치 등의 저장 장치가 제공될 수 있다. 컴포넌트(550, 552, 564, 554, 566, 및 568) 각각은 여러가지 버스를 사용하여 상호 접속되며, 이들 컴 포넌트 중 몇몇은 적절하게 다른 방식으로 공통 마더보드 상에 탑재될 수 있다.
프로세서(552)는 메모리(564)에 저장된 명령을 포함하여 컴퓨터 장치(550) 내에서 명령을 실행할 수 있다. 이 프로세서는 또한 개별적인 아날로그 및 디지털 프로세서를 포함할 수 있다. 이 프로세서는 예컨대 유저 인터페이스의 제어 등 장치(550)의 다른 컴포넌트들과의 공동 작용을 위하여, 장치(550)에 의해 실행되는 어플리케이션 및 장치(550)에 의한 무선 통신을 제공할 수 있다.
프로세서(552)는 디스플레이(554)에 결합된 디스플레이 인터페이스(556) 및 제어 인터페이스(558)를 통하여 사용자와 통신하는 것이 가능하다. 디스플레이(554)는 예컨대 TFT LCD 디스플레이나 OLED 디스플레이 혹은 기타 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(556)는 사용자에게 그래픽 및 기타 정보를 제공하기 위하여 디스플레이(554)를 구동하기에 적합한 회로 소자를 포함할 수 있다. 제어 인터페이스(558)는 사용자로부터의 명령을 수신하고, 이를 프로세서(552)에 대한 제공을 위하여 변환하는 것이 가능하다. 나아가, 외부 인터페이스(562)는 프로세서(552)와의 통신으로 제공되어, 다른 장치들과 장치(550)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(562)는 예컨대 유선 통신(예컨대, 도킹 절차를 통해) 혹은 무선 통신(예컨대, 블루투스나 기타 이와 같은 기술을 통해)을 제공할 수 있다.
메모리(564)는 컴퓨터 장치(550) 내에 정보를 저장한다. 일 구현예에서, 메모리(564)는 컴퓨터로 판독 가능한 매체이다. 일 구현예에서, 메모리(564)는 휘발성 메모리 유닛이나 유닛들이다. 다른 구현예에서, 메모리(564)는 비휘발성 유닛이 나 유닛들이다. 또한, 확장 메모리(554)가 제공되어 예컨대 SIMM 카드 인터페이스를 포함할 수 있는 확장 인터페이스(552)를 통해 장치(550)에 접속될 수 있다. 이러한 확장 메모리(574)는 장치(550)에 대하여 외부의 저장 공간을 제공하거나, 장치(550)를 위한 어플리케이션이나 기타 정보를 저장할 수도 있다. 특히, 확장 메모리(574)는 상술한 프로세스를 실행하거나 보충하기 위한 명령을 포함할 수 있으며, 보안 정보도 포함할 수 있다. 따라서, 예컨대 확장 메모리(574)는 장치(550)에 대한 보안 모듈로서 제공될 수 있고, 장치(550)의 안전한 사용을 가능하게 하는 명령어로 프로그래밍될 수 있다. 나아가, 해킹이 불가능한 방식으로 SIMM 카드 상에 식별 정보를 배치하는 것처럼 SIMM 카드를 통해 보안 어플리케이션이 부가적인 정보와 함께 제공될 수 있다.
상기 메모리는 예컨대 후술하는 바와 같이 플래시메모리 및/또는 MRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품이 정보 저장매체에 실체적으로 탑재된다. 컴퓨터 프로그램 제품은 실행 시 상술한 바와 같은 하나 이상의 방법을 수행하는 명령을 포함하고 있다. 정보 저장매체는 전파형 신호나 프로세서(552) 상의 메모리, 혹은 메모리(564), 확장 메모리(574) 등 컴퓨터 내지 기계로 판독 가능한 매체이다.
장치(550)는 필요한 경우 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(566)를 통하여 무선 통신할 수 있다. 통신 인터페이스(566)는 다른 것들 중에서도 GSM 음성 통화, SMS, EMS, 혹은 MMS 메세지, CDMA, TDMA, PDC, WCDMA, CDMA2000, GPRS 등의 다양한 모드 내지 프로토콜 하에서의 통신을 위해 제공될 수 있다. 이러한 통신은 예컨대 무선주파 트랜시버(568)를 통하여 발생할 수 있다. 나아가, 블루투스, WiFi 혹은 기타 그와 같은 트랜시버(미도시)를 이용하는 방식 등으로 단거리 통신이 이루어질 수도 있다. 또한, GPS 수신기 모듈(570)은 장치(550) 상에서 구동하는 어플리케이션에 의하여 적절하게 이용 가능한 부가적인 무선 데이터를 장치(550)에 제공할 수 있다.
장치(550)는 또한 오디오 코덱(560)을 이용하여 가청 통신하는 것이 가능하며, 이는 사용자가 말하는 정보를 수신하고 그것을 가용한 디지털 정보로 변환할 수 있다. 마찬가지로 오디오 코덱(560)은 예컨대 장치(550)의 핸드셋에서 스피커를 통하는 것처럼 사용자를 위한 가청의 소리를 생성할 수 있다. 그러한 소리는 음성 전화 통화로부터의 소리를 포함할 수 있으며, 녹음된 소리(예컨대, 음성 메세지, 음악 파일 등)를 포함할 수 있고, 장치(550) 상에서 동작하는 어플리케이션에 의해 생성된 소리를 포함할 수도 있다.
컴퓨터 장치(550)는 도면에 도시한 바와 같이 다수의 다양한 형태로 구현 가능하다. 예컨대, 그것은 휴대전화(580)로서 구현될 수 있다. 또한, 스마트폰(582), PDA 혹은 기타 유사한 모바일 장치의 일부로서 구현될 수도 있다.
제 1 측면에 따르면, 본 출원은 컴퓨터로 구현되는 방법에 있어서, 문자열을 포함하는 입력 엔트리를 수신하는 단계; 상기 입력 엔트리로부터 분할 정보를 식별하는 단계; 및 상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하는 단계를 포함하는 방법을 제공한다.
제 2 측면에 따르면, 상기 분할 정보가 이용 가능하지 않은 경우, 상기 방법 은 상기 문자열 전체를 상기 후보 문자열과 연관짓는 단계를 더 포함한다.
제 3 측면에 따르면, 상기 제 2 측면의 방법은 상기 후보 문자열에 대하여 표준형 카운트를 생성하는 단계; 및 소정의 임계값과 상기 표준형 카운트를 비교하는 단계를 더 포함한다.
제 4 측면에 따르면, 상기 제 2 측면의 방법은 상기 후보 문자열을 사전과 비교하는 단계; 및 상기 후보에 대한 상기 표준형 카운트가 상기 임계값을 초과하고, 상기 비교에 의하여 상기 후보 문자열이 상기 사전에 이미 저장되어 있지 않는 것으로 결정되는 경우에, 상기 후보 문자열을 기준 문자열로서 데이터베이스에 저장하는 단계를 더 포함한다.
제 5 측면에 따르면, 상기 제 3 혹은 제 4 측면의 방법은 상기 후보 문자열을 상기 데이터베이스와 비교하는 단계; 상기 비교에 기초하여 상기 후보 문자열이 철자가 잘못되어 있는지 여부를 결정하는 단계; 및 상기 후보 문자열의 철자가 잘못되어 있는 경우에 선택적인 문자열을 생성하는 단계를 더 포함한다.
제 6 측면에 따르면, 상기 입력 엔트리는, 검색 엔진에 대한 사용자 쿼리, 인스턴트 메세지용 스크립트 혹은 입력 방식 편집기에 대한 사용자 입력을 포함한다.
제 7 측면에 따르면, 상기 문자열은 로마어가 아닌 언어에서 하나 이상의 단어를 포함한다.
제 8 측면에 따르면, 상기 분할 정보는 상기 문자열의 단어나 구문 사이를 구별하기 위하여 사용 가능한 사용자 생성 분할을 포함한다.
제 9 측면에 따르면, 상기 후보 문자열은 하나 이상의 명칭 엔터티나 신규 단어를 포함한다.
제 10 측면에 따르면, 상기 사전은 고유명사 사전을 포함한다.
제 11 측면에 따르면, 상기 로마어가 아닌 언어는 중국어, 일본어 혹은 한국어이다.
제 12 측면에 따르면, 상기 사용자 생성 분할은 스페이스, 탭, 인용구 표시, 괄호 혹은 구두점 표시를 포함한다.
제 13 측면에 따르면, 상기 명칭 엔터티는 관용구, 속담 및 사람, 조직 혹은 장소의 명칭을 포함한다.
제 14 측면에 따르면, 상기 신규 단어는 사전에 현재 포함되어 있지 않은 단어를 포함한다.
제 15 측면에 따르면, 본 출원은 처리 장치로 하여금, 문자열을 포함하는 입력 엔트리를 수신하는 기능; 상기 입력 엔트리로부터 분할 정보를 식별하는 기능; 및 상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하는 기능을 포함하는 기능을 수행하도록 하는 처리 엔진을 제공한다.
제 16 측면에 따르면, 제 16 측면의 처리 엔진은 상기 처리 장치로 하여금, 상기 분할 정보가 이용 가능하지 않은 경우에 상기 문자열 전체를 상기 후보 문자열과 연관짓는 기능을 포함하는 기능을 추가적으로 수행하도록 한다.
제 17 측면에 따르면, 상기 제 16 측면의 처리 엔진은 상기 처리 장치로 하여금, 상기 후보 문자열에 대하여 표준형 카운트를 생성하는 기능; 및 소정의 임계 값과 상기 표준형 카운트를 비교하는 기능을 포함하는 기능을 추가적으로 수행하도록 한다.
제 18 측면에 따르면, 상기 제 16 측면의 처리 엔진은 상기 처리 장치로 하여금, 상기 후보 문자열을 사전과 비교하는 기능; 및 상기 후보에 대한 상기 표준형 카운트가 상기 임계값을 초과하고, 상기 비교에 의하여 상기 후보 문자열이 상기 사전에 이미 저장되어 있지 않는 것으로 결정되는 경우에, 상기 후보 문자열을 기준 문자열로서 데이터베이스에 저장하는 기능을 포함하는 기능을 추가적으로 수행하도록 한다.
제 19 측면에 따르면, 상기 제 17 혹은 제 18 측면의 처리 엔진은 상기 처리 장치로 하여금, 상기 후보 문자열을 상기 데이터베이스와 비교하는 기능; 상기 후보 문자열이 상기 비교에 기초하여 철자가 잘못되어 있는지 여부를 결정하는 기능; 및 상기 후보 문자열의 철자가 잘못되어 있는 경우에 선택적인 문자열을 생성하는 기능을 포함하는 기능을 추가적으로 수행하도록 한다.
제 20 측면에 따르면, 본 출원은 사용자가 문자열을 입력할 수 있도록 구성되어 있는 입력 엔트리 컴포넌트; 상기 입력 문자열로부터 후보 문자열을 생성하기 위한 수단; 및 데이터베이스를 구비하는 시스템을 제공한다. 상기 데이터베이스는, 상기 후보 문자열이 데이터베이스에 이미 존재하는지 여부를 결정하고, 상기 후보 문자열이 상기 데이터베이스에 이미 저장되어 있지 않은 경우에 상기 데이터베이스에 상기 후보 문자열을 저장하도록 구성되어 있다.
제 21 측면에 따르면, 본 출원은 문자열을 포함하는 입력 엔트리를 수신하기 위한 수단; 상기 입력 엔트리로부터 분할 정보를 식별하기 위한 수단; 및 상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하기 위한 수단을 구비하는 시스템을 제공한다.
제 22 측면에 따르면, 본 출원은 문자열을 포함하는 입력 엔트리를 수신하기 위한 수단; 상기 입력 엔트리로부터 분할 정보를 식별하기 위한 수단; 및 상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하기 위한 수단을 구비하는 처리 엔진을 제공한다.
제 23 측면에 따르면, 본 출원은 처리 장치로 하여금, 문자열을 포함하는 입력 엔트리를 수신하는 동작; 상기 입력 엔트리로부터 분할 정보를 식별하는 동작; 및 상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하는 동작을 포함하는 동작을 수행하도록 동작 가능하고 프로그램 저장매체 상에 유형적으로 인코딩된 컴퓨터 프로그램 제품을 제공한다.
적당한 경우, 본 명세서에 설명한 시스템 및 기능적 동작들은, 본 명세서에서 설명한 구조적 수단 및 그 구조적인 등가물이나 이들의 하나 이상의 조합을 포함하여, 디지털 전자 회로나 컴퓨터 소프트웨어, 펌웨어, 혹은 하드웨어로 구현될 수 있다. 상기 기술들은 하나 이상의 컴퓨터 프로그램 제품, 즉 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 컴퓨터와 같은 데이터 처리 장치의 동작을 제어하거나 이것에 의해 실행되기 위해 예컨대 기계로 판독 가능한 저장 장치나 전파형 신호 등의 정보 저장매체에 유형적으로 탑재된 하나 이상의 컴퓨터 프로그램으로서 구현 가능하다. 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램이 파일에 반드시 대응해야 하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 복수의 협력형 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 단일 컴퓨터 상에서 실행되도록 전개될 수 있다.
본 명세서에서 설명하는 프로세스와 논리 흐름은 입력 데이터에 대하여 동작하고 출력을 생성함으로써 기능을 수행하기 위한 하나 이상의 프로그램을 실행하는 하나 이상의 프로그래머블 프로세서에 의해 수행 가능하다. 프로세스와 논리 흐름은 예컨대 FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 특수 목적의 논리 회로에 의해 수행될 수도 있으며, 장치는 이러한 것으로서 구현될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예컨대 범용 혹은 특수 목적의 마이크로프로세서 양자 및 어떤 종류의 디지털 컴퓨터의 어떠한 하나 이상의 프로세서라도 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 혹은 양자로부터 명령어와 데이터를 수신할 것이다. 컴퓨터의 핵심적인 요소는 명령어와 데이터를 저장하기 위한 하나 이상의 메모리 장치 및 명령을 수행하기 위한 프로세서이다. 또한, 컴퓨터는 일반적으로 예컨대 자기, 자기광학 디스크나 광학 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대량 저장 장치로부터 데이터를 수신하거나 그것으로 데이터를 전송하거나 혹은 그러한 동작 둘 다를 수행하기 위하여 동작 가능하도록 결합되거나 이를 포함할 것이다. 컴퓨터 프로그램 명령어와 데이터를 저장하기 위한 정보 저장매체는 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위하여, 상술한 기술의 측면들은, 사용자에게 정보를 디스플레이하기 위하여 예컨대 CRT나 LCD 모니터와 같은 디스플레이 장치를 가지고, 사용자가 컴퓨터에 입력을 제공할 수 있는 예컨대 마우스나 트랙볼(Trackball)과 같은 지시 장치 및 키보드를 갖는 컴퓨터 상에서 구현될 수 있다. 물론 다른 종류의 장치도 사용자와의 상호 작용을 제공하기 위하여 사용 가능한데, 예컨대 사용자에게 제공되는 피드백은 가시적인 피드백, 가청 피드백 혹은 촉각형 피드백과 같은 감각적인 피드백의 어떠한 형태일 수도 있으며, 사용자로부터의 입력은 음향, 발성 혹은 촉각적 입력을 포함하는 어떠한 형태로 수신 가능하다.
상술한 기술들은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 모든 조합을 포함하는 연산 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다. 통신 네트워크의 예로는 LAN(Local Area Network)과 예컨대 인터넷과 같은 WAN(Wide Area Network)이 포함된다.
연산 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 보통 서로 떨어져 있으며, 일반적으로는 통신 네트워크를 통하여 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터 상에서 구동되고 서로에 대하여 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의하여 발생한다.
본 명세서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 어떠한 발명의 범위나 청구 가능한 것의 범위에 대한 제한으로서 이해되어서는 안되며, 특정 발명의 특정한 실시형태에 고유할 수 있는 특징들의 설명으로서 이해되어야 한다. 별개의 실시형태의 문맥으로 본 명세서에서 설명한 특정한 특징들은 단일 실시형태의 조합으로 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 설명한 다양한 특징들은 복수의 실시형태에서 별개로 구현되거나 어떤 적당한 하위 조합으로서도 구현 가능하다. 나아가, 특정 조합에서 동작하는 것으로서 특징들을 설명하고 그와 같이 초기에 청구할 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 도면에서 특정한 순서로 동작을 묘사하고 있지만, 이는 나타낸 특정 순서나 순차적인 순서로 그러한 동작들이 수행되어야 한다거나, 바람직한 결과를 얻기 위하여 설명한 모든 동작들이 수행되어야 한다는 것으로 이해해서는 안된다. 특정한 경우, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태에 있어서 다양한 시스템 컴포넌트의 분리는 모든 실시형태에서 그러한 분리를 요구하는 것으로 이해하여서는 안되며, 설명한 프로그램 컴포넌트 및 시스템은 복수의 소프트웨어 제품에 패키징되거나 단일 소프트웨어 제품에 함께 공통적으로 통합될 수 있다는 점을 이해해야 한다.
다수의 구현예를 설명하였다. 그럼에도 불구하고, 상술한 구현예의 정신과 범위를 벗어나지 않으면서도 다양한 변경이 이루어질 수 있음을 이해할 것이다. 예컨대, 본 시스템과 방법은 검색 엔진 상에서와 같이 서버 사이트 상에서 구현되거나, 검색 엔진과 같은 원격 서버와 상호 작용하거나 문서의 텍스트 엔트리에 대한 철자 보정을 제공하기 위하여 예컨대 다운로드된 컴퓨터와 같은 클라이언트 사이트 상에서 구현될 수 있다. 또한, 클라이언트 장치와 서버는 예컨대 사용자가 자신의 장치 상에서 데스크탑 검색을 수행하는 경우에는 단일의 장치로 구현 가능하다.
나아가, 상술한 바와 같이, 본 시스템과 방법은 예컨대 CJK 언어와 같은 비 로마어 기반의 언어 IME에서 구현 가능하다. 입력 단어 시퀀스에 있어서 다음 문자/단어의 제안은 검출된 명칭 엔터티/신규 단어 목록을 이용하여 제공될 수 있다. 예컨대, "
Figure 112009081656212-PCT00032
"와 "
Figure 112009081656212-PCT00033
" 구문 양자가 명칭 엔터티/신규 단어 데이터베이스의 일부로 검출되었다고 가정하자. 중국어 IME에서, 사용자가 첫번째 3개의 문자 "
Figure 112009081656212-PCT00034
"를 입력한 때에, 편집기는 다음 문자로서 자동으로 "
Figure 112009081656212-PCT00035
"와 "
Figure 112009081656212-PCT00036
"의 제안을 제공할 수 있다. 이러한 방식으로, 사용자는 원하는 문자 중 하나를 단순히 고르면 되고 다음 문자를 수동으로 입력하지 않아도 된다. 따라서, 다른 구현예는 이하 청구항의 범위 내에 속하는 것이다.

Claims (22)

  1. 컴퓨터로 구현되는 방법에 있어서,
    문자열을 포함하는 입력 엔트리를 수신하는 단계;
    상기 입력 엔트리로부터 분할 정보를 식별하는 단계; 및
    상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    상기 분할 정보가 이용 가능하지 않은 경우, 상기 문자열 전체를 상기 후보 문자열과 연관짓는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 청구항 2에 있어서,
    상기 후보 문자열에 대하여 표준형 카운트를 생성하는 단계; 및
    소정의 임계값과 상기 표준형 카운트를 비교하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 청구항 3에 있어서,
    상기 후보 문자열을 사전과 비교하는 단계; 및
    상기 후보에 대한 상기 표준형 카운트가 상기 임계값을 초과하고, 상기 비교 에 의하여 상기 후보 문자열이 상기 사전에 이미 저장되어 있지 않는 것으로 결정되는 경우에, 상기 후보 문자열을 기준 문자열로서 데이터베이스에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 청구항 4에 있어서,
    상기 후보 문자열을 상기 데이터베이스와 비교하는 단계;
    상기 비교에 기초하여 상기 후보 문자열이 철자가 잘못되어 있는지 여부를 결정하는 단계; 및
    상기 후보 문자열의 철자가 잘못되어 있는 경우에 선택적인 문자열을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 청구항 1에 있어서,
    상기 입력 엔트리는, 검색 엔진에 대한 사용자 쿼리, 인스턴트 메세지용 스크립트 혹은 입력 방식 편집기에 대한 사용자 입력을 포함하는 것을 특징으로 하는 방법.
  7. 청구항 1에 있어서,
    상기 문자열은 로마어가 아닌 언어에서 하나 이상의 단어를 포함하는 것을 특징으로 하는 방법.
  8. 청구항 1에 있어서,
    상기 분할 정보는 상기 문자열의 단어나 구문 사이를 구별하기 위하여 사용 가능한 사용자 생성 분할을 포함하는 것을 특징으로 하는 방법.
  9. 청구항 1에 있어서,
    상기 후보 문자열은 하나 이상의 명칭 엔터티나 신규 단어를 포함하는 것을 특징으로 하는 방법.
  10. 청구항 3에 있어서,
    상기 사전은 고유명사 사전을 포함하는 것을 특징으로 하는 방법.
  11. 청구항 7에 있어서,
    상기 로마어가 아닌 언어는 중국어, 일본어 혹은 한국어인 것을 특징으로 하는 방법.
  12. 청구항 8에 있어서,
    상기 사용자 생성 분할은 스페이스, 탭, 인용구 표시, 괄호 혹은 구두점 표시를 포함하는 것을 특징으로 하는 방법.
  13. 청구항 9에 있어서,
    상기 명칭 엔터티는 관용구, 속담 및 사람, 조직 혹은 장소의 명칭을 포함하는 것을 특징으로 하는 방법.
  14. 청구항 9에 있어서,
    상기 신규 단어는 사전에 현재 포함되어 있지 않은 단어를 포함하는 것을 특징으로 하는 방법.
  15. 처리 장치로 하여금, 문자열을 포함하는 입력 엔트리를 수신하는 기능; 상기 입력 엔트리로부터 분할 정보를 식별하는 기능; 및 상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하는 기능을 포함하는 기능을 수행하도록 하는 것을 특징으로 하는 처리 엔진.
  16. 청구항 15에 있어서,
    상기 처리 장치로 하여금, 상기 분할 정보가 이용 가능하지 않은 경우에 상기 문자열 전체를 상기 후보 문자열과 연관짓는 기능을 포함하는 기능을 추가적으로 수행하도록 하는 것을 특징으로 하는 처리 엔진.
  17. 청구항 16에 있어서,
    상기 처리 장치로 하여금, 상기 후보 문자열에 대하여 표준형 카운트를 생성하는 기능; 및 소정의 임계값과 상기 표준형 카운트를 비교하는 기능을 포함하는 기능을 추가적으로 수행하도록 하는 것을 특징으로 처리 엔진.
  18. 청구항 17에 있어서,
    상기 처리 장치로 하여금, 상기 후보 문자열을 사전과 비교하는 기능; 및 상기 후보에 대한 상기 표준형 카운트가 상기 임계값을 초과하고, 상기 비교에 의하여 상기 후보 문자열이 상기 사전에 이미 저장되어 있지 않는 것으로 결정되는 경우에, 상기 후보 문자열을 기준 문자열로서 데이터베이스에 저장하는 기능을 포함하는 기능을 추가적으로 수행하도록 하는 것을 특징으로 하는 처리 엔진.
  19. 청구항 18에 있어서,
    상기 처리 장치로 하여금, 상기 후보 문자열을 상기 데이터베이스와 비교하는 기능; 상기 후보 문자열이 상기 비교에 기초하여 철자가 잘못되어 있는지 여부를 결정하는 기능; 및 상기 후보 문자열의 철자가 잘못되어 있는 경우에 선택적인 문자열을 생성하는 기능을 포함하는 기능을 추가적으로 수행하도록 하는 것을 특징으로 하는 처리 엔진.
  20. 사용자가 문자열을 입력할 수 있도록 구성되어 있는 입력 엔트리 컴포넌트;
    상기 입력 문자열로부터 후보 문자열을 생성하기 위한 수단; 및
    상기 후보 문자열이 데이터베이스에 이미 존재하는지 여부를 결정하고, 상기 후보 문자열이 상기 데이터베이스에 이미 저장되어 있지 않은 경우에 상기 데이터 베이스에 상기 후보 문자열을 저장하도록 구성된 데이터베이스를 구비하는 것을 특징으로 하는 시스템.
  21. 문자열을 포함하는 입력 엔트리를 수신하기 위한 수단;
    상기 입력 엔트리로부터 분할 정보를 식별하기 위한 수단; 및
    상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하기 위한 수단을 구비하는 것을 특징으로 하는 시스템.
  22. 문자열을 포함하는 입력 엔트리를 수신하기 위한 수단;
    상기 입력 엔트리로부터 분할 정보를 식별하기 위한 수단; 및
    상기 분할 정보에 기초하여 상기 입력 엔트리의 상기 문자열로부터 후보 문자열을 생성하기 위한 수단을 구비하는 것을 특징으로 하는 처리 엔진.
KR1020097027483A 2007-06-01 2007-06-01 명칭 엔터티와 신규 단어를 검출하는 것 KR20100029221A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2007/001755 WO2008144964A1 (en) 2007-06-01 2007-06-01 Detecting name entities and new words

Publications (1)

Publication Number Publication Date
KR20100029221A true KR20100029221A (ko) 2010-03-16

Family

ID=40074547

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097027483A KR20100029221A (ko) 2007-06-01 2007-06-01 명칭 엔터티와 신규 단어를 검출하는 것

Country Status (5)

Country Link
US (1) US20100180199A1 (ko)
KR (1) KR20100029221A (ko)
CN (1) CN101815996A (ko)
TW (1) TW201015348A (ko)
WO (1) WO2008144964A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983902B2 (en) * 2007-08-23 2011-07-19 Google Inc. Domain dictionary creation by detection of new topic words using divergence value comparison
US7917355B2 (en) * 2007-08-23 2011-03-29 Google Inc. Word detection
US8091023B2 (en) * 2007-09-28 2012-01-03 Research In Motion Limited Handheld electronic device and associated method enabling spell checking in a text disambiguation environment
KR101453937B1 (ko) * 2007-12-06 2014-10-23 구글 인코포레이티드 Cjk 성명 검출
US8214346B2 (en) 2008-06-27 2012-07-03 Cbs Interactive Inc. Personalization engine for classifying unstructured documents
US9009591B2 (en) 2008-12-11 2015-04-14 Microsoft Corporation User-specified phrase input learning
CN101901235B (zh) 2009-05-27 2013-03-27 国际商业机器公司 文档处理方法和系统
KR101638442B1 (ko) * 2009-11-24 2016-07-12 한국전자통신연구원 중국어 구문 분절 방법 및 장치
US20110184723A1 (en) * 2010-01-25 2011-07-28 Microsoft Corporation Phonetic suggestion engine
US9002866B1 (en) 2010-03-25 2015-04-07 Google Inc. Generating context-based spell corrections of entity names
CN102411563B (zh) * 2010-09-26 2015-06-17 阿里巴巴集团控股有限公司 一种识别目标词的方法、装置及系统
US8438011B2 (en) 2010-11-30 2013-05-07 Microsoft Corporation Suggesting spelling corrections for personal names
CN102682763B (zh) * 2011-03-10 2014-07-16 北京三星通信技术研究有限公司 修正语音输入文本中命名实体词汇的方法、装置及终端
US8630989B2 (en) 2011-05-27 2014-01-14 International Business Machines Corporation Systems and methods for information extraction using contextual pattern discovery
US10176168B2 (en) * 2011-11-15 2019-01-08 Microsoft Technology Licensing, Llc Statistical machine translation based search query spelling correction
US9348479B2 (en) 2011-12-08 2016-05-24 Microsoft Technology Licensing, Llc Sentiment aware user interface customization
US9378290B2 (en) * 2011-12-20 2016-06-28 Microsoft Technology Licensing, Llc Scenario-adaptive input method editor
CN104428734A (zh) 2012-06-25 2015-03-18 微软公司 输入法编辑器应用平台
US8959109B2 (en) 2012-08-06 2015-02-17 Microsoft Corporation Business intelligent in-document suggestions
CN104823183B (zh) 2012-08-30 2018-04-24 微软技术许可有限责任公司 基于特征的候选选择
CN103678336B (zh) * 2012-09-05 2017-04-12 阿里巴巴集团控股有限公司 实体词识别方法及装置
CN102929862B (zh) * 2012-11-06 2015-06-10 深圳市宜搜科技发展有限公司 一种新词获取方法及系统
CN103870449B (zh) * 2012-12-10 2018-06-12 百度国际科技(深圳)有限公司 在线自动挖掘新词的方法及电子装置
US9231898B2 (en) 2013-02-08 2016-01-05 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US8996355B2 (en) 2013-02-08 2015-03-31 Machine Zone, Inc. Systems and methods for reviewing histories of text messages from multi-user multi-lingual communications
US8996352B2 (en) 2013-02-08 2015-03-31 Machine Zone, Inc. Systems and methods for correcting translations in multi-user multi-lingual communications
US8990068B2 (en) 2013-02-08 2015-03-24 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US8996353B2 (en) * 2013-02-08 2015-03-31 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US9600473B2 (en) 2013-02-08 2017-03-21 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US10650103B2 (en) 2013-02-08 2020-05-12 Mz Ip Holdings, Llc Systems and methods for incentivizing user feedback for translation processing
US9031829B2 (en) 2013-02-08 2015-05-12 Machine Zone, Inc. Systems and methods for multi-user multi-lingual communications
US9298703B2 (en) 2013-02-08 2016-03-29 Machine Zone, Inc. Systems and methods for incentivizing user feedback for translation processing
US10656957B2 (en) 2013-08-09 2020-05-19 Microsoft Technology Licensing, Llc Input method editor providing language assistance
US20150317393A1 (en) * 2014-04-30 2015-11-05 Cerner Innovation, Inc. Patient search with common name data store
US9372848B2 (en) 2014-10-17 2016-06-21 Machine Zone, Inc. Systems and methods for language detection
US10162811B2 (en) 2014-10-17 2018-12-25 Mz Ip Holdings, Llc Systems and methods for language detection
US10765956B2 (en) 2016-01-07 2020-09-08 Machine Zone Inc. Named entity recognition on chat data
JP6897168B2 (ja) * 2017-03-06 2021-06-30 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
CN109844743B (zh) * 2017-06-26 2023-10-17 微软技术许可有限责任公司 在自动聊天中生成响应
WO2019060353A1 (en) 2017-09-21 2019-03-28 Mz Ip Holdings, Llc SYSTEM AND METHOD FOR TRANSLATION OF KEYBOARD MESSAGES
CN111353308A (zh) * 2018-12-20 2020-06-30 北京深知无限人工智能研究院有限公司 命名实体识别方法、装置、服务器及存储介质
US11042580B2 (en) * 2018-12-30 2021-06-22 Paypal, Inc. Identifying false positives between matched words
JP7139271B2 (ja) * 2019-03-20 2022-09-20 ヤフー株式会社 情報処理装置、情報処理方法、及びプログラム
US20220261092A1 (en) * 2019-05-24 2022-08-18 Krishnamoorthy VENKATESA Method and device for inputting text on a keyboard
US11574127B2 (en) 2020-02-28 2023-02-07 Rovi Guides, Inc. Methods for natural language model training in natural language understanding (NLU) systems
US11626103B2 (en) * 2020-02-28 2023-04-11 Rovi Guides, Inc. Methods for natural language model training in natural language understanding (NLU) systems
US11393455B2 (en) 2020-02-28 2022-07-19 Rovi Guides, Inc. Methods for natural language model training in natural language understanding (NLU) systems
US11392771B2 (en) 2020-02-28 2022-07-19 Rovi Guides, Inc. Methods for natural language model training in natural language understanding (NLU) systems
CN112861534B (zh) * 2021-01-18 2023-07-21 北京奇艺世纪科技有限公司 一种对象名称识别方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893133A (en) * 1995-08-16 1999-04-06 International Business Machines Corporation Keyboard for a system and method for processing Chinese language text
US5832478A (en) * 1997-03-13 1998-11-03 The United States Of America As Represented By The National Security Agency Method of searching an on-line dictionary using syllables and syllable count
US6640006B2 (en) * 1998-02-13 2003-10-28 Microsoft Corporation Word segmentation in chinese text
KR100749289B1 (ko) * 1998-11-30 2007-08-14 코닌클리케 필립스 일렉트로닉스 엔.브이. 텍스트의 자동 세그멘테이션 방법 및 시스템
JP2001043221A (ja) * 1999-07-29 2001-02-16 Matsushita Electric Ind Co Ltd 中国語単語分割装置
CN1226717C (zh) * 2000-08-30 2005-11-09 国际商业机器公司 自动新词提取方法和系统
US7076731B2 (en) * 2001-06-02 2006-07-11 Microsoft Corporation Spelling correction system and method for phrasal strings using dictionary looping
US7136805B2 (en) * 2002-06-11 2006-11-14 Fuji Xerox Co., Ltd. System for distinguishing names of organizations in Asian writing systems
CN100555276C (zh) * 2004-01-15 2009-10-28 中国科学院计算技术研究所 一种中文新词语的检测方法及其检测系统
US7424421B2 (en) * 2004-03-03 2008-09-09 Microsoft Corporation Word collection method and system for use in word-breaking
US20080077570A1 (en) * 2004-10-25 2008-03-27 Infovell, Inc. Full Text Query and Search Systems and Method of Use
US20070067157A1 (en) * 2005-09-22 2007-03-22 International Business Machines Corporation System and method for automatically extracting interesting phrases in a large dynamic corpus
CN100405371C (zh) * 2006-07-25 2008-07-23 北京搜狗科技发展有限公司 一种提取新词的方法和系统

Also Published As

Publication number Publication date
US20100180199A1 (en) 2010-07-15
WO2008144964A8 (en) 2009-02-12
TW201015348A (en) 2010-04-16
WO2008144964A1 (en) 2008-12-04
CN101815996A (zh) 2010-08-25

Similar Documents

Publication Publication Date Title
KR20100029221A (ko) 명칭 엔터티와 신규 단어를 검출하는 것
JP5997217B2 (ja) 言語変換において複数の読み方の曖昧性を除去する方法
KR101524740B1 (ko) 입력 방법 편집기
Shaalan A survey of arabic named entity recognition and classification
US8463598B2 (en) Word detection
Ek et al. Named entity recognition for short text messages
US10579733B2 (en) Identifying codemixed text
JP2013117978A (ja) タイピング効率向上のためのタイピング候補の生成方法
KR20100052461A (ko) 단어 확률 결정
CN102725790A (zh) 识别词典制作装置及声音识别装置
KR20080085165A (ko) 입력 데이터 확장 시스템 및 방법, 및 와일드카드 삽입 및입력 데이터 확장 시스템
Satapathy et al. A review of shorthand systems: From brachygraphy to microtext and beyond
Freihat et al. Towards an optimal solution to lemmatization in Arabic
JP2017004127A (ja) テキスト分割プログラム、テキスト分割装置、及びテキスト分割方法
JP2009258293A (ja) 音声認識語彙辞書作成装置
JP2000298667A (ja) 構文情報による漢字変換装置
KR101086550B1 (ko) 로마자 변환을 이용한 일본어 자동 추천 시스템 및 방법
WO2015075920A1 (ja) 入力支援装置、入力支援方法及び記録媒体
de Mendonça Almeida et al. Evaluating phonetic spellers for user-generated content in Brazilian Portuguese
CN1119758C (zh) 汉语盲文到汉字的自动转换方法
JP7115187B2 (ja) 情報処理装置、情報処理方法及びプログラム
Alam et al. Improving accessibility of archived raster dictionaries of complex script languages
KR101461062B1 (ko) 로마자 변환을 이용한 일본어 자동 추천 시스템 및 방법
WO2018228101A1 (zh) 基于汉语含义的汉语编码方法及系统和介质设备
JP4953431B2 (ja) 品詞バリエーション生成装置

Legal Events

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