KR102204971B1 - 검색어를 위한 오류 정정 방법 및 기기 - Google Patents

검색어를 위한 오류 정정 방법 및 기기 Download PDF

Info

Publication number
KR102204971B1
KR102204971B1 KR1020197001982A KR20197001982A KR102204971B1 KR 102204971 B1 KR102204971 B1 KR 102204971B1 KR 1020197001982 A KR1020197001982 A KR 1020197001982A KR 20197001982 A KR20197001982 A KR 20197001982A KR 102204971 B1 KR102204971 B1 KR 102204971B1
Authority
KR
South Korea
Prior art keywords
letters
weight
pronunciation
search word
search
Prior art date
Application number
KR1020197001982A
Other languages
English (en)
Other versions
KR20190020119A (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 KR20190020119A publication Critical patent/KR20190020119A/ko
Application granted granted Critical
Publication of KR102204971B1 publication Critical patent/KR102204971B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Landscapes

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

Abstract

본 발명은 검색어를 위한 오류 정정 방법 및 장치를 제공한다. 오류 정정 방법은, 부정확한 검색어를 식별하는 단계, 가중치 편집 거리 알고리즘를 이용하여 상기 검색어 및 미리 획득된 인기어(hot term) 간의 가중치 편집 거리를 산출하는 단계를 포함하되, 상기 가중치 편집 거리를 산출하는 동안, 상기 검색어로부터 상기 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되며, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산이고, 상기 가중치 편집 거리 및 상기 인기어의 인기에 기초하여 오류 정정 프롬프트(prompt)를 위한 소정 개수의 인기어들을 선택하는 단계를 포함한다. 본 발명의 방법 및 장치는 오류 검색어들의 오류 정정 정확도를 향상시킬 수 있다.

Description

검색어를 위한 오류 정정 방법 및 기기
본 발명은 컴퓨터 기술 분야에 관한 것으로, 특히 검색어를 위한 오류 정정 방법 및 기기에 관한 것이다.
사용자에 의한 검색어들은 보통 많은 오자(typo)를 포함하고, 그로 인해 검색 결과가 사용자들의 요구를 충족시키지 못하게 한다. 부정확한 검색어의 이유는 비교적 복잡한데, 동음이의어 선택 오류, 핀인(Pinyin)의 철자 오기, 상형 문자 입력 오류 등을 주로 포함한다. 이상의 문제들을 해결하기 위해, 오류 정정 프롬프트(prompt)가 사용될 수 있다. 검색 페이지에서, 사용자에 의해 입력된 검색어가 부정확할 수 있고, 입력된 검색에 기초하여 관련성 있는 검색어를 추천하도록 사용자를 유도한다. 대부분의 종래 오류 정정 기술에서, 원래의 용어는 편집 거리(edit distance) 기술을 이용하여 사전 내에 용어(term)들과 비교되고, 원래의 용어로부터 가장 작은 편집 거리를 갖는 K개의 용어들이 선택된다. 편집 연산들은, 1) 하나의 글자(character)를 또 다른 글자로 대체, 2) 하나의 글자 삽입, 3) 하나의 글자 삭제를 포함한다. 이러한 편집 연산들은 대체 글자들 간의 관계를 고려하지 않는다. 많은 경우, 이러한 종래의 편집 거리 기술들의 효과는 매우 좋지 않다.
오류 정정의 정확도를 향상시키기 위하여, 본 발명의 실시예들은 검색어를 위한 오류 정정 방법 및 기기를 제공한다.
본 발명의 일 실시예에 따른 검색어를 위한 오류 정정 방법은, 부정확한 검색어를 식별하는 단계; 가중치 편집 거리 알고리즘를 이용하여 상기 검색어 및 미리 획득된 인기어(hot term) 간의 가중치 편집 거리(weighted edit distance)를 산출하는 단계; 및 상기 가중치 편집 거리 및 상기 인기어의 인기에 기초하여 오류 정정 프롬프트(prompt)를 위한 소정 개수의 인기어들을 선택하는 단계;를 포함하고, 상기 가중치 편집 거리를 산출하는 동안, 상기 검색어로부터 상기 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되며, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산일 수 있다.
선택적으로, 가중치 편집 거리 알고리즘을 이용하여 상기 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 단계는, 상기 검색어 및 상기 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식(state transition equation)을 정의하는 단계; 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식를 풀이하는 단계; 및 상기 상태 전이 방정식의 해(solution)에 기초하여 상기 가중치 편집 거리를 획득하는 단계;를 포함하고, 상기 상태 전이 방정식에서 2개의 상태 변수(state variable)가 정의되고, 상기 2개의 상태 변수는 검색어 및 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다.
선택적으로, 상기 상태 전이 방정식은, edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고, 상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
선택적으로, 상기 검색어를 위한 오류 정정 방법은, 유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 단계;를 더 포함한다.
선택적으로, 상기 검색어를 위한 오류 정정 방법은, 다음의 관계: 글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치에 기초한 연산들의 가중치를 설정하는 단계;를 더 포함한다.
선택적으로, 상기 부정확한 검색어를 식별하는 단계는, 식별되어야 하는 검색어에 대해, 검색 로그(log)에 기초하여 검색을 위한 클릭 비율(click rate), 용어 특징(term feature), 발생 확률(occurrence probability), 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출하는 단계; 및 식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어 또는 보통 검색어로서 결정하는 단계;를 포함한다.
선택적으로, 상기 가중치 편집 거리 및 상기 인기어의 인기에 따라 오류 정정 프롬프트를 위한 소정 개수의 인기어들을 선택하는 단계는, 상기 인기어들의 검색 개수를 정규화하는 단계; 상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출하는 단계; 및 오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 선택하는 단계;를 포함한다.
본 발명의 또 다른 실시예에 따른 가중치 편집 거리를 산출하는 방법은, 소스 열(source string) 및 타겟 열(target string)을 획득하는 단계; 및 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 단계;를 포함하고, 상기 가중치 편집 거리를 산출하는 동안, 상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산들을 위해 서로 다른 가중치들이 각각 설정될 수 있다.
선택적으로, 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 단계는, 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 단계; 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이하는 단계; 및 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득하는 단계;를 포함하고, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다.
본 발명의 또 다른 실시예에 따른 검색어를 위한 오류 정정 기기는, 부정확한 검색어를 식별하는 부정확한 검색어 식별 유닛; 가중치 편집 거리 알고리즘을 이용하여 상기 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 가중치 편집 거리 산출 유닛; 및 상기 가중치 편집 거리 및 상기 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어를 선택하는 오류 정정 프롬프팅(prompting) 유닛을 포함하고, 상기 가중치 편집 거리를 산출하는 동안, 상기 검색어로부터 상기 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되며, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산일 수 있다.
선택적으로, 상기 가중치 편집 거리 산출 유닛은, 상기 검색어 및 상기 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 상태 전이 방정식 정의 서브유닛; 및 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 상기 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식을 풀이하고, 상기 획득된 해를 상기 가중치 편집 거리로서 이용하는 방정식 풀이 서브유닛;을 포함하고, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 검색어 및 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다.
선택적으로, 상기 상태 전이 방정식은, edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고, 상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
선택적으로, 상기 검색어를 위한 오류 정정 기기는, 유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 유사한 외관 또는 발음을 가진 글자 결정 유닛;을 더 포함한다.
선택적으로, 상기 검색어를 위한 오류 정정 기기는, 다음의 관계: 글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치에 기초한 연산들의 가중치를 설정하는 연산 가중치 설정 유닛;을 더 포함한다.
선택적으로, 상기 부정확한 검색어 식별 유닛은, 식별되어야 하는 검색어에 대해, 검색 로그에 기초하여 검색을 위한 클릭 비율, 용어 특징, 발생 확률, 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출하는 로그 검색 및 산출 서브유닛; 및 식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어 또는 보통 검색어로서 결정하는 식별 결과 결정 서브유닛;을 포함한다.
선택적으로, 상기 오류 정정 프롬프팅 유닛은, 상기 인기어들의 검색 개수를 정규화하는 정규화 처리 서브유닛; 상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출하는 추천 종합 점수 산출 서브유닛; 및 오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 선택하는 추천어 결정 서브유닛;을 포함한다.
본 발명의 또 다른 실시예에 따른 가중치 편집 거리를 산출하는 기기는, 소스 열 및 타겟 열을 획득하는 획득 유닛; 및 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 산출 유닛;을 포함하고, 상기 가중치 편집 거리를 산출하는 동안, 상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산들을 위해 서로 다른 가중치들이 각각 설정될 수 있다.
선택적으로, 상기 산출 유닛은, 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 상태 전이 방정식 정의 서브유닛; 및 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이하고, 상기 획득된 해를 상기 가중치 편집 거리로서 이용하는 상태 전이 방정식 풀이 서브유닛;를 포함하고, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다.
본 발명의 또 다른 실시예에 따른 검색어를 위한 오류 정정 방법은, 부정확한 검색어를 식별하는 단계; 상기 검색어로부터 상기 인기어로 변환하는 서로 다른 연산들을 위해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 단계; 및 상기 가중치 편집 거리 및 미리 획득된 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어들을 상기 미리 획득된 인기어들로부터 선택하는 단계;를 포함하고, 상기 연산들은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 포함한다.
선택적으로, 상기 검색어로부터 상기 인기어로 변환하는 서로 다른 연산들을 위해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 단계는, 상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 단계; 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 미리 설정된 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식를 풀이하는 단계; 및 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득하는 단계;를 포함하고, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 검색어 및 미리 획득된 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다.
선택적으로, 상기 상태 전이 방정식은, edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고, 상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
선택적으로, 유사한 외관 또는 발음을 가진 글자로 대체하는 연산은, 유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 단계;를 포함한다.
선택적으로, 상기 검색어로부터 상기 인기어로 변환하는 연산을 위해 미리 설정된 서로 다른 가중치들은 다음의 관계에 기초한다: 글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치.
선택적으로, 부정확한 검색어를 식별하는 단계는, 식별되어야 하는 검색어에 대해, 검색 로그에 기초하여 검색을 위한 클릭 비율, 용어 특징, 발생 확률, 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출하는 단계; 및 식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어로서 결정하는 단계;를 포함한다.
선택적으로, 상기 가중치 편집 거리 및 미리 획득된 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어들을 상기 미리 획득된 인기어들로부터 선택하는 단계는, 상기 미리 획득된 인기어들의 검색 개수를 정규화하는 단계; 상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출하는 단계; 및 오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 선택하는 단계;를 포함한다.
본 발명의 또 다른 실시예에 따른 가중치 편집 거리를 산출하는 방법은, 소스 열 및 타겟 열을 획득하는 단계; 상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산들을 위해 서로 다른 가중치들을 각각 설정하는 단계; 및 상기 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 단계;를 포함한다.
선택적으로, 상기 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 단계는, 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 단계; 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이하는 단계; 및 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득하는 단계;를 포함하고, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다.
본 발명의 또 다른 실시예에 따른 검색어를 위한 오류 정정 기기는, 부정확한 검색어를 식별하는 부정확한 검색어 식별 유닛; 상기 검색어로부터 상기 인기어로 변환하는 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 가중치 편집 거리 산출 유닛; 및 상기 가중치 편집 거리 및 상기 미리 획득된 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어를 상기 미리 획득된 인기어들로부터 선택하는 오류 정정 프롬프팅 유닛을 포함하고, 상기 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 포함한다.
상기 가중치 편집 거리 산출 유닛은, 상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 상태 전이 방정식 정의 서브유닛; 및 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 미리 설정된 상기 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식을 풀이하고, 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득하는 방정식 풀이 서브유닛;을 포함하고, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다.
선택적으로, 상기 상태 전이 방정식은, edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고, 상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
선택적으로, 유사한 외관 또는 발음을 가진 글자로 대체하는 연산은, 유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정한다.
선택적으로, 상기 검색어로부터 상기 인기어로 변환하는 연산에 대해 미리 설정된 상기 서로 다른 가중치들은 다음의 관계에 기초한다: 글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치.
선택적으로, 상기 부정확한 검색어 식별 유닛은, 식별되어야 하는 검색어에 대해, 검색 로그에 기초하여 검색을 위한 클릭 비율, 용어 특징, 발생 확률, 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출하는 로그 검색 및 산출 서브유닛; 및 식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어로서 결정하는 식별 결과 결정 서브유닛;을 포함한다.
선택적으로, 상기 오류 정정 프롬프팅 유닛은, 상기 미리 획득된 인기어들의 검색 개수를 정규화하는 정규화 서브유닛; 상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출하는 추천 종합 점수 산출 서브유닛; 및 오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 상기 미리 획득된 인기어들로부터 선택하는 추천어 결정 서브유닛;을 포함한다.
본 발명의 또 다른 실시예에 따른 가중치 편집 거리를 산출하는 기기는, 소스 열 및 타겟 열을 획득하는 획득 유닛; 및 상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산에 대해 각각 서로 다른 가중치들을 설정하고, 상기 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 산출 유닛;을 포함한다.
선택적으로, 상기 산출 유닛은, 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 상태 전이 방정식 정의 서브유닛; 및 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이하고, 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득하는 상태 전이 방정식 풀이 서브유닛;를 포함하고, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용될 수 있다.
본 발명의 또 다른 실시예에 따른 전자 기기는, 제 1 프로세서, 제 1 통신 인터페이스, 제 1 메모리 및 제 1 통신 버스를 포함하고, 상기 제 1 프로세서, 상기 제 1 통신 인터페이스 및 상기 제 1 메모리는 상기 제 1 통신 버스를 통해 서로 통신하며, 상기 제 1 메모리는 컴퓨터 프로그램을 저장하기 위해 사용되고, 상기 제 1 프로세서는 상기 제 1 메모리에 저장된 프로그램을 실행시키기 위해 사용됨으로써, 상기 기술된 검색어를 위한 오류 정정 방법의 단계들을 구현한다.
본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체는, 프로세서에 의해 수행되는 경우, 상기 컴퓨터 프로그램이 상기 프로세서로 하여금 상기 기술된 검색어를 위한 오류 정정 방법의 단계들을 구현하도록 한다.
본 발명의 또 다른 실시예에 따른 전자 기기는, 제 2 프로세서, 제 2 통신 인터페이스, 제 2 메모리 및 제 2 통신 버스를 포함하고, 상기 제 2 프로세서, 상기 제 2 통신 인터페이스 및 상기 제 2 메모리는 상기 제 2 통신 버스를 통해 서로 통신하며, 상기 제 2 메모리는 컴퓨터 프로그램을 저장하기 위해 사용되고, 상기 제 2 프로세서는, 상기 제 2 메모리에 저장된 프로그램을 실행시킬 때, 상기 기술된 가중치 편집 거리를 산출하는 방법의 단계들을 구현하도록 사용된다.
본 발명이 또 다른 실시예에 따른 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체는, 프로세서에 의해 수행되는 경우, 상기 컴퓨터 프로그램이 상기 프로세서로 하여금 상기 기술된 가중치 편집 거리를 산출하는 방법의 단계들을 구현하도록 한다.
본 발명의 실시예들은 상기 가중치 편집 거리에 기초하여 검색어를 위한 오류 정정 방법 및 기기를 제공할 수 있다. 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 서로 다른 가중치들을 설정함으로써, 검색어로부터 인기어로 변환하는 절차에 수반될 수 있는 상기 모든 연산들은 상기 가중치 편집 거리를 산출하는 동안 적절하게 포함된다. 따라서, 검색어 및 인기어 간의 상기 가중치 편집 거리는 보다 빠르고 정확하게 산출될 수 있으며, 그렇게 함으로써 검색어 오류 정정의 정확도를 향상시킬 수 있다.
본 발명의 실시예들의 기술적 해결 수단과 종래 기술의 기술적 해결 수단을 보다 명확하게 설명하기 위하여, 실시예들 및 종래 기술에서 요구되는 도면의 간략한 소개가 이하에서 제시될 것이다. 명백하게, 이하에서 기술되는 도면들은 단지 본 발명의 일부 실시예들을 위한 것이며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 이러한 도면들에 기초하여 어떠한 창조적 노력 없이도 다른 도면들을 획득할 수 있다.
도 1은 본 발명의 일 실시예가 제공하는 검색어를 위한 오류 정정 방법의 흐름도이다.
도 2는 본 발명의 일 실시예가 제공하는 가중치 편집 거리를 산출하는 방법의 흐름도이다.
도 3은 본 발명의 일 실시예가 제공하는 오류 정정 기기의 개략 구조도이다.
도 4는 본 발명의 일 실시예가 제공하는 전자 기기의 제 1 개략 구조도이다.
도 5는 본 발명의 일 실시예가 제공하는 전자 기기의 제 2 개략 구조도이다.
본 발명의 목적, 기술적 해결 수단 및 장점을 보다 명확하게 하기 위하여, 도면과 실시예들을 참조하여 이하에서 상세한 설명이 보다 구체적으로 제시될 것이다. 명백하게, 기술되는 실시예들은 모든 실시예들을 대신하여 본 발명의 실시예들의 단지 일부에 불과하다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 어떠한 창조적 노력 없이 얻을 수 있는 다른 모든 실시예들은 본 발명의 보호 범위 내에 속한다.
앞서 분석한 바와 같이, 종래 기술에서 편집 거리에 기초한 오류 정정 해결 수단에서는, 유사한 외관을 가진 글자들, 유사한 발음을 가진 글자들 등과 같은 대체 글자들 간의 관계가 없거나, 또는 열(string) 내에서 인접한 글자들 간에 교환 연산에 관한 고려가 없었다. 따라서, 이러한 종래의 편집 거리의 효과는 이상적이지 않다.
본 발명의 실시예들은 가중치 편집 거리에 기초하여 검색어를 위한 오류 정정 방법 및 기기를 제공한다. 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 각각 서로 다른 가중치들을 설정함으로써, 검색어로부터 인기어로 변환하는 처리 내에 수반되는 모든 연산들이 상기 가중치 편집 거리를 산출하는 동안에 적절하게 포함된다. 따라서, 검색어 및 인기어 간의 상기 가중치 편집 거리는 보다 빠르고 정확하게 산출될 수 있으며, 그렇게 함으로써 검색어 오류 정정의 정확도를 향상시킬 수 있다.
도 1을 참조하면, 본 발명의 일 실시예가 제공하는 검색어를 위한 오류 정정 방법의 흐름도로서, 다음의 단계를 포함한다:
S101: 부정확한 검색어를 식별한다.
먼저, 검색어를 위한 오류 정정이 부정확한 검색어를 위한 오류 정정이기 때문에, 부정확한 검색어를 식별할 필요가 있다. 부정확한 검색어를 야기하는 많은 경우가 있다. 예를 들어, 동음이의어 선택 오류, 핀인(Pinyin)의 철자 오기, 상형 문자 입력 오류는 사용자들의 요구를 충족시키지 못하는 검색 결과를 초래한다. 특정 구현에서, 부정확한 검색어들은 검색 로그(log)들에 기초하여 식별될 수 있다. 상기 부정확한 검색어들은 검색을 위한 클릭 비율, 언어 모델에 기초한 풀 매칭 검색 결과의 개수 및 검색어의 확률을 통해 효과적으로 식별될 수 있다.
본 발명의 일 실시예에서, 부정확한 검색어를 식별하는 방법이 제공되며, 다음의 단계 1-2를 포함한다:
단계 1, 식별되어야 하는 검색어에 대해, 검색 로그(log)에 기초하여 검색을 위한 클릭 비율(click rate), 용어 특징(term feature), 발생 확률(occurrence probability), 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출한다.
구체적으로:
첫째, 식별되어야 하는 검색어의 검색을 위한 클릭 비율이 산출된다. 예를 들어, 식별되어야 하는 검색어가 사용자들에 의해 검색되는 횟수 및 검색 결과가 사용자들에 의해 클릭된 횟수는 검색 로그들로부터 획득될 수 있다. 상기 검색을 위한 클릭 비율은 검색 결과가 클릭된 횟수를 검색 수로 제산함으로써 획득될 수 있다.
둘째, 식별되어야 하는 상기 검색어는 복수 개의 용어 특징들을 획득하기 위해 분할된다.
나중에, 식별되어야 하는 검색어의 발생 확률이 통계적 언어 모델 및 다양한 용어 특징들을 이용하여 산출된다.
그런 다음, 풀 매칭 결과의 개수 및 식별되어야 하는 검색어의 관련 결과의 개수가 산출된다. 여기서, 풀 매칭 결과의 개수는, 상기 식별되어야 하는 검색어를 위한 모든 검색 결과들 중에서, 상기 식별되어야 하는 검색어의 모든 내용(content)을 포함하는, 결과의 개수이다. 상기 관련 결과의 개수는, 상기 식별되어야 하는 검색어를 위한 모든 검색 결과들 중에서, 상기 식별되어야 하는 검색어의 일부 내용을 포함하는, 결과의 개수이다.
예를 들어, 상기 식별되어야 하는 검색어가 "원격으로 제어될 수 있는 카메라"이고, 상기 식별되어야 하는 검색어의 일부 내용이 "카메라"이고, 검색 결과들에서, "원격으로 제어될 수 있는 카메라"를 포함하는 결과의 개수가 10이며, "카메라"를 포함하는 결과의 개수가 15라고 하자.
따라서, 풀 매칭 결과의 개수는 10이고, 관련 결과의 개수는 15이다.
마지막으로, 풀 매칭 결과의 개수 및 관련 결과의 개수의 비율은 풀 매칭 비율을 획득하여 산출된다.
단계 2, 상기 식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징들, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 상기 식별되어야 하는 검색어를 부정확한 검색어 또는 보통 검색어로서 결정한다.
식별되어야 하는 검색어의 특징들은 다차원(multi-dimensional) 특징으로 병합될 수 있고, 상기 식별되어야 하는 검색어의 다차원 특징은 다음의 몇몇을 포함할 수 있다: 검색을 위한 클릭 비율, 모든 용어 특징들, 식별되어야 하는 검색어의 발생 확률, 풀 매칭 결과의 개수 및 풀 매칭 비율. 상기 식별되어야 하는 검색어는 다차원 특징에 기초하여 식별될 수 있고, 상기 식별되어야 하는 검색어를 식별하는 어려움을 감소시킬 수 있으며, 그럼으로써 식별되어야 하는 검색어를 식별하는 능력을 향상시키고, 상기 식별되어야 하는 검색어가 부정확한 검색어인지 여부를 식별하기 유리하다.
S102: 가중치 편집 거리 알고리즘을 이용하여 상기 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출한다. 여기서, 상기 가중치 편집 거리를 산출하는 동안, 상기 검색어로부터 상기 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되며, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산이다.
인기어(hot term)는 실제 세상 또는 인터넷 상에서 매우 유명한 단어이다. 실질적인 연산들에서, 다수의 인기어들이 인기어 리스트를 형성하는 클릭률(click-through rate)에 의해 결정될 수 있다. 인기어 리스트를 형성하는 동안, 낮은 클릭률을 갖는 인기어들 및 더 적은 검색 결과들은 인기어들의 정확성을 보장하기 위해 걸러져야만 한다. 본 발명의 일 실시예에서, 상기 부정확한 검색어는 작은 편집 거리를 갖는 인기어로 정정되며, 그럼으로써 더 나은 사용자 경험을 제공한다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 이해할 수 있듯이, 레벤슈타인 거리(Levenshtein distance)로도 불리는 상기 편집 거리는, 하나의 열(string)을 다른 열로 변환하도록 요구되는 편집 연산의 최소 개수와 관련되어 있다. 종래의 편집 연산들은: 하나의 글자를 다른 글자로 대체하기, 하나의 글자를 십입하기, 하나의 글자를 삭제하기로 구성된다. 일반적으로, 편집 거리를 더 작게 할수록, 2개의 열의 유사도(similarity)는 더 커질 것이다.
종래의 편집 거리 연산들은: 하나의 글자를 다른 글자로 대체하기, 하나의 글자를 삽입하기, 하나의 글자를 삭제하기를 포함할 수 있고, 상기 연산들 각각은 1의 편집 거리에 대응한다. 이러한 연산들은, 하나의 열 내에서 인접한 글자들의 교환을 포함하지 않고, 또는 유사한 외관 또는 발음을 가진 글자들의 대체 연산의 독특함을 고려하지 않고 있다. 교환 연산은 2개의 대체 연산들에 의해 수행될 수 있다. 예를 들어, CD -> DD -> DC에서, 종래의 편집 거리 알고리즘에 따라 대응하는 거리는 2이다. 사용자들이 2개의 글자를 교환되는 위치에 입력할 확률은 실제 검색 과정에서 매우 높다는 점을 고려할 때, 교환 연산들을 위해 2의 거리를 갖는 것은 불합리하다. 나아가, 유사한 외관 또는 발음을 갖는 글자들로 인해 사용자들이 부정확한 검색어들을 입력할 확률 역시 높기 때문에, 어떠한 특별한 처리 없이 이렇게 특별한 대체 연산들에 대해 1의 거리를 설정하는 것은 명백하게 불합리하다.
이를 위해, 본 발명의 일 실시예는 가중치들을 각각 설정하는 다음의 5가지 연산을 포함하는 가중치 편집 거리를 산출하는 방법을 제공한다.
1) 글자들을 삽입하는 연산의 가중치는 1로 설정된다;
2) 글자들을 삭제하는 연산의 가중치는 1로 설정된다;
3) 글자들을 유사한 외관 또는 발음으로 대체하는 연산의 가중치는 1로 설정된다;
4) 글자들을 비유사한 외관 또는 발음으로 대체하는 연산의 가중치는 w1로 설정된다;
5) 글자들을 교환하는 연산의 가중치는 w2로 설정된다.
더 나은 효과를 달성하기 위하여, 특별한 관심이 w1 및 w2의 값들에 주어져야만 한다. 일반적으로, 그들은 w1 < w2 < 1를 충족시킬 필요가 있다. 선택적으로, 상기 연산 가중치들이 다음의 관계에 기초하여 설정될 수 있다고 실험에 의해 결론이 내려졌다: 글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치.
다양한 가능한 연산들이 고려되고, 서로 다른 가중치들 각각에 주어지며, 결과적으로, 오류 정정을 수행하기 위하여 이러한 가중치 편집 거리를 적용함으로써, 열(string) 간에서 산출된 더 높은 정확도의 유사도를 얻을 수 있다.
따라서, 또 다른 측면에서, 본 발명의 일 실시예가 제공하는 가중치 편집 거리를 산출하는 방법은: 소스 열(source string) 및 타겟 열(target string)을 획득하는 단계; 및 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 단계;를 포함하고, 상기 가중치 편집 거리를 산출하는 동안, 상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산들을 위해 서로 다른 가중치들이 각각 설정될 수 있다.
가중치 편집 거리("동적 프로그래밍"으로도 알려진)에 의해, 서로 다른 가중치들이 상기 문제들을 해결하려고 서로 다른 연산을 위해 설정될 수 있다. 그것의 아이디어는 연산의 상태(state)를 기술하고 상태 전이 방정식을 풀이하는 것이다.
편집 거리의 문제는 소스 열(str1, 본 실시예에서는 상기 검색어) 및 타겟 열(str2, 본 실시예에서는 상기 인기어)을 수반하고, 하나의 상태 변수(state variable)가 가중치 편집 거리를 산출함으로써 상기 소스 열로부터 상기 타겟 열로 변환하는 이진 관계(binary relationship)를 기술하지 못한다는 것은 명백하다. 따라서, 2개의 상태 변수 i 및 j 가 상기 소스 열로부터 상기 타겟 열로의 전이 과정에서 하나의 상태를 기술하는데 사용된다. 상기 소스 열 str1의 1->i로부터 상기 타겟 열 str2의 1->j로의 최적의 편집 거리는 edit (i, j)로 표현된다. 여기서, 1->i는 상기 소스 열에서 i의 길이를 갖는 부분열(substring)을 나타내고, 1->j는 상기 타겟 열에서 j 의 길이를 갖는 부분열을 나타낸다. 상기 소스 열로부터 상기 타겟 열로의 전이, 즉, ti<i 및 tj<j의 이러한 서브-상태(sub-state)들로부터 i 및 j의 상태로 전이 방식을 위한 상태 전이 방정식이 필요하다. 여기서, 상기 서브-상태들은 상기 편집 거리를 산출하기 전의 상기 소스 열 및 상기 타겟 열의 상태들이다. 특히, ti<i는 상기 소스 열이 상기 타겟 열로 변환되지 않았을 때, 상기 소스 열의 상태를 나타내고, tj<j는 상기 소스 열이 상기 타겟 열로 변환되지 않았을 때, 상기 타겟 열의 상태를 나타내며, i 및 j의 상태들은 상기 편집 거리가 산출된 후의 상기 소스 열 및 상기 타겟 열의 상태들을 나타낸다. 본 발명의 실시예들에서, 상기 가중치 편집 거리의 연산들은, 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 포함하며, 그러면, 서브-상태들은 이러한 5가지 연산들의 방식에 의해 현재의 상태들로 변환되고, 상기 현재의 상태들은 i 및 j의 상태들이다. 본 발명의 실시예들에서, i 및 j의 값들은 정수임에 주목하여야 한다.
도 2를 참조하면, 본 발명의 일 실시예가 제공하는 가중치 편집 거리를 산출하는 방법의 흐름도로서, 다음의 단계들을 포함한다:
S201: 상기 검색어 및 상기 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식를 정의한다. 여기서, 상태 전이 방정식 내에 2개의 상태 변수가 정의되는데, 이는 검색어 및 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다.
S202: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식를 풀이하고, 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
본 발명의 일 실시예에서, 인기어 및 부정확한 검색어 간의 유사도(similarity)는 가중치 편집 거리 알고리즘을 이용하여 획득된다. 먼저, 상태 전이 방정식이 정의되는데, 여기서 edit(i,j)는 제 1 열(string)에서 i의 길이를 갖는 부분열(substring)로부터 제 2 열에서 j의 길이를 갖는 부분열로의 가중치 편집 거리를 나타내고, str1(i)는 상기 제 1 열의 (i + 1)번째 글자를 나타내며, str2(j)는 상기 제 2 열의 (j + 1)번째 글자를 나타내는데 사용된다. 동적 프로그래밍에 기초하여 가중치 편집 거리를 산출하는 방법의 논리적 구현 예가 이하에서 제공된다.
A. if i==0 and j==0, edit(i,j) = 0;
B. if i==0 and j>0, edit(i,j) = j;
C. if i>0 and j==0, edit(i,j) = i;
D. if i≥1 and j≥1, edit(i,j) = min{edit(i-1,j)+1, edit(i,j-1)+1, edit(i-1,j-1)+f(i,j)}, wherein:
D1. if str1(i-1)==str2(j-1), f(i,j) = 0
D2. if str1(i-1) and str2(j-1) are characters with similar appearance or pronunciation, f(i,j) = w1
D3. if i≥2 and j≥2 and str1(i-2)==str2(j-1) and str1(i-1)==str2(j-2), f(i,j) = 1 - w2
D4. else, f(i,j) = 1
여기서, 단계 A, B 및 C는 edit (i, j) 함수의 초기화를 나타내고, 단계 D1는 글자 str1(i-1)가 글자 str2(j-1)와 동일하다는 것을 나타내고, 단계 D2는 상기 글자 str1(i-1) 및 상기 글자 str2(j-1)가 유사한 외관 또는 발음을 가진 글자인 경우, 상기 글자들을 대체하는 연산을 나타내고, 단계 D3는 교환 연산을 나타내며, 단계 D4는 삽입, 삭제 및 비유사한 외관 또는 발음을 갖는 글자에 의한 대체 연산을 나타낸다. f(i,j)는 연산의 비용이고, 상기 각각의 가중치에 대응하는 비용들 f(i,j)는 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다. 이에 따라, 부정확한 검색어 및 인기어 간의 상기 편집 거리가 산출될 수 있다.
단계 D2에서, 유사한 외관 또는 발음을 갖는 글자들로 대체하는 연산은: 유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블에 따라 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자들인지 여부를 결정하는 단계를 포함할 수 있다. 중국어 글자들을 예를 들면, 유사한 발음을 가진 글자들의 매핑 테이블은 중국어 글자들의 핀인(Pinyin)을 우선 추출함으로써 생성될 수 있고, 그러면 상기 핀인에 대응하는 모든 중국어 글자들을 발견할 수 있다. 마찬가지로, 중국어 이외의 언어들에 대해, 매핑 테이블이 유사한 방식으로 생성될 수 있다.
S103: 오류 정정 프롬프트를 위해 가중치 편집 거리 및 미리 획득된 인기어의 인기에 기초하여 소정 개수의 인기어가 상기 미리 획득된 인기어들로부터 선택된다.
구체적으로, 오류 정정을 위해 선택된 소정 개수의 인기어들은 추천어들이다. 상기 추천어들의 선택은 다음의 단계들에 의해 달성될 수 있다: 1. 미리 획득된 인기어에 대한 검색 개수를 정규화한다; 2. 상기 가중치 편집 거리 및 미리 획득된 인기어에 대해 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출한다; 3. 상기 미리 획득된 인기어들로부터, 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 선택한다.
추천어들을 선택하는 동안 상기 편집 거리 및 상기 인기어의 인기를 고려할 필요가 있다. 가중치 편집 거리가 edit_score이고, 인기어의 검색 개수가 impression_count이며, 로그 공식(logarithmic formula)을 이용하여 상기 인기어들의 검색 개수가 0에서 1 사이의 값으로 정규화되었다고 가정하자. 예를 들어, hot_index = min(log(impression_count + 1) / 20, 1)이면,
상기 추천 종합 점수는,
final_score = hot_index * edit_score
이며, final_score는 종합 점수를 나타내고, hot_index는 0에서 1 사이의 값으로 정규화된 인기어들의 검색 개수의 결과를 나타낸다.
마지막으로, 오류 정정 프롬프트를 수행하기 위하여, 가장 높은 추천 종합 점수를 갖고, 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 k개의 인기어들을 오류 정정 프롬프트를 위한 추천어로서 선택한다.
검색어를 위한 오류 정정 방법을 보다 명확하게 설명하기 위하여, 이하에서는 본 발명의 실시예들이 제공하는 검색어를 위한 오류 정정 방법을 또 다른 측면에서 보다 구체적으로 기술할 것이다.
본 발명의 실시예들이 제공하는 검색어들을 위한 오류 정정 방법은 다음의 단계들을 포함할 수 있다:
부정확한 검색어를 식별한다;
상기 검색어로부터 상기 인기어로 변환하는 서로 다른 연산들을 위해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하되, 상기 연산들은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 포함한다;
오류 정정 프롬프트를 위해, 가중치 편집 거리 및 미리 획득된 인기어의 인기에 기초하여 상기 미리 획득된 인기어들로부터 소정 개수이 인기어를 선택한다.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 검색어로부터 상기 인기어로 변환하는 서로 다른 연산들을 위해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 단계는 다음의 단계들을 포함한다:
상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식(state transition equation)을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수(state variable)가 정의되며, 이는 상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 미리 설정된 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식를 풀이한다;
상기 상태 전이 방정식의 해(solution)에 기초하여 상기 가중치 편집 거리를 획득한다.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 상태 전이 방정식은,
edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고;
상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
본 발명의 상기 실시예의 일 구현에 있어서, 유사한 외관 또는 발음을 가진 글자로 대체하는 연산은 다음의 단계를 포함할 수 있다:
유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정한다.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 검색어로부터 상기 인기어로 변환하는 연산을 위해 미리 설정된 상기 서로 다른 가중치들은 다음의 관계에 기초한다:
글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치.
본 발명의 상기 실시예의 일 구현에 있어서, 부정확한 검색어를 식별하는 단계는 다음의 단계들을 포함할 수 있다:
식별되어야 하는 검색어에 대해, 검색 로그(log)에 기초하여 검색을 위한 클릭 비율(click rate), 용어 특징(term feature), 발생 확률(occurrence probability), 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출한다;
식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어로서 결정한다.
본 발명의 상기 실시예의 일 구현에 있어서, 오류 정정 프롬프트를 위하여 상기 가중치 편집 거리 및 상기 미리 획득된 인기어의 인기에 기초하여 소정 개수의 인기어들을 상기 미리 획득된 인기어들로부터 선택하는 단계는 다음의 단계들을 포함한다:
상기 미리 획득된 인기어들의 검색 개수를 정규화한다;
상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출한다;
오류 정정 프롬프트를 수행하기 위하여 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 소정 개수의 인기어들로부터 선택한다.
본 발명의 상기 실시예에서, 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 서로 다른 가중치들을 설정함으로써, 검색어로부터 인기어로의 변환 절차에 수반될 수 있는 모든 연산들은 상기 가중치 편집 거리를 산출하는 동안 적절하게 포함된다. 따라서, 검색어 및 인기어 간의 상기 가중치 편집 거리는 보다 빠르고 정확하게 산출될 수 있고, 그럼으로써 검색어 오류 정정의 정확도를 향상시킨다.
앞서 기술된 가중치 편집 거리를 산출하는 방법을 보다 명확하게 설명하기 위하여, 이하에서는 본 발명의 실시예가 제공하는 가중치 편집 거리를 산출하는 방법이 또 다른 관점에서 보다 구체적으로 기술될 것이다.
본 발명의 실시예가 제공하는 가중치 편집 거리를 산출하는 방법은 다음의 단계들로 구성될 수 있다:
소스 열(source string) 및 타겟 열(target string)을 획득한다;
상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산들을 위해 서로 다른 가중치들이 각각 설정되고, 상기 서로 다른 연산들을 위해 설정된 상기 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 산출한다.
상기 기술된 가중치 편집 거리를 산출하는 방법이 검색어 및 인기어 간의 가중치 편집 거리를 산출하는데 사용되는 경우, 상기 소스 열은 식별된 부정확한 검색어일 수 있고, 상기 타겟 열은 미리 획득된 인기어일 수 있음에 주목하여야 한다.
본 발명의 상기 실시예의 일 구현에 있어서, 서로 다른 연산들을 위해 설정된 상기 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 산출하는 단계는 다음의 단계들로 구성될 수 있다:
상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이한다;
상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
본 발명의 실시예들에서, 다양한 가능한 연산들이 고려되고 각각 서로 다른 가중치들이 주어지기 때문에, 오류 정정을 수행하기 위해 이러한 가중치 편집 거리를 적용함으로써, 열(string)들 간에서 산출된 유사도에서 더 높은 정확도를 얻을 수 있다.
설명을 단순화하기 위해, 본 방법의 실시예들은 일련의 동작 조합으로서 기술되었음에 주목하여야 한다. 그러나, 본 발명의 실시예들에 따른 특정 단계들이 다른 순서로 또는 동시에 수행될 수 있으므로, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 실시예들이 기술된 동작의 순서에 제한되지 않음을 이해하여야 할 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 명세서에 기술된 모든 실시예들이 선택적인 실시예들이고, 이에 수반된 동작들이 본 발명의 실시예들에 반드시 필수적인 구성이 아님을 또한 이해하여야 할 것이다.
도 3을 참조하면, 본 발명의 일 실시예가 제공하는 검색어를 위한 오류 정정 기기를 도시한 것으로서, 상기 기기는 다음의 구성을 포함한다:
부정확한 검색어 식별 유닛(301)은 부정확한 검색어를 식별한다;
먼저, 검색어를 위한 오류 정정은 부정확한 검색어를 위한 오류 정정이기 때문에 상기 부정확한 검색어를 식별할 필요가 있다. 특정 실시예에서, 부정확한 검색어들은 검색 로그에 기초하여 식별될 수 있다: 상기 부정확한 검색어들은 검색을 위한 클릭 비율, 언어 모델에 기초한 풀 매칭 검색 결과의 개수 및 검색어의 확률을 통해 효과적으로 식별될 수 있다.
가중치 편집 거리 산출 유닛(302)은 가중치 편집 거리 알고리즘을 이용하여 상기 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하되, 상기 가중치 편집 거리를 산출하는 동안, 상기 검색어로부터 상기 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되며, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산이다;
인기어는 실제 세상 또는 인터넷 상에서 매우 인기있는 단어이다. 실질적인 연산들에서, 다수의 인기어들이 인기어 리스트를 형성하는 클릭률에 의해 결정될 수 있다. 인기어 리스트를 형성하는 동안, 낮은 클릭률을 갖는 인기어들 및 더 적은 검색 결과들은 인기어들의 정확성을 보장하기 위해 걸러져야만 한다. 본 발명의 일 실시예에서, 상기 부정확한 검색어는 작은 편집 거리를 갖는 인기어로 정정되며, 그럼으로써 더 나은 사용자 경험을 제공한다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 이해할 수 있듯이, 레벤슈타인 거리(Levenshtein distance)로도 불리는 상기 편집 거리는, 하나의 열(string)을 다른 열로 변환하도록 요구되는 편집 연산의 최소 개수와 관련되어 있다. 종래의 편집 연산들은: 하나의 글자를 다른 글자로 대체하기, 하나의 글자를 십입하기, 하나의 글자를 삭제하기로 구성된다. 일반적으로, 편집 거리를 더 작게 할수록, 2개의 열의 유사도(similarity)는 더 커질 것이다.
종래의 편집 거리 연산들은: 하나의 글자를 다른 글자로 대체하기, 하나의 글자를 삽입하기, 하나의 글자를 삭제하기를 포함할 수 있고, 상기 연산들 각각은 1의 편집 거리에 대응한다. 이러한 연산들은, 하나의 열 내에서 인접한 글자들의 교환을 포함하지 않고, 또는 유사한 외관 또는 발음을 가진 글자들의 대체하는 것을 특별히 고려하지 않고 있다. 교환 연산은 2개의 대체 연산들에 의해 수행될 수 있다. 예를 들어, CD -> DD -> DC에서, 종래의 편집 거리 알고리즘에 따라 대응하는 거리는 2이다. 사용자들이 2개의 글자를 교환되는 위치에 입력할 확률은 실제 검색 과정에서 매우 높다는 점을 고려할 때, 교환 연산들을 위해 2의 거리를 갖는 것은 불합리하다. 나아가, 유사한 외관 또는 발음을 갖는 글자들로 인해 사용자들이 부정확한 검색어들을 입력할 확률 역시 높기 때문에, 어떠한 특별한 처리 없이 이렇게 특별한 대체 연산들에 대해 1의 거리를 설정하는 것은 명백하게 불합리하다.
따라서, 본 발명의 일 실시예는 다음과 같이 구성되는 가중치 편집 거리를 산출하는 기기를 제공한다:
획득 유닛은 소스 열 및 타겟 열을 획득한다;
산출 유닛은 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하되, 상기 가중치 편집 거리를 산출하는 동안, 상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산들을 위해 서로 다른 가중치들이 각각 설정된다.
상기 산출 유닛은 다음과 같이 구성될 수 있다:
상태 전이 방정식 정의 서브유닛은 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
상태 전이 방정식 풀이 서브유닛은 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이하고, 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
이상에서 기술된 상기 서로 다른 연산들은 각각 가중치들이 설정되는 다음의 5가지 연산들로 구성된다.
1) 글자들을 삽입하는 연산의 가중치는 1로 설정된다;
2) 글자들을 삭제하는 연산의 가중치는 1로 설정된다;
3) 글자들을 유사한 외관 또는 발음으로 대체하는 연산의 가중치는 1로 설정된다;
4) 글자들을 비유사한 외관 또는 발음으로 대체하는 연산의 가중치는 w1로 설정된다;
5) 글자들을 교환하는 연산의 가중치는 w2로 설정된다.
오류 정정 프롬프팅 유닛(303)은 상기 가중치 편집 거리 및 상기 미리 획득된 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어를 상기 미리 획득된 인기어들로부터 선택한다.
선택적으로, 상기 가중치 편집 거리 산출 유닛(302)은 다음의 구성을 포함한다:
상태 전이 방정식 정의 서브유닛(3021)은 상기 검색어 및 상기 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 검색어 및 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
방정식 풀이 서브유닛(3022)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 상기 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식을 풀이하고, 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
선택적으로, 상기 상태 전이 방정식은:
edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고;
상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
선택적으로, 유사한 외관 또는 발음을 갖는 글자들로 대체하는 연산은:
유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 것을 포함한다.
선택적으로, 상기 기기는 다음의 구성을 더 포함한다:
연산 가중치 설정 유닛(305)은 다음의 관계에 기초하여 연산들의 가중치를 설정한다:
글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치. 더 나은 효과를 달성하기 위하여, 특별한 관심이 w1 및 w2의 값들에 주어져야만 한다. 일반적으로, 그들은 w1 < w2 < 1를 충족시킬 필요가 있다. 선택적으로, 상기 연산 가중치들이 다음의 관계를 충족시키도록 설정될 수 있다고 실험에 의해 결론이 내려졌다: 글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치.
다양한 가능한 연산들이 고려되고, 서로 다른 가중치들 각각에 주어지므로, 오류 정정을 수행하기 위하여 이러한 가중치 편집 거리를 적용함으로써, 열(string) 간에서 산출된 더 높은 정확도의 유사도를 얻을 수 있다.
선택적으로, 상기 부정확한 검색어 식별 유닛(301)은 다음의 구성을 포함한다:
로그 검색 및 산출 서브유닛(3011)은 식별되어야 하는 검색어에 대해, 검색 로그에 기초하여 검색을 위한 클릭 비율, 용어 특징, 발생 확률, 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출한다.
구체적으로, 첫째, 식별되어야 하는 검색어의 검색을 위한 클릭 비율이 산출된다. 예를 들어, 식별되어야 하는 검색어가 사용자들에 의해 검색되는 횟수 및 검색 결과가 사용자들에 의해 클릭된 횟수는 검색 로그들로부터 획득될 수 있다; 상기 검색을 위한 클릭 비율은 검색 결과가 클릭된 횟수를 검색 수로 제산함으로써 획득될 수 있다; 둘째, 식별되어야 하는 상기 검색어는 복수 개의 용어 특징들을 획득하기 위해 분할된다; 나중에, 식별되어야 하는 검색어의 발생 확률이 통계적 언어 모델 및 다양한 용어 특징들을 이용하여 산출된다; 그런 다음, 풀 매칭 결과의 개수 및 식별되어야 하는 검색어의 관련 결과의 개수가 산출된다. 여기서, 풀 매칭 결과의 개수는, 상기 식별되어야 하는 검색어를 위한 모든 검색 결과들 중에서, 상기 식별되어야 하는 검색어의 모든 내용(content)을 포함하는, 결과의 개수이다; 상기 관련 결과의 개수는, 상기 식별되어야 하는 검색어를 위한 모든 검색 결과들 중에서, 상기 식별되어야 하는 검색어의 일부 내용을 포함하는, 결과의 개수이다; 마지막으로, 풀 매칭 결과의 개수 및 관련 결과의 개수의 비율은 풀 매칭 비율을 획득하여 산출된다.
식별 결과 결정 서브유닛(3012)은 식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어 또는 보통 검색어로서 결정한다.
식별되어야 하는 검색어(즉, 검색을 위한 클릭 비율, 모든 용어 특징들, 식별되어야 하는 검색어의 발생 확률, 풀 매칭 결과의 개수 및 풀 매칭 비율)의 특징들을 다차원(multi-dimensional) 특징으로 병합함으로써, 그리고 다차원 특징에 기초하여 상기 식별되어야 하는 검색어를 식별함으로써, 상기 식별되어야 하는 검색어를 식별하는 어려움을 감소시킬 수 있으며, 그럼으로써 식별되어야 하는 검색어를 식별하는 능력을 향상시키고, 상기 식별되어야 하는 검색어가 부정확한 검색어인지 여부를 식별하기 유리하다.
선택적으로, 상기 오류 정정 프롬프팅 유닛(303)은 다음의 구성을 포함한다:
정규화 서브유닛(3031)은 상기 미리 획득된 인기어들의 검색 개수를 정규화한다;
추천 종합 점수 산출 서브유닛(3032)은 상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출한다;
추천어 결정 서브유닛(3033)은 오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 상기 미리 획득된 인기어들로부터 선택한다.
검색어를 위한 오류 정정 기기를 보다 명확하게 설명하기 위하여, 이하에서는 본 발명의 일 실시예가 제공하는 검색어를 위한 오류 정정 기기가 또 다른 측면에서 구체적으로 기술될 것이다.
본 발명의 실시예가 제공하는 검색어를 위한 오류 정정 기기는 다음의 구성을 포함할 수 있다:
부정확한 검색어 식별 유닛은 부정확한 검색어를 식별한다;
가중치 편집 거리 산출 유닛은 상기 검색어로부터 상기 인기어로 변환하는 상기 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하되, 상기 연산들은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 포함한다;
오류 정정 프롬프팅 유닛은 상기 가중치 편집 거리 및 상기 미리 획득된 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어를 상기 미리 획득된 인기어들로부터 선택한다.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 가중치 편집 거리 산출 유닛은 다음의 구성을 포함한다:
상태 전이 방정식 정의 서브유닛은 상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
방정식 풀이 서브유닛은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 미리 설정된 상기 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식을 풀이하고, 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 상태 전이 방정식은,
edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고;
상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
본 발명의 상기 실시예의 일 구현에 있어서, 유사한 외관 또는 발음을 갖는 글자들로 대체하는 연산은:
유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 것을 포함한다.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 검색어로부터 상기 인기어로 변환하는 연산을 위해 미리 설정된 상기 서로 다른 가중치들은 다음의 관계에 기초한다:
글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 부정확한 검색어 식별 유닛은 다음의 구성을 포함한다:
로그 검색 및 산출 서브유닛은 식별되어야 하는 검색어에 대해, 검색 로그에 기초하여 검색을 위한 클릭 비율, 용어 특징, 발생 확률, 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출한다;
식별 결과 결정 서브유닛은 식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어로서 결정한다.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 오류 정정 프롬프팅 유닛은 다음의 구성을 포함한다:
정규화 서브유닛은 상기 미리 획득된 인기어들의 검색 개수를 정규화한다;
추천 종합 점수 산출 서브유닛은 상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출한다;
추천어 결정 서브유닛은 오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 상기 미리 획득된 인기어들로부터 선택한다.
본 발명의 실시예에서, 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산에 대해 서로 다른 가중치들을 설정함으로써, 검색어로부터 인기어로의 변환 절차에 수반될 수 있는 모든 연산들이 상기 가중치 편집 거리를 산출하는 동안 적절하게 포함된다. 따라서, 검색어 및 인기어 간의 상기 가중치 편집 거리가 보다 빠르고 정확하게 산출될 수 있고, 그럼으로써 검색 오류 정정의 정확도가 향상된다.
상기 기술된 가중치 편집 거리를 산출하는 기기를 보다 명확하게 설명하기 위해, 이하에서는 본 발명의 일 실시예가 제공하는 가중치 편집 거리를 산출하는 기기가 또 다른 관점에서 구체적으로 기술될 것이다.
본 발명의 일 실시예가 제공하는 가중치 편집 거리를 산출하는 기기는 다음의 구성을 포함할 수 있다:
획득 유닛은 소스 열 및 타겟 열을 획득한다;
산출 유닛은 상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산들에 대해 각각 서로 다른 가중치들을 설정하고, 상기 서로 다른 연산들에 대해 설정된 상기 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출한다.
본 발명의 상기 실시예의 일 구현에 있어서, 상기 산출 유닛은 다음의 구성을 포함할 수 있다:
상태 전이 방정식 정의 서브유닛은 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
상태 전이 방정식 풀이 서브유닛은 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이하고, 상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
본 발명의 실시예들에서, 다양한 가능한 연산들이 고려되고, 서로 다른 가중치들 각각에 주어지므로, 오류 정정을 수행하기 위하여 이러한 가중치 편집 거리를 적용함으로써, 열(string) 간에서 산출된 유사도에서 더 높은 정확도를 얻을 수 있다.
본 발명의 일 실시예는 도 4에 도시된 바와 같은 전자 기기를 더 제공한다. 상기 전자 기기는 제 1 프로세서(401), 제 1 통신 인터페이스(402), 제 1 메모리(403) 및 제 1 통신 버스(404)를 포함하고, 상기 제 1 프로세서(401), 상기 제 1 통신 인터페이스(402) 및 상기 제 1 메모리(403)는 상기 제 1 통신 버스(404)를 통해 서로 통신한다; 상기 제 1 메모리(403)는 컴퓨터 프로그램을 저장하기 위해 사용된다; 상기 제 1 프로세서(401)는, 상기 제 1 메모리(403)에 저장된 프로그램을 실행시킬 때, 앞서 기술된 검색어들을 위한 오류 정정 방법의 단계들을 구현하기 위해 사용된다. 상기 방법은 다음의 단계들을 포함한다:
부정확한 검색어를 식별한다;
상기 검색어로부터 상기 인기어로 변환하는 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하되, 상기 연산들은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 포함한다;
상기 가중치 편집 거리 및 상기 미리 획득된 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어들을 상기 미리 획득된 인기어들로부터 선택한다.
본 발명의 일 구현에서, 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 서로 다른 가중치들을 설정함으로써, 검색어로부터 인기어로의 변환 절차에 수반될 수 있는 모든 연산들이 상기 가중치 편집 거리를 산출하는 동안 적절하게 포함된다. 따라서, 검색어 및 인기어 간의 상기 가중치 편집 거리가 보다 빠르고 정확하게 산출될 수 있으며, 그럼으로써 검색어 오류 정정의 정확도가 향상된다.
본 발명의 일 구현에서, 상기 검색어로부터 상기 인기어로 변환하는 상기 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 단계는 다음과 단계를 포함한다:
상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식를 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 미리 설정된 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식를 풀이한다;
상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
본 발명의 일 구현에서, 상기 상태 전이 방정식은;
edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고;
상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
본 발명의 일 구현에서, 유사한 외관 또는 발음을 갖는 글자들로 대체하는 연산은:
유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 단계를 포함한다.
본 발명의 일 구현에서, 상기 검색어로부터 상기 인기어로 변환하는 연산들을 위해 미리 설정된 상기 서로 다른 가중치들은 다음의 관계에 기초한다:
글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치.
본 발명의 일 구현에서, 부정확한 검색어를 식별하는 단계는 다음의 단계들을 포함한다:
식별되어야 하는 검색어에 대해, 검색 로그에 기초하여 검색을 위한 클릭 비율(click rate), 용어 특징(term feature), 발생 확률(occurrence probability), 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출한다;
식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어로서 결정한다.
본 발명의 일 구현에서, 상기 가중치 편집 거리 및 상기 미리 획득된 인기어의 인기에 따라 오류 정정 프롬프트를 위한 소정 개수의 인기어들을 상기 미리 획득된 인기어들로부터 선택하는 단계는 다음의 단계들을 포함한다:
상기 미리 획득된 인기어들의 검색 개수를 정규화한다;
상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출한다;
오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 상기 미리 획득된 인기어들로부터 선택한다.
본 발명의 일 실시예는 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체를 더 제공하며, 프로세서에 의해 수행되는 경우, 상기 컴퓨터 프로그램은 상기 프로세서로 하여금 앞서 기술된 검색어들을 위한 오류 정정 방법의 단계들을 구현하도록 할 수 있다. 상기 방법은 다음의 단계들을 포함한다:
부정확한 검색어를 식별한다;
상기 검색어로부터 상기 인기어로 변환하는 상기 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하되, 상기 연산들은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 포함한다;
상기 가중치 편집 거리 및 상기 미리 획득된 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어를 상기 미리 획득된 인기어들로부터 선택한다.
본 발명의 일 실시예에서, 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 서로 다른 가중치들을 설정함으로써, 검색어로부터 인기어로의 변환 절차에 수반될 수 있는 모든 연산들은 상기 가중치 편집 거리를 산출하는 동안 적절하게 포함될 수 있다. 따라서, 검색어 및 인기어 간의 상기 가중치 편집 거리는 보다 빠르고 정확하게 산출될 수 있고, 그럼으로써 검색어 오류 정정의 정확도를 향상시킨다.
본 발명의 일 구현에서, 상기 검색어로부터 상기 인기어로 변환하는 상기 서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 따라 상기 식별된 검색어 및 미리 획득된 인기어들 간의 가중치 편집 거리를 산출하는 단계는 다음의 단계들을 포함한다:
상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 식별된 검색어 및 상기 미리 획득된 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 미리 설정된 상기 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식을 풀이한다;
상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
본 발명의 일 구현에서, 상기 상태 전이 방정식은,
edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고;
상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득된다.
본 발명의 일 구현에서, 유사한 외관 또는 발음을 갖는 글자들로 대체하는 연산은:
유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 단계를 포함한다.
본 발명의 일 구현에서, 상기 검색어로부터 상기 인기어로 변환하는 연산을 위해 미리 설정된 상기 서로 다른 가중치들은 다음의 관계에 기초한다:
글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치.
본 발명의 일 구현에서, 부정확한 검색어를 식별하는 단계는 다음의 단계들을 포함한다:
식별되어야 하는 검색어에 대해, 검색 로그에 기초하여 검색을 위한 클릭 비율, 용어 특징, 발생 확률, 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출한다;
식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어로서 결정한다.
본 발명의 일 구현에서, 상기 가중치 편집 거리 및 상기 미리 획득된 인기어의 인기에 따라 오류 정정 프롬프트를 위한 소정 개수의 인기어들을 상기 미리 획득된 인기어들로부터 선택하는 단계는 다음의 단계들을 포함한다:
상기 미리 획득된 인기어들의 검색 개수를 정규화한다;
상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출한다;
오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 상기 미리 획득된 인기어들로부터 선택한다.
본 발명의 일 실시예는 도 5에 도시된 바와 같은 전자 기기를 더 제공한다. 상기 전자 기기는 제 2 프로세서(501), 제 2 통신 인터페이스(502), 제 2 메모리(503) 및 제 2 통신 버스(504)를 포함하고, 상기 제 2 프로세서(501), 상기 제 2 통신 인터페이스(502) 및 상기 제 2 메모리(503)는 상기 제 2 통신 버스(504)를 통해 서로 통신한다; 상기 제 2 메모리(503)는 컴퓨터 프로그램을 저장하기 위해 사용된다; 상기 제 2 프로세서(501)는, 상기 제 2 메모리(503)에 저장된 프로그램을 실행시킬 때, 앞서 기술된 가중치 편집 거리를 산출하는 방법의 단계들을 구현하기 위해 사용된다. 상기 방법은 다음의 단계들을 포함한다:
소스 열 및 타겟 열을 획득한다;
상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산에 대해 각각 서로 다른 가중치들을 설정하고, 상기 서로 다른 연산들에 대해 설정된 상기 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 산출한다.
본 발명의 실시예들에서, 다양한 가능한 연산들이 고려되고, 서로 다른 가중치들 각각에 주어지므로, 오류 정정을 수행하기 위하여 이러한 가중치 편집 거리를 적용함으로써, 열(string) 간에서 산출된 유사도에서 더 높은 정확도를 얻을 수 있다.
본 발명의 일 구현에서, 상기 서로 다른 연산들에 대해 설정된 상기 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 산출하는 단계는 다음의 단계들을 포함한다:
상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이한다;
상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
본 발명의 일 실시예는 컴퓨터로 읽을 수 있는 기록 매체를 더 제공한다. 상기 기록 매체는 컴퓨터 프로그램을 저장하되, 프로세서에 의해 실행되는 경우, 앞서 기술된 가중치 편집 거리를 산출하는 방법의 단계들을 구현하도록 한다. 상기 방법은 다음의 단계들을 포함한다:
소스 열 및 타겟 열을 획득한다;
상기 소스 열로부터 상기 타겟 열로 변환하는 서로 다른 연산들에 대해 각각 서로 다른 가중치들을 설정하고, 상기 서로 다른 연산들에 대해 설정된 상기 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 산출한다.
본 발명의 실시예들에서, 다양한 가능한 연산들이 고려되고, 서로 다른 가중치들 각각에 주어지므로, 오류 정정을 수행하기 위하여 이러한 가중치 편집 거리를 적용함으로써, 열(string) 간에서 산출된 유사도에서 더 높은 정확도를 얻을 수 있다.
본 발명의 일 구현에서, 상기 서로 다른 연산들에 대해 설정된 상기 서로 다른 가중치들에 기초하여 상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 산출하는 단계는 다음의 단계들을 포함한다:
상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하되, 상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용된다;
서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이한다;
상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득한다.
장치 실시예들, 전자 기기들 또는 기록 매체는 본질적으로 방법 실시예들과 유사하고, 관련 부분들이 방법 실시예의 상세한 설명의 부분들을 참조할 수 있기 때문에 간단하게 기술되었다.
상세한 설명에서 다양한 실시예들이 점진적인 방식으로 기술되었으며, 각각의 실시예들에서 강조된 부분들은 다른 실시에들과 대비된다. 따라서, 다양한 실시예들 간의 동일 또는 유사한 부분들은 서로 참조될 수 있다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 실시예들이 방법, 장치, 또는 컴퓨터 프로그램 제품으로 제공될 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 실시예들은 하드웨어만의 실시예, 소프트웨어만의 실시예, 또는 소프트웨어와 하드웨어가 결합된 실시예의 형태가 될 수 있다. 또한, 본 발명의 실시예들은 하나 이상의 컴퓨터로 사용 가능한 기록 매체(디스크 스토리지, CD-ROM, 광학 메모리 등을 포함하는 이에 한정되지 않는다) 상에 구현되는 컴퓨터 프로그램 제품의 형태가 될 수 있다.
본 발명의 실시예들은 본 발명의 실시예들에 따른 방법의 흐름도 및/또는 블록도, 단말 기기(시스템) 및 컴퓨터 프로그램 제품을 참조하여 기술되었다. 흐름도 및/또는 블록도 내의 흐름 및/또는 블록 각각 뿐만 아니라 흐름도 및/또는 블록도 내의 흐름 및/또는 블록의 조합도 컴퓨터 프로그램 명령에 의해 구현될 수 있음을 이해하여야 한다. 이러한 컴퓨터 프로그램 명령어들은 범용 목적의 컴퓨터의 프로세서, 전용 컴퓨터, 임베디드 프로세서, 또는 다른 프로그래머블 데이터 처리 단말 기기에 제공되어 기계를 생성할 수 있으며, 흐름도 내의 하나 이상의 흐름에 명시되었거나 및/또는 블록도 내의 하나 이상의 블록에 명시된 기능들을 구현하는 기기들은 컴퓨터의 프로세서 또는 다른 프로그래머블 데이터 처리 단말 기기에 의해 수행되는 명령어들을 통해 생성된다.
이러한 컴퓨터 프로그램 명령어들은 컴퓨터로 읽을 수 있는 메모리에 저장된 명령어들이 명령 기기를 포함하는 제조 제품을 생성하는 특정 방식으로 컴퓨터 또는 다른 프로그래머블 데이터 처리 단말 기기를 동작시킬 수 있는 컴퓨터로 읽을 수 있는 메모리에 또한 저장될 수 있으며, 상기 명령 기기는 상기 흐름도 내의 하나 이상의 흐름에 명시되었거나 및/또는 상기 블록도 내의 하나 이상의 블록에 명시된 기능들을 구현한다.
이러한 컴퓨터 프로그램 명령어들은 일련의 연산 단계들이 컴퓨터로 구현된 프로세스를 생성하도록 컴퓨터 또는 다른 프로그래머블 데이터 처리 단말 기기 상에서 수행되는 컴퓨터 또는 다른 프로그래머블 데이터 처리 단말 기기에 또한 적재될 수 있다. 따라서, 컴퓨터 또는 다른 프로그래머블 단말 기기 상에서 실행되는 명령어들은 상기 흐름도 내의 하나 이상의 흐름에 명시되었거나 및/또는 상기 블록도 내의 하나 이상의 블록에 명시된 기능들을 구현하는 단계들을 제공한다.
본 발명의 선택적인 실시예들이 기술되었는데 반해, 본 발명의 기술 분야에서 통상의 지식을 가진 자는 기본적인 발명의 개념에 대한 지식 위에서 이러한 실시예들을 더욱 변형하거나 변경하는 것이 가능할 것이다. 따라서, 첨부된 청구항들은 본 발명의 실시예들의 범위 내에서 선택적인 실시예들 및 모든 대안과 변경을 포함하는 것으로 해석되어야 한다.
마지막으로, 여기에서 "제 1", "제 2" 등과 같은 관계 용어는 단지 하나의 개체 또는 연산을 다른 개체 또는 연산과 구분하기 위해 사용된 것이며, 이러한 개체들 또는 연산들 간의 실질적인 관계 또는 순서를 필연적으로 요구하거나 암시하는 것이 아니다. 또한, "포함하다", "구성하다" 또는 다른 변형의 용어들은 비-배타적인 포함을 의도한 것으로서, 일련의 요소들을 포함하는 절차, 방법, 물건, 또는 단말 기기는 열거된 이러한 요소들뿐만 아니라 구체적으로 열거되지 않은 요소들 또는 이러한 절차, 방법, 물건, 또는 단말 기기에 본질적인 요소들을 포함한다. 다른 제한 없이, "구성하다" 또는 "포함하다"의 문장들에 의해 정의되는 요소들은 이러한 요소들을 포함하는 절차, 방법, 물건, 또는 단말 기기 내에서 다른 동일한 요소들이 존재한다는 사실을 배제하는 것이 아니다.
이상에서 본 발명이 제공하는 검색어들을 위한 오류 정정 방법 및 기기가 구체적으로 기술되었다. 본 발명의 원리 및 실시예들은 특정한 예들을 참조하여 기술되었으며, 상기 실시예들의 상세한 설명은 단지 본 발명의 상기 방법들 및 핵심 아이디어를 이해하기 위해 제공된 것이다. 한편, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 취지에 기초하여 특정 실시예들 및 응용 범위에 관해 변형하는 것이 가능하다. 종합적으로, 본 명세서의 내용은 본 출원을 한정하는 것으로 해석되어서는 안된다.

