KR101516858B1 - 지도 검색을 위한 쿼리 파싱 방법 - Google Patents

지도 검색을 위한 쿼리 파싱 방법 Download PDF

Info

Publication number
KR101516858B1
KR101516858B1 KR1020127000638A KR20127000638A KR101516858B1 KR 101516858 B1 KR101516858 B1 KR 101516858B1 KR 1020127000638 A KR1020127000638 A KR 1020127000638A KR 20127000638 A KR20127000638 A KR 20127000638A KR 101516858 B1 KR101516858 B1 KR 101516858B1
Authority
KR
South Korea
Prior art keywords
token
score
location
subsequence
query
Prior art date
Application number
KR1020127000638A
Other languages
English (en)
Other versions
KR20120123241A (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 KR20120123241A publication Critical patent/KR20120123241A/ko
Application granted granted Critical
Publication of KR101516858B1 publication Critical patent/KR101516858B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

사용자 쿼리 파싱에 기초한 지도 검색을 위한 컴퓨터 기반 시스템, 장치 및 방법을 위한 구현이 개시된다. 예를 들어, 지도 검색을 위해 사용자로부터 입력된 입력 항목을, 상기 입력 검색 항목에서 위치 정보를 지시하는 위치 파트 및 상기 입력 항목에서 상기 위치 파트와 연관된 검색 대상을 지시하는 쿼리 파트로 파싱하는 단계; 및 상기 위치 파트에 기초하여 지리적 영역 또는 위치를 획득하고, 상기 쿼리 파트와 연관되며 획득된 지리적 영역 또는 위치에, 또는 그 내에 또는 그 주변에 위치하는 하나 이상의 항목에 관한 정보를 검색하기 위해 지도 검색을 수행하는 단계를 포함하는 컴퓨터 구현 지도 검색 방법이 제공된다.

Description

지도 검색을 위한 쿼리 파싱 방법{QUERY PARSING FOR MAP SEARCH}
본 특허 출원은 지도 검색과 관련되고, 지도 검색을 위한 시스템들, 장치들 및 방법들을 포함한다.
지도 검색은 디지털 지리적 지도들 및 하나 이상의 통신 네트워크,예를 들어 인터넷에서 하나 이상의 컴퓨터 서버에 의해 제공되는 데이터베이스에 대한 컴퓨터 기반 검색이다. 컴퓨터 사용자들은 디지털 지리적 지도 또는 연관된 데이터베이스로부터 문서들, 파일들 또는 데이터를 검색하고 찾기 위한 컴퓨터 프로그램인 지도 검색 엔진을 이용할 수 있다.
사용자 쿼리 파싱에 기초한 지도 검색을 위한 컴퓨터 기반 시스템들, 장치들 및 방법들에 대한 구현들이 제공된다.
일 면에 있어서, 컴퓨터 구현 지도 검색 방법은 지도 검색을 위해 사용자로부터 입력된 입력 항목을, 상기 입력 검색 항목에서 위치 정보를 지시하는 위치 파트 및 상기 입력 항목에서 상기 위치 파트와 연관된 검색 대상을 지시하는 쿼리 파트로 파싱하는 단계 및 상기 위치 파트에 기초하여 지리적 영역 또는 위치를 획득하고, 상기 쿼리 파트와 연관되며 획득된 지리적 영역 또는 위치에, 또는 그 사이에 또는 그 주변에 위치하는 하나 이상의 항목에 관한 정보를 검색하기 위해 지도 검색을 수행하는 단계를 포함한다.
또 다른 면에 있어서, 컴퓨터 구현 지도 검색 방법은 지도 검색을 위해 사용자로부터 입력된 입력 항목을 하나 이상의 토큰들 - 각 토큰은 상기 입력 항목의 세그먼트를 나타내는 용어 및 상기 용어의 유형을 나타내는 용어에 주석으로 첨부된 유형을 포함함 - 을 포함하는 토큰 시퀀스로 분리하는 단계, 상기 토큰 시퀀스의 가능한 분할 위치들 - 가능한 분할 위치는 상기 토큰 시퀀스를 하나 또는 두개의 서브 시퀀스들로 분할함 - 을 결정하는 단계를 포함한다. 또한, 이 방법은 상기 가능한 분할 위치들의 각각에 대한 가능한 분할 매너(manner) - 각 가능한 분할 매너는 상기 토큰 시퀀스를 (1) 위치 정보를 지시하는 가능한 위치 파트 및 (2) 상기 위치 파트와 연관된 검색 대상을 지시하는 가능한 쿼리 파트 중 적어도 하나로 분할함 - 를 결정하는 단계, 상기 가능한 분할 매너들 각각의 정확도의 확률에 대한 분할 점수를 결정하는 단계, 및 결과적인 분할 매너로서, 가장 높은 분할 점수를 갖는 가능한 분할 매너를 선택하는 단계를 포함한다.
또 다른 면에 있어서, 컴퓨터 구현 지도 검색을 제공하는 시스템은 지도 검색을 위해 사용자로부터 입력된 입력 항목을 위치 파트 및 쿼리 파트 중 적어도 하나로 파싱하는 파싱 모듈; 및 상기 파싱 모듈로부터 출력을 전송받아, 파싱된 위치 파트 및 쿼리 파트를 전송받은 후, 상기 사용자에게 지도 검색 결과를 반환하기 위해, 파싱된 위치 파트 및 쿼리 파트와 관련된 정보를 검색하는 검색 모듈을 포함한다. 한 구현에서, 이 시스템은 상기 파싱 모듈 및 검색 모듈로의 통신, 및 컴퓨터들로의 통신을 제공하는 컴퓨터 네트워크, 및 지도 검색을 위해 사용자로부터 입력 항목을 전송받고, 상기 검색 모듈로부터 결과들을 전송받기 위해 상기 컴퓨터 네크워크와 통신하는 클라이언트 컴퓨터를 포함한다. 상기 컴퓨터 네트워크는 상기 입력 항목을 상기 클라이언트 컴퓨터로부터 상기 파싱 모듈로 전송하고(directs), 상기 결과를 상기 검색 모듈로부터 상기 클라이언트 컴퓨터로 전송한다.
또 다른 면에 있어서, 컴퓨터 구현 지도 검색을 제공하는 시스템은 지도 검색을 위해 사용자로부터 입력된 입력 항목을 적어도 하나의 토큰 - 각 토큰은 상기 입력 항목의 세그먼트를 나타내는 용어 및 상기 용어에 주석으로 첨부된 유형을 포함 - 을 포함하는 토큰 시퀀스로 토큰(token)하는 토큰 모듈, 상기 토큰 시퀀스의 가능한 분할 위치들 - 가능한 분할 위치는 상기 토큰 시퀀스를 하나 또는 두개의 서브 시퀀스들로 분할함 - 을 결정하는 수단, 상기 가능한 분할 위치들의 각각에 대한 가능한 분할 매너(manner) - 각 가능한 분할 매너는 상기 토큰 시퀀스를 가능한 위치 파트 및 가능한 쿼리 파트 중 적어도 하나로 분할함 - 를 결정하는 수단, 가능한 분할 매너들 각각에 대한 분할 점수를 결정하는 수단, 결과적인 분할 매너로서, 가장 높은 분할 점수를 갖는 가능한 분할 매너를 선택하는 수단, 및 지도 검색을 수행하고 사용자에게 지도 검색 결과들을 생성하기 위해, 상기 결과적인 분할 매너를 전송받는 검색 모듈을 포함한다.
또 다른 면에 있어서, 컴퓨터 구현 지도 검색을 제공하는 시스템은 사용자에 의해 입력된 입력 항목을 전송받는 인터페이스, 및 상기 입력 항목을 위치 파트 및 쿼리 파트 중 적어도 하나로 분할하기 위해 상기 입력 항목을 파싱하고, 상기 파실 결과에 기초하여 입력 항목과 관련된 정보를 검색하는 프로세싱 유닛을 포함한다. 상기 입력 항목이 위치 파트 및 쿼리 파트로 분할되는 경우, 상기 프로세싱 유닛은 상기 위치 파트에 기초하여 지리적 영역을 결정하고, 상기 지리적 영역 내에 위치하며 상기 쿼리 파트와 연관된 항목들에 대한 정보를 검색한다.
또 다른 면에 있어서, 컴퓨터 구현 지도 검색을 제공하는 시스템은, 사용자에 의해 입력된 입력 항목을 전송받는 인터페이스 및 상기 입력 항목을 적어도 하나의 토큰을 포함하는 토큰 시퀀스로 토큰(tokenize)하고, 상기 토큰 시퀀스의 가능한 분할 위치들을 결정하는 프로세싱 유닛을 포함한다. 각 토큰은 상기 입력 항목의 세그먼트를 나타내는 용어 및 상기 용어에 주석으로 첨부된 유형을 포함하고,가능한 분할 위치는 상기 토큰 시퀀스를 하나 또는 두개의 서브 시퀀스들로 분할한다. 이 프로세싱 유닛은 상기 가능한 분할 위치들의 각각에 대한 가능한 분할 매너(manner) - 각 가능한 분할 매너는 상기 토큰 시퀀스를 가능한 쿼리 파트 및/또는 가능한 위치 파트로 분할함 - 결정하고, 가능한 분할 매너들 각각에 대한 분할 점수를 결정하고, 결과적인 분할 매너로서, 가장 높은 분할 점수를 갖는 가능한 분할 매너를 선택한다.
또 다른 면에 있어서, 명령들이 저장된 기기 판독 가능한 기록 매체가 제공된다. 상기 명령들은 기기에 의해 실행될 때, 하기와 같이 상기 기기를 실행시킨다. 지도 검색을 위해 사용자로부터 입력된 입력 항목을, 상기 입력 항목에 기초하여 지도 검색을 수행하는 단계보다 우선하여, 상기 입력 검색 항목에서 위치 정보를 지시하는 위치 파트 및 상기 입력 항목에서 상기 위치 파트와 연관된 검색 대상을 지시하는 쿼리 파트로 파싱하는 단계, 상기 위치 파트에 기초하여 지리적 영역 또는 위치를 획득하고, 상기 쿼리 파트와 연관되며 획득된 지리적 영역 또는 위치에, 또는 그 사이에 또는 그 주변에 위치하는 하나 이상의 항목에 관한 정보를 검색하기 위해 지도 검색을 수행하는 단계를 포함한다.
또 다른 면에 있어서, 복수의 명령을 기록하는 기기 판독 가능한 기록 매체가 제공된다. 기기에 의해 실행될 때, 상기 명령들이 하기와 같이 상기 기기를 실행시킨다. 사용자로부터 전송된 입력 항목을 적어도 하나의 토큰 - 각 토큰은 상기 입력 항목의 세그먼트를 나타내는 용어 및 상기 용어에 주석으로 첨부된 유형을 포함 - 을 포함하는 토큰 시퀀스로 토큰(tokenize)하는 단계, 상기 토큰 시퀀스의 가능한 분할 위치들 - 가능한 분할 위치는 상기 토큰 시퀀스를 하나 또는 두개의 서브 시퀀스들로 분할함 - 을 결정하는 단계, 상기 가능한 분할 위치들의 각각에 대한 가능한 분할 매너(manner) - 각 가능한 분할 매너는 상기 토큰 시퀀스를 가능한 쿼리 파트 및/또는 가능한 위치 파트로 분할함 - 를 결정하는 단계, 가능한 분할 매너들 각각에 대한 분할 점수를 결정하는 단계, 결과적인 분할 매너로서, 가장 높은 분할 점수를 갖는 가능한 분할 매너를 선택하는 단계를 포함한다.
또 다른 면에 있어서, 컴퓨터 구현 지도 검색 방법은 입력 항목에 기초하여 지도 검색을 수행하기 앞서, 지도 검색을 위해 사용자로부터 입력된 입력항목을 상기 입력 검색 항목에서 위치 정보를 지시하는 위치 파트 및 상기 입력 항목에서 상기 위치 파트와 연관된 검색 대상을 지시하는 쿼리 파트로 파싱시키는 단계를 포함한다. 입력 항목을 파싱하는 단계는 상기 입력 항목에 의해 지시되는 위치에 대응하는 지오 코드들(geocodes)을 미리 검색하는 과정없이 실행된다. 이 방법은 상기 위치 파트에 기초하여 지리적 영역 또는 위치를 획득하고, 상기 쿼리 파트와 연관되며 획득된 지리적 영역 또는 위치에, 또는 그 사이에 또는 그 주변에 위치하는 하나 이상의 항목에 관한 정보를 검색하기 위해 지도 검색을 수행시키는 단계를 포함한다.
이 문서에서 설명된 컴퓨터 구현 지도 검색에 대한 상기 측면과 다른 측면들은 하나 이상의 장점들 - 효율적인 지도 검색, 지도 검색 결과들의 높은 정확도 및 사용자에게 지도 검색 결과를 빠르게 전달 - 을 실현하도록 구현될 수 있다.
컴퓨터 구현 지도 검색에 대한 시스템, 장치 및 방법의 상기 측면과 다른 측면들의 예시들 및 구현들이 하기 도면, 발명의 상세한 설명 및 청구항에 상세하게 설명되고 있다.
도 1은 지도 검색 방법 및 시스템을 구현하는 네트워크 시스템(100)의 예시 블록도.
도 2는 위치 파트와 쿼리 파트로 입력 항목을 분리하는 파싱 시스템(200)의 개념도.
도 3은 도 2에 도시된 사전(240)의 예시 구조를 도시하는 개략도.
도 4는 통계 모델을 훈련시키는 예를 설명하는 흐름도.
도 5는 도 2에 도시된 모델의 예시 구조를 도시하는 개략적인 블록도.
도 6a는 입력 항목을 파싱하는 예시적인 프로세스를 설명하는 흐름도.
도 6b는 입력 항목을 파싱하는 다른 예시적인 프로세스를 설명하는 흐름도.
도 7a는 토큰 시퀀스에 대한 위치 통계 점수를 계산하는 예시 프로세스를 설명하는 도면.
도 7b는 토큰 시퀀스의 용어 위치 점수를 결정하는 예시 프로세스를 설명하는 도면.
도 7c는 토큰 시퀀스의 유형 위치 점수를 결정하는 예시 프로세스를 설명하는 도면.
도 8a는 토큰 시퀀스에 대한 쿼리 통계 점수를 계산하는 예시 프로세스를 설명하는 도면.
도 8b는 토큰 시퀀스의 용어 쿼리 점수를 결정하는 예시 프로세스를 설명하는 도면.
도 8c는 토큰 시퀀스의 유형 쿼리 점수를 결정하는 예시 프로세스를 설명하는 도면.
도 9는 지도 검색을 수행하는 예시 프로세스를 설명하는 흐름도.
도 10은 본 명세서에 서술된 기술들을 구현하기 위한 예시 디바이스(1000)의 블록도.
다양한 도면들의 유사한 참조 부호들은 유사한 구성요소들을 가리킨다.
본 명세서에 기술된 지도 검색에서, 지도 검색 엔진은 사용자가 입력한 쿼리에 대한 입력 항목을 처리하고, 입력 항목의 정보를 기반으로 사용자 관심을 반영하는 하나 이상의 검색 결과를 제공한다. 예를 들어, 사용자는 특정 지리적 위치에, 이내, 혹은 근처에 위치한 어떤 개체(예: 사업체) 또는 특정 종류의 개체들에 대한 검색정보를 원할 수도 있다. 본 명세서에서 기술된 지도 검색 방법 및 시스템은 사용자가 단일 상자에 하나의 입력 항목을 입력할 수 있도록 하고, 입력 항목의 위치 파트와 쿼리 파트를 지능적으로 인식하도록 구현될 수 있으며, 입력 항목의 위치 파트는 입력 항목에 포함되는 지리적 위치를 나타내고, 입력 항목의 쿼리 파트는검색 대상으로서 개체 또는 특정 종류의 개체들을 나타낸다. 예를 들어, 단일 상자에 입력된
Figure 112012002083763-pct00001
(얀타이 호텔)의 사용자 입력 항목은 지리적 위치를 지정하는 위치 파트인
Figure 112012002083763-pct00002
(얀타이)와 그 지리적 위치에, 이내, 혹은 근처에 위치한 검색 대상을 나타내는 쿼리 파트인
Figure 112012002083763-pct00003
(호텔)로 파싱 처리될 수 있다. 따라서 지도 검색 엔진은 사용자가 얀타이 도시 내 또는 주변의 호텔을 찾을 의도임을 인식하고 지도 검색을 수행한다.
입력 항목을 위치 파트와 쿼리 파트로 분리 또는 파싱함에 있어서, 입력 항목은 먼저 하나 이상의 세그먼트들로 파싱되고, 세그먼트들은 위치 파트와 쿼리 파트를 구성하기 위해 그룹화된다. 파싱하는 동안, 주소 관련 정보를 나타내는 기호들(characters)의 시퀀스, 문자들(letters), 단어들 또는 구문들은 그렇게 인식되고 따라서 본 명세서에 "용어"로서 언급된 하나의 의미있는 세그먼트로서 파싱된다. 주소 관련 정보의 인식은 예를 들면 주소 관련 정보를 포함하는 하나 이상의 데이터베이스들이나 사전들을 사용하여 달성될 수 있다.
입력 항목을 파싱하는 동안, 매개변수 "유형"은 용어가 주소 관련 정보를 포함하는지와 그렇다면 그 용어가 나타내는 주소 관련 정보의 유형을 가리키기 위하여 그 용어에 할당되거나 주석이 달릴 수 있다. 이 유형의 주석달기는 지도 검색의 정확성을 증가시키기 위해 사용될 수 있다. 예를 들면, 이 유형의 주석달기는 파싱동작에서 사용되는 주소 관련 정보를 포함하는 하나 이상의 데이터베이스들 또는 사전들을 참조하여 실행될 수 있다.
용어들에 주석 달린 유형들은 미리 정의될 수 있다. 예를 들면, 유형들은 행정구역들을 나타내는 용어들을 주석하기 위해,
Figure 112012002083763-pct00004
(지방),
Figure 112012002083763-pct00005
(시),
Figure 112012002083763-pct00006
(구),
Figure 112012002083763-pct00007
(군),
Figure 112012002083763-pct00008
(마을)과 같은 행정구역 레벨들을 포함할 수 있다. 또한 이 유형들은 도로나 거리를 나타내기 위해 “Road(길)”유형을 포함할 수 있다. 유형들은 용어가 특정 주소 접미사 또는 접두사에 상응함을 표시하기 위해 "주소 이름 접미사", "방향 접미사" (예: 남쪽, 북쪽 등), 및 "수량 접미사"와 같은 주소 접미사 또는 접두사를 포함할 수 있다. 특히, 유형 "None"은 주소 관련 정보를 나타내지 않는 용어를 설명하기 위해 정의된다. 유형 "None"이 용어에 할당되는지에 대한 결정은 지도 검색 엔진이 사용한 주소 관련 정보를 포함하는 하나 이상의 사전들 또는 데이터베이스들 내의 항목들에 의존한다. 그리고 유형 "None"은 실제 지리적 위치를 나타내지만 그럼에도 불구하고, 파싱 동작에 사용된 주소 관련 정보를 포함하는 하나 이상의 사전들 또는 데이터베이스들에서 매칭을 갖지 않는 용어에 할당될 수 있다. 용어들을 주석하기 위한 유형들은 언어들의 특징에 기초하여 다른 언어들에 대하여 특별히 정의될 수 있다. 일부 실시예에서는 파싱이 지도 검색 수행 전에 실행될 수 있다. 이 경우 검색 엔진은, 관련 유형이 주소 관련 정보를 지시하고 이 유형이 "None"이 아닐 때, 파싱 동작의 결과인 위치 파트를 사용하여, 예를 들어, 지오코드(geocodes)들로 알려진 지리적 코드들을 얻기 위한 지오코드 데이터베이스를 검색함으로써, 위치를 우선 결정할 수 있다. 지오코드는 위도 및 경도, 혹은 다른 방식으로 표시된다.
용어의 유형이 "None"일 때, 예컨데, 용어의 지오코드에 대한 검색에 의한 위치 결정은 수행되지 않는다. 위치가 결정된 후, 예를 들면, 위치 파트와 관련된 지오코드가 획득된 후 지역에 또는 지역근처(예컨대, 지오코드에 의해 정의된)의 쿼리 파트에 대한 검색이 수행되고 그 검색결과는 사용자에게 전달된다. 위치 파트와 쿼리 파트를 추출하고 식별하기 위해 우선 입력 항목을 파싱하고 그 다음에 예를 들어 위치 파트에 대한 지오코드를 검색해서 위치를 결정하는 이러한 접근법의 구현은 예를 들어, 매칭된 지오코드들을 찾아 지오코드 데이터베이스에 초기 입력 항목 또는 이의 세그먼트들을 선처리하지 않고 전송함으로써, 선처리없이 초기 입력 항목 또는 이의 세그먼트들을 기반으로 하는 지도 검색의 수행에 의존하는 것을 피하기 위하여 사용될 수 있다. 또한 이 접근법의 구현은 관련 지도 검색 결과를 짧은 검색 시간 내에 찾는데 있어서, 지도 검색이 높은 정확성을 가지고 효율적으로 실행되도록 할 수 있다.
본 명세서에서, 파싱 및 유형 주석의 동작들은 전체적으로 “토큰화(tokenization)”라고 한다. 입력 항목을 세그먼트들로 파싱하고 입력 항목의 세그먼트들에 유형을 주석하는 파싱 동작은 입력 항목을 토큰들의 시퀀스, 또는 토큰 시퀀스로 토큰화하는 것으로 기술될 수 있다. 각 토큰은 입력 항목의 세그먼트를 나타내는 용어와 그 용어에 주석된 유형으로 정의되며, 그 유형은 그 용어가 나타내는 주소 관련 정보의 종류를 지시한다. 입력 항목의 위치 파트와 쿼리 파트는 토큰 시퀀스를 위치 파트와 쿼리 파트로 분리하여 결정될 수 있다.
입력 항목을 위치 파트와 쿼리 파트로 파싱하는 실시예에서, 통계 모델은 다양하게 가능한 입력 항목의 세그먼트들에 대한 서로 다른 그룹화를 평가하는 통계 점수를 제공하는데 이용될 수 있고, 가장 높은 통계 점수의 세그먼트들은 파싱 동작의 결과로 선택될 수 있다. 본 명세서에서 통계 모델은 훈련 모델을 기반으로 훈련될 수 있고, 데이터 제공자, 정부기관, 옐로우(yellow) 페이지와 같은 전화번호부 등과 같은 다른 데이터 소스로부터 획득된 훈련 데이터를 이용하여 훈련될 수 있다. 훈련데이터는 사업체 이름들과 같은 개체들의 표제들과 주소들을 포함한다.
훈련 모델에서, 표제들과 주소들 각각은 토큰 시퀀스로 토큰화되고, 용어들, 유형들, 소정 용어 시퀀스 및 토큰 시퀀스에 포함된 유형 시퀀스에 대하여 표제들과 주소들에서 출현 빈도가 각각 기록된다. 토큰 시퀀스를 위치 파트와 쿼리 파트로 분리할 때, 점수는, 각각의 가능한 분리에 대하여, 통계모델에 기록되는 빈도들에 기초하여 계산된다. 통계모델에 의해 제공된 점수를 기반으로 하여, 특정 필터링 규칙이 부적절한 분리를 제거하고 적절한 분리를 선택하기 위해 적용될 수 있다.
도 1은 본 문서에 기술된 지도 검색 시스템들 및 방법들의 구현에 적합한 네트워크 시스템(100)의 예시도이다. 네트워크 시스템(100)은 클라이언트들(110)과 서버들(120)을 위해 통신을 제공하는 네트워크(130)를 통해 하나 이상의 서버들(120)에 연결되거나 통신하는 하나 이상의 클라이언트들(110)을 포함한다. 도 1의 예시는 간략하게 두 클라이언트들(110)과 두 서버들(120)을 도시한다. 다양한 실시예들에 있어, 네트워크 시스템(100)은 더 많거나 적은 클라이언트들(110)과 서버들(120)을 포함할 수 있다. 일부 실시예에서, 클라이언트(110)는 서버(120)의 일부 기능을 수행할 수도 있고, 서버(120)는 클라이언트(110)의 일부 기능을 수행할 수도 있다. 지도 검색 엔진은 다양한 구성(예컨대, 하나 이상의 서버들(120)에서 또는 하나 이상의 서버들(120)과 하나 이상의 클라이언트 둘 모두에서)의 네트워크 시스템(100)으로 구현될 수 있다.
클라이언트들(110)은 모바일 전화기, 퍼스널 컴퓨터, 개인 정보 단말기(PDA), 랩탑 등과 같은 디바이스, 이들 디바이스 중 하나에서 실행되는 쓰레드(thread) 또는 프로세스, 및/또는 이들 디바이스 중 하나에 의해 실행가능한 객체를 포함하여 다양한 형태로 구현될 수 있다. 각 클라이언트(110)는 사용자로부터 입력 항목을 수신하고 이 입력 항목에 대한 검색 결과를 사용자에게 표시하는 지도 검색 인터페이스와, 네트워크(130)를 통해 입력 항목을 하나 이상의 서버들(120)에게 송신하고 하나 이상의 서버들(120)로부터 검색 결과들을 수신하는 통신 인터페이스를 포함한다.
도 1의 예시에서, 각 서버(120)는 네트워크(130)를 통해 수신한 입력 항목을 파싱하기 위한 지도 검색 엔진의 파싱 시스템(200)과, 파싱 시스템(200)의 파싱 결과들을 기반으로 지도 검색을 수행하고 검색결과를 반환하는 지도 검색 엔진의 지도 검색 시스템(140)으로 구성된 하나의 서버 개체를 포함한다. 검색결과들은 네트워크(130)를 통해 클라이언트들(110)에게 송신된다. 일부 실시예에서, 파싱 시스템(200)과 지도 검색 시스템(140)은 별도의 서버에 존재한다. 다른 실시예들에서, 파싱 시스템(200)은 지도 검색 시스템(140)의 일부분으로 통합된다. 각각의 클라이언트들(110)과 서버들(120)은 하나 이상의 통신 링크, 예컨데, 유선 및 무선 통신 링크들 및 연결을 통해 네트워크(130)에 연결될 수 있다.
네트워크(130)는 LAN(local area network), WAN(wide area network), MAN(metropolitan area network), 전화네트워크, 인트라넷, 인터넷, 또는 이들과 다른 네트워크의 둘 이상의 조합과 같은 다양한 통신 네트워크 구성으로 구현될 수 있다.
도 2는 사용자로부터의 쿼리 입력 항목을 입력 항목에 의해 지정된 위치를 나타내는 위치 파트“어디”와 위치와 관련된 대상을 찾기 위한 요청을 나타내는 쿼리 파트 “무엇”으로 분리하거나 파싱하는 파싱 시스템(200)의 예를 도시한다.
예를 들어, 입력 항목은
Figure 112012002083763-pct00009
(상하이 레스토랑)일 수 있고,
Figure 112012002083763-pct00010
(레스토랑)은 사용자 검색의 대상이 레스토랑임을 지시하는 쿼리 파트이고,
Figure 112012002083763-pct00011
(상하이)는 검색 대상의 위치가 상하이 도시 내에 있거나 근처에 있음을 지시하는 위치 파트이다. 파싱 시스템(200)에 의한 파싱에 기초하여, 지도 검색 시스템(140)은 “상하이”내 또는 근처의 “레스토랑”에 대해 검색하고, 사용자에게 전달하기 위한 검색 결과들을 반환한다.
파싱 시스템(200)은 더 작은 조각들로 입력 항목을 분석하고, 세그먼트들 또는 더 작은 조각들을 처리하여 위치 파트와 쿼리 파트를 구성하도록 설계된다. 파싱 시스템(200)이 파싱한 더 작은 조각이나 세그먼트들은 너무 작게 존재할 수 없기 때문에, 세그먼트들은 통계적으로 서로 관련성을 거의 가지고 있지 않으며, 이와 같은 작은 조각들로부터 의미있는 위치 파트와 쿼리 파트를 구성하기 위하여 상당한 처리와 시간 지연이 요구된다. 예를 들어, 입력 항목이
Figure 112012002083763-pct00012
(상하이 레스토랑)인 상기 예는 다양한 세그먼트들로 분리될 수 있다: (1) 개별적인 중국어 문자들
Figure 112012002083763-pct00013
(상),
Figure 112012002083763-pct00014
(바다),
Figure 112012002083763-pct00015
(먹기 또는 음식), 및
Figure 112012002083763-pct00016
(빌딩); (2)
Figure 112012002083763-pct00017
,
Figure 112012002083763-pct00018
, 및
Figure 112012002083763-pct00019
; 및 (3)
Figure 112012002083763-pct00020
(상하이) 및
Figure 112012002083763-pct00021
(레스토랑). 예(1)과 예(2)로 파싱된 세그먼트들은 위치 파트와 쿼리 파트를 구성하는데 덜 유용하며, 소망하는 위치 파트와 쿼리 파트를 구성하기 위해 추가적인 세그먼트화나 더 작은 조각들의 그룹화가 요구된다. 그에 반해, 예(3)으로 파싱된 조각들은 적절한 위치 파트(상하이의
Figure 112012002083763-pct00022
)와 쿼리 파트(레스토랑의
Figure 112012002083763-pct00023
)이다. 특정 언어들에는, 그 언어들의 특정 속성들 때문에, 사용자로부터의 입력 항목을 파싱하는데 어려움이 있다. 예를 들면, 영어로 된 사용자 쿼리는 두 개의 근접 단어들 사이에 공백이 있는 영어 단어들로 구성된다. 예를 들어, "Shanghai Restaurant"는 "Shanghai"와 "Restaurant"가 공백에 의해 분리된다. 영어에서, 두 개의 근접 영어 단어들 사이의 그러한 공백은 입력 항목을 분할하기 위한 자연스러운 경계선들을 제공한다. 그러나 중국어, 일본어, 또는 한국어 사용자 쿼리의 입력 항목은 두 개의 근접 문자들(예컨대,
Figure 112012002083763-pct00024
, Shanghai Restaurant) 사이에 공백이 없는 연속한 문자의 시퀀스일 수 있다. 본 명세서에서 기술된 파싱 시스템(200)은 주소를 나타내는데 사용되는 위치들, 이름들, 접미사들 및 접두사들을 포함하는 주소 관련 정보의 하나 이상의 사전들 및 그 밖의 위치와 이름 데이터베이스들에 기초하여 지능적 파싱을 수행하도록 설계되어, 입력 항목으로부터 위치 정보를 추출하고 적절한 위치 파트와 쿼리 파트를 구축할 수 있다.
예를 들면, 파싱 시스템(200)은 사용자 쿼리의 입력 항목을 분석하기 위하여, 주소 관련 정보에 대한 하나 이상 사전들과 데이터베이스들을 기반으로 하는 토큰화기(tokenizer)를 포함하도록 구현될 수 있어서, 입력 항목의 위치 이름은 토큰화기에 의해 단일 세그먼트로 유지된다. 이 토큰화기는 입력 항목 중 위치 이름인 세그먼트의 원치 않는 분리를 최소화하도록 입력 항목의 파싱을 수행하기 위해, 행정 개체 이름, 지역 이름들, 도로 이름들, 다양한 접미사들 및 접두사들을 포함하는 사전을 사용할 수 있다. 예를 들어, 파싱 시스템(200)은 중국어 입력 항목에 포함된 중국 거리 이름
Figure 112012002083763-pct00025
(챙푸길)을 더 작은 조각들로 분리하는 대신에 하나의 세그먼트로 유지할 수 있다. 이와 같은 주소 정보 인식 파싱의 검색 정확 도 및 검색 응답 시간은, 주소 관련 정보를 인식하지 않고 입력 항목에 포함된 위치 이름을 더 작은 조각으로 분리(예컨대, 중국 거리 이름
Figure 112012002083763-pct00026
(챙푸길)을 개별 중국 문자
Figure 112012002083763-pct00027
(챙),
Figure 112012002083763-pct00028
(푸),
Figure 112012002083763-pct00029
(길)로 분리함)하는 세그멘테이터 시스템(segmentator system)을 이용하는 것보다 우수한 경향이 있다. 실시예들에서, 토큰화기는 입력 항목의 세그먼트가 주소 관련 정보를 나타내는지와 그렇다면 그 세그먼트가 나타내는 주소 관련 정보의 종류를 가리키기 위하여 그 세그먼트에 유형을 주석할 수 있다.
도 2의 파싱 시스템(200)은 토큰 기반 파싱 시스템이며 도시된 예에서 토큰화 모듈(210), 모델 훈련 모듈(220), 분석 모듈(230), 사전(240), 및 모델(250)을 포함한다. 이 모듈들은 집합적으로 동작하여, 파싱 모듈(230)은 입력 항목을 지도 검색을 수행하기 위한 위치 파트와 쿼리 파트로 파싱할 수 있다. 토큰화 모듈(210)은 위치 이름들의 사전(240)으로부터의 위치 정보에 기초하여 입력 항목을 토큰들로 토큰화한다. 파싱 모듈(230)은 외부로부터 입력 항목을 수신 하고, 토큰화를 위해 토큰화 모듈(210)에 입력 항목을 보내고, 토큰화 모듈(210)로부터 토큰들을 수신하고, 수신된 토큰들을 모델(250)로부터 온 토큰들, 토큰들의 시퀀스, 및 다른 아이템의 통계 점수에 기초하여 처리하여, 파싱 동작을 수행한다. 하나 이상의 데이터 소스로부터 획득된 훈련 데이터를 수신하고 처리하는 모델 훈련 모듈(220)은 모델(250)을 생성하고 훈련시킨다.
토큰화 모듈(210)은 예를 들어 사전(240)에서 획득될 수 있는 주소 관련 정보와 위치 관련 정보에 기초하여 입력 항목을 토큰들로 토큰화한다. 실시예들에서, 토큰은 입력 항목의 세그먼트를 나타내는 용어와 그 용어에 주석되는 유형을 포함하도록 정의될 수 있고, 이 유형은 용어가 주소 관련 정보를 나타내는지 여부와 만일 그렇다면 그 용어가 나타내는 주소 관련 정보의 종류를 가리킨다. 토큰화 모듈(210)은 주소 관련 정보를 인식하고, 주소 관련 정보를 의미있는 토큰으로 토큰화할 수 있다. 예를 들어, 토큰화 모듈(210)은 입력 항목의 중국어 구문
Figure 112012002083763-pct00030
를 도로 이름으로 인식하고, 용어로서 구문
Figure 112012002083763-pct00031
와 그 구문
Figure 112012002083763-pct00032
가 나타내는 도로 이름을 가리키는 유형 "Road" 매개변수로 이루어진 단일 토큰으로 토큰화할 수 있다. 토큰화 모듈(210)은 토큰화를 수행하기 위해 주소 관련 정보 또는 위치 관련 정보의 사전(240)을 사용할 수 있다. 이 사전(240)은 주소 관련 정보를 저장한다.
도 3은 사전(240)의 예시적 구조를 보여주는 개략도이다. 상기 사전(240)은 사전 항목들(DEs, 300)을 갖고, 각 DE(300)은 용어 필드(310) 및 유형 필드(320)인 두 가지 필드를 갖는다. 용어 필드(310)는 주소 관련 정보를 나타내는 용어 또는 구(phrase)를 저장한다. 용어는 주소 명칭일 수 있으며, 예를 들어,
Figure 112012002083763-pct00033
(Beijing City),
Figure 112012002083763-pct00034
(Chaoyan District),
Figure 112012002083763-pct00035
(Chaoyan)과 같은 행정 지역 명칭이거나 또는
Figure 112012002083763-pct00036
(Changde Road),
Figure 112012002083763-pct00037
(Chengfu Road)와 같은 도로 명칭일 수 있다. 또한, 용어는 주소 관련 접미사 또는 접두사를 나타낼 수 있다. 예를 들면, 용어는
Figure 112012002083763-pct00038
(province),
Figure 112012002083763-pct00039
(city),
Figure 112012002083763-pct00040
(district),
Figure 112012002083763-pct00041
(country),
Figure 112012002083763-pct00042
(village),
Figure 112012002083763-pct00043
,
Figure 112012002083763-pct00044
(road)와 같은 주소 관련 접미사 또는
Figure 112012002083763-pct00045
(East),
Figure 112012002083763-pct00046
(West),
Figure 112012002083763-pct00047
(South),
Figure 112012002083763-pct00048
(North),
Figure 112012002083763-pct00049
(Northeast),
Figure 112012002083763-pct00050
(Southeast),
Figure 112012002083763-pct00051
(Northwest),
Figure 112012002083763-pct00052
(Southwest)과 같은 방향 접두사 또는 접미사, 또는 (Number)와 같은 수량 접미사일 수 있다. 또한 용어는 예컨대 숫자인 주소를 설명하는 데 사용할 수 있는 다른 단어들 및 표현들일 수 있다. DE (300)의 유형 필드(320)는 용어가 나타낼 수 있는 주소 관련 정보의 유형을 가리키는 유형을 포함한다. 다른 유형들은 정의될 수 있다. 예를 들면, 유형들은
Figure 112012002083763-pct00053
(province),
Figure 112012002083763-pct00054
(city),
Figure 112012002083763-pct00055
(district),
Figure 112012002083763-pct00056
(country),
Figure 112012002083763-pct00057
(village)와 같은 행정 지역의 레벨, "주소 명칭 접미사", "방향 접미사" 및 "수량 접미사'와 같은 주소 접미사 또는 접두사를 포함한다.
유형들은 유형 "도로" 와 유형 "숫자"를 포함할 수 있고, 유형 "도로"는 상응하는 용어가 도로 명칭을 나타냄을 가리키기 위하여 정의되고, 유형 "숫자"는 상응하는 용어가 예컨대 거리 번호와 같은 숫자를 나타냄을 가리키기 위하여 정의된다. 또 다른 유형은 필요에 따라 정의될 수 있다. 선택적으로, 사전(240)의 DE(300)은 용어의 언어,(예컨대, 아랍어, 중국어, 일본어, 영어, 독일어, 한국어 등)를 나타내기 위하여 언어 필드(330)를 더 갖고 있다. 일부 구현예에서, 사전(240)은 기존의 주소 정보 데이터베이스와 같은 기존 데이터에 기초하여 구축된다. 다른 구현예에서, 사전의 수록 항목들은 미리 정의될 수 있다.
도 2를 다시 참조하면, 토큰화 모듈(210)은 입력 항목을 받고, 그 입력 항목을 토큰들로 토큰화하고, 토큰화된 결과를 토큰 시퀀스로서 출력한다. 일부 구현예에서, 토큰화 모듈(210)은 사전(240)을 토대로 토큰화를 먼저 실시하여 입력 항목 내 주소 관련 단어들 또는 세그먼트들을 인식한다. 예를 들면, 토큰화 모듈(210)은 사전(240)에 기초하여 토큰화를 실시하기 위하여 포워드 최대 매칭(Forward Maximum Matching, FMM) 방법을 사용한다. 포워드 최대 매칭 방법은 초기 최대 문자열로써, 여러 문자들(예를 들면, 중국 문자들)을 포함하는 문자열을 선택하고, 초기 최대 문자열이 사전(240) 내 용어와 매칭하는지를 결정한다. 초기 최대 문자열이 사전(240) 내 어떠한 용어와도 일치하지 않으면, 초기 최대 문자열로부터 하나의 문자를 감소시키고, 나머지 문자들을 포함하는 문자열과 사전(240) 내 용어와 매칭하는지 결정하는 매치 결정이, 매칭된 용어가 사전(240)에서 발견되거나 문자열이 공백으로 감소될 때까지 계속된다. 사전(240)에서 찾은 매칭된 용어와 그 매칭된 용어와 연관된 유형이 토큰의 용어와 유형이 된다. 포워드 최대 매칭 방법에 더하여, 예컨대, 백워드 최대 매칭(Backward Maximum Matching, BMM) 방법과 양방향 매칭(Bi-direction Matching, BM) 방법 같은 다른 방법이 또한 사용될 수 있다. 포워드 최대 매칭 방법, 백워드 최대 매칭 방법 및 양방향 매칭 방법을 구현하는 여러 예시들이 공개 문헌에 나타나 있다.
사전(240)에 기반한 상기 프로세싱은 입력 항목 중 위치를 나타낼 가능성이 있는 하나 이상의 부분을 식별한다. 일부 구현에서, 토큰화 모듈(210)은 숫자를 인식할 수 있고, 특정 숫자가 용어로서 사전(240) 내 저장되어 있지 않을지라도 그 숫자를 유형 "숫자"를 갖는 토큰으로 토큰화한다. 일부 구현예에서, 주소 관련 정보로서 인식되지 않는 입력 항목의 부분들(즉, 사전(240) 내 매칭된 용어가 없는 입력 항목의 부분들)을 위해, 토큰화 모듈(210)은 입력 항목의 부분들을 토큰의 용어가 되는 단어들로 분절(segment)할 수 있고, 이 토큰들의 유형은 "None"(없음)으로 주석이 달린다. 유형 "None"(없음)은 상응하는 용어가 사전(240)에 정의된 어떠한 유형에도 속하지 않고 또한 그 상응하는 용어가 주소 관련 정보를 나타내지 않음을 가리킨다. 예를 들어,
Figure 112012002083763-pct00058
(Chengda Lamps and Lanterns Market)이란 중국어 입력 항목을 토큰화할 때, 토큰화 모듈(210)은 위치 명칭으로서
Figure 112012002083763-pct00059
(Chengda)를 수록 항목으로 갖고 있지 않은 사전(240)을 참조함으로써, 중국어구
Figure 112012002083763-pct00060
(Chengda)는 위치 명칭이 아니라고 결정을 할 수 있다.
토큰화 모듈(210)에 의해 생성된 토큰들은 통계 모델(250)에 의해 제공된 통계 점수들과 연관되고, 파싱 모듈(230)은 입력 항목을 위치 부분 및 쿼리 부분으로 파싱하는데 통계점수를 고려한다. 파싱 시스템(200)의 모델 훈련 모듈(220)은 통계 모델(250)을 업데이트하고, 훈련시키기 위해 제공된다.
도 4는 모델 훈련 모듈(220)이 통계 모델(250)을 훈련시키기 위해 수행하는 예시적 프로세스(400)를 도시하는 순서도이다.
모델 훈련 모듈(220)은 S410 단계에서 하나 이상의 소스로부터 훈련 데이터를 얻는다. 훈련 데이터는 투-박스 쿼리 로그(two-box query log)로부터 얻어질 수 있다. 투-박스 로그의 품질이 고성능 검색에는 충분하지않는 애플리케이션에 있어서, 훈련 데이터는 다른 소스로부터 얻어질 수 있다. 예를 들면, 훈련 데이터는 기업 또는 정부 부처와 같은 데이터 공급자에 의해 제공될 수 있다. 훈련 데이터는 전화번호부, 지도 데이터베이스 등과 같은 다른 소스로부터 얻어질 수 있다. 훈련 데이터는 주소와 표제를 포함할 수 있다. 표제는 예컨대, "구글"과 같은 기업 명칭,
Figure 112012002083763-pct00061
(Kejian Building)과 같은 건물 이름,
Figure 112012002083763-pct00062
(Beijing City Government)와 같은 관청 이름과 같은 개체의 이름을 나타낸다. 주소의 예에는,
Figure 112012002083763-pct00063
(No. 29 of Zhun Guan Cun Boulevard, Haidian District, Beijing City)가 있다. 일부 구현예에서, 처음으로 획득된 미가공 데이터는 훈련 데이터로써 사용되기 전에 전처리될 필요가 있다. 미가공 데이터의 전처리는 데이터 중 불필요한 부분을 제거하는 것이며, 예를 들어, 표제에서 행정 지역의 접두어, 주소에서 추적 명칭(trailing title)을 삭제하는 것을 의미한다.
예를 들어, 표제의 미가공 데이터의 일부가
Figure 112012002083763-pct00064
(Haidian Hospital in Haidian District of Beijing City) 라면, 전처리는 앞에 놓인 행정 지역 이름
Figure 112012002083763-pct00065
(Haidian District of Beijing City) 제거하여 데이터의 일부를
Figure 112012002083763-pct00066
(Haidian Hospital)라는 순수한 명칭으로 필터링한다. 다른 예를 들면, 주소의 미가공 데이터 일부
Figure 112012002083763-pct00067
(Haidian Hospital, No. 29 of Zhun Guan Cun Boulevard, Haidian District, Beijing City)에 대하여, 전처리는 뒤에 놓인 병원 이름
Figure 112012002083763-pct00068
(Haidian Hospital)을 제거하여 미가공 테이터 일부를
Figure 112012002083763-pct00069
(No. 29 of Zhun Guan Cun Boulevard, Haidian District, Beijing City)라는 순수한 주소로 필터링한다.
S420 단계에서, 모델 훈련 모듈(220)은 전처리된 훈련 데이터 내 표제 및 주소들 중 하나를 토큰화 모듈(예컨대, 토큰화 모듈(210))에 전송하여 토큰화를 수행하고, 그 토큰화 모듈부터, 용어와 유형을 구비한 토큰들의 토큰 시퀀스를 토큰화 결과로서 수신한다. 선택적으로, S430 단계에서 토큰 시퀀스 내 잘못된 주석된 유형을 수정하기 위하여 유형 수정이 실시된다. 유형 수정은 미리 정의된 규칙들에 따라 수행된다. 예를 들면, 규칙은 유형 "수량 접미사"를 갖는 용어가 유형 "숫자"를 갖는 용어의 뒤를 잇지 않으면, 유형 "수량 접미사"를 유형 "None"으로 변경하도록 규정할 수 있다. 예를 들어,
Figure 112012002083763-pct00070
(No. 29 of Zhun Guan Cun Boulevard) 주소를 토큰화한 후에, 유형 "숫자'를 갖는 용어 "29"가 얻어지고, 유형 "수량 접미사"를 갖는 용어
Figure 112012002083763-pct00071
(Number)가 얻어진다."수량 접미사"의 유형을 갖는 용어
Figure 112012002083763-pct00072
(Number)는 "숫자"의 유형을 갖는 용어 "29"의 뒤를 잇고 있기 때문에,
Figure 112012002083763-pct00073
(Number)의 유형은 변화되지 않는다. 그러나
Figure 112012002083763-pct00074
(China Time-honored Brand Donglaishun)이란 표제를 토큰화한 후, "수량 접미사" 유형을 갖는 용어
Figure 112012002083763-pct00075
가 얻어질 수 있지만, 이 동일한 중국어 문자
Figure 112012002083763-pct00076
는 더 이상 숫자를 나타내지 않고, 오히려 사업체의 브랜드를 의미한다. 따라서 이 유형은 "None"으로 변경될 것이다. 선택적으로, S440 단계에서, 토큰 시퀀스 내 접미사 또는 접두사 유형이 동일한 용어를 갖는 인접 토큰들은 단일의 토큰으로 결합될 수 있다.
S450 단계에서, 토큰 시퀀스 내 유형들 및 용어들에 대하여 제목들과 주소들 내에서 출현 횟수가 각각 카운팅된다. 일부 구현예에서, 카운팅은 토큰 시퀀스 내 특정 유형 시퀀스와 용어 시퀀스 대하여 수행된다. 일 구현예에서, 다음 항목이 표제 및 주소 내에 출현하는 횟수가 카운팅된다.
- 단일 용어인 용어 유니그램(unigram)
- 두 개의 인접한 용어로 구성된 용어 시퀀스인 용어 바이그램(bigram)
- 유형 "None"인 인접한 용어들의 시퀀스
- 모든 용어의 시퀀스
- 단일 유형인 유형 유니그램
- 두 개의 인접한 유형으로 구성된 유형 시퀀스인 유형 바이그램
- 모든 유형의 시퀀스
예를 들면, 주소
Figure 112012002083763-pct00077
(Beijing, Chaoyang District, Datun Road)가 여러 토큰([용어: 北京(Beijing), 유형: 市(City)], [용어:
Figure 112012002083763-pct00078
(Chaoyang), 유형:
Figure 112012002083763-pct00079
(District)] 및 [용어:
Figure 112012002083763-pct00080
(Datun Road), 유형: 도로(Road)])를 포함하는 토큰 시퀀스로 토큰화되면, 다음 아이템들이 주소에 출현하는 회수가 카운트된다.
용어 유니그램: "北京"(Beijing),
Figure 112012002083763-pct00081
(Chaoyang),
Figure 112012002083763-pct00082
(Datun Road)
용어 바이그램:
Figure 112012002083763-pct00083
(Chaoyang of Beijing),
Figure 112012002083763-pct00084
(Datun Road, Chaoyang)
모든 용어의 시퀀스:
Figure 112012002083763-pct00085
(Datun Road, Chaoyang, Beijing)
유형 유니그램:
Figure 112012002083763-pct00086
(City),
Figure 112012002083763-pct00087
(District), "路"(Road)
유형 바이그램:
Figure 112012002083763-pct00088
(City, District),
Figure 112012002083763-pct00089
(District, Road)
모든 유형의 시퀀스:
Figure 112012002083763-pct00090
(City, District, Road)
상술한 아이템에서, 유형 "None"을 갖는 인접 용어들의 시퀀스는 이 실시예에서 카운트되지 않는데, 토큰 시퀀스에서([용어: 北京(Beijing), 유형: 市(city)], [용어:
Figure 112012002083763-pct00091
(Chaoyang), 유형:
Figure 112012002083763-pct00092
(District)], 및 [용어:
Figure 112012002083763-pct00093
(Datun Road), 유형: 路(Road)])에서, 유형 "None"을 갖는 용어가 없기 때문이다.
카운팅된 아이템 각각에 대하여, 그 아이템이 표제에 출현한 횟수와 주소에 출현한 횟수가 각각 모델(250) 내에 저장된다(단계 S460)
도 5는 모델(250)의 예시적 구조를 보여준다. 모델(250)은 모델 항목(MEs, 500)을 포함한다. 각 카운팅된 아이템은 모델(250) 내에 상응하는 모델 항목을 갖는다. 일 실시예에서, 모델 항목은 4가지 필드들을 갖는다.
- 용어 유니그램, 유형 유니그램 및 유형이 "None"인 인접한 용어들의 시퀀스를 포함하는 용어 또는 유형 시퀀스, 모든 용어의 시퀀스, 유형 바이그램 및 모든 유형의 시퀀스 중 하나의 콘텐츠를 기록하는 "아이템" 필드(510);
- 아이템 유형이 용어 유니그램, 유형 유니그램, 유형 바이그램, 용어 바이그램, 유형이 "None"인 인접한 용어들의 시퀀스, 모든 용어의 시퀀스 및 모든 유형의 시퀀스에 대조 아이템 유형들 중 하나가 어느 유형인지를 기록하는 "아이템 유형" 필드(520);
- 상응하는 아이템이 표제에서 출현하는 횟수를 기록하는 "표제 내 출현 횟수" 필드(530);
- 상응하는 아이템이 주소에서 출현하는 횟수를 기록하는 "주소 내 출현 횟수" 필드(540).
일부 구현예에서, 모델 항목은 아이템의 언어를 가리키는 제5 필드인 "언어" 필드(550)를 가질 수 있다.
S450 단계에서, 주소
Figure 112012002083763-pct00094
(Beijing Chaoyang Datun Road)에 대해 아이템
Figure 112012002083763-pct00095
(Chaoyang Datun Road)이 카운팅되는 예를 고려하자. "아이템 필드", "아이템 유형" 필드 및 "언어" 필드(이들이 존재하는 경우) 모두가 아이템
Figure 112012002083763-pct00096
(Chaoyang Datun Road)와 모두 매칭하는 기존의 모델 항목이 없다면,
Figure 112012002083763-pct00097
(Chaoyang Datun Road)에 대한 모델 항목이 생성되며, 이 모델 항목의 "아이템" 필드에는
Figure 112012002083763-pct00098
의 값이 주어지고, "아이템 유형" 필드에는
Figure 112012002083763-pct00099
의 값이 주어지고, "아이템 유형" 필드에는 "용어 바이그램"의 값이 주어지고, "표제 내 출현 횟수" 필드에는 0 값이 주어지고, "주소 내 출현 횟수" 필드에는 1 값이 주어지고, "언어" 필드에는 "중국어" 값이 주어진다.
"아이템 필드", "아이템 유형" 필드 및 "언어" 필드 모두가 아이템
Figure 112012002083763-pct00100
(Chaoyang Datun Road)와 모두 매칭하는 기존의 모델 항목이 이미 존재하면, 모델 항목의 "표제 내 출현 횟수" 필드의 값은 1만큼 증가되고, 모델 항목의 다른 필드의 값에는 변화가 없다.
구체적인 예로, 유형이 "모든 유형의 시퀀스"인 아이템
Figure 112012002083763-pct00101
(City, District, Road)가
Figure 112012002083763-pct00102
(Beijing Chaoyang Datun Road) 주소에 대하여 카운팅되는 다른 예를 고려하자. "아이템" 필드가
Figure 112012002083763-pct00103
(City, District, Road)이고, "아이템 유형" 필드가 "모든 유형의 시퀀스"이고, "언어" 필드가 "중국어"인 기존 모델 항목이 존재한다면, 즉, "아이템" 필드, "아이템 유형" 필드 및 "언어" 필드 모두가 아이템
Figure 112012002083763-pct00104
(City, District, Road)와 매칭되는 기존의 항목이 존재한다면, 모델 항목의 "표제 내 출현 횟수" 필드의 값 및 "언어" 필드의 값에는 변화가 없고, 모델 항목의 "주소 내 출현 횟수" 필드의 값은 1만큼 증가된다.
470 단계에서, 훈련 모델은 모든 표제들과 주소들이 프로세스되고 있는지 체크한다. 모든 표제들과 주소들이 프로세스 되었다면, 통계 모델(250)을 훈련시키기 위한 프로세스(400)은 완료되고, 통계 모델(250)은 사용자 쿼리로부터 입력 항목을 파싱하는 파싱 모듈(230)에 의해 사용될 수 있도록 생성되거나 업데이트 된다. 그렇지 않다면, 프로세스(400)은 다음 표제 또는 주소를 처리하는 S420 단계로 돌아간다.
모델 훈련 모듈(220)에 의한 통계 모델(250)의 훈련은 다양한 방법으로 실행될 수 있다. 일 구현예에서, 예를 들면, 모델 훈련 모듈(220)은 시스템(200)의 동작 초반에 통계 모델(250)을 훈련하고, 특정 사건(예를 들면, 훈련 데이터가 업데이트 됨)이 발생 될 때 또는 주기적으로 통계 모델(250)을 업데이트한다.
모델 훈련 모듈(220)에 의해 생성된 통계 모델(250)은 아이템, 토큰 또는 토큰 시퀀스에 대한 위치 통계 점수(location statistical score) 및 쿼리 통계 점수(query statistical score)를 결정하기 위하여 파싱 모듈(230)에 의해 사용될 수 있다. 여기서, "아이템"은 표제들과 주소들 내 출현 횟수가 카운팅되는 아이템, 즉, 용어 유니그램, 용어 바이그램, 유형이 "None"인 인접한 용어들의 시퀀스, 모든 용어 시퀀스, 유형 유니그램, 유형 바이그램 또는 모든 유형의 시퀀스를 가리킨다. 아이템, 토큰 또는 토큰 시퀀스의 위치 통계 점수는 그 아이템, 토큰 또는 토큰 시퀀스가 위치와 관련되는 확률을 나타낸다. 아이템, 토큰 또는 토큰 시퀀스의 쿼리 통계 점수는 그 아이템, 토큰 또는 토큰 시퀀스가 쿼리(즉, 엔티티(entity) 명칭 또는 엔티티 범주)와 관련되는 확률을 나타낸다.
일부 구현예에서, 아이템이 통계 모델(250) 내에 상응하는 항목을 갖는다면, 그 아이템의 위치 통계 점수 및 쿼리 통계 점수는 수식 (1) 및 (2)를 사용하여 각각 계산된다.
아이템의 위치 통계 점수 = log(l_count) * l_count / (l_count + q_count)... 수식 (1);
아이템의 쿼리 통계 점수 = log(q_count) * q_count / (l_count + q_count)... 수식 (2),
여기서, l_count and q_count는 통계 모델(250) 내 저장된 표제들과 제목에서 아이템이 각각 출현한 횟수를 나타낸다. 예를 들면, 용어 유니그램
Figure 112012002083763-pct00105
(Chaoyang)의 아이템에 대한 위치 및 쿼리 통계 점수들을 연산할 때, 주소들과 표제들에서 용어 유니그램
Figure 112012002083763-pct00106
(Chaoyang)의 출현 횟수가 각각 N1 및 N2일 경우, 아이템의 위치 통계 점수는 logN1*N1/(N1+N2)로 계산되고, 아이템의 쿼리 통계 점수는 logN2*N2/(N1+N2)로 계산된다. 아이템이 통계 모델(250) 내 상응하는 항목을 갖고 있지 않다면, 그 아이템의 위치 및 쿼리 통계 점수는 "0"의 값이 주어진다.
일부 구현예에서, 토큰의 위치 통계 점수는 토큰의 용어(용어 유니그램)에 대한 위치 통계 점수와 그 토큰의 유형(유형 유니그램)에 대한 위치 통계 점수의 합으로 정의된다.
통계 모델(250)에 기초하여 토큰 시퀀스에 대한 위치 통계 점수와 쿼리 통계 점수를 연산하는 예시적 방법을 하기에 기술한다.
도 7A는 토큰 시퀀스에 대한 위치 통계 점수를 계산하는 예시적 프로세스(700A)를 설명한다. 단계 S710에서, 토큰 시퀀스에 대한 용어 위치 점수가 판단된다. 용어 위치 점수는 토크 시퀀스의 용어들에 관한 아이템들의 위치 통계 점수들을 기초로 판단된 통계 점수이다. 한 실시 예로서 토큰 시퀀스의 용어 위치 점수를 판단하는 프로세스가 도 7B에 도시되어 있으며 이하에서 설명된다. 유형 위치 점수는 토큰 시퀀스의 유형들에 관한 아이템들의 위치 통계 점수들을 기초로 판단된 통계 점수이다. 한 실시 예로서 토크 시퀀스의 유형 위치 점수를 판단하는 프로세스가 도 7C에 도시되어 있으며 이하에서 설명된다. 단계 S730에서, 토큰 시퀀스의 위치 통계 점수는 토큰 시퀀스의 용어 위치 점수와 유형 위치 점수를 합산함으로써 판단된다.
도 7B는 토크 시퀀스의 용어 위치 점수를 판단하는 예시적 프로세스(700B)를 보여주고 있다. 단계 S7102에서, 토큰 시퀀스에 있는 첫 번째 토큰을 현재 토큰으로 정의한다. 단계 S7104에서, 통계 모델(250)(현재 토큰의 "용어 유니그램", 및 만약 그러한 용어들이 존재하다면, 현재 토큰의 용어로부터 시작하는 "용어 바이그램"과 "무유형인 인접 용어들에 대한 시퀀스")을 참조하여 토큰 시퀀스의 다음 아이템들에 대한 위치 통계 점수를 판단한다. 단계 S7108에서, 단계 S7104에서 판단된 위치 통계 점수들 중에서 가장 높은 하나가 현재 토큰의 용어 위치 점수로서 선택된다. 단계 S7112에서, 토큰 시퀀스에 다음 토큰이 존재하는지 여부를 판단하고, 만약 그 판단 결과가 Yes(단계 S7112에서 Yes)이면, 단계 S7114에서 현재 토큰의 용어 위치 점수가 판단될 때 다음 토큰이 고려되었는지 여부를 판단한다. 만약 다음 토큰이 고려되었다면(단계 S7114에서 Yes), 고려된 토큰은 스킵(skip) 하고, 프로세스(700B)는 단계 S7112로 진행하며, 그렇지 않은 경우(단계 S7114에서 No), 만약 현재 토큰의 용어 위치 점수가 판단될 때 다음 토큰이 고려되지 않았다면, 다음 토큰이 현재 토큰으로서 정의되며(단계 S7116), 프로세스(700B)는 단계 S7104로 회귀한다. 단계 S7112에서, 만약 현재 시퀀스에 다음 토큰이 없는 것으로 판단되면(단계 S7112에서 No), 프로세스(700B)는 단계 S7118로 진행하여 점수 S1으로서 토큰들의 결과 용어 위치 점수들을 합산한다. 다음에, 단계 S7120에서 통계 모델(250)을 참조하여 토큰 시퀀스의 아이템 "모든 용어들의 시퀀스"에 대한 위치 통계 점수(점수 S2로 기재됨)가 판단된다. 단계 S7126에서, 점수 S1과 S2를 비교하여, 만약 점수 S1이 점수 S2 이상이면(단계 S7126에서 Yes) 토큰 시퀀스의 용어 위치 점수는 점수 S1으로 결정되며, 그렇지 않고, 만약 점수 S1이 점수 S2 보다 작으면(단계 S7126에서 No), 토큰 시퀀스의 용어 위치 점수는 점수 S2로 결정되고(단계 S7130), 그러면 프로세스(700B)가 완료된다.
다음에, 도면 7C를 참조하여 토큰 시퀀스의 유형 위치 점수에 대한 예시적 프로세스(700C)가 설명된다. 단계 S7202에서, 토큰 시퀀스에서 첫 번째 토큰이 현재 토큰으로서 정의된다. 단계 S7204에서, 통계 모델(250)(현재 토큰의 "유형 유니그램", 및 만약 존재한다면, 현재 토큰의 유형으로부터 시작하는 "유형 바이그램")을 참조하여 토큰 시퀀스의 다음 아이템들에 대한 위치 통계 점수들을 판단한다. 단계 S7208에서, 단계 S7204에서 판단된 가장 높은 위치 통계 점수가 현재 토큰의 유형 위치 점수로서 선택된다. 현재 토큰이 토큰 시퀀스에서 마지막 토큰일 때, 현재 토큰의 유형으로부터 시작하는 "유형 바이그램"은 존재하지 않으며, 당연히, 현재 토큰의 유형 위치가 "유형 바이그램"의 위치 통계 점수가 된다. 단계 S7212에서, 토큰 시퀀스에 다음 토큰이 존재하는지 여부를 판단하고, 만약 판단 결과가 Yes(단계 S7212에서 Yes)이면, 단계 S7214에서 현재 토큰의 유형 위치 점수를 판단할 때 다음 토큰이 고려되었는지 여부를 판단한다. 만약 다음 토큰이 고려되었다면(단계 S7214에서 Yes), 고려된 토큰은 스킵(skip) 되고, 프로세스(700C)는 단계 S7212로 진행하며, 그렇지 않고, 만약 현재 토큰의 유형 위치 점수가 판단될 때 다음 토큰이 고려되지 않았다면(단계 S7214에서 No), 다음 토큰은 현재 토큰으로서 정의되고(단계 S7216), 프로세스(700C)는 단계 S7204로 회귀한다. 단계 S7212에서, 만약 토큰 시퀀스에 다음 토큰이 없는 것으로 판단되면(단계 S7212에서 No), 프로세스는 단계 S7218로 진행하여 토큰들의 결과 유형 위치 점수들을 합산하고, 그 결과가 점수 S3으로서 기록된다. 다음에, 단계 S7220에서 통계 모델(250)을 참조하여 토큰 시퀀스의 아이템 "모든 유형들의 시퀀스"에 대한 위치 통계 점수(이 점수는 점수 S4로서 기록됨)를 판단한다. 단계 S7226에서, 점수 S3과 S4를 비교하여, 만약 점수 S3이 점수 S4 이상이면(단계 S7226에서 Yes) 토큰 시퀀스의 유형 위치 점수는 점수 S3으로 결정되며(단계 S7228), 그렇지 않고, 만약 점수 S3이 점수 S4 보다 작으면(단계 S7226에서 No), 토큰 시퀀스의 유형 위치 점수는 점수 S4로 결정된다(단계 S7230). 그러면 프로세스(700C)가 완료된다.
토큰 시퀀스의 쿼리 통계 점수는 위치 통계 점수와 유사하게 판단될 수 있다. 도 8A는 토큰 시퀀스에 대한 쿼리 통계 점수를 계산하는 예시적 프로세스(800A)를 보여준다. 토큰 시퀀스의 쿼리 통계 점수는 토큰 시퀀스의 용어 쿼리 점수와 유형 쿼리점수를 합산함으로써 결정될 수 있으며, 여기에서 용어 쿼리 점수는 토큰 시퀀스의 용어들에 관한 아이템들의 쿼리 통계 점수들을 기초로 판단된 통계 점수이며, 유형 쿼리 점수는 토큰 시퀀스의 유형들에 관한 아이템들의 쿼리 통계 점수들을 기초로 판단된 통계 점수이다.
도 8B는 토큰 시퀀스의 용어 쿼리 점수를 계산하는 예시적인 프로세스(800B)를 보여주며, 도 8C는 토큰 시퀀스의 유형 쿼리 점수를 계산하는 예시적인 프로세스를 보여준다. 도면 8A-8C에 대한 상세한 동작들은 도면 7A-7C에 대한 관련 설명을 참조함으로써 이해될 수 있다.
다음은 아래와 같은 3개의 토큰들을 갖는 입력 토큰 시퀀스의 쿼리 통계 점수를 판단하는 실시 예이다.
용어:북경(Beijing), 유형:시(City);
용어:챠오양(Choyang), 유형:구(District);
용어:다툰로(Datun Road), 유형:로(Road)
먼저 토큰 시퀀스의 용어 쿼리 점수가 계산된다. 계산은 첫 번째 토큰 "북경(Beijing), 유형:시(City)"를 현재 토큰으로 정의하는 것으로부터 출발하며, 현재 토큰에 대한 용어 쿼리 점수를 판단하고, 통계 모델(250)을 참조하여 현재 토큰의 용어 유니그램 "북경"(Beijing)과 현재 토큰의 용어로부터 시작하는 용어 바이그램 "북경 챠오양"(Beijing Chaoyang)에 대한 쿼리 통계 점수들을 판단하고, 그 두 개의 결과 쿼리 통계 점수들을 비교하여 보다 높은 하나를 선택하며, 예컨대, "북경 챠오양"(Beijing Chaoyang)의 쿼리 통계 점수가, 현재 토큰의 용어 쿼리 점수로서, 점수 ST1으로 기재된다. 그러면 현재 토큰의 용어 쿼리 점수를 용어 "북경"(Beijing)으로 판단할 때 토큰 "용어:챠오양(Choyang), 유형:구(District)"에 대한 용어가 고려되었기 때문에 그 토큰은 스킵(skip) 된다. 다음 토큰은 "용어:다툰로(Datun Road), 유형:로(Road)"이며, 이는 현재 토큰의 용어 쿼리 점수를 판단할 때 고려되지 않았으므로, 토큰 "용어:다툰로(Datun Road), 유형:로(Road)"는 현재 토큰으로서 정의되며, 이 현재 토큰의 용어 쿼리 점수는 모델에 저장된 유니그램 용어의 쿼리 통계 점수로서 판단되고, 점수 ST2로서 기재된다. 점수 ST1은 점수 ST2와 합산되며, 그 결과가 전체 용어 시퀀스(모든 용어들의 시퀀스) "북경 챠오양 다툰로"(Beijing Choyang Datun Road)의 쿼리 통계 점수와 비교되어, 더 높은 하나가 토큰 시퀀스의 용어 쿼리 점수로서 선택된다.
다음에, 입력 토큰 시퀀스의 유형 쿼리 점수가 계산된다. 상술한 바와 같이, 토큰 시퀀스에서 첫 번째 토큰 "용어:북경, 유형:City"가 현재 토큰으로서 정의되며, 입력 토큰 시퀀스의 유형 쿼리 점수에 대한 계산은 현재 토큰 "북경(Beijing), 유형:시(City)"의 유형 쿼리 점수를 판단하는 것으로부터 출발하여, 모델(250)을 참조하여 유형 유니그램 "City"와 현재 토큰의 유형으로부터 시작하는 유형 바이그램 "City District"의 쿼리 통계 점수들을 판단하고, 획득된 쿼리 통계 점수들을 비교하여 더 높은 하나를 선택하며, 예컨대, "City"의 쿼리 통계 점수가, 첫 번째 토큰의 유형 쿼리 점수로서, 점수 ST3로서 기재된다. 다음에 다음 토큰 "유형:챠오양(Chaoyang), 유형:구(District)"가 현재 토큰으로서 정의되며, 통계 모델(250)을 참조하여 유형 유니그램 "District"와 유형 바이그램 "District Road"의 쿼리 통계 점수들이 판단되며, 더 높은 하나, 예컨대, 유형 바이그램 "District Road"의 쿼리 통계 점수가 두 번째 토큰의 유형 쿼리 점수로서 선택되어, 점수 ST4로서 기재된다. 세 번째 토큰은 이전 토큰 "용어:챠오양(Chaoyang), 유형:구(District)"에 대한 유형 쿼리 점수가 판단될 때 고려되었기 때문에 스킵(skip) 된다. 점수 ST3는 점수 ST4와 합산되며, 그 결과는 전체 유형 시퀀스(모든 유형들의 시퀀스) "City District Road"의 쿼리 통계 점수와 비교되어, 더 높은 하나가 토큰 시퀀스의 유형 쿼리 점수로서 선택된다.
이때, 토큰 시퀀스의 용어 쿼리 점수와 유형 쿼리 점수는 함께 더해지며, 그 결과가 토큰 시퀀스의 쿼리 통계 점수이다.
되돌아가 도 2를 참조하면, 시스템(200)의 분석 모듈(230)은 입력 항목을 위치 파트와 쿼리 파트로 분석한다. 도 6A는 분석 모듈(230)을 사용하여 입력 항목을 분석하는 예시적 프로세스(600A)를 보여주는 플로우차트이다.
단계 S610에서, 예컨대 토큰화 모듈(210)을 사용하여 입력 항목이 수신 및 토큰화되고, 토큰 시퀀스가 획득된다. 입력 항목은 유형들이 주석으로 달린 토큰들의 시퀀스로 토큰화된다. 상술한 바와 같이, 입력 항목은 클라이언트 터미널(110)에서 사용자에 의해 입력되어 네트워크(130)를 통해 분석 모듈(230)에 전송될 수 있다.
선택적으로, 단계 S620에서, 기정의된 유형 조정 규칙들(type fixing rules)을 사용하여 토큰 시퀀스에서 확실하게 잘못된 유형들을 조정하기 위한 후처리가 실행될 수 있다. 유형 조정 규칙은 토큰에 주석으로 달린 확실하게 잘못된 유형을 조정하기 위한 것이다. 실행에 있어서, 규칙은 두 개의 파트들(조건 및 목표 행위 또는 값)에 의해 정의될 수 있다. 만약 조건이 만족되면, 목표 행위가 실행되거나 목표 값이 되돌아온다. 예컨대, 유형 조정 규칙은 만약 유형 "수량형용사(Quantifier) 접미사(Suffix)"를 갖는 토큰이 유형 "숫자(Number)"를 갖는 토큰을 뒤따르지 않으면, 유형 "수량형용사 접미사"는 유형 "숫자"로 변환된다. 이전의 실시 예에서 언급되었듯이, 명칭 "
Figure 112012002083763-pct00107
"(China Time-honored Brand Donglaishun)의 용어 "
Figure 112012002083763-pct00108
"에 대해 초기에 주석된 유형 "수량형용사 접미사"는 용어 "
Figure 112012002083763-pct00109
" 때문에 유형 "None"으로 변환되며, 비록 "숫자"에 대해 동일한 중국 문자를 사용한다 하더라도, 용어 "
Figure 112012002083763-pct00110
"는 사업에 대한 상표화를 의미하며 용어 "
Figure 112012002083763-pct00111
"(Laozi)와 조합된 형태로 사용되어 "오래된 역사를 자랑하는 상표(Time-honored Brand)"를 의미하게 된다.
단계 S630에서, 토큰 시퀀스에서 두 개의 인접한 토큰들 사이의 모든 위치에 대해, 그것이 예컨대 기정의된 무분할 규칙들(no splitting rules)을 사용함으로써 분할이 가능한 위치인지 여부를 판단하고, 확실하게 불가능한 위치라면 그 위치를 걸러낸다. 무분할 규칙은 분할될 수 없는 위치를 규정하기 위한 것이다. 예컨대, 무분할 규정은 "거리(Street)"에 대한 유형을 갖는 토큰과 "숫자"에 대한 유형을 갖는 토큰 사이의 위치가 분할될 수 없는 위치임을 규정할 수 있다. 확실하게 잘못된 분할 위치들을 걸러내는 동작은 통계 모델(250)에서 노이즈들의 영향을 감소시킬 수 있다.
단계 S640에서, 분할 점수는 각각의 가능한 분할 방법에 대해 계산된다. 분할 점수는 가능한 분할 방법의 정확성에 대한 통계적 확률을 나타낸다. 분할 방법은 쿼리 파트와 위치 파트에 의해 정의된다. 각각의 가능한 분할 방법은 하나의 가능한 분할 위치에 대응된다. 가능한 분할 위치는 토크 시퀀스에서 두 개의 인접한 토큰들 사이의 위치가 될 수 있으며, 그것은 토큰 시퀀스를 두 개의 파트로 분리시킨다. 가능한 분할 위치는 또한 토큰 시퀀스의 첫 번째 토큰 이전 또는 마지막 토큰 이후의 위치가 될 수 있으며, 그것은 토큰 시퀀스를 하나의 서브-토큰 시퀀스로 분리시킨다. 보다 상세하게는, 토큰 시퀀스에서 두 개의 인접한 토큰들 사이에 있으며 토큰 시퀀스를 두 개의 파트(예컨대, 두 개의 서브-토큰 시퀀스들)로 분리시키는 가능한 분할 위치에 대해, 쿼리 통계 점수 및 위치 통계 점수는 예컨대 도 7A-7C 및 도 8A-8C에 도시된 프로세스들을 사용함으로써 두 개의 서브-토큰 시퀀스들 각각에 대해 판단될 수 있다. 서브-토큰 시퀀스의 위치 통계 점수는 서브-토큰 시퀀스가 위치 파트인 확률을 나타내며, 서브-토큰 시퀀스의 쿼리 통계 점수는 서브-토큰 시퀀스가 쿼리 파트인 확률을 나타낸다. 가능한 분할 위치에 의해 분리된 두 개의 서브-토큰 시퀀스들 사이에서, 높은 위치 통계 점수를 갖는 하나가 입력 항목에 대한 가능한 위치 파트로 간주되며, 다른 하나는 입력 항목에 대한 가능한 쿼리 파트로 간주된다. 대응되는 가능한 분할의 점수는 분할의 위치 파트에 대한 위치 통계 점수 및 분할의 쿼리 파트에 대한 쿼리 통게 점수를 기초로 판단된다. 한 예로서, 분할에 대한 점수는 가능한 위치 파트의 위치 통계 점수와 가능한 쿼리 파트의 쿼리 통계 점수를 합산함으로써 판단된다. 더욱이, 토큰 시퀀스를 하나의 서브-토큰 시퀀스로 분리시키는 가능한 분할 위치에 관해서는, 위치 통계 점수와 쿼리 통계 점수가 전체 토큰 시퀀스에 대해 판단된다. 만약 전체 토큰 시퀀스의 위치 통계 점수가 전체 토큰 시퀀스의 쿼리 통계 점수보다 높으면, 이 위치에 대응되는 가능한 분할 방법은 위치 파트로서 전체 토큰 시퀀스를 관련시킴으로써 판단되고, 분할 점수는 전체 토큰 시퀀스의 위치 통계 점수로서 판단된다. 유사하게, 만약 전체 토큰 시퀀스의 쿼리 통계 점수가 전체 토큰 시퀀스의 위치 통계 점수보다 높으면, 토큰 시퀀스를 하나의 서브-토큰 시퀀스로 분리시키는 위치에 대응되는 가능한 분할 방법은 쿼리 파트로서 전체 토큰 시퀀스를 관련시킴으로써 판단되고, 분할 점수는 전체 토큰 시퀀스의 쿼리 통계 점수로서 판단된다.
선택적으로, 쿼리 파트용 쿼리 멀티플라이어(multiplier)와 위치 파트용 위치 플라이어를 포함하는 두 개의 멀티플라이어들은 쿼리 파트의 쿼리 통계 점수와 위치 파트의 위치 통계 점수를 조절하기 위한 것으로 판단될 수 있다. 가능한 분할은 만약 이것의 쿼리 멀티플라이어와 위치 멀티블라이어 중 어느 하나가 제로(0)이면 배제될 수 있다. 멀티플라이어들은 다음과 같이 판단될 수 있다. 먼저, 쿼리 파트용 베이스 쿼리 멀티플라이어와 위치 파트용 베이스 위치 멀티플라이어를 포함하는 두 개의 베이스 멀티플라이어들이 판단될 수 있다. 한 실시에서, 베이스 멀티플라이어들은 기결정된 값들로서 미리 정의될 수 있다. 다른 실시에서, 베이스 멀티플라이어들은 두 파트들의 아이템들과 길이들(lengths)을 기초로 판단될 수 있다. 베이스 멀티플라이어들은 바로 쿼리 멀티플라이어 및 위치 멀티플라이어로서 사용될 수 있다. 선택적으로, 위치 베이스 멀티플라이어는 프로모션(promotion) 또는 디모션(demotion)에 의해 조절될 수 있으며, 조절된 위치 베이스 멀티플라이어는 위치 멀티플라이어로서 사용된다. 예컨대, 만약 위치 파트의 토큰 시퀀스가 [지역+도시+구역+거리]와 같은 계층적 순서(hierarchy order)로 되어 있는 주소 구성요소들을 포함하면, 그때에는 위치 멀티플라이어가 프로모트된다. 계층적 행정 주소(도시, 구역 같은)의 길이 및 계층적 일반 주소(거리, 빌딩 같은)의 길이가 계산될 수 있으며, 가중치가 위치 베이스 멀티플라이어에 더해질 수 있다. 다른 실시 예로서, 만약 위치 파트의 토큰 시퀀스가 계층적 순서로 되어 있지 않은 주소 구성요소들을 포함하면, 그때에는 위치 베이스 멀티플라이어가 디모트 된다. 또 다른 실시 예로서, 만약 "북경시 북경"과 같이 토큰 시퀀스에 중복된 주소 구성들이 있다면, 그때에는 위치 베이스 멀티플라이어가 디모트된다. 쿼리와 위치 멀티플라이어들에 대한 판단 이후에, 쿼리 파트의 쿼리 통계 점수와 위치 파트의 위치 통계 점수는 판단된 쿼리와 위치 멀티플라이어들을 사용하여 조절된다. 특히, 쿼리 파트의 쿼리 통계 점수는 쿼리 멀티플라이어에 의해 곱해지며, 위치 파트의 위치 통계 점수는 위치 멀티플라이어에 의해 곱해진다. 분할의 점수는 조절된 쿼리와 위치 통계 점수들을 합산함으로써 결정된다.
선택적으로, 단계 S650에서, 우선권이 각각의 가능한 분할들에 할당된다. 두 단계의 우선권들이 사용될 수 있으며 이들은 두 개의 숫자들(1과 0)로 표시될 수 있으며, 여기에서 1은 높은 우선권이고 0은 낮은 우선권이다. 우선권은 다음과 같이 할당될 수 있다. 예컨대, 토큰 시퀀스에서 두 개의 인접한 토큰들 사이에 있는 분할 위치에 대응되는 분할에 관해서는, 만약 분할이 스페이스, 콤마 등과 같은 분리자에 의해 분할되면, 분할의 우선권은 1이 된다. 반면에, 분할이 분리자에 의해 분할되지 않으면, 분할의 우선권은 0이 된다. 전체 토큰 시퀀스가 쿼리 파트 또는 위치 파트인 분할에 대해서는, 만약 입력 항목이 분리자를 포함하면, 그때는 분할의 우선권은 1이 되고, 그렇지 않으면 분할의 우선권은 0이 된다.
단계 S660에서, 가능한 분할들이 정렬되며, 상위의 가능한 분할이 분석 결과로서 선택된다. 한 실시로서, 가능한 분할들이 분할 점수들에 의해 정렬된다. 각각의 가능한 분할들에 대해 우선권이 할당된 다른 실시로서, 가능한 분할들이 먼저 우선권들에 의해 정렬되고 다음에 점수들에 의해 정렬된다. 상술한 바와 같이, 결과 분할은 그것의 쿼리 파트 및 위치 파트에 의해 표현될 수 있다.
선택적으로, 단계 S670에서, 전체 입력 항목이 가능한 위치인지 여부가 판단될 수 있다. 입력 항목은 만약 그것이 다음의 조건들 즉 1) 입력 항목이 일부 어떤 조건들을 만족하며, 예컨대 입력 항목이 숫자로 끝나며, 2) 전체 위치 분할(즉, 전체 토큰 시퀀스가 위치 파트임)이 두 번째로 높은 점수를 갖는 분할이면서 가장 높은 분할 점수에 대한 그것의 점수 비율이 기 설정된 기준값보다 높다는 조건들 중 어느 것이든 만족을 하면 가능한 위치로 판단되어 진다. 만약 전체 입력 항목이 가능한 위치로 판단되면, 전체 입력 항목이 위치 파트인 분할이 기준(reference)으로서 출력되는 부가적인 결과 분할로 간주된다.
선택적으로, 단계 S680에서, 분할 신뢰도 점수는 각각의 결과 분할(들)에 대해 판단된다. 분할 신뢰도 점수는 분할의 정확성에 있어서의 신뢰도를 나타낸다. 한 실시로서, 분할 신뢰도 점수는 다음과 같이 정의된다. 첫째로, 아이템(용어 유니그램, 용어 바이그램, 무유형의 인접한 용어들에 대한 시퀀스, 모든 용어들에 대한 시퀀스, 유형 유니그램, 유형 바이그램, 모든 유형들에 대한 시퀀스를 포함함)에 대한 쿼리 신뢰도 점수와 위치 신뢰도 점수는 등식 (3)과 (4)에 의해 정의된다.
query_conf = query_score / (query_score + location_score)
... 수식 (3)
location_conf = location_score / (query_score + location_score)
... 수식 (4)
여기에서, query_conf 와 location_conf는 각각 아이템의 쿼리 신뢰도 점수와 위치 신뢰도 점수이며, query_socre 와 location_score는 각각 아이템의 쿼리 통계 점수와 위치 통계 점수이다. 두 번째로, 분할의 쿼리 파트에 대한 쿼리 신뢰도 점수는 쿼리 파트의 쿼리 점수를 결정하기 위해 사용된 아이템들(도 8B)의 쿼리 신뢰도 점수들의 평균으로서 정의되며, 분할의 위치 파트에 대한 위치 신뢰도 점수는 위치 파트의 용어 위치 신뢰도 점수를 결정하기 위해 사용된 아이템들(도 7B)의 위치 신뢰도 점수들의 평균으로서 정의된다. 분할에 대한 분할 신뢰도 점수는 분할의 위치 파트에 대한 위치 신뢰도 점수와 분할의 쿼리 파트에 대한 쿼리 신뢰도 점수의 평균으로서 정의된다. 예로서, 분할 신뢰도 점수는 [0, 1]의 범위 내에 있는 값을 가지며, 분할 신뢰도 점수가 높을수록 분할의 정확성을 더욱 신뢰할 수 있다. 분할 신뢰도 점수는 또한 기준으로서 분석 모듈(230)에 의해 출력될 수 있는 부가적인 분석 결과이다.
도 6A를 참조하면, 단계 S690에서, 분석 결과는 분석 모듈(230)의 출력이다. 분석 모듈은 단계 S660에서 얻어진 결과 분할을 포함한다. 예시적 프로세스(600A)에서, 분석 결과는 또한 단계 S670과 S680에서 얻어진 부가적인 결과들을 포함하는데, 그것들은 시스템(200) 사용자들에 의해 기준으로서 사용될 수 있다. 시스템(200)의 사용자들은 시스템(200)의 결과를 사용하는 모듈들, 구성요소들 또는 시스템들을 포함한다. 예컨대, 지도 탐색 시스템(140)은 시스템(200)의 사용자들 중 하나이다.
도 6A에서 상술한 프로세스들 내에서의 다양한 프로세싱 동작들은 선택적인 프로세싱들에 의해 실행될 수 있다. 도 6B는 분석 모듈(230)을 사용하여 입력 항목을 분석하기 위한 다른 예시적 프로세스(600B)를 설명하는 플로우차트이다. 프로세스(600B)에서 프로세싱 단계들 S610, S640, S660 및 S690은 도 6A의 프로세스(600A)에서 동일한 참조 번호들을 갖는 단계들과 실질적으로 동일하다.
지금까지는 도 2-8C에 관하여 입력 항목을 지도 탐색용 위치 파트와 쿼리 파트로 분석하기 위한 도 2에서의 분석 시스템(200)에 대한 다양한 특성들을 설명하였으므로, 다음의 섹션들은 분석 시스템(200)의 출력을 기반으로 지도 탐색을 설명한다. 도 1의 예에서, 지도 탐색은 서버(120)에서 분석 시스템(200)과 지도 탐색 시스템(140)에 의해 실행된다.
도 9는 지도 탐색을 수행하는 예시적 프로세스를 나타내는 플로우차트이다. 단계 S902에서, 입력 항목이 분석 시스템(200)에 의해 수신된다. 입력 항목은 클라이언트(110)에서 사용자가 지도 탐색 인터페이스에 입력한 것일 수 있고, 네트워크(130)를 통해 분석 시스템(200)에 전송된 것일 수 있다. 단계 S904에서, 입력 항목이 분석 시스템(200)에 의해 분석되고, 위치 파트 및 쿼리 파트 중 적어도 하나를 포함하는 분석 결과가 지도 탐색 시스템(140)에 전달된다. 지도 탐색 시스템(140)은 분석 결과를 참조함으로써, 또는 그 분석 결과에 기초하여 지도 탐색을 수행한다. 일부 구현예들에서, 지도 탐색 시스템(140)은 위치 파트에 기초하여 타겟 지리적 영역을 판단한다(단계 906). 예를 들어, 지도 탐색 시스템(140)은 타겟 지리적 영역을 얻기 위해서 위치 파트를 지오코드(geocode)화 할 수 있다. 타겟 지리적 영역은 경위도(longitude and latitude)로 정의될 수 있다. 단계 S908에서, 지도 탐색 시스템(140)은 타겟 지리적 영역 내에 있는 쿼리 파트로 표현된 타겟 또는 타겟들에 대한 정보에 대하여 탐색하고, 그 탐색 결과들은 예를 들어 클라이언트(110)에 반환되어, 사용자에게 제시된다(단계 S910).
도 10은 이 명세서에서 설명된 지도 탐색 시스템들 및 방법들을 구현하기 위해 이용될 수 있는 예시적 디바이스(100)의 블록도이다. 디바이스(1000)는 프로세싱 디바이스(1002), 제1 데이터 저장소(1004), 제2 데이터 저장소(1006), 입력 디바이스들(1008), 출력 디바이스들(1010), 및 네트워크 인터페이스(1012)를 포함한다. 예를 들어, 데이터 버스 및 마더보드를 포함하는 버스 시스템(1014)이 구성요소들(1002, 1004, 1006, 1008, 1010, 1012) 간의 데이터 통신을 확립하고 제어하기 위해 사용될 수 있다.
프로세싱 디바이스(1002)는 예컨대, 하나 이상의 마이크로프로세서를 포함한다. 제1 데이터 저장소(1004)는 예를 들어, DRAM(Dynamic Random Access Memory)과 같은 RAM(Random Access Memory) 저장소 디바이스, 또는 다른 유형의 컴퓨터-판독가능 매체 메모리 디바이스들을 포함한다. 제2 데이터 저장소(1006)는 예컨대, 하나 이상의 하드 드라이브, 플래시 메모리, 및/또는 ROM(Read Only Memory), 또는 다른 유형의 컴퓨터-판독가능 매체 메모리 디바이스들을 포함한다.
일부 구현예들에서, 디바이스(1000)는 제2 데이터 저장소(1006)와 같은 데이터 저장소에 있는 코드들을 포함한다. 이 코드들은 실행되었을 때 프로세싱 디바이스(1002)가 분석 시스템(200) 및/또는 지도 탐색 시스템(140)의 기능들을 수행하도록 하는 명령들로 정의될 수 있다. 제2 데이터 저장소(1006)와 같은 데이터 저장소는 사전(240) 및/또는 통계 모델(250)을 저장할 수 있다.
예시적 입력 디바이스들(1008)은 키보드, 마우스, 스타일러스 등을 포함하고, 예시적 출력 디바이스들(1010)은 디스플레이 디바이스, 오디오 디바이스 등을 포함한다. 일부 구현예들에서, 입력 디바이스들(1008)은 통계 모델(150)을 훈련하기 위하여 훈련 데이터를 수신한다. 네트워크 인터페이스(1012)는 예를 들어, 네트워크(130)와 데이터를 통신할 수 있는 유선 또는 무선 네트워크 디바이스를 포함한다. 네트워크 인터페이스(1012)는 원격 디바이스로부터 입력 항목을 수신할 수 있고, 탐색 결과들을 그 원격 디바이스에 전송할 수 있다.
디바이스(1000)는 제1 데이터 저장소(1004)와 같은 컴퓨터-판독가능 매체에 포함된 소프트웨어 명령들을 실행시키는 프로세싱 디바이스(1002)에 응답하여 본 명세서에서 설명된 특정 동작들 또는 프로세스들을 수행할 수 있다. 컴퓨터-판독 가능 매체는 물리적 또는 논리적 메모리 디바이스 및/또는 반송파(carrier wave)로 정의될 수 있다. 소프트웨어 명령들은 디스크와 같은 다른 컴퓨터-판독가능 매체로부터 또는 네트워크 인터페이스(1012)를 통해 다른 디바이스로부터 제1 데이터 저장소(1004)로 로딩될 수 있다. 제1 데이터 저장소(1004)에 포함된 소프트웨어 명령들은 프로세싱 디바이스(1002)가 본 명세서에 설명된 프로세스들을 수행하도록 할 수 있다.
실시예들에서, 본 명세서에서 설명된 입력 항목을 분석하고 지도 탐색을 수행하는 프로세스들은 별개로 적용되거나, 또는 다른 지도 탐색 또는 데이터 프로세스 기술들과 조합되어 적용될 수 있다. 예를 들어, 분석 시스템(200)의 분석 결과는 입력 항목을 분석하거나 처리하기 위하여 다른 시스템들로부터 추가 결과들도 얻고, 지도 탐색을 위해 사용되어질 결과를 중재하는 시스템에 의해 사용될 수 있다. 분석 모듈(230)에 의한 분할 신뢰도 점수 출력은 중재를 위한 예로서 시스템에 의해 사용될 수 있다. 다른 예시로서, 지도 탐색 시스템은 복수의 탐색 결과을 얻고, 사용자에게 전달하기 위하여 다른 프로세스들의 결과들을 최종 탐색 결과로 통합하기 위해, 다른 기술들을 사용하는 다른 지도 탐색 프로세스뿐만 아니라, 본 명세서에서 설명된 지도 탐색 프로세스들을 수행할 수 있다.
본 명세서에 기재된 요지와 기능적 동작들의 실시예들은 디지털 전자 회로로 구현되거나, 또는 상세한 설명에 기재된 구조 및 그들의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로 구현되거나, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기재된 요지의 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의해 실행되거나 또는 그 장치의 동작을 제어하도록, 유형의 프로그램 운반체(carrier)에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 유형의 프로그램 운반체는 전파되는(propagated) 신호 또는 컴퓨터 판독가능 매체일 수 있다. 전파되는 신호는 인공적으로 생성된 신호(예를 들어, 기계-생성 전기, 광 또는 전자기 신호)로서, 데이터 처리 장치에 의한 실행을 위하여 적절한 수신 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된다. 컴퓨터 판독가능 매체는 컴퓨터-판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판(substrate), 메모리 디바이스, 기계 판독가능 전파된 신호에 영향을 주는 물질의 구성요소, 또는 이들 중 하나 이상의 조합일 수 있다.
"시스템"이라는 용어는 본 명세서에서 설명된 요지의 기능들을 수행하기 위한 모든 시스템, 디바이스 및 기계를 포괄하며, 예를 들어, 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터들을 포함한다. 시스템은 하드웨어 외에도, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드를 포함하고, 코드는 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성한다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 인터프리터 언어나 선언적 또는 절차적 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨터 환경에서 사용하기에 적합한 그 밖의 유닛을 포함하는 임의의 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 상응해야 하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부에 저장되거나(예를 들어, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트), 당해 프로그램 전용의 단일 파일에 저장되거나, 또는 다수의 조화된(coordinated) 파일들(예를 들어, 하나 이상의 모듈, 서브프로그램, 코드의 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서, 또는 한 위치에 배치되거나 또는 다수의 위치에 걸쳐서 분산되고 통신 네트워크에 의해 접속된 다수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스와 논리 흐름은 하나 이상의 프로그래머블 프로세서에 의해 수행될 수 있고, 이 프로그래머블 프로세서는 입력 데이터에 작용하여 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램들을 실행한다. 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)과 같은 전용 논리 회로가 프로세스와 논리 흐름을 수행하거나, 장치를 구현할 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는, 예를 들어, 범용 및 전용 마이크로프로세서, 및 임의 종류의 디지털 컴퓨터 중 하나 이상의 프로세서가 있다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 양자로부터 명령어들과 데이터를 수신한다. 컴퓨터의 필수 구성요소는 명령을 실행하는 프로세서, 및 명령어와 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 컴퓨터의 주요 요소들은 명령어들을 수행하기 위한 프로세서와 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스(예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크)를 포함하거나, 또는 이 디바이스와 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 수 있다. 하지만 컴퓨터는 이러한 디바이스를 반드시 구비할 필요는 없다. 더욱이, 컴퓨터는 예를 들어, 모바일 전화기, 개인 정보 단말(PDA), 모바일 오디오 또는 비디오 재생기, 게임 콘솔, GPS(Global Positioning System) 수신기 등과 같은 다른 디바이스에 내장될 수 있다.
컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크); 광자기 디스크; 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위하여, 본 명세서에 설명된 요지의 실시예들은, 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터), 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 구비한 컴퓨터에 구현될 수 있다. 사용자는 키보드와 포인팅 디바이스를 이용하여 컴퓨터에 입력을 제공할 수 있다. 사용자와의 상호작용을 제공하기 위하여 다른 종류의 디바이스가 또한 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백(feedback)은 예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백인 임의 형태의 감각 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에 기술된 요지의 실시예는, 예를 들어, 데이터 서버와 같은 백엔드(back-end) 구성요소를 구비하는 컴퓨팅 시스템; 또는 예를 들어, 애플리케이션 서버와 같은 미들웨어 구성요소를 구비하는 컴퓨팅 시스템; 또는 예를 들어, 사용자가 본 명세서에 기술된 요지의 구현예와 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹브라우저를 구비한 클라이언트 컴퓨터와 같은 프론트엔드(front-end) 구성요소를 구비하는 컴퓨터 시스템; 또는 이러한 백엔드, 미들웨어 또는 프론트엔드 구성요소들의 임의 조합을 구비하는 컴퓨팅 시스템으로 구현될 수 있다. 시스템의 구성요소는 디지털 데이터 통신의 임의 형태 또는 매체(예를 들어, 통신 네트워크)에 의해 상호접속될 수 있다. 통신 네트워크의 예에는 근거리 네트워크(LAN)와 인터넷과 같은 광역 네트워크(WAN)가 포함된다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 보통 서로 떨어져 있으며, 일반적으로는 통신 네트워크를 통하여 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터상에서 실행되고 상호 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의하여 발생한다.
본 명세서에서 설명된 지도 탐색과 연관된 동작들 및 프로세스들의 위치들은 컴퓨터 네트워크 또는 사용자가 경유하여 지도 탐색을 수행하는 연결된 컴퓨터 네트워크(connected computer network)들에 있는 하나 이상의 위치이다. 지도 탐색에 대한 사용자 입력 항목에 응답하여, 지도 탐색에 연관된 프로세스들과 동작들은 지도 탐색에 연관된 프로세스들과 동작들을 위한 각각의 컴퓨터 프로그램들로 하나 이상의 컴퓨터에서 실행되도록 트리거되거나 야기될 수 있고, 상기 프로세스들과 동작들은 본 명세서에서 설명된 분석 동작들과 그 분석 동작들의 결과에 기초하는 탐색 동작들을 포함한다. 예시로서, 컴퓨터-구현 지도 탐색 방법은 입력 항목에 기초하여 지도 탐색을 실시하기 전에, 지도 탐색을 위하여 사용자로부터의 입력 항목을 입력 탐색 항목에 있는 위치 정보를 나타내는 위치 파트와 입력 항목에 있는 위치 파트와 연관된 탐색 타겟을 나타내는 쿼리 파트로 분석한다. 또한 본 방법은 지도 탐색이 그 위치 파트에 기초하여 위치 또는 지리적 영역을 얻기 위해 실시되도록 하고, 쿼리 파트에 연관되고, 얻어진 지리적 영역 또는 위치에 위치하거나, 그 내에 있거나, 또는 근처에 있는 하나 이상의 엔티티(entity)에 대한 정보를 탐색하도록 한다
본 명세서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 임의 발명의 범위나 청구할 사항의 범위에 대한 어떠한 제한으로서도 이해되어서는 안 되며, 특정 발명들의 특정 실시예에 고유할 수 있는 특징의 설명으로서 이해되어야 한다. 별개의 실시예의 문맥으로 본 명세서에서 설명된 소정 특징은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 문맥에서 설명한 다양한 특징은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로서도 구현 가능하다. 또한, 앞에서 특징이 소정 조합에서 동작하는 것으로서 설명되고 그와 같이 청구되었지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 도면에서 특정한 순서로 동작을 묘사하고 있지만, 그러한 동작이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 설명한 모든 동작이 수행되어야 한다는 것을 의미하는 것은 아니다. 소정 환경에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시예에 있어서 다양한 시스템 구성요소의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명한 프로그램 구성요소와 시스템은 일반적으로 단일 소프트웨어 제품으로 통합되거나 또는 복수의 소프트웨어 제품으로 패키지 될 수 있다는 점을 이해되어야 한다.
지도 탐색 시스템들, 장치들, 및 방법들의 특정 실시예들이 기술되었다. 설명된 실시예들의 변형예들과 향상물(enhancement)들 및 그 밖의 실시예들이 본 명세서에서 설명된 것에 기초하여 만들어질 수 있다. 예를 들어, 본 명세서에 설명된 동작들은 상이한 순서로 수행될 수 있지만, 여전히 바람직한 결과를 달성한다. 일 실시예로서, 첨부한 도면에 도시한 프로세스는, 바람직한 결과를 얻기 위해, 도시된 특정 순서나 순차적인 순서를 반드시 요구하는 것은 아니다. 소정 구현예에서, 멀티태스킹과 병렬 프로세싱이 효과적일 수 있다.
110: 클라이언트
120: 서버
130: 네트워크
140 : 지도 검색 엔진
200: 파싱 시스템
210: 토큰화 모듈
220: 모델 훈련 모듈
230: 파싱 모듈
240: 사전
250: 통계 모델
310: 용어
320: 유형
330: 언어

