KR101452638B1 - 유사 문자열 검색 방법 및 장치 - Google Patents
유사 문자열 검색 방법 및 장치 Download PDFInfo
- Publication number
- KR101452638B1 KR101452638B1 KR1020130071616A KR20130071616A KR101452638B1 KR 101452638 B1 KR101452638 B1 KR 101452638B1 KR 1020130071616 A KR1020130071616 A KR 1020130071616A KR 20130071616 A KR20130071616 A KR 20130071616A KR 101452638 B1 KR101452638 B1 KR 101452638B1
- Authority
- KR
- South Korea
- Prior art keywords
- string
- edit distance
- lower limit
- character string
- server
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 230000008569 process Effects 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 108700041286 delta Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
도2는 편집거리의 하한을 계산하는 방법을 설명하기 위한 도면,
도3은 편집거리의 하한을 계산하는 본 발명의 제1 실시예에 따른 방법을 나타내는 흐름도,
도4는 편집거리의 하한을 계산하는 본 발명의 제2 실시예에 따른 방법을 설명하기 위한 도면,
도5는 상기 제2 실시예에 따라 편집거리의 하한을 계산하는 방법을 설명하기 위한 도면,
도6a 내지 도6c는 상기 제2 실시예에 따라 도5의 문자열의 편집거리의 하한을 계산하는 방법을 설명하기 위한 도면,
도7은 상기 제2 실시예에 따라 편집거리의 하한을 계산하는 방법을 나타내는 흐름도,
도8은 입력 문자열에 유사한 K개의 문자열을 선택하는 본 발명의 제1 실시예에 따른 방법을 나타내는 흐름도,
도9는 입력 문자열에 유사한 K개의 문자열을 선택하는 본 발명의 제2 실시예에 따른 방법을 나타내는 흐름도,
도10은 입력 문자열에 유사한 K개의 문자열을 선택하는 본 발명의 제5 실시예에 따른 방법을 나타내는 흐름도,
도11은 문자열의 q-그램들의 부분집합(G')을 선택하는 방법을 설명하기 위한 도면,
도12는 일 실시예에 따라 문자열의 q-그램들의 부분집합(G')을 선택하는 방법을 설명하기 위한 도면,
도13은 일 실시예에 따라 부분집합(G')을 선택하는 방법을 나타내는 흐름도, 그리고,
도14는 일 실시예에 따라 문자열을 검색하는 장치를 포함하는 예시적인 네트워크 구성을 나타내는 블록도이다.
20: 네트워크
30: 서버
40: 검색 어플리케이션
50: 문서 DB
60: 색인 DB
Claims (14)
- 문자열을 검색하는 방법에 있어서,
서버가, 사용자로부터 입력받은 입력 문자열(σ)과 문서 데이터베이스(DB)에 저장된 문자열(s)에 공통으로 일치하는 N개의 q-그램(여기서 N 및 q는 각각 1이상의 정수)의 목록을 추출하는 단계;
상기 서버가, 상기 입력 문자열 중 상기 N개의 q-그램을 제외한 나머지 문자열에 대한 부분 문자열 편집거리의 하한을 계산하는 단계; 및
상기 서버가, 상기 계산된 편집거리의 하한을 상기 문자열(σ) 및 문자열(s) 사이의 부분 문자열 편집거리의 하한으로 선택하는 단계;를 포함하는 것을 특징으로 하는 문자열 검색 방법. - 제 1 항에 있어서, 상기 부분 문자열의 편집거리의 하한을 계산하는 단계는,
(a) 상기 서버가, 상기 N개 중 제1 q-그램을 기준으로 입력 문자열(σ)의 좌측 문자열의 부분 문자열 편집거리의 하한 및 우측 문자열의 부분 문자열 편집거리의 하한을 각각 계산하는 단계;를 포함하는 것을 특징으로 하는 문자열 검색 방법. - 제 2 항에 있어서, 상기 (a)단계 이후에,
(b) 상기 서버가, 상기 좌측 문자열에 상기 N개 중 상기 제1 q-그램을 제외한 제2 q-그램이 존재하는지 판단하는 단계;
(c) 상기 서버가, 제2 q-그램이 존재하면, 상기 제2 q-그램을 기준으로 좌측 문자열의 부분 문자열 편집거리의 하한 및 우측 문자열의 부분 문자열 편집거리의 하한을 각각 계산하는 단계; 및
(d) 상기 서버가, 상기 계산된 모든 부분 문자열 편집거리의 하한에 기초하여, 상기 입력 문자열(σ)의 부분 문자열 편집거리의 하한을 계산하는 단계;를 포함하는 것을 특징으로 하는 문자열 검색 방법. - 제 2 항에 있어서, 상기 (a)단계 이후에,
(b) 상기 서버가, 상기 좌측 문자열에 상기 N개 중 상기 제1 q-그램을 제외한 제n의(여기서 n은 2 이상의 정수) q-그램이 존재하는지 판단하는 단계;
(c) 상기 서버가, 제n의 q-그램이 존재하면, 상기 제n의 q-그램을 기준으로 좌측 문자열의 부분 문자열 편집거리의 하한 및 우측 문자열의 부분 문자열 편집거리의 하한을 각각 계산하는 단계;
(d) 상기 서버가, 상기 제n의 q-그램의 좌측 문자열에 상기 N개 중의 q-그램이 존재하지 않을 때까지, 상기 n값을 1씩 증가하면서 상기 (c)단계를 반복하는 단계; 및
(e) 상기 서버가, 상기 계산된 모든 부분 문자열 편집거리의 하한에 기초하여, 상기 입력 문자열(σ)의 부분 문자열 편집거리의 하한을 계산하는 단계;를 포함하는 것을 특징으로 하는 문자열 검색 방법. - 제 4 항에 있어서, 상기 제1 q-그램이 상기 N개의 q-그램 중 첫번째 q-그램인 경우부터 N번째 q-그램인 경우의 각각의 경우에 대해,
상기 서버가, 상기 (a)단계 내지 (e)단계를 반복하는 단계; 및
상기 서버가, 상기 각각의 경우에 대해 계산된 상기 입력 문자열(σ)의 편집거리의 하한들 중 가장 작은 값을 상기 문자열(σ)과 문자열(s) 사이의 부분 문자열 편집거리의 하한으로 선택하는 단계;를 포함하는 것을 특징으로 하는 문자열 검색 방법. - 문서 데이터베이스(DB)에 저장된 M개의 문자열(S)에서, 사용자로부터 입력받은 입력 문자열(σ)에 가장 유사한 K개(여기서 M과 K는 각각 2 이상의 정수이고 M>K를 만족한다)의 문자열을 검색하는 방법에 있어서,
(가) 서버가, 상기 문자열(S) 중 임의의 i번째(여기서 2≤i≤M을 만족함) 문자열(Si)에 대해, 제1항 내지 제5항 중 어느 한 항에 따른 방법에 의해 상기 문자열(Si)과 문자열(σ) 사이의 부분 문자열 편집거리의 하한을 계산하는 단계;
(나) 상기 서버가, 상기 입력 문자열(σ)과 문자열(Si 내지 S(i-1))의 각각과의 부분 문자열 편집거리들 중 K번째로 작은 편집거리와, 상기 문자열(Si)과 문자열(σ) 사이의 편집거리 하한을 비교하는 단계;
(다) 상기 서버가, 상기 문자열(Si)의 편집거리의 하한이 상기 K번째로 작은 편집거리 보다 작은 경우, 상기 문자열(Si)과 문자열(σ) 사이의 부분 문자열 편집거리를 계산하는 단계; 및
(라) 상기 서버가, 상기 계산된 문자열(Si)의 부분 문자열 편집거리가 상기 K번째로 작은 편집거리 보다 작은 경우, 상기 문자열(Si)을 상기 입력 문자열(σ)에 가장 유사한 K개의 문자열 목록에 포함시키는 단계(S370);를 포함하는 것을 특징으로 하는 문자열 검색 방법. - 제 6 항에 있어서, 상기 문자열(Si)의 부분 문자열 편집거리의 하한을 계산하는 (가)단계 이전에,
상기 서버가, 입력 문자열(σ)에 속하는 q-그램들 중 겹치지 않도록 q-그램의 부분 집합(G')을 선택하는 단계; 및
상기 서버가, 상기 K번째로 작은 편집거리를 상기 부분 집합(G')의 크기(|G'|)와 비교하는 단계(S420);를 더 포함하고,
상기 K번째로 작은 편집거리가 상기 크기(|G'|) 보다 큰 경우, 상기 문자열(Si)에 대해 상기 (가) 내지 (라) 단계를 실행하는 것을 특징으로 하는 문자열 검색 방법. - 제 7 항에 있어서, 상기 K번째로 작은 편집거리를 상기 부분 집합(G')의 크기(|G'|)와 비교하는 단계 이후에,
상기 서버가, 상기 K번째로 작은 편집거리가 상기 크기(|G'|) 보다 작은 경우, 상기 문자열(Si)이 상기 부분 집합(G')에 속하는 q-그램과 일치하는지 여부를 판단하는 단계;를 더 포함하고,
문자열(Si)이 상기 집합(G')의 어느 q-그램과도 일치하지 않으면, 상기 문자열(Si)에 대해 상기 (가) 내지 (라) 단계를 실행하지 않는 것을 특징으로 하는 문자열 검색 방법. - 제 6 항에 있어서,
상기 문자열(Si)의 부분 문자열 편집거리의 하한을 계산하는 (가)단계 이전에, 상기 서버가, 상기 K번째로 작은 편집거리를 상기 부분 집합(G')의 크기(|G'|)와 비교하는 단계;를 더 포함하고,
상기 K번째로 작은 편집거리가 상기 크기(|G'|) 보다 작은 경우,
상기 서버가, 색인 데이터베이스(DB)로부터 상기 부분 집합(G')에 대한 색인 정보(L(G'))를 도출하는 단계(S610); 및
상기 서버가, 상기 색인 정보(L(G'))에 포함된 전체 N개(여기서 N>K를 만족함)의 문자열(S)에 대해, 상기 입력 문자열(σ)에 가장 유사한 K개의 문자열을 검색하는 단계;를 더 포함하는 것을 특징으로 하는 문자열 검색 방법. - 제 9 항에 있어서, 상기 N개의 문자열(S)에 대해 가장 유사한 K개의 문자열을 검색하는 단계는,
상기 서버가, 상기 문자열(S) 중 임의의 j번째(여기서 2≤j≤N을 만족함) 문자열(Sj)에 대해, 상기 문자열(Sj)과 문자열(σ) 사이의 부분 문자열 편집거리의 하한을 계산하는 단계;
상기 서버가, 문자열(S)의 모든 계산된 부분 문자열 편집거리들 중 K번째로 작은 편집거리와, 상기 문자열(Sj)과 문자열(σ) 사이의 부분 문자열 편집거리의 하한을 비교하는 단계;
상기 서버가, 상기 문자열(Sj)의 편집거리의 하한이 상기 K번째로 작은 편집거리 보다 작은 경우, 상기 문자열(Sj)과 문자열(σ) 사이의 부분 문자열 편집거리를 계산하는 단계; 및
상기 서버가, 상기 계산된 문자열(Sj)의 부분 문자열 편집거리가 상기 K번째로 작은 편집거리 보다 작은 경우, 상기 문자열(Sj)을 상기 입력 문자열(σ)에 가장 유사한 K개의 문자열 목록에 포함시키는 단계;를 포함하는 것을 특징으로 하는 문자열 검색 방법. - 문서 데이터베이스(DB)에 저장된 M개의 문자열(S)에서, 사용자로부터 입력받은 입력 문자열(σ)에 가장 유사한 K개(여기서 M과 K는 각각 2 이상의 정수이고 M>K를 만족한다)의 문자열을 검색하는 방법에 있어서,
(가) 서버가, 입력 문자열(σ)에 속하는 q-그램들 중 겹치지 않도록 q-그램의 부분 집합(G')을 선택하는 단계;
(나) 상기 서버가, 색인 데이터베이스(DB)로부터 상기 부분 집합(G')에 대한 색인 정보(L(G'))를 도출하는 단계;
(다) 상기 서버가, 색인 정보(L(G'))에 포함된 전체 N개(여기서 M≥N>K를 만족함)의 문자열(S) 중 임의의 j번째(여기서 2≤j≤N을 만족함) 문자열(Si)에 대해, 제1항 내지 제5항 중 어느 한 항에 따른 방법에 의해 상기 문자열(Sj)과 문자열(σ) 사이의 부분 문자열 편집거리의 하한을 계산하는 단계;
(라) 상기 서버가, 문자열(S)의 모든 계산된 부분 문자열 편집거리들 중 K번째로 작은 편집거리와, 상기 문자열(Sj)과 문자열(σ) 사이의 부분 문자열 편집거리의 하한을 비교하는 단계;
(마) 상기 서버가, 상기 문자열(Sj)의 편집거리의 하한이 상기 K번째로 작은 편집거리 보다 작은 경우, 상기 문자열(Sj)과 문자열(σ) 사이의 부분 문자열 편집거리를 계산하는 단계; 및
(바) 상기 서버가, 상기 계산된 문자열(Sj)의 부분 문자열 편집거리가 상기 K번째로 작은 편집거리 보다 작은 경우, 상기 문자열(Sj)을 상기 입력 문자열(σ)에 가장 유사한 K개의 문자열 목록에 포함시키는 단계;를 포함하는 것을 특징으로 하는 문자열 검색 방법. - 제 1 항 내지 제 5 항 중 어느 한 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 6 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 11 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130071616A KR101452638B1 (ko) | 2013-06-21 | 2013-06-21 | 유사 문자열 검색 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130071616A KR101452638B1 (ko) | 2013-06-21 | 2013-06-21 | 유사 문자열 검색 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101452638B1 true KR101452638B1 (ko) | 2014-10-22 |
Family
ID=51998195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130071616A Active KR101452638B1 (ko) | 2013-06-21 | 2013-06-21 | 유사 문자열 검색 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101452638B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180065156A (ko) | 2016-12-07 | 2018-06-18 | 전북대학교산학협력단 | 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치 |
KR20220084901A (ko) * | 2020-12-14 | 2022-06-21 | 서울대학교산학협력단 | 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006519445A (ja) | 2003-03-03 | 2006-08-24 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 文字列検索の方法および設備 |
JP2012128672A (ja) | 2010-12-15 | 2012-07-05 | Waseda Univ | 相同性検索装置及びプログラム |
-
2013
- 2013-06-21 KR KR1020130071616A patent/KR101452638B1/ko active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006519445A (ja) | 2003-03-03 | 2006-08-24 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 文字列検索の方法および設備 |
JP2012128672A (ja) | 2010-12-15 | 2012-07-05 | Waseda Univ | 相同性検索装置及びプログラム |
Non-Patent Citations (2)
Title |
---|
고상기외 1인, "정규 언어와 문맥 자유 언어 사이의 편집거리 계산", 정보과학회 논문지 : 컴퓨팅의 실제 및 레터 제18권 제6호, 2012.06 * |
김종익, "접두사 원소 선별을 이용한 효율적인 편집거리 기반 유사 문자열 검색기법, 정보과학회 논문지 : 컴퓨팅의 실제 및 레터 제18권 제9호, 2012.09 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180065156A (ko) | 2016-12-07 | 2018-06-18 | 전북대학교산학협력단 | 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치 |
KR20220084901A (ko) * | 2020-12-14 | 2022-06-21 | 서울대학교산학협력단 | 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램 |
KR102496551B1 (ko) | 2020-12-14 | 2023-02-06 | 서울대학교산학협력단 | 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108460014A (zh) | 企业实体的识别方法、装置、计算机设备及存储介质 | |
KR101126406B1 (ko) | 유사어 결정 방법 및 시스템 | |
CN101976253A (zh) | 一种中文变异文本匹配识别方法 | |
CN112988784B (zh) | 数据查询方法、查询语句生成方法及其装置 | |
CN107402960B (zh) | 一种基于语义语气加权的倒排索引优化算法 | |
US10387543B2 (en) | Phoneme-to-grapheme mapping systems and methods | |
CN107861948B (zh) | 一种标签提取方法、装置、设备和介质 | |
CN113553410B (zh) | 长文档处理方法、处理装置、电子设备和存储介质 | |
JP2005165598A (ja) | 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム | |
CN104281275A (zh) | 一种英文的输入方法和装置 | |
JP5980520B2 (ja) | 効率的にクエリを処理する方法及び装置 | |
CN111602129B (zh) | 针对注释和墨迹的智能搜索 | |
KR101452638B1 (ko) | 유사 문자열 검색 방법 및 장치 | |
US12020175B2 (en) | Building training data and similarity relations for semantic space | |
KR102015454B1 (ko) | 문서 자동 편집 방법 | |
CN114297143A (zh) | 一种搜索文件的方法、显示文件的方法、装置及移动终端 | |
CN104021202A (zh) | 一种知识共享平台的词条处理装置和方法 | |
CN114297449A (zh) | 内容查找方法、装置、电子设备及计算机可读介质及产品 | |
KR101615164B1 (ko) | 엔-그램 기반의 질의 처리 장치 및 그 방법 | |
US20170270127A1 (en) | Category-based full-text searching | |
US20200410007A1 (en) | Search apparatus, search system, and non-transitory computer readable medium | |
CN118114660A (zh) | 文本检测方法、系统及计算机可读存储介质 | |
CN112989011B (zh) | 数据查询方法、数据查询装置和电子设备 | |
CN113641783B (zh) | 基于关键语句的内容块检索方法、装置、设备和介质 | |
CN114168871A (zh) | 用于页面跳转的方法及装置、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20130621 |
|
PA0201 | Request for examination | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20140422 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20141008 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20141013 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20141013 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20170925 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20170925 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20181002 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20181002 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20201118 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20211209 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20230921 Start annual number: 10 End annual number: 10 |
|
PR1001 | Payment of annual fee |