Claims (26)

  1. 부정확한 검색어를 식별하는 단계;
    가중치 편집 거리 알고리즘를 이용하여 상기 검색어 및 미리 획득된 인기어(hot term) 간의 가중치 편집 거리(weighted edit distance)를 산출하는 단계;
    다음의 관계:
    글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치
    에 기초한 연산들의 가중치를 설정하는 단계; 및
    상기 가중치 편집 거리 및 상기 인기어의 인기(popularity)에 기초하여 오류 정정 프롬프트(prompt)를 위한 소정 개수의 인기어들을 선택하는 단계;를 포함하고,
    상기 가중치 편집 거리를 산출하는 동안, 상기 검색어로부터 상기 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되며, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산이고,
    상기 부정확한 검색어를 식별하는 단계는,
    식별되어야 하는 검색어에 대해, 검색 로그(log)에 기초하여 검색을 위한 클릭 비율(click rate), 용어 특징(term feature), 발생 확률(occurrence probability), 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출하는 단계; 및
    식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어 또는 보통 검색어로서 결정하는 단계;를 포함하는, 검색어를 위한 오류 정정 방법.
  2. 제 1 항에 있어서,
    가중치 편집 거리 알고리즘을 이용하여 상기 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 단계는,
    상기 검색어 및 상기 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식(state transition equation)을 정의하는 단계;
    글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식를 풀이하는 단계; 및
    상기 상태 전이 방정식의 해(solution)에 기초하여 상기 가중치 편집 거리를 획득하는 단계;를 포함하고,
    상기 상태 전이 방정식에서 2개의 상태 변수(state variable)가 정의되고, 상기 2개의 상태 변수는 검색어 및 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용되는, 검색어를 위한 오류 정정 방법.
  3. 제 2 항에 있어서,
    상기 상태 전이 방정식은,
    edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고,
    상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득되는, 검색어를 위한 오류 정정 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 단계;를 더 포함하는, 검색어를 위한 오류 정정 방법.
  5. 삭제
  6. 삭제
  7. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 가중치 편집 거리 및 상기 인기어의 인기에 따라 오류 정정 프롬프트를 위한 소정 개수의 인기어들을 선택하는 단계는,
    상기 인기어들의 검색 개수를 정규화하는 단계;
    상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출하는 단계; 및
    오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 선택하는 단계;를 포함하는, 검색어를 위한 오류 정정 방법.
  8. 소스 열(source string) 및 타겟 열(target string)을 획득하는 단계; 및
    상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 단계;를 포함하고,
    상기 가중치 편집 거리를 산출하는 동안, 검색어로부터 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되고, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 다음의 관계에 기초하여 교환하는 연산이며, 상기 다음의 관계는: 글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치이고,
    상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 단계는,
    상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 단계;
    서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이하는 단계; 및
    상기 상태 전이 방정식의 해에 기초하여 상기 가중치 편집 거리를 획득하는 단계;를 포함하고,
    상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용되는, 가중치 편집 거리를 산출하는 방법.
  9. 삭제
  10. 부정확한 검색어를 식별하는 부정확한 검색어 식별 유닛;
    가중치 편집 거리 알고리즘을 이용하여 상기 검색어 및 미리 획득된 인기어 간의 가중치 편집 거리를 산출하는 가중치 편집 거리 산출 유닛;
    다음의 관계:
    글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치
    에 기초한 연산들의 가중치를 설정하는 연산 가중치 설정 유닛; 및
    상기 가중치 편집 거리 및 상기 인기어의 인기에 기초하여 오류 정정 프롬프트를 위한 소정 개수의 인기어를 선택하는 오류 정정 프롬프팅(prompting) 유닛을 포함하고,
    상기 가중치 편집 거리를 산출하는 동안, 상기 검색어로부터 상기 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되며, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산이고,
    상기 부정확한 검색어 식별 유닛은,
    식별되어야 하는 검색어에 대해, 검색 로그에 기초하여 검색을 위한 클릭 비율, 용어 특징, 발생 확률, 풀 매칭(full matching) 결과의 개수, 및 풀 매칭 비율을 분석하거나 산출하는 로그 검색 및 산출 서브유닛; 및
    식별되어야 하는 검색어에 대해 상기 검색을 위한 클릭 비율, 상기 용어 특징, 상기 발생 확률, 풀 매칭 결과의 개수, 및 상기 풀 매칭 비율에 기초하여 식별되어야 하는 검색어를 부정확한 검색어 또는 보통 검색어로서 결정하는 식별 결과 결정 서브유닛;을 포함하는, 검색어를 위한 오류 정정 기기.
  11. 제 10 항에 있어서,
    상기 가중치 편집 거리 산출 유닛은,
    상기 검색어 및 상기 인기어 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 상태 전이 방정식 정의 서브유닛; 및
    글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 상기 서로 다른 가중치들에 기초하여 각각의 연산들에서 상기 상태 전이 방정식을 풀이하고, 상기 획득된 해를 상기 가중치 편집 거리로서 이용하는 방정식 풀이 서브유닛;을 포함하고,
    상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 검색어 및 인기어 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용되는, 검색어를 위한 오류 정정 기기.
  12. 제 11 항에 있어서,
    상기 상태 전이 방정식은,
    edit(i,j)=min{edit(i-1,j)+1,edit(i,j-1)+1,edit(i-1,j-1)+f(i,j)}이고,
    상기 i 및 j는 상기 2개의 상태 변수이고, f(i,j)는 연산의 비용(cost)이며, 상기 각각의 가중치에 대응하는 비용 f(i,j)은 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 교환하는 연산을 위해 설정된 서로 다른 가중치들에 기초하여 획득되는, 검색어를 위한 오류 정정 기기.
  13. 제 10 항 내지 제 12 항 중 어느 한 항에 있어서,
    유사한 외관을 가진 글자들의 미리 설정된 매핑 테이블 또는 유사한 발음을 가진 글자들의 미리 설정된 매핑 테이블을 검색함으로써, 상기 검색어 및 상기 인기어가 유사한 외관 또는 발음을 가진 글자인지 여부를 결정하는 유사한 외관 또는 발음을 가진 글자 결정 유닛;을 더 포함하는, 검색어를 위한 오류 정정 기기.
  14. 삭제
  15. 삭제
  16. 제 10 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 오류 정정 프롬프팅 유닛은,
    인기어들의 검색 개수를 정규화하는 정규화 처리 서브유닛;
    상기 가중치 편집 거리 및 상기 인기어들의 검색 개수를 정규화한 결과에 기초하여 추천 종합 점수를 산출하는 추천 종합 점수 산출 서브유닛; 및
    오류 정정 프롬프트를 수행하기 위해 가장 높은 추천 종합 점수 및 미리 설정된 값보다 작은 가중치 편집 거리를 갖는 소정 개수의 인기어를 오류 정정을 위한 추천어로서 선택하는 추천어 결정 서브유닛;을 포함하는, 검색어를 위한 오류 정정 기기.
  17. 소스 열 및 타겟 열을 획득하는 획득 유닛; 및
    상기 소스 열 및 상기 타겟 열 간의 가중치 편집 거리를 산출하는 산출 유닛;을 포함하고,
    상기 가중치 편집 거리를 산출하는 동안, 검색어로부터 인기어로 변환하는 다음의 연산을 위해 서로 다른 가중치들이 각각 설정되고, 상기 다음의 연산은: 글자들을 삽입하는 연산, 글자들을 삭제하는 연산, 글자들을 유사한 외관 또는 발음으로 대체하는 연산, 글자들을 비유사한 외관 또는 발음으로 대체하는 연산, 및 글자들을 다음의 관계에 기초하여 교환하는 연산이며, 상기 다음의 관계는: 글자들을 유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치 < 글자들을 교환하는 연산을 위한 가중치 < 글자들을 삽입하는 연산을 위한 가중치 = 글자들을 삭제하는 연산을 위한 가중치 = 글자들을 비유사한 외관 또는 발음으로 대체하는 연산을 위한 가중치이고,
    상기 산출 유닛은,
    상기 소스 열 및 상기 타겟 열 간의 상기 가중치 편집 거리를 나타내는 상태 전이 방정식을 정의하는 상태 전이 방정식 정의 서브유닛; 및
    서로 다른 연산들에 대해 설정된 서로 다른 가중치들에 기초하여 각각의 연산에서 상기 상태 전이 방정식을 풀이하고, 상기 획득된 해를 상기 가중치 편집 거리로서 이용하는 상태 전이 방정식 풀이 서브유닛;를 포함하고,
    상기 상태 전이 방정식에서 2개의 상태 변수가 정의되고, 상기 2개의 상태 변수는 상기 소스 열 및 상기 타겟 열 간의 대응하는 위치에서 각각 글자들을 나타내도록 사용되는 기기.
  18. 삭제
  19. 제 1 프로세서, 제 1 통신 인터페이스, 제 1 메모리 및 제 1 통신 버스를 포함하고, 상기 제 1 프로세서, 상기 제 1 통신 인터페이스 및 상기 제 1 메모리는 상기 제 1 통신 버스를 통해 서로 통신하며,
    상기 제 1 메모리는 컴퓨터 프로그램을 저장하기 위해 사용되고,
    상기 제 1 프로세서는, 상기 제 1 메모리에 저장된 프로그램을 실행시킬 때, 제 1 항 내지 제 3 항 중 어느 한 항에 따른 방법의 단계들을 구현하기 위해 사용되는, 전자 기기.
  20. 프로세서에 의해 수행되는 경우, 프로세서가 제 1 항 내지 제 3 항 중 어느 한 항에 따른 방법의 단계들을 구현하도록 하는 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
  21. 제 2 프로세서, 제 2 통신 인터페이스, 제 2 메모리 및 제 2 통신 버스를 포함하고, 상기 제 2 프로세서, 상기 제 2 통신 인터페이스 및 상기 제 2 메모리는 상기 제 2 통신 버스를 통해 서로 통신하며,
    상기 제 2 메모리는 컴퓨터 프로그램을 저장하기 위해 사용되고,
    상기 제 2 프로세서는, 상기 제 2 메모리에 저장된 프로그램을 실행시킬 때, 제 8 항에 따른 방법의 단계들을 구현하기 위해 사용되는, 전자 기기.
  22. 프로세서에 의해 수행되는 경우, 프로세서가 제 8 항에 따른 방법의 단계들을 구현하도록 하는 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
  23. 제 1 프로세서, 제 1 통신 인터페이스, 제 1 메모리 및 제 1 통신 버스를 포함하고, 상기 제 1 프로세서, 상기 제 1 통신 인터페이스 및 상기 제 1 메모리는 상기 제 1 통신 버스를 통해 서로 통신하며,
    상기 제 1 메모리는 컴퓨터 프로그램을 저장하기 위해 사용되고,
    상기 제 1 프로세서는, 상기 제 1 메모리에 저장된 프로그램을 실행시킬 때, 제 4 항에 따른 방법의 단계들을 구현하기 위해 사용되는, 전자 기기.
  24. 제 1 프로세서, 제 1 통신 인터페이스, 제 1 메모리 및 제 1 통신 버스를 포함하고, 상기 제 1 프로세서, 상기 제 1 통신 인터페이스 및 상기 제 1 메모리는 상기 제 1 통신 버스를 통해 서로 통신하며,
    상기 제 1 메모리는 컴퓨터 프로그램을 저장하기 위해 사용되고,
    상기 제 1 프로세서는, 상기 제 1 메모리에 저장된 프로그램을 실행시킬 때, 제 7 항에 따른 방법의 단계들을 구현하기 위해 사용되는, 전자 기기.
  25. 프로세서에 의해 수행되는 경우, 프로세서가 제 4 항에 따른 방법의 단계들을 구현하도록 하는 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
  26. 프로세서에 의해 수행되는 경우, 프로세서가 제 7 항에 따른 방법의 단계들을 구현하도록 하는 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