Claims (57)

  1. 컴퓨터에 의해 구현된 지도 검색 방법에 있어서,
    지도 검색을 위해 사용자로부터 수신된 입력 항목(input entry)을, 복수의 토큰들을 포함하는 토큰 시퀀스로 파싱하는 단계로서(parsing), 각 토큰은 상기 입력 항목의 세그먼트를 나타내는 용어, 및 상기 용어에 주석으로 첨부된 유형을 포함하며, 상기 용어에 주석으로 첨부된 유형은 상기 용어가 주소 관련 정보를 나타내는지를 가리키는, 파싱 단계;
    상기 토큰 시퀀스의 가능한 분할 위치들을 결정하는 단계로서, 각 가능한 분할 위치는 상기 토큰 시퀀스를, 가능한 위치 서브시퀀스(possible location subsequence ) 및 가능한 쿼리 서브시퀀스(possible query subsequence)로 분할하고, 상기 가능한 위치 서브시퀀스는 위치 정보를 포함하고, 상기 가능한 쿼리 서브시퀀스는 검색 대상을 지시하고, 상기 가능한 분할 위치들은 상기 토큰 시퀀스의 2 개의 인접한 토큰들 사이의 위치, 상기 토큰 시퀀스의 첫 번째 토큰 전의 위치, 또는 상기 토큰 시퀀스의 마지막 토큰 뒤의 위치를 포함하는, 결정 단계;
    상기 가능한 분할 위치들 각각에 대해 분할 점수를 결정하는 단계;
    최고 분할 점수를 가진 상기 가능한 분할 위치로부터 위치 서브시퀀스 및 쿼리 서브시퀀스를 선택하는 단계; 및
    상기 위치 서브시퀀스에 의해 지시된 위치 근방인 위치를 가진 쿼리 서브시퀀스에 반응하는 정보를 검색하는 단계;를 포함하며,
    이때 상기 토큰 시퀀스의 가능한 분할 위치들을 결정하는 단계는:
    가능한 분할 위치마다, 상기 가능한 분할 위치로부터 생성된 2 개의 토큰 서브시퀀스 각각에 대한 위치 통계 점수 및 쿼리 통계 점수를 결정하는 단계; 및
    상기 위치 통계 점수가 높은 토큰 서브시퀀스를 상기 가능한 위치 서브시퀀스로 식별하고, 다른 토큰 서브시퀀스를 상기 가능한 쿼리 서브시퀀스로 식별하는 단계로서, 토큰 서브시퀀스에 대한 위치 통계 점수 또는 쿼리 통계 점수는, 상기 토큰 서브시퀀스에서 나타난 아이템들의 점수, 및 상기 토큰 서브시퀀스에서 나타난 아이템 유형들의 점수에 기초하는, 식별 단계;를 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  2. 청구항 1에 있어서,
    상기 입력 항목을 토큰 시퀀스로 파싱하는 단계는:
    상기 입력 항목의 단어를 주소 유형 토큰으로 식별하기 위해, 주소 연관 단어들(address-related words) 의 사전(dictionary)을 이용하는 단계를 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  3. 청구항 2에 있어서,
    상기 사전의 주소 연관 단어들은 행정 구역 이름들, 도로 이름들, 주소 연관 접미사들, 주소 연관 접두사들 및 숫자들 중 적어도 하나를 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  4. 청구항 1에 있어서,
    상기 컴퓨터에 의해 구현된 지도 검색 방법은, "도로(Road)" 유형을 갖는 토큰 및 "숫자(Number)" 유형을 갖는 토큰 사이에서 분할 위치를 금지하는 단계를 더 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  5. 청구항 1에 있어서,
    상기 가능한 분할 위치들 각각에 대해 분할 점수를 결정하는 단계는;
    각 가능한 분할 위치에 대해, 상기 가능한 분할 위치를 위한 분할 점수를 결정하기 위해, 상기 가능한 위치 서브시퀀스로 식별된 토큰 서브시퀀스의 위치 통계 점수 또는 상기 가능한 쿼리 서브시퀀스로 식별된 토큰 서브시퀀스의 쿼리 통계 점수 중 적어도 하나를 이용하는 단계를 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  6. 청구항 5에 있어서,
    상기 가능한 분할 위치들 각각에 대한 분할 점수는, 상기 가능한 위치 서브시퀀스로 식별된 토큰 서브시퀀스의 위치 통계 점수 및 상기 가능한 쿼리 서브시퀀스로 식별된 토큰 서브시퀀스의 쿼리 통계 점수의 합산에 의해 결정되는 컴퓨터에 의해 구현된 지도 검색 방법.
  7. 청구항 6에 있어서,
    상기 가능한 분할 위치에 대한 상기 가능한 쿼리 서브시퀀스용 쿼리 통계 점수는:
    상기 가능한 쿼리 서브시퀀스에서 토큰들의 수에 기초한 쿼리 멀티플라이어(multiplier)를 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  8. 청구항 6에 있어서,
    상기 가능한 분할 위치에 대한 상기 가능한 위치 서브시퀀스용 위치 통계 점수는 위치 멀티플라이어를 포함하고,
    상기 위치 멀티플라이어는 위치에 연관된 기본 위치 멀티플라이어와, 그리고 상기 가능한 위치 서브시퀀스가 계층적 순서로 주소 유형 용어를 포함하는 경우에, 추가적인 멀티플라이어를 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  9. 청구항 1에 있어서,
    상기 토큰 서브시퀀스의 위치 통계 점수 또는 쿼리 통계 점수 중 적어도 하나는, 상기 토큰 서브시퀀스가 위치인 확률을 상기 토큰 서브시퀀스의 위치 통계 점수가 지시하고 상기 토큰 서브시퀀스가 쿼리인 확률을 상기 토큰 서브시퀀스의 쿼리 통계 점수가 지시하는 통계 모델을 참조함으로써, 결정되는 컴퓨터에 의해 구현된 지도 검색 방법.
  10. 청구항 9에 있어서,
    상기 통계 모델은 제목들 및 주소들을 포함하는 훈련 데이터에 기초하여 생성되는 컴퓨터에 의해 구현된 지도 검색 방법.
  11. 청구항 10에 있어서,
    상기 훈련 데이터가 사용되기 전에, 훈련 데이터 주소들은 테일링된(tailing) 제목들을 제거하기 위해 미리 처리되고, 훈련 데이터 제목들은 접두가가 붙은(prefixing) 행정 구역 이름들을 제거하기 위해 미리 처리되는 컴퓨터에 의해 구현된 지도 검색 방법.
  12. 청구항 10에 있어서,
    상기 통계 모델은:
    제목들 및 주소들을 포함하는 훈련 데이터의 각 단편(piece)을, 복수의 토큰들을 포함하는 토큰 시퀀스로 파싱하는 단계로서, 각 토큰은 용어 및 상기 용어에 주석으로 첨부된 유형을 포함하는, 파싱 단계; 및
    상기 훈련 데이터의 토큰화된 제목들 및 주소들에 나타나는 복수의 아이템들의 발생 횟수를 세고 저장하는 단계;에 의해 생성되고,
    상기 복수의 아이템들은: 단일 용어로 구성된 유니그램; 2 개의 인접한 용어들로 구성된 바이그램; "무"("None")-유형인 인접 용어들로 구성된 시퀀스; 토크화된 제목 또는 주소에 나타나는 모든 용어들의 시퀀스; 유니그램에 연관된 유형으로 구성된 유형 유니그램; 바이그램에 연관된 유형으로 구성된 유형 바이그램; 또는 시퀀스로 연관된 유형으로 구성된 유형 시퀀스; 중 적어도 하나를 복수 개 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  13. 청구항 9에 있어서,
    상기 토큰 서브시퀀스에 대한 위치 통계 점수 또는 쿼리 통계 점수를 결정하는 단계는:
    상기 토큰 서브시퀀스에 나타난 아이템 점수에 기초하여, 상기 토큰 서브시퀀스에 대한 용어 점수를 결정하는 단계로서, 상기 아이템 점수는 훈련 데이터의 코퍼스(corpus)의 제목들 및 주소들에서 아이템들의 총수(counts)에 기초하는, 결정 단계;
    상기 토큰 서브시퀀스에 나타난 아이템 유형 점수에 기초하여, 상기 토큰 서브시퀀스에 대한 유형 점수를 결정하는 단계로서, 상기 아이템 유형 점수는 훈련 데이터의 코퍼스의 제목들 및 주소들에서 아이템 유형들의 총수에 기초하는, 결정 단계; 및
    상기 토큰 시퀀스의 용어 점수와 유형 점수를 합치는 단계;를 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  14. 청구항 13에 있어서,
    상기 위치 통계 점수를 결정하는 아이템 점수는 log(l_count)*l_count/(l_count+q_count)에 의해 결정되고, 여기서, l_count 및 q_count는 훈련 데이터의 코퍼스에서 주소들 및 제목들의 아이템 발생 횟수를 나타내는 컴퓨터에 의해 구현된 지도 검색 방법.
  15. 청구항 1에 있어서,
    상기 입력 항목을 상기 토큰 시퀀스로 파싱하는 단계는:
    잘못된(wrongly) 주석이 첨부된 유형을 가진 토큰을 식별하되, 상기 토큰의 유형을 상기 토큰 시퀀스의 인접한 토큰의 유형에 비교함으로써, 식별하는 단계; 및
    상기 토큰 시퀀스에서, 상기 잘못된 주석이 첨부된 유형을 가진 토큰을 수리하는 단계(fixing);를 더 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  16. 청구항 15에 있어서,
    상기 토큰 시퀀스에서, 상기 잘못된 주석이 첨부된 유형을 가진 토큰을 수리하는 단계는:
    상기 토큰이 "숫자(Number)" 유형의 토큰을 따르지 않는 경우에, "수량사 접미어(Quantifier Suffix)" 유형의 토큰을 "무(None)" 유형의 토큰으로 변경하는 단계를 포함하는 컴퓨터에 의해 구현된 지도 검색 방법.
  17. 하나 이상의 컴퓨터들과, 그리고 상기 하나 이상의 컴퓨터들에 의해 실행될 시에 하나 이상의 컴퓨터들이 실행하도록 하는 명령들을 저장하는 하나 이상의 저장 디바이스들을 포함하는 시스템에 있어서,
    상기 컴퓨터들의 실행 단계는:
    지도 검색을 위해 사용자로부터 수신된 입력 항목을, 복수의 토큰들을 포함하는 토큰 시퀀스로 파싱하는 단계로서, 각 토큰은 상기 입력 항목의 세그먼트를 나타내는 용어, 및 상기 용어에 주석으로 첨부된 유형을 포함하며, 상기 용어에 주석으로 첨부된 유형은 상기 용어가 주소 관련 정보를 나타내는지를 가리키는, 파싱 단계;
    상기 토큰 시퀀스의 가능한 분할 위치들을 결정하는 단계로서, 각 가능한 분할 위치는 상기 토큰 시퀀스를, 가능한 위치 서브시퀀스 및 가능한 쿼리 서브시퀀스로 분할하고, 상기 가능한 위치 서브시퀀스는 위치 정보를 포함하고, 상기 가능한 쿼리 서브시퀀스는 검색 대상을 지시하고, 상기 가능한 분할 위치들은 상기 토큰 시퀀스의 2 개의 인접한 토큰들 사이의 위치, 상기 토큰 시퀀스의 첫 번째 토큰 전의 위치, 또는 상기 토큰 시퀀스의 마지막 토큰 뒤의 위치를 포함하는, 결정 단계;
    상기 가능한 분할 위치들 각각에 대해 분할 점수를 결정하는 단계;
    최고 분할 점수를 가진 상기 가능한 분할 위치로부터 위치 서브시퀀스 및 쿼리 서브시퀀스를 선택하는 단계; 및
    상기 위치 서브시퀀스에 의해 지시된 위치 근방인 위치를 가진 쿼리 서브시퀀스에 반응하는 정보를 검색하는 단계;를 포함하며,
    이때 상기 토큰 시퀀스의 가능한 분할 위치들을 결정하는 단계는:
    가능한 분할 위치마다, 상기 가능한 분할 위치로부터 생성된 2 개의 토큰 서브시퀀스 각각에 대한 위치 통계 점수 및 쿼리 통계 점수를 결정하는 단계; 및
    상기 위치 통계 점수가 높은 토큰 서브시퀀스를 상기 가능한 위치 서브시퀀스로 식별하고, 다른 토큰 서브시퀀스를 상기 가능한 쿼리 서브시퀀스로 식별하는 단계로서, 토큰 서브시퀀스에 대한 위치 통계 점수 또는 쿼리 통계 점수는, 상기 토큰 서브시퀀스에서 나타난 아이템들의 점수, 및 상기 토큰 서브시퀀스에서 나타난 아이템 유형들의 점수에 기초하는, 식별 단계;를 포함하는 시스템.
  18. 기계 장비(machine)에 의해 실행될 시에, 상기 기계 장비를 실행시키는 명령들을 저장하는, 기계 장비로 판독 가능한 기록 매체에 있어서,
    상기 기계 장비의 실행 단계는:
    지도 검색을 위해 사용자로부터 수신된 입력 항목을, 복수의 토큰들을 포함하는 토큰 시퀀스로 파싱하는 단계로서, 각 토큰은 상기 입력 항목의 세그먼트를 나타내는 용어, 및 상기 용어에 주석으로 첨부된 유형을 포함하며, 상기 용어에 주석으로 첨부된 유형은 상기 용어가 주소 관련 정보를 나타내는지를 가리키는, 파싱 단계;
    상기 토큰 시퀀스의 가능한 분할 위치들을 결정하는 단계로서, 각 가능한 분할 위치는 상기 토큰 시퀀스를, 가능한 위치 서브시퀀스 및 가능한 쿼리 서브시퀀스로 분할하고, 상기 가능한 위치 서브시퀀스는 위치 정보를 포함하고, 상기 가능한 쿼리 서브시퀀스는 검색 대상을 지시하고, 상기 가능한 분할 위치들은 상기 토큰 시퀀스의 2 개의 인접한 토큰들 사이의 위치, 상기 토큰 시퀀스의 첫 번째 토큰 전의 위치, 또는 상기 토큰 시퀀스의 마지막 토큰 뒤의 위치를 포함하는, 결정 단계;
    상기 가능한 분할 위치들 각각에 대해 분할 점수를 결정하는 단계;
    최고 분할 점수를 가진 상기 가능한 분할 위치로부터 위치 서브시퀀스 및 쿼리 서브시퀀스를 선택하는 단계; 및
    상기 위치 서브시퀀스에 의해 지시된 위치 근방인 위치를 가진 쿼리 서브시퀀스에 반응하는 정보를 검색하는 단계;를 포함하며,
    이때 상기 토큰 시퀀스의 가능한 분할 위치들을 결정하는 단계는:
    가능한 분할 위치마다, 상기 가능한 분할 위치로부터 생성된 2 개의 토큰 서브시퀀스 각각에 대해 위치 통계 점수 및 쿼리 통계 점수를 결정하는 단계; 및
    상기 위치 통계 점수가 높은 토큰 서브시퀀스를 상기 가능한 위치 서브시퀀스로 식별하고, 다른 토큰 서브시퀀스를 상기 가능한 쿼리 서브시퀀스로 식별하는 단계로서, 토큰 서브시퀀스에 대한 위치 통계 점수 또는 쿼리 통계 점수는, 상기 토큰 서브시퀀스에서 나타난 아이템들의 점수, 및 상기 토큰 서브시퀀스에서 나타난 아이템 유형들의 점수에 기초하는, 식별 단계;를 포함하는 기계 장비로 판독 가능한 기록 매체.
  19. 청구항 13에 있어서,
    상기 쿼리 통계 점수를 결정하는 아이템 점수는 log(q_count)*q_count/(l_count+q_count)에 의해 결정되고, 여기서, l_count 및 q_count는 훈련 데이터의 코퍼스에서 주소들 및 제목들의 아이템 발생 횟수를 나타내는 컴퓨터에 의해 구현된 지도 검색 방법.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
