KR101245631B1 - 근사조합장치, 근사조합방법, 프로그램 및 기록매체 - Google Patents

근사조합장치, 근사조합방법, 프로그램 및 기록매체 Download PDF

Info

Publication number
KR101245631B1
KR101245631B1 KR1020117004098A KR20117004098A KR101245631B1 KR 101245631 B1 KR101245631 B1 KR 101245631B1 KR 1020117004098 A KR1020117004098 A KR 1020117004098A KR 20117004098 A KR20117004098 A KR 20117004098A KR 101245631 B1 KR101245631 B1 KR 101245631B1
Authority
KR
South Korea
Prior art keywords
keyword
skip
dictionary
character
deleted
Prior art date
Application number
KR1020117004098A
Other languages
English (en)
Other versions
KR20110044253A (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 KR20110044253A publication Critical patent/KR20110044253A/ko
Application granted granted Critical
Publication of KR101245631B1 publication Critical patent/KR101245631B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries

Landscapes

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

Abstract

본 발명은, 오자나 탈자, 상정한 키워드와 조금 다른 표현이 입력 문자열에 포함되고, 추출하고자 하는 키워드 수가 많은 경우라도, 고속으로 추출가능하게 하는 것을 과제로 한다. 그 과제를 해결하기 위해, 스킵사전 작성부(10)에 의해, 추출하고자 하는 키워드로서 미리 리스트업된 키워드사전에 대해서, 키워드 그 자체와, 해당 키워드의 모든 문자위치로부터 적어도 하나의 문자를 삭제한 문자열의 집합으로 구성되는 삭제 키워드를 포함하는 스킵사전을 작성하여 스킵사전 기억부(20)에 저장하고, 키워드 추출부(30)에 의해, 입력 문자열과 상기 스킵사전을 조합함으로써, 입력 문자열로부터 미리 부여된 키워드 및 해당 키워드에 근사한 키워드를 추출하고, 그 출현위치와 함께 출력한다.

Description

근사조합장치, 근사조합방법, 프로그램 및 기록매체 { APPROXIMATE COLLATION DEVICE, APPROXIMATE COLLATION METHOD, PROGRAM, AND RECORDING MEDIUM }
본 발명은, 자연언어로 기술된 문장(입력 문자열)으로부터 미리 부여된 키워드를 추출하기 위한, 입력 문자열과 소정의 키워드를 조합(照合)하여, 일치한 키워드와 그 출현위치를 출력하는 기술에 관한 것이다.
〈키워드 추출〉
키워드 추출은, 자연언어로 기술된 입력 문자열로부터, 사전과 같은 미리 리스트업된 키워드를 추출하는 태스크이다.
예를 들면, 도 1에 나타내는 입력 문자열로부터, 올림픽에 관한 키워드를 출력하는 것을 생각한다. 이 경우, 도 2에 도시하는 바와 같은, 추출하고자 하는 키워드로서 미리 인력에 의해 리스트업된 키워드의 집합(이하, 키워드사전이라 부른다.) 중의 각 키워드가 상기 입력 문자열에 포함되어 있는지 여부를 조합함으로써 추출을 수행한다.
그러나,
1. 입력 문자열은, 인력에 의해 기술(입력)된 문자열이기 때문에, 오자나 탈자가 포함되어 있거나, 상정한 키워드와 조금 다른 표현이 사용되고 있는 것이 자주 있다.
2. 키워드 수가 많아지면, 고속으로 추출하는 것이 어려워지고, 대량의 입력 문자열을 처리하는데 시간이 걸린다는 문제점이 있다.
도 1의 입력 문자열로부터 도 2의 키워드사전 중의 각 키워드를 추출하는 경우,
·문 2에서는, 오자에 의해 'オリンピック(올림픽)'가 'オソンピック(오손픽)'가 되어 있고,
·문 3, 4에서는, '男子100平泳ぎ(남자100평영)'가 '男子の100平泳ぎ(남자의100평영)', '金メダル(금메달)'가 'メダル(메달)'로, 약간 다른 표현으로 기술되어 있기 때문에, 문 2, 3, 4로부터 키워드를 추출하지 못하고, 결과적으로, 문 1로부터 키워드 'オリンピック(올림픽)'만이 추출되게 된다.
[종래기술]
(1) 키워드의 근사조합
종래, 키워드의 근사조합방법으로서, 정규 표현이 사용되어 왔다. 정규 표현은, 조합하고자 하는 키워드를, 유한 오토매톤(finite automaton)으로 표현함으로써, 문자열 중에서 약간 다른 부분 문자열을 추출할 수 있다. 이는 프로그래밍 언어 Perl 등에서 사용되고 있다. 예를 들면, Perl의 경우, 'オリンピック(올림픽)'라는 키워드를 /オ.{1}ンピック/라고 표현함으로써, 도 1의 문 1로부터 'オリンピック(올림픽)'를, 문 2로부터 'オソンピック(오손픽)'을 추출할 수 있다.
그러나, 정규 표현에 따른 키워드 근사조합은, 하나의 키워드마다 조합을 반복하게 되기 때문에, 키워드 수에 비례한 시간이 걸리고, 키워드의 수가 방대해지면 조합속도가 저하한다. 그 때문에, 대량의 문서로부터 모든 키워드를 추출하는 태스크에서는, 처리시간이 걸린다는 문제점이 있다.
또한, 정규 표현 이외에, 2개의 대상물간의 유사도를 계산하는 DP(Dynamic Programming)에 의한 매칭법(비특허문헌 1 참조)을 이용할 수도 있으나, 키워드마다 DP 매칭해야 하기 때문에, 대량의 키워드 수에서는 현저하게 처리속도가 떨어진다는 문제점이 있다.
(2) 고속의 완전일치조합:그 1. 트라이구조
키워드 수가 방대한 경우, 키워드사전을 트라이구조(비특허문헌 2 참조)로 함으로써, 모든 키워드를 동시에 조합할 수 있다. 트라이구조는, 각 키워드의 공통 접두사를 병합한 트리구조이다. 도 2의 키워드사전을 트라이구조로 한 사전(트라이사전)의 예를 도 3에 나타낸다. 키워드의 각 문자는, 트라이의 가지로서 표현된다. 도면 중의 '#'는 키워드의 끝을 나타내는 종단(終端)기호이며, 트라이의 노드에는 키워드마다 다른 값을 보유할 수 있다.
트라이사전을 이용한 키워드 추출은, 입력 문자열을 선두로부터 1 문자씩 옮겨가면서 트라이사전과 조합함으로써 수행한다. 또한, 본 명세서 및 특허청구의 범위에서는, 모든 문자열에 대해서, 문자열의 최초의 문자를 0 문자째, 다음의 문자를 1 문자째 등으로 표기한다. 예를 들면, 문자열의 위치 i는, 해당 문자열의 최초의 문자를 0 문자째로 한 i 문자째의 위치이다. 또, 위치 i 등에 있어서의 i는 문자열의 위치의 값이다. 또한, "문자열의 위치"만으로 문자열의 위치의 값을 나타내는 경우도 있다.
트라이구조에 따른 조합 알고리즘을 도 4에 나타낸다. 트라이구조에 따른 조합에 있어서는, 도 4에 도시하는 바와 같이, 입력 문자열의 모든 문자위치 i에 대해서, 단계 s1~단계 s5의 처리가 반복된다.
먼저, 키워드 조합위치 j를 0으로 하고, 트라이 노드 n을 뿌리 노드로 함으로써 초기화가 수행된다(단계 s1). 다음으로, 노드 n의 가지에 종단기호 #이 있는지 여부의 판정이 이루어지고(단계 s2), 종단기호 #이 있으면, 뿌리 노드로부터의 경로 상의 전(全) 가지 라벨, 값, 일치 개시위치 i가 출력된다(단계 s3).
단계 s2의 판정에 있어서, 노드 n의 가지에 종단기호 #이 없는 경우, 입력 문자열에 있어서의 위치 i+j의 문자 Ci +j가 트라이 노드 n으로부터 분기(分岐)하는 가지 라벨에 있는지 여부의 판정이 이루어진다(단계 s4).
단계 s4에 있어서, 문자 Ci +j가 트라이 노드 n으로부터 분기하는 가지 라벨에 없는 경우, 입력 문자열의 다음의 문자위치에 대해서, 단계 s1로부터의 처리를 반복한다. 단계 s4에 있어서, 문자 Ci +j가 트라이 노드 n으로부터 분기하는 가지 라벨에 있는 경우, j를 j+1로 하고, n을 해당 가지끝의 노드로 갱신하고 단계 s2로 진행된다(단계 s5).
예를 들면, 도 1의 문 1을 도 3의 트라이사전과 조합하는 경우, 입력문의 6 문자째(위치 i=6)로부터 조합을 개시하면, 노드 1, 2, 3, 4, 5, 6, 7을 경유하여 값 1에 이르기 때문에, 6 문자째부터 키워드 'オリンピック(올림픽)'이 추출되고, 그 값은 값 1인 것을 알 수 있다.
트라이사전을 이용하면, 전 키워드를 동시에 조합할 수 있기 때문에, 처리속도는 키워드 수에는 의존하지 않는다. 그 때문에, 수가 방대해도 고속으로 조합할 수 있다.
그러나, 트라이사전을 이용한 키워드 조합은, 키워드와 완전일치한 문자열밖에 추출할 수 없기 때문에, 오자나 탈자, 조금 다른 표현이 사용된 키워드를 추출할 수 없다는 문제점이 있다.
(3) 고속의 완전일치조합:그 2. AC법
트라이구조를 이용한 키워드 조합을 개량한 것에, Aho-Corasick법(이하, AC법이라 부른다.)(비특허문헌 3 참조)이 있다. AC법을 이용하면, 조합속도는 입력 문자열의 길이(문자수)에만 의존하게 되기 때문에, 더욱 고속으로 조합할 수 있다.
AC법에서는, 도 3과 같은 트라이사전(AC법에서는, goto 함수라 불린다.) 외에, failure 함수, output 함수를 이용하여 고속으로 조합을 수행한다. failure 함수는, 트라이의 조합이 도중에 실패했을 때, 실패 직전까지의 가지 라벨 접미사와, 트라이의 뿌리 노드로부터의 가지 라벨열의 접두사를 비교하여, 최장 일치하는 노드로 천이하기 위한 함수이다. output 함수는, 트라이의 조합이 도중까지 성공했을 때, 그 가지 라벨의 접미사가 키워드인 경우, 모든 키워드를 출력하기 위한 함수이다. 이는 트라이구조인 경우와 달리, 후방 일치한 값을 전부 출력한다. 키워드사전이 도 2인 경우의 failure 함수, output 함수의 예를, 각각 도 5, 도 6에, AC법에 의한 조합 알고리즘을 도 7에 나타낸다.
도 7에 도시하는 바와 같이, AC법에 의한 조합에서는, 먼저, 입력 문자열 조합위치 e를 0으로 하고, 트라이 노드 n을 1로 하여 초기화를 수행한다(단계 s11). 계속해서, 입력 문자열 조합위치 e가 입력 문자열 길이 이상인지 여부의 판정이 수행되고(단계 s12), 입력 문자열 조합위치 e가 입력 문자열 길이 이상이라면 처리를 끝낸다. 단계 s12에서, 입력 문자열 조합위치 e가 입력 문자열 길이 이상이 아닌 경우, 입력 문자열의 위치 e의 문자와 같은 라벨이 노드 n의 가지에 있는지 여부의 판정이 이루어진다(단계 s13).
단계 s13에 있어서, 입력 문자열의 위치 e의 문자와 같은 라벨이 노드 n의 가지에 없는 경우, n을 failure 함수의 값으로 하고(단계 s14), 그 n의 값이 1이라면, e를 e+1로 하고(단계 s15), 단계 s17로 진행된다. 또, 단계 s13에 있어서, 입력 문자열의 위치 e의 문자와 같은 라벨이 노드 n의 가지에 있는 경우, n을 해당 가지끝의 노드로 갱신하여, e를 e+1로 하고(단계 s16), 단계 s17로 진행된다.
단계 s17에서는, output(n)이 공집합이 아니면, output(n) 중의 키워드와 값, 및 일치 개시위치 i=(e-키워드 길이)가 출력되고, 단계 s12으로 진행된다.
예를 들면, 입력 문자열이 '金メダリスト誕生(금메달리스트 탄생)'인 경우, 우선, 노드 1이, 0 문자째에서 '金'의 가지 라벨끝 16으로 천이한다. 여기에서는, output 함수의 값은 정의되어 있지 않기 때문에, 아무것도 출력하지 않는다. 이를 반복하면, 2 문자째에서 노드 18에 이른다. 3 문자째 'リ'는, 노드 18로부터 나오는 가지 라벨에 없기 때문에, failure 함수를 참조하여, 노드 12로 천이한다(failure(18)=12). 즉, 입력 문자열의 1~2 문자째 'メダ(메다)'가 이미 조합종료한 상태가 된다. 여기서부터 3 문자째의 조합을 재개시키면, 결과적으로 입력 문자열의 1~5 문자째가 키워드 'メダリスト(메달리스트)'와 일치하는 것을 알 수 있다.
이와 같이, AC법을 이용하면, 입력 문자열의 길이에 비례한 시간밖에 걸리지 않기 때문에, 고속으로 키워드 추출을 수행할 수 있다.
그러나, AC법도, 키워드와 완전일치한 문자열밖에 추출할 수 없기 때문에, 트라이구조와 마찬가지로 오자나 탈자, 조금 다른 표현이 사용된 키워드를 추출할 수 없다는 문제점이 있다.
선행기술문헌
비특허문헌 1:Tanaka Hozumi 감수, '자연언어처리-기초와 응용-', 초판, 사단법인 전자정보 통신학회, 1999년 3월 25일, p.12~15
비특허문헌 2:Matsumoto Yuji, Kageyama Taro, Nagata Masaaki, Saito Hirofumi, Tokunaga Takenobu, '이와나미(岩波) 강좌언어의 과학 3 단어와 사전', 이와나미서점, 1997, p.74~75
비특허문헌 3:Kita Kenji, Tsuda Kazuhiko, Shishibori Masami, '정보검색 알고리즘', 교리츠(共立)출판, 2002, p.108~122
본 발명은, 오자나 탈자, 상정한 키워드와 조금 다른 표현이 입력 문자열에 포함되고, 또, 추출하고자 하는 키워드 수가 많은 경우라도, 고속으로 추출가능하게 하는 것을 목적으로 한다.
상기 문제점을 해결하기 위해, 본 발명을 이용한 기술에서는, 이하의 방법으로 N자 연속(N은 임의의 정수)까지의 삽입, 삭제, 치환오류를 포함하는 문자열과, 대량의 키워드를 고속으로 조합한다.
1. 키워드사전으로부터 트라이사전을 구축할 때, 각 키워드마다, 키워드 그 자체와, 해당 키워드의 모든 문자위치 pk로부터 연속하는 wk자(1≤wk≤N)를 삭제한 문자열의 집합으로 구성되는 삭제 키워드를 생성하고, 트라이구조를 작성한다. 이를 스킵사전이라 부른다.
2. 스킵사전의 값에는, 각 삭제 키워드마다, 삭제문자위치 pk, 삭제문자수 wk 및 해당 삭제 키워드의 근원이 된 키워드(원(元) 키워드)를 보유해둔다.
3. 입력 문자열과 스킵사전을 조합할 때, 입력 문자열 그 자체와 스킵사전과의 조합뿐 아니라, 해당 입력 문자열의 모든 위치로부터 연속하는 wi자(1≤wi≤N) 스킵한 입력 문자열(이하, 스킵입력이라 부른다.)의 집합과 스킵사전과의 조합도 수행한다. 또한, 스킵입력은 양(陽)으로 작성해도 좋으며, 조합시에 직접, 입력 문자열을 스킵하면서 조합해도 좋다.
4. 얻어진 삭제 키워드의 삭제문자위치 pk, 삭제문자수 wk, 입력 문자열의 키워드 상에서의 상대 스킵위치 pi, 스킵폭 wi를 비교하여 그 삭제 키워드를,
·wi, wk가 모두 0(wi=wk=0)이라면, 키워드는 완전일치로서 키워드를 출력하는,
·wi가 0이고, wk가 1 이상(wi=0, wk>0)이라면, 입력 문자열의 스킵위치에 wi자의 삭제문자가 존재하는 것으로서 키워드를 출력하는,
·wi가 1 이상이고, wk가 0(wi>0, wk=0)이라면, 입력 문자열의 스킵위치에 wi자의 삽입문자가 존재하는 것으로서 키워드를 출력하는,
·wi가 1 이상이고, pi와 pk가 동일하고, wi와 wk(wi>0, pi=pk, wi=wk)가 동일하다면, 입력 문자열의 스킵위치에 wi=wk자의 치환문자가 존재하는 것으로서 키워드를 출력하는,
4종류로 분류한다.
5. 스킵사전에 failure 함수, output 함수를 정의하고, 조합을 AC법으로 수행함으로써, 더 고속으로 조합을 수행할 수도 있다.
본 발명을 이용한 기술에 따르면,
·삽입, 삭제, 치환오류가 포함된 입력 문자열로부터도, 연속한 N문자 이내의 오류라면 키워드를 추출할 수 있고,
·트라이구조를 이용하여 전 키워드를 동시에 조합하고 있기 때문에, 키워드 수가 늘어도 처리시간이 거의 증가하지 않고,
·조합방식으로 AC법을 이용함으로써, 더 고속으로 조합할 수도 있다.
또, 본 발명에서 출력하는 키워드는, 또한 문자의 오류가 생기기 쉬움에 따라서 스코어 부여할 수도 있다. 따라서, 입력 문자열이 같은 에어리어에 다른 키워드 후보가 있었던 경우, 오류문자를 비교하여, 오류가 생기기 어려운 쪽만을 출력할 수도 있다.
또, 본 발명에 따르면, 입력 문자열에 포함되는 키워드사전에 실린 키워드(단어)를 모두 출력하기 위해, 단어끼리의 연결되기 쉬움을 n-gram 모델 등으로 스코어 부여함으로써, 형태소 해석기를 만들 수 있다.
도 1은 입력 문자열의 일 예를 나타내는 설명도
도 2는 키워드사전의 일 예를 나타내는 설명도
도 3은 트라이사전의 일 예를 나타내는 설명도
도 4는 트라이구조에 따른 조합 알고리즘을 나타내는 처리의 흐름도
도 5는 failure 함수의 일 예를 나타내는 설명도
도 6은 output 함수의 일 예를 나타내는 설명도
도 7은 AC법에 의한 조합 알고리즘을 나타내는 처리의 흐름도
도 8은 본 발명의 근사조합장치의 실시형태의 일 예를 나타내는 구성도
도 9는 삭제 키워드와 그 값의 일 예를 나타내는 설명도
도 10은 스킵입력/스킵사전 조합 알고리즘을 나타내는 처리의 흐름도
도 11은 추출된 키워드 후보의 일 예를 나타내는 설명도
도 12는 스킵입력의 일 예를 나타내는 설명도
도 13은 추출된 키워드 후보의 다른 예를 나타내는 설명도
도 14는 트라이구조에 따른 입력 문자열 조합 알고리즘을 나타내는 처리의 흐름도
도 15는 트라이구조에 따른 스킵입력 조합 알고리즘을 나타내는 처리의 흐름도
도 16은 AC법에 의한 입력 문자열 조합 알고리즘을 나타내는 처리의 흐름도
도 17은 AC법에 의한 스킵입력 조합 알고리즘을 나타내는 처리의 흐름도
도 18은 중복삭제 알고리즘을 나타내는 처리의 흐름도
도 19는 중복삭제 후의 추출된 키워드의 일 예를 나타내는 설명도
도 20은 중복삭제 후의 추출된 키워드의 다른 예를 나타내는 설명도
도 21은 본 발명의 실시형태에 따른 Web 정보 필터링장치의 구성도
도 22는 본 발명의 실시형태에 따른 자동교정장치의 구성도
도 23은 본 발명의 실시형태에 따른 자동교정장치가 출력하는 화면 예
도 24는 중국어의 입력 문자열의 일 예를 나타내는 설명도
도 25는 중국어의 키워드사전의 일 예를 나타내는 설명도
도 26은 중국어의 삭제 키워드와 그 값의 일 예를 나타내는 설명도
도 27은 중국어의 추출된 키워드 후보의 일 예를 나타내는 설명도
도 28은 중국어의 스킵입력의 일 예를 나타내는 설명도
도 29는 중국어의 추출된 키워드 후보의 다른 예를 나타내는 설명도
도 30은 중복삭제 후의 중국어가 추출된 키워드의 일 예를 나타내는 설명도
도 31은 한국어의 입력 문자열의 일 예를 나타내는 설명도
도 32는 한국어의 키워드사전의 일 예를 나타내는 설명도
도 33은 한국어의 삭제 키워드와 그 값의 일 예를 나타내는 설명도
도 34는 한국어가 추출된 키워드 후보의 일 예를 나타내는 설명도
도 35는 한국어의 스킵입력의 일 예를 나타내는 설명도
도 36은 한국어가 추출된 키워드 후보의 다른 예를 나타내는 설명도
도 37은 중복삭제 후의 한국어가 추출된 키워드의 일 예를 나타내는 설명도
도 8은 본 발명의 근사조합장치의 실시형태의 일 예를 나타내는 것으로서, 스킵사전 작성부(10), 스킵사전 기억부(20) 및 키워드 추출부(30)로 구성된다. 또한, 본 명세서에서는, 키워드의 최대 삭제문자수와 입력 문자열의 최대 스킵폭은 동일하게, N으로 표기한다.
또, 근사조합장치는, CPU나, 메모리 등의 기억수단을 구비한 컴퓨터에, 스킵사전 작성부(10), 및 키워드 추출부(30)의 기능을 실현하기 위한 프로그램을 탑재함으로써 실현가능하다. 또, 스킵사전을 다른 장치 등에서 작성하여, 그것을 스킵사전 기억부(20)에 기억하는 것으로 하면, 컴퓨터에 키워드 추출부(30)의 기능을 실현하기 위한 프로그램을 탑재함으로써 키워드 추출수단을 구비한 근사조합장치를 실현할 수 있다. 또, 해당 프로그램은, 이동 가능 메모리 등의 기억매체에 저장해 두고, 그곳으로부터 컴퓨터에 설치(install)하는 것이 가능하다.
스킵사전 작성부(10)는, 미리 부여된 키워드에 대해서, 키워드마다, 키워드 그 자체와, 해당 키워드의 모든 문자위치로부터 연속하는 적어도 하나의 문자를 삭제한 문자열의 집합으로 구성되는 삭제 키워드를 포함하는 스킵사전을 작성한다.
스킵사전 기억부(20)는, 스킵사전 작성부(10)에서 작성된 스킵사전을 기억·보유한다.
키워드 추출부(30)는, 입력 문자열과 스킵사전 기억부(20)에 보유된 스킵사전을 조합함으로써, 입력 문자열로부터 미리 부여된 키워드 및 해당 키워드에 근사한 키워드를 추출하고, 그 출현위치와 함께 출력한다.
이하, 전술한 각 부에 있어서의 처리의 상세에 대해서 예를 들어 설명한다.
《스킵사전 작성부》
스킵사전 작성부(10)는, 삭제 키워드/값 생성부(11), 삭제 키워드/값 일시 기억부(12) 및 트라이사전 작성부(13)로 구성되며, 추출하고자 하는 키워드로서 미리 인력에 의해 리스트업된 키워드의 집합인 키워드사전으로부터 스킵사전을 작성하고, 스킵사전 기억부(20)에 저장한다.
〈삭제 키워드/값 생성부〉
삭제 키워드/값 생성부(11)는, 미리 마련된 키워드사전 안의 각 키워드에 대해서, 먼저, 키워드 그 자체와, 해당 키워드의 모든 문자위치 pk로부터 연속하는 wk자(1≤wk≤N:N은 키워드의 삭제 최대 문자수)를 삭제한 문자열의 집합으로 구성되는 삭제 키워드를 작성하고, 삭제 키워드/값 일시 기억부(12)에 기억한다.
그때, 삭제문자위치 pk, 삭제문자수 wk 및 해당 삭제 키워드의 근원이 된 키워드인 원 키워드의 조(組)를 값으로서 생성하고, 그 삭제 키워드에 대응시켜 삭제 키워드/값 일시 기억부(12)에 기억한다. 삭제 키워드가 원 키워드 그 자체인 경우, wk는 0이다. pk는 무엇을 대입해도 좋으나, 여기에서는 공란으로 한다. 예를 들면, 최대 삭제문자수 N=2인 경우, 'オリンピック(올림픽)'이라는 키워드로부터는, 도 9에 도시하는 12개의 삭제 키워드와 그 값이 생성된다.
물론, 이는 모든 키워드에 대해서 수행하지 않아도 좋으며, 어느 일정한 길이 이상(예를 들면, 4 문자 이상)의 길이의 키워드에 대해서만, 삭제 키워드를 작성해도 좋다.
〈트라이사전 작성〉
트라이사전 작성부(13)에서는, 삭제 키워드/값 일시 기억부(12)로부터 삭제 키워드/값 생성부(11)가 생성한 삭제 키워드와 해당 삭제 키워드에 대응하는 값을 독출하고, 트라이구조로 변환하여 사전을 작성한다.
즉, 트라이사전 작성부(13)는, 삭제 키워드/값 일시 기억부(12)로부터 삭제 키워드/값 생성부(11)가 생성한 삭제 키워드와 해당 삭제 키워드에 대응하는 값을 독출하고, 키워드의 각 문자를 가지로 하여, 키워드마다 다른 값을 보유가능한 노드를 포함하는, 키워드의 공통 접두사를 병합한 트리구조인 트라이구조로 변환하여 스킵사전을 작성한다.
후술하는 스킵입력/스킵사전 조합부에서 AC법을 이용하는 경우, 더 failure 함수, output 함수를 정의한다. 이를 모든 키워드에 대해서 수행하고, 스킵사전으로서 스킵사전 기억부(20)에 저장한다.
《키워드 추출부》
키워드 추출부(30)는, 스킵입력/스킵사전 조합부(31), 조합결과 일시 기억부(32) 및 중복 삭제부(33)로 구성되고, 오자나 탈자를 포함하는 입력 문자열과 스킵사전 기억부(20)에 저장된 스킵사전으로부터 키워드를 추출하고, 그 출현위치 및 값과 함께 출력한다.
〈스킵입력/스킵사전 조합부〉
먼저, 스킵입력/스킵사전 조합부(31)에서는, 입력 문자열과 스킵사전 기억부(20)에 저장된 스킵사전을 조합하여, 키워드의 후보를 추출한다. 스킵입력/스킵사전 조합의 알고리즘을 도 10에 나타낸다. 또한, 여기에서 추출한 키워드는,
·EM:키워드가 입력 문자열 안에 완전일치로 출현
·DEL:입력 문자열에 삭제문자(탈자)가 존재하는 상태에서 키워드와 일치
·INS:입력 문자열에 삽입문자가 존재하는 상태에서 키워드와 일치
·REP:입력 문자열에 치환문자(오자)가 존재하는 상태에서 키워드와 일치
의 4개의 일치 타입으로 분류된다.
(1) 입력 문자열과 스킵사전의 조합
먼저, 입력 문자열과 스킵사전을 조합한다(단계 s21). 이 조합 알고리즘은, 도 4에 나타낸 통상의 트라이사전 조합, 도 7에 나타낸 AC법에 의한 조합 중 어느 것을 이용해도 좋다. 또, 이들 이외의 조합 알고리즘을 이용할 수도 있다.
다음으로, 스킵사전과 일치한 모든 키워드 후보에 대해서, 이하의 단계 s22와 단계 s23의 처리를 반복한다.
삭제 키워드의 삭제문자수 wk가 0이라면, 일치 타입을 EM으로 하여, 해당 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수, 원 키워드를 출력하여 조합결과 일시 기억부(32)에 기억한다(단계 s22).
삭제 키워드의 삭제문자수 wk가 0보다 크면, 일치 타입을 DEL로 하여, 해당 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수, 원 키워드를 출력하여 조합결과 일시 기억부(32)에 기억한다(단계 s23).
상기의 단계 s22, s23에 있어서, 일치 타입이 EM이라면, 오류 개시위치, 오류문자수는 모두 항상 0이 되고, 일치 타입이 DEL이라면, 오류 개시위치, 오류문자수는, 각각 삭제 키워드의 삭제문자위치 pk, 삭제문자수 wk이다.
예를 들면, 도 1 의 문 1과, 도 2로부터 작성한 스킵사전을 조합하면, 도 11에 나타내는 키워드 후보를 얻을 수 있다.
(2) 스킵입력과 스킵사전의 조합
여기에서는, 먼저, 입력 문자열의 모든 위치로부터 적어도 하나의 문자를 스킵, 상세하게는 절대 스킵위치 p를 하나씩 증가시키면서 스킵폭 wi자(1≤wi≤N)를 스킵시킨 문자열을 작성한다(단계 s24). 이를 스킵입력이라 부른다. 예를 들면, 도 1의 문 1에 대해서 스킵입력을 작성하면, 도 12에 나타내는 문자열을 얻을 수 있다.
다음으로 각 스킵입력과 스킵사전을 조합한다(단계 s25). 조합 알고리즘은, 도 4 또는 도 7 중 어느 것을 이용해도 좋다. 또, 이들 이외의 조합 알고리즘을 이용할 수도 있다. 또한, 스킵입력을 작성하지 않고, 스킵사전과의 조합시에, 입력 문자열을 직접 스킵하면서 조합하는 것도 가능하다.
계속해서, 스킵사전과 일치한 모든 키워드 후보에 대해서, 단계 s26~s29의 처리를 반복한다.
먼저, 단계 s26에 있어서, 키워드의 일치 개시위치 i와 절대 스킵위치 p로부터, 키워드 상에서의 상대 스킵위치 pi=p-i를 산출한다.
그리고, pi≥0 그리고 pi≤삭제 키워드의 문자열 길이인지 여부가 판정되고(단계 s27), pi≥0 그리고 pi≤삭제 키워드의 문자열 길이라면 단계 s28로 진행되고, pi≥0 그리고 pi≤삭제 키워드의 문자열 길이가 아니라면 다음의 키워드 후보의 처리를 수행한다.
pi≥0 그리고 pi≤삭제 키워드의 문자열 길이인 경우에 있어서, 만약, 삭제 키워드의 삭제문자수 wk가 0이라면, 일치 타입을 INS로 하여, 해당 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수, 원 키워드를 출력하여 조합결과 일시 기억부(32)에 기억한다(단계 s28).
만약, 삭제 키워드의 삭제문자수 wk가 0보다 크고, 그리고 입력 문자열의 상대 스킵위치 pi와 삭제 키워드의 삭제문자위치 pk가 동일하고, 그리고 입력 문자열의 스킵폭 wi와, 삭제 키워드의 삭제문자수 wk가 동일하면, 일치 타입을 REP로 하여, 해당 일치 타입. 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수, 원 키워드를 출력하여 조합결과 일시 기억부(32)에 기억한다(단계 s29).
단계 s28, s29에 있어서, 오류 개시위치, 오류문자수는, 각각 스킵입력의 상대 스킵위치 pi, 스킵폭 wi가 된다.
단계 s24로부터, 단계 s26~s29의 반복처리까지의 처리가 입력 문자열의 절대 스킵위치 p=0으로부터 (문자열 길이―wi)까지 반복되고, 해당 반복의 처리가, 입력 문자열의 스킵폭 wi=1로부터 N까지 반복된다.
예를 들면, 도 12의 스킵입력과, 도 2의 키워드사전으로부터 작성한 스킵사전을 조합하면, 도 13에 도시하는 키워드 후보를 얻을 수 있다. 또한, 일치 타입 REP가 11개 출현하고 있는 것은, 원 키워드와 동일한 문자로의 치환이, 각 문자위치에서 출현했다고 해석하고 있기 때문이다.
(3) 트라이구조에 따른 스킵사전 조합의 고속화
도 10에서는 입력 문자열, 스킵입력의 2군데(단계 s21, 단계 25)에서 스킵사전과의 조합을 수행하고 있었다. 통상의 트라이구조를 이용하는 경우, 상기 2군데의 조합 알고리즘을 도 4로부터, 각각 도 14, 도 15에 도시하는 바와 같은 알고리즘으로 변경함으로써, 더 고속으로 스킵사전과의 조합을 수행할 수 있다.
먼저, 입력 문자열과 스킵사전과의 조합(도 14)에서는, 입력 문자열의 모든 문자위치(조합 개시위치) i에 있어서, 입력 문자열과 스킵사전을 트라이법으로 조합하고, 조합에 성공한 키워드 등을 출력함과(단계 s31~s35) 함께, 조합에 실패한 문자위치 j를 i와 조(組)로 해서 저장해둔다(단계 s36).
즉, 도 14에 도시하는 바와 같이, 입력 문자열의 모든 문자위치 i에 대해서, 단계 s31~s36의 처리가 반복된다.
우선, 키워드 조합위치 j를 0으로 하고, 트라이 노드 n을 뿌리 노드로 함으로써 초기화가 수행된다(단계 s31). 다음으로, 노드 n의 가지에 종단기호 #이 있는지 여부의 판정이 이루어지고(단계 s32), 종단기호 #이 있으면, 뿌리 노드로부터의 경로 상의 전 가지 라벨, 값, 일치 개시위치 i가 출력된다(단계 s33).
단계 s32의 판정에 있어서, 노드 n의 가지에 종단기호 #이 없는 경우, 입력 문자열에 있어서의 위치 i+j의 문자 Ci +j가 트라이 노드 n으로부터 분기하는 가지 라벨에 있는지 여부의 판정이 이루어진다(단계 s34).
단계 s34에 있어서, 문자 Ci +j가 트라이 노드 n으로부터 분기하는 가지 라벨에 없는 경우, 입력위치 i와, 키워드 조합 실패위치 j를 쌍으로 저장하고(단계 s36), 입력 문자열의 다음의 문자위치에 대해서, 단계 s31로부터의 처리를 반복한다. 단계 s34에 있어서, 문자 Ci +j가 트라이 노드 n으로부터 분기하는 가지 라벨에 있는 경우, j를 j+1로 하고, n을 해당 가지끝의 노드로 갱신하고 단계 s32로 진행된다(단계 s35).
단계 s36의 처리에 의해, 조합 개시위치(일치 개시위치) i마다, j―1문자까지 조합이 성공한 것이 나타난다.
스킵입력과 스킵사전과의 조합(도 15)에서는, 입력 문자열의 모든 문자위치(조합 개시위치) i에 있어서, 스킵입력과 스킵사전을 트라이법으로 조합(단계 s43~s47)하나, 그때, 위치 i에 대응하는 저장완료의 키워드 조합 실패위치 f를 취득(정확하게는, 단계 s36에서 저장한 j를 f로서 취득)한다(단계 s41).
여기에서, 스킵입력의 절대 스킵위치 p가 p<i라면, 만약 키워드가 일치했다고 해도, 입력 문자열과의 조합에서 일치 완료이다. 또, p>i+f라면, 스킵위치에 이르기 전에 조합이 실패하는 것이 명백하다. 따라서, p<i 또는 p>i+f인지 여부의 판정을 수행하고(단계 s42), p<i 또는 p>i+f라면 아무것도 하지 않고 다음의 문자위치 i+1로 처리를 옮긴다.
p<i 또는 p>i+f가 아니라면, 도 4에 도시한 처리와 동일하게 해서, 먼저, 키워드 조합위치 j를 0으로 하고, 트라이 노드 n을 뿌리 노드로 함으로써 초기화가 수행된다(단계 s43). 다음으로, 노드 n의 가지에 종단기호 #이 있는지 여부의 판정이 이루어지고(단계 s44), 종단기호 #이 있으면, 뿌리 노드로부터의 경로 상의 전 가지 라벨, 값, 일치 개시위치 i가 출력된다(단계 s45).
단계 s44의 판정에 있어서, 노드 n의 가지에 종단기호 #이 없는 경우, 입력 문자열에 있어서의 위치 i+j의 문자 Ci +j가 트라이 노드 n으로부터 분기하는 가지 라벨에 있는지 여부의 판정이 이루어진다(단계 s46).
단계 s46에 있어서, 문자 Ci +j가 트라이 노드 n으로부터 분기하는 가지 라벨에 없는 경우, 입력 문자열의 다음의 문자위치에 대해서, 단계 s41로부터의 처리를 반복한다. 단계 s46에 있어서, 문자 Ci +j가 트라이 노드 n으로부터 분기하는 가지 라벨에 있는 경우, j를 j+1로 하고, n을 해당 가지끝의 노드로 갱신하고 단계 s44로 진행된다(단계 s47).
이와 같이, 트라이구조와의 조합 알고리즘을 변경함으로써, 스킵입력의 조합범위를 한정할 수 있으며, 더욱 고속의 조합을 수행할 수 있다.
(4) AC법에 의한 스킵사전 조합의 고속화
도 10에서는 입력 문자열, 스킵입력의 2군데(단계 s21, 단계 25)에서 스킵사전과의 조합을 수행하고 있었다. AC법을 이용하는 경우, 상기 2군데의 조합 알고리즘을 도 7로부터, 각각 도 16, 도 17에 도시하는 바와 같은 알고리즘으로 변경함으로써, 더 고속으로 스킵사전과의 조합을 수행할 수 있다.
먼저, 입력 문자열과 스킵사전과의 조합(도 16)에서는, 입력 문자열과 스킵사전을 AS법으로 조합하고, 조합에 성공한 키워드 등을 출력함과(단계 s51, 단계 s52, 단계 s54~s58)함께, 입력 문자열의 각 문자위치(조합위치) e에 있어서의 최초의 트라이 노드번호 n을 저장해둔다(단계 s53). 이를 트라이 함수 n=trienode(e)라 부른다. 트라이 노드함수는, 입력 문자열에 스킵이 없는 경우, 입력 문자열 상에서 조합 완료의 문자위치와 트라이 상에서의 상태를 대응짓는 함수이다.
보다 상세하게는, 도 16에 있어서 먼저, 입력 문자열 조합위치 e를 0으로 하고, 트라이 노드 n을 1로 하여 초기화를 수행한다(단계 s51). 계속해서, 입력 문자열 조합위치 e가 입력 문자열 길이 이상인지 여부의 판정이 수행되고(단계 s52), 입력 문자열 조합위치 e가 입력 문자열 길이 이상이면 처리를 끝낸다. 단계 s52에서, 입력 문자열 조합위치 e가 입력 문자열 길이 이상이 아닌 경우, trienode(e)가 저장되어 있지 않으면, trienode(e)에 n의 값을 대입하고, 입력 문자열 조합위치 e와 노드 n을 기억부에 저장한다(단계 s53). 그리고, 입력 문자열의 위치 e의 문자와 같은 라벨이 노드 n의 가지에 있는지 여부의 판정이 이루어진다(단계 s54).
단계 s54에 있어서, 입력 문자열의 위치 e의 문자와 같은 라벨이 노드 n의 가지에 없는 경우, n을 failure 함수의 값으로 하고(단계 s55), 그 n의 값이 1이라면, e를 e+1로 하고(단계 s56), 단계 s58로 진행된다. 또, 단계 s54에 있어서, 입력 문자열의 위치 e의 문자와 같은 라벨이 노드 n의 가지에 있는 경우, n을 해당 가지끝의 노드로 갱신하고, e를 e+1로 하고(단계 s57), 단계 s58로 진행된다.
단계 s58에서는, output(n)이 공집합이 아니면, output(n) 중의 키워드와 값, 및 일치 개시위치 i=(e-삭제 키워드 길이)가 출력되고, 단계 s52로 진행된다.
스킵입력과 스킵사전과의 조합(도 17)에서는, 입력 문자열의 절대 스킵위치 p로부터 AS법에 의한 조합을 개시한다. 즉, 초기상태를 스킵입력의 조합위치 e=p, 트라이 노드 n=trienode(e)로서 조합을 재개한다(단계 s61~s66).
조합은 스킵입력의 최후까지 수행하는 것이 아니라, failure 함수에 의해 천이하는 트라이 노드가 뿌리 노드(n=1)로 천이한 시점에서 조합을 종료한다(단계 s64). 이 이후는 입력에 스킵이 존재하지 않기 때문에, 입력 문자열과의 조합으로 얻어진 키워드와 동일한 것밖에 일치하지 않기 때문이다.
보다 상세하게는, 먼저, 스킵입력의 조합위치 e=p, 트라이 노드 n=trienode(e)로 하고(단계 s61), 스킵입력의 위치 e의 문자와 동일한 라벨이 노드 n의 가지에 있는지 여부의 판정이 이루어진다(단계 s62).
스킵입력의 위치 e의 문자와 같은 라벨이 노드 n의 가지에 없는 경우, n을 failure 함수의 값으로 하고(단계 s63), 그 n의 값이 1이라면(단계 s64의 YES), 처리를 종료하고, 그 n의 값이 1이 아니라면(단계 s64의 NO), 단계 s66으로 진행된다.
단계 s62에 있어서, 스킵입력의 위치 e의 문자와 같은 라벨이 노드 n의 가지에 있는 경우, n을 해당 가지끝의 노드로 갱신하고, e를 e+1로 하고(단계 s65), 단계 s66으로 진행된다.
단계 s66에서는, output(n)이 공집합이 아니면, output(n) 중의 키워드와 값, 및 일치 개시위치 i=(e-키워드 길이)가 출력되고, 단계 s62로 진행된다.
이와 같이 AC법에 의한 조합 알고리즘을 변경함으로써, 스킵입력의 조합범위를 한정할 수 있고, 더 고속의 조합을 수행할 수 있다.
〈중복 삭제부〉
중복 삭제부(33)에서는, 조합결과 일시 기억부(32)로부터 스킵입력/스킵사전 조합부(31)가 출력한 키워드 후보의 집합을 독출하고, 중복하는 것을 삭제한 키워드의 집합을 생성하여 출력한다. 여기에서는, 오류문자수가 최소의 것만을 선택하고, 나머지 것 중, 입력 문자열 상에서 일치한 에어리어가 겹치는 것은 중복으로 해석한다. 중복삭제 알고리즘을 도 18에 나타낸다.
1. 먼저, 키워드 후보집합 C에, 조합결과 일시 기억부(32)로부터 독출한 키워드 후보의 집합(스킵입력/스킵 트라이 조합의 출력)을 세트하고, 최종적으로 출력하는 키워드 집합 K를 공집합(Φ)으로 한다(단계 s71).
2. 다음으로, 키워드 후보집합 C로부터 후보를 하나(c로 한다)를 취출한다(단계 s74). 이 후보 c와 원 키워드가 일치하는 것을, 키워드 후보집합 C로부터 전부 취출한다(단계 s75). 이를 Ckeys로 한다.
3. 다음으로, Ckeys로부터, 오류문자수가 최소인 후보를 전부 취출하고(Cmins로 한다), Cmins를 키워드 집합 K에 더한다(단계 s76).
4. 마지막으로, Ckeys의 모든 키워드 후보에 대해서, Cmins 중 모든 키워드의 일치 개시위치, 종료위치와 비교하여, 에어리어가 겹치는 것을 키워드 후보집합 C로부터 삭제한다(단계 s77).
5. 단계 s72~s74를, 키워드 후보집합 C가 공집합에 될 때까지 반복한다(단계 s72).
6. K를 최종적인 키워드 집합으로서 출력한다(단계 s73).
이와 같이 중복을 삭제하게 되고, 예를 들면, 도 1의 문 1과, 도 2의 키워드사전으로부터 작성한 스킵사전으로부터, 도 19에 도시하는 키워드만이 남게 된다. 즉, 입력 문자열의 6 문자째부터, 'オリンピック(올림픽)'라는 키워드가 완전일치로 출현했다는 의미가 된다.
마찬가지로, 도 1의 문 2~4와, 도 2의 키워드사전으로부터 작성한 스킵사전을 이용하면, 도 20에 도시하는 키워드를 얻을 수 있다.
본 발명의 실시형태에 따른 근사조합장치에 의해 얻어지는 일치 타입·개시위치·종료위치·원 키워드의 정보로부터는, 각 입력문 중의, 몇 문자째부터 몇 문자째가 사전의 키워드와 일치했는지, 그 일치 타입이 완전일치·치환·삭제·삽입 중 어느 것이었는지를 알 수 있다. 또, 오류 개시위치·오류문자수의 정보로부터는, 일치 타입이 치환·삽입·삭제인 경우에, 조합문자 범위에서 몇 문자째부터 몇 문자째가 오류였는지를 알 수 있다.
본 발명의 실시형태에 따른 근사조합장치에 따르면, 예를 들면, 도 20에 나타내는 바와 같이, 문 2에서는, 'オソンピック(오손픽)'라는 오자를 포함하는 문자열도 'オリンピック(올림픽)'의 1 문자 치환 타입으로서 검출할 수 있다. 또, 문 3에서는, 입력문의 '男子の100平泳ぎ(남자의 100평영)'라는 범위가 사전 키워드 '男子100平泳ぎ(남자 100평영)'와 1 자 삽입의 타입으로서 검출할 수 있다.
이로 인해, 'オリンピック(올림픽)'이나 '男子100平泳ぎ(남자 100평영)'에 관한 정보를 검색하는 장면에 있어서, 'オソンピック(오손픽)'이나 '男子の100平泳ぎ(남자의 100평영)'라는 오자 탈자·표기 불일치를 포함하는 텍스트라도 검색대상이 되고, 그 출현범위와 함께 유저에게 제시가능해진다. 즉, 본 발명에 따른 근사조합장치는, 오자 탈자나 표기 불일치에도 강건한 정보검색장치로서 이용할 수 있다.
또, 예를 들면, 본 발명에 따른 기술을, 부적절한 용어를 포함하는 Web 페이지를 표시시키지 않도록 하는 Web 정보 필터링장치에 이용할 수도 있다. 부적절 용어의 필터링에서는, 부적절 표현을 포함하는 텍스트의 검출이 필요하지만, 그와 같은 텍스트는 고의로 원래의 표기로부터 일부의 문자를 변경한 부적절 표현으로서 기재되는 것이 때때로 있다.
본 발명에 따른 기술에서는, 원래의 키워드로부터 N문자 연속의 변경이 더해진 문자열이라도 검출하는 것이 가능하며, 종래의 부적절 용어검출보다 폭넓은 텍스트의 출현에 대처할 수 있다.
도 21에 본 발명의 실시형태에 따른 Web 정보 필터링장치의 구성 예를 나타낸다.
도 21에 도시하는 바와 같이, 이 Web 정보 필터링장치는, 스킵사전 작성부(10), 스킵사전 기억부(20), 키워드 추출부(30), 필터링부(40), 표시부(디스플레이)(50)를 구비한다.
스킵사전 작성부(10), 스킵사전 기억부(20), 키워드 추출부(30)는, 지금까지 설명한 도 8에 도시한 것과 동일한 기능을 갖는다. 단, 본 예에 있어서, 키워드 추출부(30)는, 예를 들면 통신 네트워크를 통해, Web 페이지에 포함되는 텍스트 데이터를 입력 문자열로서 입력하는 기능을 더 갖고 있다.
도 21의 구성에 있어서, 필터를 가하고자 하는 부적절 용어의 리스트를 키워드사전으로서 스킵사전 작성부(10)에 부여하고, 스킵사전 작성부(10)에 의해 스킵사전이 작성되며, 스킵사전 기억부(20)에 기억된다.
그리고, 키워드 추출부(30)가, 입력 문자열에 대해서 지금까지 설명한 키워드 조합처리를 수행한다. 이로 인해, 부적절 용어 일부의 문자가 변경된 문자열도 삭제 키워드로서 추출된다. 키워드 추출부(30)는, 삭제 키워드 등의 정보를 Web 페이지의 정보와 함께 필터링부(40)에 출력한다.
필터링부(40)는, 키워드 추출부(30)로부터 수신한 정보에 기초하여, 삭제 키워드를 포함하는 Web 페이지의 정보를 표시부(디스플레이)(50)에 넘기지 않도록 제어한다. 삭제 키워드를 포함하지 않는 Web 페이지에 대해서는, 필터링부(40)는, 그대로 표시부(50)에 출력하고, 표시부(50)가 Web 페이지를 표시한다.
또, 예를 들면, 본 발명에 따른 기술을 텍스트 데이터의 자동교정(校正)장치에 적용하는 것도 가능하다.
도 22에 본 발명의 실시형태에 따른 자동교정장치의 구성 예를 나타낸다. 도 22에 도시하는 바와 같이, 이 자동교정장치는, 스킵사전 작성부(10), 스킵사전 기억부(20), 키워드 추출부(30), 입력부(키보드)(60), 표시 제어부(70), 표시부(50)를 구비한다.
스킵사전 작성부(10), 스킵사전 기억부(20), 키워드 추출부(30)는, 지금까지 설명한 도 8에 도시한 것과 동일한 기능을 갖는다. 단, 본 예에 있어서는, 유저가 문자입력을 수행하기 위한 입력부(60)가 구비되고, 키워드 추출부(30)는, 유저가 입력부(60)로부터 입력하는 문자열을 입력 문자열로서 수신하는 기능을 더 구비하고 있다.
도 22의 구성에 있어서, 일반적인 사전에 게재되어 있는 단어를 키워드사전으로서 스킵사전 작성부(10)에 부여하고, 스킵사전 작성부(10)에 의해 스킵사전이 작성되고, 스킵사전 기억부(20)에 기억된다. 그리고, 키워드 추출부(30)가, 입력 문자열에 대해서 지금까지 설명한 키워드 조합처리를 수행하고, 키워드 조합처리의 결과에 의해 얻어진 삭제 키워드 등의 정보와, 입력 문자열을 표시 제어부(70)에 출력한다.
표시 제어부(70)는, 키워드 추출부(30)에서 추출된 삭제 키워드를 하이라이트하여 사전 키워드와 함께, 표시를 수행하도록 표시부(50)를 제어한다. 삭제 키워드의 부분을 하이라이트하여 사전 키워드와 함께 유저에게 제시함으로써, 자동검출한 오류 후보로서 해당 부분의 수정을 유저에게 촉진하는 것이 가능해진다. 표시의 이미지를 도 23에 나타낸다. 도 23에 나타내는 예에서는, 삭제 키워드에 의한 입력 문자열에서의 출현형(出現形)의 부분 전체에 대해서 하이라이트를 수행하고 있다.
여기에서, 출현형 전체를 하이라이트시키는 대신에, 키워드 추출부(30)에서 추출한 오류의 출현위치를 이용하여, 오류문자 범위만을 하이라이트해도 좋다. 또, 일치 타입의 정보를 이용하여, 예를 들면, 문 2의 조합범위 'オソンピック(오손픽)'의 부분과 오류문자의 범위 'ソ'의 부분을 지적하는 정보와, 사전 키워드 'オリンピック(올림픽)'의 1 자 치환이라는 정보를 제시하여, 수정 필요여부의 최종판단을 유저에게 촉진하는 것으로 해도 좋다.
이상의 예는, 어느 경우도, 오자 탈자나 표기 불일치 등의 문자열을 사전검색의 일치대상에 포함시킬 수 있는 본 기술의 특성을 살린 적용 예이며, 그 밖에도 오자 탈자를 포함한 텍스트의 단어분할을 수행하는 형태소 해석 등, 다양한 언어처리기술로의 적용을 수행할 수 있다.
오자 탈자나 표기 불일치 등의 현상은, 인간이 입력한 텍스트라면 반드시 발생할 가능성이 있다. 본 발명에 따른 기술에 의해, 이들 현상도 포함해서 언어처리를 타깃으로 할 수 있고, 보다 강건하며 유연한 언어처리 어플리케이션을 실현할 수 있다.
실시 예
(중국어에 있어서의 예)
본 발명은, 일본어뿐 아니라, 다른 언어에 대해서도 마찬가지로 적용할 수 있다. 예를 들면, 중국어의 예로서, 도 24에 도시하는 입력 문자열로부터, 도 25에 나타내는 키워드를 추출하는 것을 생각한다.
종래의 완전일치에 의한 키워드 추출법에서는, 문 1로부터는 키워드 '
Figure 112011012822641-pct00001
'가 추출되나,
●문 2에서는, '
Figure 112011012822641-pct00002
'가 '
Figure 112011012822641-pct00003
'라 표기되고, 또, '男子100米蛙泳'이 '男子的100米蛙泳'라고 조금 다른 표현으로 기술되어 있고
●문 3에서는, '金牌得主'가 '金靴得主'로 기술되어 있기 때문에,
문 2, 3으로부터는 키워드를 추출할 수 없다.
본 발명에 따른 기술을 이용하면, 키워드가 대량으로 있는 경우라도, 이하에 설명하는 대로, 문 2, 3으로부터도 키워드를 추출하는 것이 가능하다. 또한, 이하의 설명에서는, 최대 삭제문자수 N=1로서 설명한다.
《스킵사전 작성부》
스킵사전 작성부(10)에서는, 먼저, 삭제 키워드와 그 값을 생성한다. 예를 들면, 최대 삭제문자수 N=1인 경우, '
Figure 112011012822641-pct00004
'라는 키워드로부터는, 도 26에 나타내는 4개의 삭제 키워드와 그 값이 생성된다.
다음으로, 생성한 삭제 키워드와 그 값을 트라이구조로 변환하여, 스킵사전을 작성한다. 스킵입력/스킵사전 조합에서 AC법을 이용하는 경우, 더 failure 함수, output 함수를 정의한다.
《키워드 추출부》
〈스킵입력/스킵사전 조합부〉
(1) 입력 문자열과 스킵사전의 조합
먼저, 입력 문자열 그 자체와 스킵사전을 조합한다. 조합 알고리즘은, 도 4, 도 7, 도 14, 도 16 중 어느 것을 이용한다. 그러면, 도 24의 각 문으로부터, 도 27에 나타내는 키워드 후보를 얻을 수 있다.
(2) 스킵입력과 스킵사전의 조합
입력 문자열로부터 스킵입력을 작성한다. N=1에 있어서, 도 24의 문 1로부터 작성한 스킵입력을 도 28에 나타낸다.
다음으로, 각 스킵입력을 스킵사전과 조합한다. 조합 알고리즘은, '(1) 입력 문자열과 스킵사전의 조합'에서 이용한 조합 알고리즘에 의해, 도 4, 도 7, 도 15, 도 17 중 어느 것을 이용한다.
●(1)에서 도 4를 이용한 경우는 마찬가지로 도 4의 알고리즘을 사용한다.
●(1)에서 도 7을 이용한 경우는 마찬가지로 도 7의 알고리즘을 사용한다.
●(1)에서 도 14를 이용한 경우는 도 15의 알고리즘을 사용한다.
●(1)에서 도 16을 이용한 경우는 도 17의 알고리즘을 사용한다.
얻어진 모든 키워드 후보에 대해서, 일치 타입을 분류하면, 도 24의 각 문으로부터는, 도 29에 나타내는 키워드 후보를 얻을 수 있다.
〈중복 삭제부〉
마지막으로, 키워드 후보집합으로부터, 도 18에 나타내는 알고리즘으로 중복을 삭제한다. 결과, 각 문으로부터는, 도 30에 나타내는 키워드를 얻을 수 있다.
(한국어에 있어서의 예)
다음으로, 본 발명을 일본어 이외의 언어에 적용하는 다른 예로서, 한국어의 예를 설명한다. 여기에서는, 도 31에 나타내는 입력 문자열로부터, 도 32에 나타내는 키워드를 추출하는 것을 생각한다.
종래의 완전일치에 의한 키워드 추출법에서는, 문 1로부터 키워드 '
Figure 112011012822641-pct00005
'이 추출되나,
●문 2에서는, '
Figure 112011012822641-pct00006
'이 '
Figure 112011012822641-pct00007
'이라 표기되고, 또, '
Figure 112011012822641-pct00008
'이 '
Figure 112011012822641-pct00009
'이라, 약간 다른 표현으로 기술되어 있고,
●문 3에서는, '
Figure 112011012822641-pct00010
'가 '
Figure 112011012822641-pct00011
'로 기술되어 있기 때문에,
문 2, 3으로부터는 키워드를 추출할 수 없다.
본 발명에 따른 기술을 이용하면, 키워드가 대량으로 있는 경우라도, 이하에 설명하는 대로, 문 2, 3으로부터도 키워드를 추출하는 것이 가능하다. 또한, 이하의 설명에서는, 최대 삭제문자수 N=1로서 설명한다.
《스킵사전 작성부》
스킵사전 작성부(10)에서는, 먼저, 삭제 키워드와 그 값을 생성한다. 예를 들면, 최대 삭제문자수 N=1인 경우, '
Figure 112011012822641-pct00012
'이라는 키워드로부터는, 도 33에 나타내는 4개의 삭제 키워드와 그 값이 생성된다.
다음으로, 생성한 삭제 키워드와 그 값을 트라이구조로 변환하여, 스킵사전을 작성한다. 스킵입력/스킵사전 조합에서 AC법을 이용하는 경우, 더 failure 함수, output 함수를 정의한다.
《키워드 추출부》
〈스킵입력/스킵사전 조합부〉
(1) 입력 문자열과 스킵사전의 조합
먼저, 입력 문자열 그 자체와 스킵사전을 조합한다. 조합 알고리즘은, 도 4, 도 7, 도 14, 도 16 중 어느 것을 이용한다. 그러면, 도 31의 각 문으로부터, 도 34에 나타내는 키워드 후보를 얻을 수 있다.
(2) 스킵입력과 스킵사전의 조합
입력 문자열로부터 스킵입력을 작성한다. N=1에 있어서, 도 31의 문 1로부터 작성한 스킵입력을 도 35에 나타낸다.
다음으로, 각 스킵입력을 스킵사전과 조합한다. 조합 알고리즘은, '(1) 입력 문자열과 스킵사전의 조합'에서 이용한 조합 알고리즘에 의해, 도 4, 도 7, 도 15, 도 17 중 어느 것을 이용한다.
●(1)에서 도 4를 이용한 경우는 마찬가지로 도 4의 알고리즘을 사용한다.
●(1)에서 도 7을 이용한 경우는 마찬가지로 도 7의 알고리즘을 사용한다.
●(1)에서 도 14를 이용한 경우는 도 15의 알고리즘을 사용한다.
●(1)에서 도 16을 이용한 경우는 도 17의 알고리즘을 사용한다.
얻어진 모든 키워드 후보에 대해서, 일치 타입을 분류하면, 도 31의 각 문으로부터는, 도 36에 나타내는 키워드 후보를 얻을 수 있다.
〈중복 삭제부〉
마지막으로, 키워드 후보집합으로부터, 도 18에 나타내는 알고리즘으로 중복을 삭제한다. 결과, 각 문으로부터는, 도 37에 나타내는 키워드를 얻을 수 있다.
이와 같이, 일본어뿐 아니라, 다른 언어에 관해서도, N자 연속까지의 삽입, 삭제, 치환오류를 포함하는 문자열과, 대량의 키워드를 고속으로 조합하는 것이 가능하다.
또한, 본 발명은, 상기의 실시형태에 한정되지 않고, 특허청구의 범위 내에 있어서 다양한 변경·응용이 가능하다.
본 국제출원은 2008년 9월 5일에 출원된 일본국 특허출원 제2008-228382호에 기초하는 우선권을 주장하는 것이며, 그 전 내용을 본 국제출원에 원용한다.
10 스킵사전 작성부
11 삭제 키워드/값 생성부
12 삭제 키워드/값 일시 기억부
13 트라이사전 작성부
20 스킵사전 기억부
30 키워드 추출부
31 스킵입력/스킵사전 조합부
32 조합결과 일시 기억부
33 중복 삭제부
40 필터링부
50 표시부
60 입력부
70 표시 제어부

Claims (14)

  1. 삭제
  2. 삭제
  3. 자연언어로 기술된 입력 문자열과 소정의 키워드를 조합하여, 일치한 키워드와 그 출현위치를 출력하는 근사조합장치에 있어서,
    미리 부여된 키워드에 대해서, 키워드 그 자체와, 해당 키워드의 모든 문자위치로부터 적어도 하나의 문자를 삭제한 문자열의 집합으로 구성되는 삭제 키워드를 포함하는 스킵사전을 기억하는 스킵사전 기억수단; 및
    키워드 추출수단;을 구비하고,
    상기 삭제 키워드는, 상기 미리 부여된 키워드 그 자체와, 해당 키워드의 모든 문자위치 pk로부터 연속하는 wk자(단 1≤wk≤N이며 N은 키워드의 삭제 최대 문자수)를 삭제한 문자열의 집합으로 구성되고,
    상기 스킵사전은, 상기 집합 안의 각 삭제 키워드마다, 해당 삭제 키워드의 값으로서, 그 삭제문자위치 pk, 삭제문자수 wk 및 해당 삭제 키워드의 근원이 된 키워드인 원 키워드의 조(組)를 포함하고,
    상기 키워드 추출수단은,
    상기 입력 문자열과 상기 스킵사전 기억수단에 저장된 스킵사전을 조합하여, 스킵사전과 일치한 모든 키워드 후보에 대해서, 삭제 키워드의 삭제문자수 wk가 0이라면 '키워드가 입력 문자열 안에 완전일치로 출현'을 나타내는 일치 타입 EM으로 분류하고, 삭제 키워드의 삭제문자수 wk가 0보다 크면 '입력 문자열에 삭제문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 DEL로 분류하고, 분류한 결과를 일치 타입으로서, 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수, 원 키워드를 기억수단에 기억하고,
    입력 문자열의 절대 스킵위치 p를 하나씩 증가시키면서 스킵폭 wi자(단 1≤wi≤N이며 N은 입력 문자열의 최대 스킵폭)를 스킵시킨 문자열인 스킵입력을 작성하고, 각 스킵입력과 상기 스킵사전을 조합하여, 스킵사전과 일치한 모든 키워드 후보에 대해서, 키워드 상에서의 상대 스킵위치 pi를 산출하고, 삭제 키워드의 삭제문자수 wk가 0이라면 '입력 문자열에 삽입문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 INS로 분류하고, 삭제 키워드의 삭제문자수 wk가 0보다 크고, 그리고 입력 문자열의 상대 스킵위치 pi와 삭제 키워드의 삭제문자위치 pk가 동일하고, 그리고 입력 문자열의 스킵폭 wi와 삭제 키워드의 삭제문자수 wk가 동일하면 '입력 문자열에 치환문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 REP로 분류하고, 분류한 결과를 일치 타입으로서, 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수 및 원 키워드를 기억수단에 기억하는 스킵입력/스킵사전 조합수단을 갖는 것을 특징으로 하는 특징으로 하는 근사조합장치.
  4. 제 3항에 있어서,
    상기 키워드 추출수단은, 상기 기억수단으로부터 상기 스킵입력/스킵사전 조합수단이 출력한 키워드 후보의 집합을 독출하고, 중복하는 것을 삭제한 키워드의 집합을 생성하여 출력하는 중복삭제수단을 더 갖는 것을 특징으로 하는 근사조합장치.
  5. 제 3항 또는 제 4항에 있어서,
    상기 스킵사전에 있어서의 삭제 키워드는, 트라이구조를 갖고 있으며, 상기 스킵입력/스킵사전 조합수단은,
    상기 입력 문자열과 스킵사전과의 조합에서는, 상기 입력 문자열을 선두로부터 1 문자씩 옮겨가면서 상기 스킵사전과 조합하고, 일치한 키워드를 얻음과 함께 입력 문자열의 각 문자위치에서의 키워드 조합 실패위치의 값을 저장해 두고,
    상기 스킵입력과 상기 스킵사전과의 조합에서는, 절대 스킵위치의 값이 상기 입력 문자열의 문자위치의 값 이상 또는 문자위치의 값과 키워드 조합 실패위치의 값을 가산한 값 이하인 경우만, 조합을 수행하는 것을 특징으로 하는 근사조합장치.
  6. 제 3항 또는 제 4항에 있어서,
    상기 스킵사전에 있어서의 삭제 키워드는, 트라이구조를 갖고 있으며, 상기 스킵입력/스킵사전 조합수단은,
    상기 입력 문자열과 스킵사전과의 조합에서는, 입력 문자열과 스킵사전을 AC법으로 조합하여, 일치한 키워드를 얻음과 함께 입력 문자열의 각 문자위치에서의 상기 트라이구조의 노드번호를 저장해 두고,
    상기 스킵입력과 상기 스킵사전과의 조합에서는, 절대 스킵위치로부터 AC법에 의한 조합을 재개하고, 상기 트라이구조의 노드가 뿌리 노드로 천이할 때까지 조합하는 것을 특징으로 하는 근사조합장치.
  7. 삭제
  8. 삭제
  9. 자연언어로 기술된 입력 문자열과 소정의 키워드를 조합하여, 일치한 키워드와 그 출현위치를 출력하는 근사조합장치가 실행하는 근사조합방법에 있어서,
    상기 근사조합장치는, 미리 부여된 키워드에 대해서, 키워드 그 자체와, 해당 키워드의 모든 문자위치로부터 적어도 하나의 문자를 삭제한 문자열의 집합으로 구성되는 삭제 키워드를 포함하는 스킵사전을 기억하는 스킵사전 기억수단을 구비하고,
    상기 삭제 키워드는, 상기 미리 부여된 키워드 그 자체와, 해당 키워드의 모든 문자위치 pk로부터 연속하는 wk자(단 1≤wk≤N이며 N은 키워드의 삭제 최대 문자수)를 삭제한 문자열의 집합으로 구성되고,
    상기 스킵사전은, 상기 집합 안의 각 삭제 키워드마다, 해당 삭제 키워드의 값으로서, 그 삭제문자위치 pk, 삭제문자수 wk 및 해당 삭제 키워드의 근원이 된 키워드인 원 키워드의 조를 포함하고,
    상기 근사조합방법은, 키워드 추출수단이 수행하는 키워드 추출단계를 포함하고,
    상기 키워드 추출단계는,
    상기 입력 문자열과 상기 스킵사전 기억수단에 저장된 스킵사전을 조합하여, 스킵사전과 일치한 모든 키워드 후보에 대해서, 삭제 키워드의 삭제문자수 wk가 0이라면 '키워드가 입력 문자열 안에 완전일치로 출현'을 나타내는 일치 타입 EM으로 분류하고, 삭제 키워드의 삭제문자수 wk가 0보다 크면 '입력 문자열에 삭제문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 DEL로 분류하고, 분류한 결과를 일치 타입으로서, 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수, 원 키워드를 기억수단에 기억하고,
    입력 문자열의 절대 스킵위치 p를 하나씩 증가시키면서 스킵폭 wi자(단 1≤wi≤N이며 N은 입력 문자열의 최대 스킵폭)을 스킵시킨 문자열인 스킵입력을 작성하고, 각 스킵입력과 상기 스킵사전을 조합하여, 스킵사전과 일치한 모든 키워드 후보에 대해서, 키워드 상에서의 상대 스킵위치 pi를 산출하고, 삭제 키워드의 삭제문자수 wk가 0이라면 '입력 문자열에 삽입문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 INS로 분류하고, 삭제 키워드의 삭제문자수 wk가 0보다 크고, 그리고 입력 문자열의 상대 스킵위치 pi와 삭제 키워드의 삭제문자위치 pk가 동일하고, 그리고 입력 문자열의 스킵폭 wi와 삭제 키워드의 삭제문자수 wk가 동일하면 '입력 문자열에 치환문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 REP로 분류하고, 분류한 결과를 일치 타입으로서, 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수 및 원 키워드를 기억수단에 기억하는 스킵입력/스킵사전 조합단계를 포함하는 것을 특징으로 하는 특징으로 하는 근사조합방법.
  10. 제 9항에 있어서,
    상기 스킵입력/스킵사전 조합단계는, 기억수단으로부터 상기 스킵입력/스킵사전 조합단계에 있어서 기억된 키워드 후보의 집합을 독출하고, 중복하는 것을 삭제한 키워드의 집합을 생성하여 출력하는 단계를 갖는 것을 특징으로 하는 근사조합방법.
  11. 제 9항 또는 제 10항에 있어서,
    상기 스킵사전에 있어서의 삭제 키워드는, 트라이구조를 갖고 있으며, 상기스킵입력/스킵사전 조합단계에 있어서, 상기 키워드 추출수단은,
    상기 입력 문자열과 스킵사전과의 조합에서는, 상기 입력 문자열을 선두로부터 1 문자씩 옮겨가면서 상기 스킵사전과 조합하고, 일치한 키워드를 얻음과 함께 입력 문자열의 각 문자위치에서의 키워드 조합 실패위치의 값을 저장해 두고,
    상기 스킵입력과 상기 스킵사전과의 조합에서는, 절대 스킵위치의 값이 상기 입력 문자열의 문자위치의 값 이상 또는 문자위치의 값과 키워드 조합 실패위치의 값을 가산한 값 이하인 경우만, 조합을 수행하는 것을 특징으로 하는 근사조합방법.
  12. 제 9항 또는 제 10항에 있어서,
    상기 스킵사전에 있어서의 삭제 키워드는, 트라이구조를 갖고 있으며, 상기스킵입력/스킵사전 조합단계에 있어서, 상기 키워드 추출수단은,
    상기 입력 문자열과 스킵사전과의 조합에서는, 입력 문자열과 스킵사전을 AC법으로 조합하여, 일치한 키워드를 얻음과 함께 입력 문자열의 각 문자위치에서의 상기 트라이구조의 노드번호를 저장해 두고,
    상기 스킵입력과 상기 스킵사전과의 조합에서는, 절대 스킵위치로부터 AC법에 의한 조합을 재개하고, 상기 트라이구조의 노드가 뿌리 노드로 천이할 때까지 조합하는 것을 특징으로 하는 근사조합방법.
  13. 삭제
  14. 컴퓨터를, 자연언어로 기술된 입력 문자열과 소정의 키워드를 조합하여, 일치한 키워드와 그 출현위치를 출력하는 근사조합장치로서 기능시키기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 컴퓨터는, 미리 부여된 키워드에 대해서, 키워드 그 자체와, 해당 키워드의 모든 문자위치로부터 적어도 하나의 문자를 삭제한 문자열의 집합으로 구성되는 삭제 키워드를 포함하는 스킵사전을 기억하는 스킵사전 기억수단을 구비하고,
    상기 삭제 키워드는, 상기 미리 부여된 키워드 그 자체와, 해당 키워드의 모든 문자위치 pk로부터 연속하는 wk자(단 1≤wk≤N이며 N은 키워드의 삭제 최대 문자수)를 삭제한 문자열의 집합으로 구성되고,
    상기 스킵사전은, 상기 집합 안의 각 삭제 키워드마다, 해당 삭제 키워드의 값으로서, 그 삭제문자위치 pk, 삭제문자수 wk 및 해당 삭제 키워드의 근원이 된 키워드인 원 키워드의 조를 포함하고,
    상기 프로그램은, 상기 컴퓨터를, 상기 근사조합장치의 키워드 추출수단으로서 기능시키기 위한 프로그램이며,
    상기 키워드 추출단계는,
    상기 입력 문자열과 상기 스킵사전 기억수단에 저장된 스킵사전을 조합하여, 스킵사전과 일치한 모든 키워드 후보에 대해서, 삭제 키워드의 삭제문자수 wk가 0이라면 '키워드가 입력 문자열 안에 완전일치로 출현'을 나타내는 일치 타입 EM으로 분류하고, 삭제 키워드의 삭제문자수 wk가 0보다 크면 '입력 문자열에 삭제문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 DEL로 분류하고, 분류한 결과를 일치 타입으로서, 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수, 원 키워드를 기억수단에 기억하고,
    입력 문자열의 절대 스킵위치 p를 하나씩 증가시키면서 스킵폭 wi자(단 1≤wi≤N이며 N은 입력 문자열의 최대 스킵폭)을 스킵시킨 문자열인 스킵입력을 작성하고, 각 스킵입력과 상기 스킵사전을 조합하여, 스킵사전과 일치한 모든 키워드 후보에 대해서, 키워드 상에서의 상대 스킵위치 pi를 산출하고, 삭제 키워드의 삭제문자수 wk가 0이라면 '입력 문자열에 삽입문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 INS로 분류하고, 삭제 키워드의 삭제문자수 wk가 0보다 크고, 그리고 입력 문자열의 상대 스킵위치 pi와 삭제 키워드의 삭제문자위치 pk가 동일하고, 그리고 입력 문자열의 스킵폭 wi와 삭제 키워드의 삭제문자수 wk가 동일하면 '입력 문자열에 치환문자가 존재하는 상태에서 키워드와 일치'를 나타내는 일치 타입 REP로 분류하고, 분류한 결과를 일치 타입으로서, 일치 타입, 입력 문자열에 있어서의 일치 개시위치, 종료위치, 오류 개시위치, 오류문자수 및 원 키워드를 기억수단에 기억하는 스킵입력/스킵사전 조합수단을 구비하는 것을 특징으로 하는 프로그램을 포함하는 컴퓨터 판독가능 기록매체.
KR1020117004098A 2008-09-05 2009-05-19 근사조합장치, 근사조합방법, 프로그램 및 기록매체 KR101245631B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2008-228382 2008-09-05
JP2008228382 2008-09-05
PCT/JP2009/059215 WO2010026804A1 (ja) 2008-09-05 2009-05-19 近似照合装置、近似照合方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
KR20110044253A KR20110044253A (ko) 2011-04-28
KR101245631B1 true KR101245631B1 (ko) 2013-03-22

Family

ID=41796978

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117004098A KR101245631B1 (ko) 2008-09-05 2009-05-19 근사조합장치, 근사조합방법, 프로그램 및 기록매체

Country Status (4)

Country Link
JP (1) JP5238034B2 (ko)
KR (1) KR101245631B1 (ko)
CN (1) CN102138141B (ko)
WO (1) WO2010026804A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5522017B2 (ja) * 2010-12-14 2014-06-18 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム
JP5728979B2 (ja) * 2011-02-02 2015-06-03 富士通株式会社 情報処理装置、ソフトウェア検査方法およびソフトウェア検査プログラム
JP6136142B2 (ja) * 2012-08-24 2017-05-31 富士通株式会社 文字列置換装置、方法及びプログラム
CN112487781A (zh) * 2020-12-10 2021-03-12 成都海光微电子技术有限公司 文件比对方法、装置、存储介质及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319900A (ja) * 1994-05-23 1995-12-08 Ibm Japan Ltd 文字列検索システム及び方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58201140A (ja) * 1982-05-20 1983-11-22 Toshiba Corp 文書作成装置
JPH01237724A (ja) * 1988-03-18 1989-09-22 Hitachi Ltd あいまい文字列検索表示方法
US7299228B2 (en) * 2003-12-11 2007-11-20 Microsoft Corporation Learning and using generalized string patterns for information extraction
CA2509496A1 (en) * 2005-06-06 2006-12-06 3618633 Canada Inc. Search-enhanced trie-based syntactic pattern recognition of sequences
CN1869983A (zh) * 2006-06-27 2006-11-29 丁光耀 用于信息检索与信息输入的广义子串模式匹配方法
CN100527134C (zh) * 2007-12-04 2009-08-12 威盛电子股份有限公司 多模式搜寻的方法与系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319900A (ja) * 1994-05-23 1995-12-08 Ibm Japan Ltd 文字列検索システム及び方法

Also Published As

Publication number Publication date
CN102138141A (zh) 2011-07-27
JP5238034B2 (ja) 2013-07-17
WO2010026804A1 (ja) 2010-03-11
KR20110044253A (ko) 2011-04-28
JPWO2010026804A1 (ja) 2012-02-02
CN102138141B (zh) 2013-06-05

Similar Documents

Publication Publication Date Title
US7809744B2 (en) Method and system for approximate string matching
JP3998668B2 (ja) 形態素解析装置、方法及びプログラム
JP5071373B2 (ja) 言語処理装置、言語処理方法および言語処理用プログラム
US20080263032A1 (en) Unstructured and semistructured document processing and searching
JP6828335B2 (ja) 検索プログラム、検索装置および検索方法
US20080059146A1 (en) Translation apparatus, translation method and translation program
JPS63254559A (ja) 複合ワードのためのスペリング援助方法
JP2020087353A (ja) 要約文生成方法、要約文生成プログラム及び要約文生成装置
CN111159990A (zh) 一种基于模式拓展的通用特殊词识别方法及系统
KR101245631B1 (ko) 근사조합장치, 근사조합방법, 프로그램 및 기록매체
JP2010134922A (ja) 類似語決定方法およびシステム
KR101663038B1 (ko) 개체의 표면형 문자열 용례학습기반에 의한 텍스트에서의 개체 범위 인식 장치 및 그 방법
JP5203324B2 (ja) 誤字脱字対応テキスト解析装置及び方法及びプログラム
JP3309174B2 (ja) 文字認識方法及び装置
CN116306594A (zh) 一种医学ocr识别纠错方法
KR101694179B1 (ko) 모음 제거 기반 인덱스 생성 방법 및 장치
CN102567424B (zh) 一种诗词关联库系统及其实现方法和电子学习设备
Okhotin et al. Edit distance neighbourhoods of input-driven pushdown automata
US20040054677A1 (en) Method for processing text in a computer and a computer
März et al. Data centric domain adaptation for historical text with OCR errors
JP7135730B2 (ja) 要約生成方法及び要約生成プログラム
Sagar et al. Complete Kannada Optical Character Recognition with syntactical analysis of the script
KR102550868B1 (ko) 교원 업적 검증 시스템
JP5182960B2 (ja) 店舗名曖昧性解消装置、その方法、プログラム及び記録媒体
JP2005234800A (ja) 用例機械翻訳装置及び用例翻訳コンピュータプログラム、並びに用例検索装置及び用例検索コンピュータプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151110

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170303

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180302

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190304

Year of fee payment: 7