KR1020197001982A 2016-08-31 2017-08-14 검색어를 위한 오류 정정 방법 및 기기 KR102204971B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610799830.4A CN106326484A (zh) 2016-08-31 2016-08-31 搜索词纠错方法及装置
CN201610799830.4 2016-08-31
PCT/CN2017/097357 WO2018040899A1 (zh) 2016-08-31 2017-08-14 搜索词纠错方法及装置

Publications (2)

Publication Number Publication Date
KR20190020119A KR20190020119A (ko) 2019-02-27
KR102204971B1 true KR102204971B1 (ko) 2021-01-20

Family

ID=57786348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197001982A KR102204971B1 (ko) 2016-08-31 2017-08-14 검색어를 위한 오류 정정 방법 및 기기

Country Status (11)

Country Link
US (1) US11574012B2 (ko)
EP (1) EP3508992A4 (ko)
JP (1) JP6997781B2 (ko)
KR (1) KR102204971B1 (ko)
CN (1) CN106326484A (ko)
AU (1) AU2017317878B2 (ko)
CA (1) CA3029588C (ko)
MY (1) MY193919A (ko)
SG (1) SG11201900084PA (ko)
TW (1) TWI664540B (ko)
WO (1) WO2018040899A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3488363A4 (en) * 2016-07-25 2019-08-07 Siemens Healthcare Diagnostics Inc. METHOD AND DEVICE FOR CORRECTING INSTRUMENT ERROR FUNCTIONS
CN106326484A (zh) 2016-08-31 2017-01-11 北京奇艺世纪科技有限公司 搜索词纠错方法及装置
RU2684578C2 (ru) * 2017-07-17 2019-04-09 Общество с ограниченной ответственностью "Лаборатория ИнфоВотч" Языконезависимая технология исправления опечаток, с возможностью верификации результата
CN107423444B (zh) * 2017-08-10 2020-05-19 世纪龙信息网络有限责任公司 热词词组提取方法和系统
CN107766327A (zh) * 2017-10-23 2018-03-06 武汉楚鼎信息技术有限公司 一种命名实体识别过程中纠错的方法及系统
CN108062373A (zh) * 2017-12-12 2018-05-22 焦点科技股份有限公司 一种具有纠错功能的关键词下拉联想的方法
CN109992749A (zh) * 2017-12-29 2019-07-09 珠海金山办公软件有限公司 一种文字显示方法、装置、电子设备及可读存储介质
CN110196833B (zh) * 2018-03-22 2023-06-09 腾讯科技(深圳)有限公司 应用程序的搜索方法、装置、终端及存储介质
JP6660974B2 (ja) * 2018-03-30 2020-03-11 本田技研工業株式会社 情報提供装置、情報提供方法、およびプログラム
US10963717B1 (en) * 2018-12-21 2021-03-30 Automation Anywhere, Inc. Auto-correction of pattern defined strings
CN109711412A (zh) * 2018-12-27 2019-05-03 信雅达系统工程股份有限公司 一种基于字典的光学字符识别纠错方法
CN110163498B (zh) * 2019-05-15 2021-08-03 广州视源电子科技股份有限公司 课件原创度评分方法、装置、存储介质及处理器
CN110415705B (zh) * 2019-08-01 2022-03-01 苏州奇梦者网络科技有限公司 一种热词识别方法、系统、装置及存储介质
CN110795617A (zh) * 2019-08-12 2020-02-14 腾讯科技(深圳)有限公司 一种搜索词的纠错方法及相关装置
CN110909535B (zh) * 2019-12-06 2023-04-07 北京百分点科技集团股份有限公司 命名实体校对方法、装置、可读存储介质及电子设备
CN113095066A (zh) * 2019-12-23 2021-07-09 华为技术有限公司 文本处理方法及装置
CN111310442B (zh) * 2020-02-06 2021-12-28 北京字节跳动网络技术有限公司 形近字纠错语料挖掘方法、纠错方法、设备及存储介质
WO2021227059A1 (zh) * 2020-05-15 2021-11-18 深圳市世强元件网络有限公司 一种基于多叉树的搜索词推荐方法及系统
CN112131461A (zh) * 2020-09-09 2020-12-25 重庆易宠科技有限公司 一种商品搜索方法、系统、终端及计算机可读存储介质
CN112069374B (zh) * 2020-09-18 2024-04-30 中国工商银行股份有限公司 一种银行多个客户编号的识别方法及装置
CN112613522B (zh) * 2021-01-04 2023-03-14 重庆邮电大学 一种基于融合字形信息的服药单识别结果纠错方法
CN112929131B (zh) * 2021-02-22 2022-05-27 天津师范大学 一种基于加权编辑距离的标记码传输方法
CN112560452B (zh) * 2021-02-25 2021-05-18 智者四海(北京)技术有限公司 一种自动生成纠错语料的方法和系统
CN113705202A (zh) * 2021-08-31 2021-11-26 北京金堤科技有限公司 搜索输入信息纠错方法、装置以及电子设备、存储介质
CN114943966A (zh) * 2022-04-27 2022-08-26 联宝(合肥)电子科技有限公司 字符串相似度的确定方法、装置、存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104056A1 (en) 2006-10-30 2008-05-01 Microsoft Corporation Distributional similarity-based models for query correction
JP2010123005A (ja) 2008-11-20 2010-06-03 Kddi Corp 文書データ検索装置
CN102831177A (zh) 2012-07-31 2012-12-19 聚熵信息技术(上海)有限公司 语句纠错方法及其系统
US20130124492A1 (en) 2011-11-15 2013-05-16 Microsoft Corporation Statistical Machine Translation Based Search Query Spelling Correction
US20140298168A1 (en) * 2013-03-28 2014-10-02 Est Soft Corp. System and method for spelling correction of misspelled keyword
WO2016110455A1 (en) * 2015-01-06 2016-07-14 What3Words Limited A method for suggesting candidate words as replacements for an input string received at an electronic device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4283898B2 (ja) * 1995-10-20 2009-06-24 富士通株式会社 文章校正装置
US6073099A (en) * 1997-11-04 2000-06-06 Nortel Networks Corporation Predicting auditory confusions using a weighted Levinstein distance
WO2000036530A1 (fr) * 1998-12-15 2000-06-22 Matsushita Electric Industrial Co., Ltd. Methode de recherche et dispositif correspondant, support enregistre
US7617202B2 (en) * 2003-06-16 2009-11-10 Microsoft Corporation Systems and methods that employ a distributional analysis on a query log to improve search results
US7321892B2 (en) * 2005-08-11 2008-01-22 Amazon Technologies, Inc. Identifying alternative spellings of search strings by analyzing self-corrective searching behaviors of users
US7644075B2 (en) 2007-06-01 2010-01-05 Microsoft Corporation Keyword usage score based on frequency impulse and frequency weight
US20090083255A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Query spelling correction
CN101777042B (zh) * 2010-01-21 2013-01-16 西南科技大学 信息检索领域中基于神经网络和标签库的语句相似度算法
CN101916263B (zh) 2010-07-27 2012-10-31 武汉大学 基于加权编辑距离的模糊关键字查询方法及系统
CN102063508B (zh) * 2011-01-10 2013-06-05 浙江大学 基于广义后缀树的中文搜索引擎模糊自动补全方法
CN102915314B (zh) 2011-08-05 2018-07-31 深圳市世纪光速信息技术有限公司 一种纠错对自动生成方法及系统
CN103399907A (zh) * 2013-07-31 2013-11-20 深圳市华傲数据技术有限公司 一种基于编辑距离计算中文字符串相似度的方法及装置
JP5846340B2 (ja) * 2013-09-20 2016-01-20 三菱電機株式会社 文字列検索装置
CN103927329B (zh) * 2014-03-19 2017-03-29 北京奇虎科技有限公司 一种即时搜索方法和系统
CN106326484A (zh) 2016-08-31 2017-01-11 北京奇艺世纪科技有限公司 搜索词纠错方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104056A1 (en) 2006-10-30 2008-05-01 Microsoft Corporation Distributional similarity-based models for query correction
JP2010123005A (ja) 2008-11-20 2010-06-03 Kddi Corp 文書データ検索装置
US20130124492A1 (en) 2011-11-15 2013-05-16 Microsoft Corporation Statistical Machine Translation Based Search Query Spelling Correction
CN102831177A (zh) 2012-07-31 2012-12-19 聚熵信息技术(上海)有限公司 语句纠错方法及其系统
US20140298168A1 (en) * 2013-03-28 2014-10-02 Est Soft Corp. System and method for spelling correction of misspelled keyword
WO2016110455A1 (en) * 2015-01-06 2016-07-14 What3Words Limited A method for suggesting candidate words as replacements for an input string received at an electronic device