KR1020127000638A 2009-07-07 2009-07-07 지도 검색을 위한 쿼리 파싱 방법 KR101516858B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2009/072667 WO2011003232A1 (en) 2009-07-07 2009-07-07 Query parsing for map search

Publications (2)

Publication Number Publication Date
KR20120123241A KR20120123241A (ko) 2012-11-08
KR101516858B1 true KR101516858B1 (ko) 2015-05-04

Family

ID=43428731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127000638A KR101516858B1 (ko) 2009-07-07 2009-07-07 지도 검색을 위한 쿼리 파싱 방법

Country Status (5)

Country Link
US (1) US8745065B2 (ko)
JP (1) JP5462361B2 (ko)
KR (1) KR101516858B1 (ko)
CN (1) CN102483748B (ko)
WO (1) WO2011003232A1 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8150848B2 (en) * 2008-01-04 2012-04-03 Google Inc. Geocoding multi-feature addresses
US8255379B2 (en) * 2009-11-10 2012-08-28 Microsoft Corporation Custom local search
US8739262B2 (en) * 2009-12-18 2014-05-27 Sabre Glbl Inc. Tokenized data security
US8473431B1 (en) 2010-05-14 2013-06-25 Google Inc. Predictive analytic modeling platform
CA2712028C (en) * 2010-08-25 2011-12-20 Ibm Canada Limited - Ibm Canada Limitee Geospatial database integration using business models
US8533224B2 (en) * 2011-05-04 2013-09-10 Google Inc. Assessing accuracy of trained predictive models
US20120317104A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Using Aggregate Location Metadata to Provide a Personalized Service
US9009183B2 (en) * 2011-11-03 2015-04-14 Microsoft Technology Licensing, Llc Transformation of a system change set from machine-consumable form to a form that is readily consumable by a human
CN102426596B (zh) * 2011-11-03 2014-07-30 北京地拓科技发展有限公司 地图加载方法和装置
CN102571910B (zh) * 2011-11-16 2014-08-13 腾讯科技(深圳)有限公司 在社交网络中查找附近用户的方法和服务器
US9275147B2 (en) * 2012-06-18 2016-03-01 Google Inc. Providing query suggestions
US9268822B2 (en) * 2012-07-18 2016-02-23 Salesforce.Com, Inc. System and method for determining organizational hierarchy from business card data
CN104662527A (zh) * 2012-08-10 2015-05-27 诺基亚公司 用于提供众包地理编码的方法和装置
US9767121B2 (en) * 2013-02-12 2017-09-19 C/O Vmobo, Inc. Location-based mobile search
WO2014145069A1 (en) 2013-03-15 2014-09-18 Ahad Rana Apparatus, systems, and methods for providing location information
KR101835576B1 (ko) * 2013-03-15 2018-03-08 더 던 앤드 브래드스트리트 코포레이션 사업체에 대한 지리적 장소 데이터의 비결정적 명확화 및 질적 실체 매칭을 위한 시스템
US9047325B2 (en) * 2013-04-08 2015-06-02 International Business Machines Corporation Modularizing complex XML data for generation and extraction
US20160078104A1 (en) * 2013-04-23 2016-03-17 Face Recording And Measurements Ltd Database management system
US10204139B2 (en) * 2013-05-06 2019-02-12 Verizon Patent And Licensing Inc. Systems and methods for processing geographic data
CN103631839B (zh) * 2013-06-27 2017-08-29 西南科技大学 一种页面地域权重模型实现方法
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
US9619499B2 (en) 2013-08-07 2017-04-11 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm
US9251218B2 (en) 2013-08-07 2016-02-02 International Business Machines Corporation Tunable hardware sort engine for performing composite sorting algorithms
US9495418B2 (en) 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
US9727595B2 (en) * 2013-09-20 2017-08-08 Uber Technologies, Inc. Location searching with category indices
GB2522432A (en) * 2014-01-23 2015-07-29 Locpin Ltd Computer system and method
US9465811B2 (en) * 2014-03-20 2016-10-11 Facebook, Inc. Polygon-based indexing of places
US9582515B1 (en) * 2014-04-11 2017-02-28 Google Inc. Detecting queries for specific places
US9519802B2 (en) 2014-05-07 2016-12-13 American Express Travel Related Services Company, Inc. Systems and methods for document and data protection
US20160140147A1 (en) * 2014-06-12 2016-05-19 Vasan Sun Searching for a map using an input image as a search query
US10127275B2 (en) 2014-07-11 2018-11-13 International Business Machines Corporation Mapping query operations in database systems to hardware based query accelerators
US9953171B2 (en) * 2014-09-22 2018-04-24 Infosys Limited System and method for tokenization of data for privacy
US10310813B2 (en) 2014-12-29 2019-06-04 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm using an external memory
US20160196349A1 (en) * 2015-01-07 2016-07-07 Microsoft Technology Licensing, Llc Geocoding multi-entity queries
US9881166B2 (en) * 2015-04-16 2018-01-30 International Business Machines Corporation Multi-focused fine-grained security framework
US10002128B2 (en) * 2015-09-09 2018-06-19 Samsung Electronics Co., Ltd. System for tokenizing text in languages without inter-word separation
US10268756B2 (en) 2015-12-18 2019-04-23 Here Global B.V. Method and apparatus for providing natural language input in a cartographic system
US10282466B2 (en) * 2015-12-31 2019-05-07 Samsung Electronics Co., Ltd. Machine processing of search query based on grammar rules
US10671932B1 (en) * 2017-01-27 2020-06-02 Intuit Inc. Software application selection models integration
US11640436B2 (en) * 2017-05-15 2023-05-02 Ebay Inc. Methods and systems for query segmentation
CN107491489A (zh) * 2017-07-18 2017-12-19 深圳天珑无线科技有限公司 一种地图搜索方法、装置及计算机可读存储介质
CN110019617B (zh) * 2017-12-05 2022-05-20 腾讯科技(深圳)有限公司 地址标识的确定方法和装置、存储介质、电子装置
US10606851B1 (en) * 2018-09-10 2020-03-31 Palantir Technologies Inc. Intelligent compute request scoring and routing
US10783175B2 (en) * 2018-09-28 2020-09-22 Microsoft Technology Licensing, Llc Expanding search queries using query term weighting
US11010376B2 (en) * 2018-10-20 2021-05-18 Verizon Patent And Licensing Inc. Methods and systems for determining search parameters from a search query
CN109657034A (zh) * 2018-11-05 2019-04-19 阿里巴巴集团控股有限公司 地址相似度计算方法及其系统
US11120007B2 (en) 2018-11-26 2021-09-14 Palantir Technologies Inc. Module expiration management
US10409641B1 (en) 2018-11-26 2019-09-10 Palantir Technologies Inc. Module assignment management
US11293776B2 (en) 2018-11-27 2022-04-05 Verizon Patent And Licensing Inc. Smart geocoding of road intersections
US20200183936A1 (en) * 2018-12-10 2020-06-11 Teradata Us, Inc. Predictive query parsing time and optimization
CN109783589B (zh) * 2018-12-13 2023-07-25 中国平安人寿保险股份有限公司 电子地图解析地址的方法、装置及存储介质
US11631047B2 (en) * 2019-04-12 2023-04-18 Flipkart Internet Pvt. Ltd. System and method of geocoding
CN111159239B (zh) * 2019-12-31 2024-03-05 北京四维图新科技股份有限公司 搜索方法和设备
CN113094600A (zh) 2020-01-08 2021-07-09 百度在线网络技术(北京)有限公司 电子地图的搜索方法、装置、设备和介质
CN113849531B (zh) * 2021-09-23 2024-03-22 北京百度网讯科技有限公司 查询方法及装置
CN117786242B (zh) * 2024-02-26 2024-05-28 腾讯科技(深圳)有限公司 一种基于位置的搜索方法及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152560A (ja) 2006-12-18 2008-07-03 Mitsubishi Electric Corp 施設検索装置
JP2009037316A (ja) 2007-07-31 2009-02-19 Yahoo Japan Corp 地図上の領域を求める方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2583879B2 (ja) * 1987-03-16 1997-02-19 日本電信電話株式会社 情報検索装置
JP3199093B2 (ja) * 1993-12-13 2001-08-13 シャープ株式会社 住所情報検索装置
JP2001249922A (ja) * 1999-12-28 2001-09-14 Matsushita Electric Ind Co Ltd 単語分割方式及び装置
AU2001273111A1 (en) 2000-06-30 2002-01-14 Anthony Romito Method and apparatus for a GIS based search engine utilizing real time advertising
US20070027672A1 (en) * 2000-07-31 2007-02-01 Michel Decary Computer method and apparatus for extracting data from web pages
US7207012B1 (en) * 2003-01-30 2007-04-17 Sprint Communications Company L.P. System and method for mapping deployment status of high bandwidth metropolitan area networks
CA2519236A1 (en) 2003-03-18 2004-09-30 Metacarta, Inc. Corpus clustering, confidence refinement, and ranking for geographic text search and information retrieval
US7752210B2 (en) * 2003-11-13 2010-07-06 Yahoo! Inc. Method of determining geographical location from IP address information
JP4246055B2 (ja) * 2003-12-19 2009-04-02 アルパイン株式会社 車載用ナビゲーション装置及び周辺施設検索表示方法
US20070168370A1 (en) * 2004-11-16 2007-07-19 Hardy Mark D System and methods for provisioning geospatial data
JP2006162516A (ja) * 2004-12-09 2006-06-22 Fujitsu Ten Ltd 情報端末装置
US7483881B2 (en) * 2004-12-30 2009-01-27 Google Inc. Determining unambiguous geographic references
US7506254B2 (en) * 2005-04-21 2009-03-17 Google Inc. Predictive conversion of user input
US8959084B2 (en) * 2005-07-13 2015-02-17 Google Inc. Identifying locations
US20080086356A1 (en) * 2005-12-09 2008-04-10 Steve Glassman Determining advertisements using user interest information and map-based location information
WO2008005102A2 (en) * 2006-05-13 2008-01-10 Sap Ag Consistent set of interfaces derived from a business object model
CN101136028B (zh) * 2006-07-10 2012-07-04 日电(中国)有限公司 基于自然语言的位置查询系统以及基于关键词的位置查询系统
US8359309B1 (en) * 2007-05-23 2013-01-22 Google Inc. Modifying search result ranking based on corpus search statistics
EP2158540A4 (en) * 2007-06-18 2010-10-20 Geographic Services Inc NAME SYSTEM FOR SELECTING GEOGRAPHICAL CHARACTERISTICS
CN101350013A (zh) * 2007-07-18 2009-01-21 北京灵图软件技术有限公司 一种地理信息的搜索方法和系统
US7983913B2 (en) * 2007-07-31 2011-07-19 Microsoft Corporation Understanding spoken location information based on intersections
JP2009104450A (ja) 2007-10-24 2009-05-14 Nagoya Institute Of Technology Webチャットの観測に基づく商品推薦システム
US8364470B2 (en) * 2008-01-15 2013-01-29 International Business Machines Corporation Text analysis method for finding acronyms
US20090210388A1 (en) * 2008-02-20 2009-08-20 Microsoft Corporation Efficiently discovering and synthesizing maps from a large corpus of maps
GB2460045A (en) 2008-05-13 2009-11-18 Triad Group Plc Analysing multiple data sources for a user request using business and geographical data, with selected rule sets to filter the data on the databases.
US8364462B2 (en) * 2008-06-25 2013-01-29 Microsoft Corporation Cross lingual location search
US8521731B2 (en) * 2008-07-09 2013-08-27 Yahoo! Inc. Systems and methods for query expansion in sponsored search
US8666652B2 (en) * 2008-09-30 2014-03-04 Sas Institute Inc. System and method for running stored statistical processes using a web-based graphical information system
US8015172B1 (en) * 2009-07-03 2011-09-06 eBridge, Inc. Method of conducting searches on the internet to obtain selected information on local entities and provide for searching the data in a way that lists local businesses at the top of the results
KR101289082B1 (ko) 2009-09-02 2013-07-22 한국전자통신연구원 지역 정보 서비스 제공 시스템 및 그 방법
US8255379B2 (en) 2009-11-10 2012-08-28 Microsoft Corporation Custom local search

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152560A (ja) 2006-12-18 2008-07-03 Mitsubishi Electric Corp 施設検索装置
JP2009037316A (ja) 2007-07-31 2009-02-19 Yahoo Japan Corp 地図上の領域を求める方法

Also Published As

Publication number Publication date
WO2011003232A1 (en) 2011-01-13
JP2012532388A (ja) 2012-12-13
US8745065B2 (en) 2014-06-03
CN102483748B (zh) 2016-04-20
KR20120123241A (ko) 2012-11-08
US20120278339A1 (en) 2012-11-01
JP5462361B2 (ja) 2014-04-02
CN102483748A (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
KR101516858B1 (ko) 지도 검색을 위한 쿼리 파싱 방법
EP2181405B1 (en) Automatic expanded language search
US20200192948A1 (en) Efficient forward ranking in a search engine
US8959084B2 (en) Identifying locations
US8713024B2 (en) Efficient forward ranking in a search engine
US7937402B2 (en) Natural language based location query system, keyword based location query system and a natural language and keyword based location query system
EP2798540B1 (en) Extracting search-focused key n-grams and/or phrases for relevance rankings in searches
US20070136251A1 (en) System and Method for Processing a Query
US20060212433A1 (en) Prioritization of search responses system and method
US9152721B1 (en) Prompt for query clarification
US20090083255A1 (en) Query spelling correction
WO2015065719A1 (en) Computerized systems and methods for identifying a character string for a point of interest
US9703871B1 (en) Generating query refinements using query components
KR101120040B1 (ko) 연관 질의어 추천 장치 및 방법
KR102206289B1 (ko) 장소 검색 커버리지를 통합하는 방법 및 시스템
CN101506806A (zh) 装备有内容搜索系统的信息终端
CN116069897A (zh) 查询纠错方法、装置、计算机设备、存储介质及程序产品

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