Also Published As

Publication number Publication date
JP2019526142A (ja) 2019-09-12
TWI664540B (zh) 2019-07-01
TW201812619A (zh) 2018-04-01
EP3508992A1 (en) 2019-07-10
CA3029588A1 (en) 2018-03-08
KR20190020119A (ko) 2019-02-27
CN106326484A (zh) 2017-01-11
US11574012B2 (en) 2023-02-07
CA3029588C (en) 2023-07-11
MY193919A (en) 2022-11-01
AU2017317878B2 (en) 2020-11-19
WO2018040899A1 (zh) 2018-03-08
EP3508992A4 (en) 2019-09-04
US20190179855A1 (en) 2019-06-13
JP6997781B2 (ja) 2022-01-18
SG11201900084PA (en) 2019-03-28
AU2017317878A1 (en) 2019-01-31

Similar Documents

Publication Publication Date Title
KR102204971B1 (ko) 검색어를 위한 오류 정정 방법 및 기기
CN105095204B (zh) 同义词的获取方法及装置
CN108052499B (zh) 基于人工智能的文本纠错方法、装置及计算机可读介质
WO2015135455A1 (en) Natural language question answering method and apparatus
CN105068997B (zh) 平行语料的构建方法及装置
US20230076658A1 (en) Method, apparatus, computer device and storage medium for decoding speech data
CN110147544B (zh) 一种基于自然语言的指令生成方法、装置以及相关设备
CN111160041B (zh) 语义理解方法、装置、电子设备和存储介质
CN106959943B (zh) 语种识别更新方法及装置
JP2019082931A (ja) 検索装置、類似度算出方法、およびプログラム
CN112329482A (zh) 机器翻译方法、装置、电子设备和可读存储介质
CN118170894B (zh) 一种知识图谱问答方法、装置及存储介质
CN112784009A (zh) 一种主题词挖掘方法、装置、电子设备及存储介质
CN113705237A (zh) 融合关系短语知识的关系抽取方法、装置和电子设备
CN113033204A (zh) 信息实体抽取方法、装置、电子设备和存储介质
CN108170661B (zh) 一种规则文本的管理方法及系统
JP7384221B2 (ja) 要約学習方法、要約学習装置及びプログラム
CN102955770A (zh) 一种拼音自动识别方法及系统
CN107066533B (zh) 搜索查询纠错系统及方法
CN111680146A (zh) 确定新词的方法、装置、电子设备及可读存储介质
CN111144096B (zh) 基于hmm的拼音补全的训练方法、补全模型、补全方法及补全输入法
JP2019074982A (ja) 情報検索装置、検索処理方法、およびプログラム
CN109727591B (zh) 一种语音搜索的方法及装置
JP2017059216A (ja) クエリ校正システムおよび方法
JP2017041207A (ja) 構造解析装置、方法、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant