KR101231560B1 - 데이터 클러스터와 유의어의 탐색과 수정에 대한 방법 및 시스템 - Google Patents
데이터 클러스터와 유의어의 탐색과 수정에 대한 방법 및 시스템 Download PDFInfo
- Publication number
- KR101231560B1 KR101231560B1 KR1020107015046A KR20107015046A KR101231560B1 KR 101231560 B1 KR101231560 B1 KR 101231560B1 KR 1020107015046 A KR1020107015046 A KR 1020107015046A KR 20107015046 A KR20107015046 A KR 20107015046A KR 101231560 B1 KR101231560 B1 KR 101231560B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- attributes
- synonym
- cluster
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
유의어들과 같은 데이터 클러스터들에 대한 탐색과 수정 방법이 개시된다. 일 실시예에 따르면, 데이터 클러스터링에 대한 방법은 시스템상의 정보를 수신하는 단계를 포함하며, 상기 정보는 상기 시스템에 의해서 액세스 가능한 데이터 베이스 내에 저장된 또는 저장될 하나 이상의 데이터 속성들을 조작하며, 상기 정보와 조작은 데이터 클러스터들과 명시적으로 관련되지 않는다. 데이터 클러스터는 상기 수신된 정보에 기초하여 자동적으로 조정되며, 상기 데이터 클러스터는 복수의 데이터 속성들과 상기 수신된 정보에 의해 조작된 적어도 하나의 데이터 속성들을 포함한다. 상기 데이터 클러스터는 동적으로 조정되고 상기 수신되고 있는 정보에 응답하여 조정된다.
Description
본 발명은 컴퓨터 시스템에서의 데이터 클러스터링에 관한 것으로서, 더 구체적으로는 유의어와 같은 데이터 클러스터에 대한 탐색과 수정에 관한 것이다.
데이터 마이닝은, 예를 들어 데이터 베이스 내의 데이터와 같은 데이터로부터 잠재적으로 유용한 정보를 추출하는 것을 포함한다. 데이터의 클러스터링은 데이터 마이닝에서 자주 이용되며, 상이한 그룹들로 데이터 또는 속성들을 분류하는 것, 즉 클러스터 내에 각각의 데이터가 공통의 속성을 가질 수 있게 데이터를 클러스터들로 그룹화하는 것을 의미한다. 예를 들어, 데이터 클러스터들은 각각의 개별적인 속성들을 검색하는 대신에 클러스터를 검색하므로 검색이 더 효율적으로 수행되게 하며 검색 작업의 수도 줄이게 된다.
일부 컴퓨팅 시스템에서, 어떤 데이터 클러스터들은 “유의어”로 지칭될 수 있는데, 이 유의어는 검색 목적 또는 유사한 기능으로 인해 모두 동일하다고 간주되는 다수의 상이한 데이터 아이템들을 포함할 수 있다. 유의어는“루트 형태(root form)”를 가질 수 있는데 이것은 임의의 연관된 데이터 아이템들이 발견된 경우에 추정되는 유의어의 기본값이다. 유의어들은 입력 용어에 대하여 정확한 매치가 아닌 데이터를 검색하고 발견하는데에 유용하다. 예를 들어, 특정 사람의 이름을 검색하는 경우에는 그 이름에 대한 정확한 매치를 찾을 수 있고, 그 이름에 대한 유의어를 검색하는 경우에는 그 이름에 대한 변형들을 포함하여 검색될 수 있는데 이 검색 결과는 그 동일한 사람과 관련한 데이터를 발견하기 위해서도 검색될 수 있다.
컴퓨팅 시스템에서 유의어들을 활용하는 한 가지 대표적인 방법은 단어들의 클러스터로 맵핑된 각각의 루트 형태 단어 또는 그 루트와 연관된 데이터 속성들(유의어 단어들)이 리스팅된 참조 테이블인 유의어 테이블을 제공하는 것이다. 일반적으로, 동일한 의미를 갖는 알려진 유의어 단어들은 사전 결정되거나 사전에 계산되어 나중에 이용되기 위해 유의어 테이블에 저장된다. 입력 단어가 수신되었을 때, 매칭되는 유의어 단어 또는 속성은 루트 형태 단어 또는 유의어 식별자를 제공하는 유의어 테이블 내에 입력 단어를 참조함으로써 찾아진다.
기존의(existing) 유의어 이용의 단점 중의 하나는 데이터에 대해 기존의 유의어 단어들은 명백하지 않고/않거나 사전 계산하기에 어렵다는 점이다. 예를 들어, 로버트의 이름(루트 단어)에 대한 유의어 단어들은, 밥(Bob), 바비(Bobbie), 바비(Bobby), 답(Dobb), 랩(Rab), 래비(Rabbie), 로비(Robbie), 로비(Robby), 롭(Rob), 로바드(Robard), 레이비어트(Raibeart), 로파카(Lopaka), 및 로페티(Lopeti)일 수 있으며, 이러한 변형들 모두는 사전에 이미 찾아지거나 결정되지 않을 수 있다. 더 나아가 유의어들 또는 다른 타입들의 데이터 클러스터들의 형성과 갱신은 일반적으로 모든 원하는 데이터에 대한 입력 이후에 이산적인(discrete) 시간에서 수행되거나 또는 쿼리를 하는 시간에 수행되는데 이는 그 처리 중에 만들어지는 쿼리들을 크게 느리게 하며 갱신이 되기 전에 유의어 데이터들을 잠재적으로 부정확하거나 불완전하게(드리프트하게) 만든다.
추가적으로, 루트를 유의어 단어들로 맵핑하는 참조 테이블은 그 타입에 대한 정확하고 완전한 유의어 단어들에 대한 리스트를 찾기 위해 유의어의 타입에 대한 도메인 지식을 요구한다. 예를 들어, 언어 도메인 지식과 기술들은 이름 또는 단어에 대한 유의어 단어들을 정확하게 찾기 위해 이용되어야 하며, 한편 다른 도메인 지식은 예를 들어 수치 값과 같은 다른 유의어들의 타입들을 판정하기 위해 이용되어야 한다. 더 나아가 각각의 루트에 대한 모든 알려진 유의어 단어들은 그러한 유의어 단어들이 시스템에 의해 한번이라도 사용된 적이 있거나, 저장된 적이 있거나, 검색된 적이 있었는지에 무관하게 저장되므로 모든 유의어 단어들의 저장소는 거대한 양의 저장소를 차지할 수 있다.
따라서 시스템에 의해 이용되는 유의어와 속성들에 대한 저장소만을 요구하고/요구하거나 데이터에 대한 구체적인 도메인 지식을 요구하지 않는 예를 들어 유의어들을 신속하게 갱신할 수 있고 데이터의 정확성에 대한 드리프트를 방지하는 데이터 클러스터들(예를 들어 유의어들)을 형성하고 수정하는 것에 대한 향상된 방법 및 장치가 필요하다. 본 발명을 이러한 필요들에 대해 해결 방안을 제시할 수 있다.
본원 발명은 유의어들과 같은 데이터 클러스터에 대한 탐색과 수정에 관한 것이다. 본 발명의 일실시예로서, 데이터 클러스터링에 대한 방법은 시스템상의 정보를 수신하는 단계를 포함하며, 상기 정보는 상기 시스템에 의해서 액세스 가능한 데이터 베이스 내에 저장된 또는 저장될 하나 이상의 데이터 속성들을 조작하며, 상기 정보와 조작은 데이터 클러스터들과 명시적으로 관련되지 않는다. 데이터 클러스터는 상기 수신된 정보에 기초하여 자동적으로 조정되며, 상기 데이터 클러스터는 복수의 데이터 속성들과 상기 수신된 정보에 의해 조작된 적어도 하나의 데이터 속성들을 포함한다. 상기 데이터 클러스터는 동적으로(dynamically) 조정되고 상기 수신되고 있는 정보에 응답하여 조정된다. 컴퓨터 판독가능 매체와 시스템은 위와 유사한 특징들을 포함한다.
본 발명의 다른 일 태양에 따르면 데이터 클러스터링에 대한 방법은 시스템상의 정보를 수신하는 단계를 포함하며, 상기 정보는 상기 시스템에 의해 액세스 가능한 데이터 베이스 내에 적어도 하나의 데이터 엔티티에 저장될 복수의 수신된 데이터 속성들을 포함한다. 하나 이상의 데이터 클러스터들은 상기 수신된 정보에 기초하여 수정되며, 각각의 상기 하나 이상의 데이터 클러스터들은 복수의 데이터 속성들과 적어도 하나의 상기 수신된 데이터 속성들을 포함하고 상기 수정되는 단계는 상기 하나 이상의 데이터 클러스터들로부터 측정 데이터 속성을 제거하는 단계를 포함한다.
본 발명의 다른 일 태양에 따르면, 유의어들의 탐색에 대한 방법은 시스템상의 정보를 수신하는 단계를 포함하며, 상기 정보는 데이터 베이스 내에 저장된 데이터 속성들을 갖는 특정 데이터 엔티티와 연관된 복수의 수신된 데이터 속성들을 포함한다. 상기 수신된 데이터 속성들은 상기 데이터 베이스 내에 저장된 하나 이상의 데이터 엔티티들내에 저장되게 되며, 여기에는 상기 정보와 데이터 속성들은 유의어들과 명시적으로 관련되지 않는다. 유의어는 상기 수신된 데이터 속성들과 현재 저장된 데이터에 기초하여 자동적으로 형성되며 상기 유의어는 상기 데이터 엔티티와 연관된 복수의 상기 수신된 데이터 속성들을 포함한다. 상기 형성하는 단계는 적어도 하나의 상기 수신된 속성들을 포함하는 상기 데이터 베이스 내에 복수의 후보 데이터 엔티티들을 검사하는 단계를 포함하며, 상기 유의어는 상기 수신되고 있는 정보에 응답하여 동적으로 형성된다.
본 발명에 따른 실시예들은 비유의어와 연관된 입력 데이터가 수신된 경우에 유의어들이 조정될 수 있도록 하는 동적인 데이터 클러스터와 유의어 탐색 및 수정을 제공할 수 있다. 데이터 내에 드리프트를 일으키지 않고 신속한 클러스터링과 갱신을 실시간으로 수행하는 것을 가능하게 한다. 더 나아가, 유의어들은 구체적인 도메인 지식 없이도 탐색될 수 있고, 상이한 타입들의 데이터 속성들이 포함될 수 있으며 유의어들 내에 상기 시스템에 의해서 이용되는 속성들과 입력 속성들만이 포함될 필요가 있으므로 저장소 비용이 감소될 수 있다.
본 발명은 후술하는 도면에 도시된 바에 따라 바람직한 실시예들을 참조하여 오직 예시적으로만 설명된다.
도 1은 본 발명의 실시에 적합한 예시적인 시스템에 대한 블록도.
도 2a-2d는 본 발명의 유의어 처리에 이용될 수 있는 테이블들에 대한 개략적인 예.
도 3은 본 발명의 유의어 처리 방법에 대한 실시예를 설명하는 흐름도.
도 4는 속성들의 제거가 인바운드 정보에 기초하여 수행되는 도 3의 단계를 구현하는 방법에 대한 실시예를 설명하는 흐름도.
도 5는 유의어들이 탐색되어 후보들 및 유의어 테이블에 추가되는 도 3의 단계의 실시예를 설명하는 흐름도.
도 1은 본 발명의 실시에 적합한 예시적인 시스템에 대한 블록도.
도 2a-2d는 본 발명의 유의어 처리에 이용될 수 있는 테이블들에 대한 개략적인 예.
도 3은 본 발명의 유의어 처리 방법에 대한 실시예를 설명하는 흐름도.
도 4는 속성들의 제거가 인바운드 정보에 기초하여 수행되는 도 3의 단계를 구현하는 방법에 대한 실시예를 설명하는 흐름도.
도 5는 유의어들이 탐색되어 후보들 및 유의어 테이블에 추가되는 도 3의 단계의 실시예를 설명하는 흐름도.
본 발명은 컴퓨터 시스템에서의 데이터 클러스터링에 관한 것으로서, 더 구체적으로는 유의어와 같은 데이터 클러스터에 대한 탐색과 수정에 관한 것이다. 이하의 상세한 설명은 해당 기술분야의 당업자가 본 발명을 이용하고 실시할 수 있도록 제시되었으며 특허출원의 요건을 만족하도록 작성, 제공되었다. 본 명세서에서 포함된 바람직한 실시예, 일반적인 원칙 및 기능에 대한 다양한 변화, 수정은 당업자에게 자명할 것이다. 따라서, 본 발명의 범위는 제시된 실시예에만 제한되는 것이 아니라 본 명세서에서 설명되는 원칙들, 기능들과 부합하는 가장 넓은 범위에 따라서 발명의 범위가 부여된다.
본 발명은 주로 특정 내용을 구현하는데 제공되는 특정 시스템과 관련된 용어들 위주로 설명된다. 그러나 해당 기술분야의 당업자는 여기서 설명되는 방법과 시스템이 발명을 이용한 기타 다른 실시예를 구현하는데에도 효과적으로 동작할 수 있다는 것을 용이하게 인식할 수 있을 것이다. 예를 들어, 본 발명과 연관지어 이용가능한 시스템 구현들은 다수의 상이한 형태를 가질 수 있다. 본 발명은 또한 특정 단계를 갖는 특정 방법들과 관련해서 설명될 것이다. 그러나 본 발명의 방법과 시스템은 본 발명과 부합한다고 볼 수 있는 상이하고/상이하거나 추가적인 단계를 갖는 기타 방법에 대해서도 효과적으로 동작할 수 있다.
본 발명의 실시예는 전적으로 하드웨어를 구현하는 실시예의 형태, 전적으로 소프트웨어를 구현하는 실시예의 형태, 또는 하드웨어와 소프트웨어의 요소들 모두를 포함하는 형태로 실시될 수 있다. 소프트웨어 관련 실시예에는 펌웨어(firmware), 상주 소프트웨어(resident software), 마이크로코드(microcode) 등이 포함되지만 이에 제한되지 않는다. 더 나아가 본 발명의 실시예들은 컴퓨터 또는 임의의 명령어 실행 시스템에 의해서 이용되거나, 이에 연결되어 이용될 수 있는 컴퓨터 판독가능 매체에 저장된 프로그램 명령어 또는 코드의 형태로 실시될 수 있다. 매체는 전자식, 자기식, 광학식, 전자기식, 적외선 방식일 수 있으며 또는 반도체 시스템(또는 장치 또는 디바이스) 또는 전파 매체(propagation medium)일 수 있다. 컴퓨터 판독가능 매체의 예에는 반도체 또는 고체 상태 메모리(solid state memory), 자기 테이프, 이동식 컴퓨터 디스켓, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 단단한 자기 디스크 및 광학 디스크(예를 들어, CD-ROM, DVD 등)가 포함된다.
본 발명의 기능들에 대하여 더 구체적으로 설명하기 위해 도 1-5를 아래의 설명과 함께 참조하기 바란다.
본 발명에 따른 방법 및 시스템은 데이터의 세트에 대한 데이터 클러스터들을 조정하는 것에 관한 것이며, 새로운 데이터 클러스터를 형성하고 기존의 데이터 클러스터들을 수정하는 것을 포함한다. 본 명세서에서 데이터 클러스터들은 "유의어"로 지칭된다. "유의어"라는 용어는 본 명세서에서 클러스터, 그룹, 또는 2개 이상의 속성들에 대한 조합(association)을 지칭하며, 이러한 속성들은 시스템(10)에 의해서 저장된 데이터 기록들, 컬렉션들, 또는 "엔티티들(entities)"에서 충분히 자주 발생 또는 출현하는 것에 기초하여 유의어로 그룹핑(grouped)된다. 예를 들어, 데이터 후보들을 검색하는데 유의어가 개별적인 속성들 대신에 유리하게 이용될 수 있으며, 유의어를 통해 검색을 하는 것이 결과적으로 검색 동작들의 수를 감소시키는 효과를 가져온다.
본 발명에 따른 방법 및 시스템은 데이터를 입력받았을 당시에 데이터에 대한 일반적인 실시간 클러스터링을 제공한다. 본 발명에 따른 실시예는 다양한 방식에 의해서 제공될 수 있다. 예를 들어, 데이터에 대한 일반적인 실시간 클러스터링을 제공하는 시스템이 이용될 수 있다. 2 단계 검색(two-phase search)을 하는 시스템도 본 발명에 따른 시스템의 하나일 수 있으며, 검색의 제1 단계는 거짓 양성들(false positives)을 포함하는 후보 매치들을 획득하며, 다른 하나의 검색의 제2 단계는 후보들의 범위를 더 좁히고/좁히거나 원하는 후보들을 확정하기 위해 후보들에 대한 스코어를 계산하거나 분석한다. 더 나아가, 더 구체적인 애플리케이션에서 엔티티 인식 및 해결 시스템(entity recognition and resolution system)도 본 발명에 따른 시스템일 수 있으며, 이 시스템에서 엔티티들이 검색되며 상이한 엔티티들은 어느 엔티티가 입력 속성들과 연관되어 있는지를 결정하기 위해 비교된다. 후보 엔티티들은 후보 리스트를 이용하여 비교될 수 있으며, 원하는 매치를 확정하기 위해 후보들에 대한 스코어가 계산된다. 아래의 실시예들은 엔티티 해결 시스템과 관련지어 설명되었지만, 다른 실시예들의 다른 애플리케이션들의 종류에 대해서도 여전히 적용될 수 있다.
이러한 엔티티 분석 시스템(entity analytics system)에 적합하게 사용될 수 있는 시스템의 한 가지 예로 관계 해결(Relationship Resolution)과 익명 해결(Anonymous Resolution)을 포함하는 IBM사의 엔티티 분석 솔루션(Entity Analytic Solutions; EAS)을 들 수 있는데 이 시스템은 사람 또는 다른 엔티티들에 대한 아이덴티티(identities)를 인식한다. 시스템은 일관적이지 못하고, 애매모호한 아이덴티티 및 속성 정보를 사용자 또는 조직과 같은 하나의 해결된 엔티티(single resolved entity)로 해결하며; 개인들 및/또는 엔티티들 사이의 명확하지 않은 관계를 감지하며; 데이터 세트 내에서 모호성, 맞춤법 오류, 또는 부분 기록(partial records)을 인식할 수 있는 능력을 포함하는 불분명한 매칭 속성들(fuzzy-like matching properties)에 대해 해결한다.
도 1은 본 발명의 실시에 적합한 예시적인 시스템(10)에 대한 블록도이다. 시스템(10)은 하나 이상의 컴퓨터 시스템, 전자 시스템 또는 디바이스를 이용하여 구현된다. 시스템(10)에 대한 예는 하나 이상의 마이크로프로세서, 메모리(RAM, ROM, 플래시 메모리 등) 및 다양한 주변 기기들을 포함하는 잘 알려진 시스템 하드웨어상에서 구현될 수 있으며, 주변 기기들에는 저장 디바이스들(하드 디스크, DVD-ROM과 CD-ROM과 같은 광학 저장 장치), 입력 디바이스들(키보드, 포인팅 디바이스), 출력 디바이스들(모니터, 프린터), 통신 디바이스들 및 네트워킹 디바이스들 등이 포함된다. 도 1의 예에서 데이터 소스 시스템(11)은 데이터 베이스 서버(14)와 통신할 수 있는 애플리케이션 서버(12)에 데이터를 제공할 수 있다. 시스템(10)은 다른 실시예에서 다른 종류의 시스템을 이용하여 구현될 수 있다.
데이터 소스 시스템(11)은 통신 링크(16)를 통해서 애플리케이션 서버에 정보를 제공한다. 데이터 소스 시스템(11)은 상이한 소스들, 예를 들어 데이터를 입력하는 사용자, 네트워크를 통해 데이터를 제공하는 상이한 시스템 등으로부터 정보를 수신하게 할 수 있다. 본 명세서에서 참조하는 예들에서, 정보에는 하나 이상의 "엔티티들" 또는 "데이터 엔티티들"과 연관되어 있는 데이터 속성들이 포함되는데, 이러한 엔티티에는 데이터가 그룹화된 그룹, 컬렉션, 또는 기록이 있다. 엔티티는 사람, 조직, 객체, 주제, 토픽 등을 나타낼 수 있다. 엔티티는 하나 이상의 데이터 속성들과 연관되어 있으며, 일부 실시예에서 속성들은 엔티티를 설명할 수 있거나 이와 관련될 수 있다. 엔티티와 그 속성들은 시스템(10)에 의해서 저장되고 처리된다. 엔티티와 연관된 데이터의 상이한 컬렉션인 "어카운트들(accounts)"에 대해서, 엔티티는 하나 이상의 상이한 어카운트들을 포함할 수 있다.
예를 들어, 은행과 같은 조직은 어떤 종류의 엔티티는 상이한 사람 또는 고객으로 표시할 수 있는데, 이 때 각각의 고객은 현금을 보유할 수 있게 하거나 통화 상태를 표시하게 하는 계좌들(당좌 예금 계좌, 대출 계좌 등)과 같이 상이한 계좌들을 보유할 수 있다. 고객 엔티티와 연관된 속성들은 예를 들어 이름, 주소, 고용자, 전화 번호 등 엔티티에 대해 설명하는 정보일 수 있다.
애플리케이션 서버(12)는 데이터 소스 시스템(11)으로부터 인바운드 정보를 수신하며 정보에 대한 애플리케이션 프로그램 서비스들과 인터페이스들을 요청하는 클라이언트들(requesting clients) 또는 다른 요청자들에게 제공할 수 있다. 애플리케이션 서버는 서버상의 애플리케이션이 예를 들어 다른 서버들, 데이터 베이스 관리 시스템들 등과 같이 다른 의존하는 애플리케이션들과 통신하는 것을 허용한다. 상술한 본 발명의 실시예에서, 애플리케이션 서버(12)는 본 발명에 따라 하나 이상의 유의어 처리 애플리케이션(20)을 제공한다. 예를 들어, 유의어 애플리케이션(20)은 애플리케이션 서버에 연결되어 있는 요청하는 클라이언트(requesting client)를 위해 실행될 수 있다. 복수의 유의어 애플리케이션(20)은 데이터의 처리를 더 효율적으로 제공하기 위해 병렬적으로 실행될 수 있다. 다른 실시예에서, 유의어 애플리케이션(20)은 클라이언트 또는 데이터 베이스 서버상에서 실행될 수 있다.
유의어 애플리케이션(20)은 본 발명에 따른 유의어 탐색과 기타 다른 처리를 수행할 수 있다. 이러한 처리에는 수신된 인바운드 정보에 새로운 유의어들이 포함되는지 결정하는 것, 기존의 유의어들로부터 속성들을 추가하거나 삭제하는 것, 유의어들을 삭제하는 것이 포함될 수 있다. 이러한 처리에는 유의어들 및/또는 유사 속성들을 갖는 다른 후보 엔티티들을 검색하고 처리하기 위한 후보 처리(candidate processing)도 포함할 수 있다. 이러한 기능들은 도 3과 관련하여 아래에서 보다 상세하게 설명된다. 다른 일 실시예에서, 유의어 애플리케이션 기능들은 시스템상의 하나 이상의 상이한 애플리케이션에 통합될 수 있다.
데이터 베이스 서버(14)는 본 발명에서 이용되는 정보에 대해서 저장소(storage)를 제공할 수 있으며, 예를 들어 하드 디스크, 자기 테이프 또는 기타 자기 저장 장치(magnetic storage), CD, DVD, 또는 광학 저장 장치(optical storage) 등의 임의의 다양한 이용가능한 상이한 저장 디바이스들(storage devices)을 이용하여 구현될 수 있다. 상술된 도 1의 실시예와 관련하여, 데이터 베이스 서버(14)는 유의어 테이블(30), 하나 이상의 속성 테이블들(32), 엔티티 유의어 테이블(34), 엔티티-어카운트 테이블(36)을 저장하는 데이터 베이스(24)에 액세스를 제공한다. 각각의 유의어에는 유의어 식별자가 레이블링되어(labeled) 있는데, 유의어 테이블(30)은 이러한 다수의 유의어들을 저장한다. 유의어 테이블(30)은 유의어와 연관된 속성들과 그 유의어 식별자를 맵핑한 것을 저장한다. 속성 테이블(들)(32)은 시스템(10)에 있는 모든 엔티티들의 데이터 속성들을 저장하며, 연관된 어카운트들과 속성들의 타입들에 대한 정보도 포함할 수 있다. 엔티티 유의어 테이블(34)은 유의어들이 연관되어 있는 엔티티들과 그 유의어들을 맵핑한 것을 저장한다. 어카운트들을 이용하는 실시예에서, 엔티티 어카운트 테이블(36)은 어카운트들과 연관되어 있는 엔티티들과 그 어카운트들을 맵핑한 것을 저장한다. 이러한 테이블들에 대한 예는 도 2a 내지 도 2d에 상세하게 설명되어 있다.
발명의 대안적인 실시예들에서, 데이터 베이스(24)에 저장되어 있는 일부 또는 모든 테이블들은, 예를 들어 유의어 처리 애플리케이션(20)에 로컬하게 위치하는 저장소와 같은 다른 저장 장소(storage locations)에서 저장되고 액세스될 수 있다. 일부 대안적인 실시예들에서, 유의어 애플리케이션(20)은 유의어 어플라이(synonyms apply)가 유의어 애플리케이션에 로컬하게 위치하는 저장 장소(storage)에 저장될 수 있게 데이터 베이스 서버 또는 데이터 세트에서 실행될 수 있다.
도 2a 내지 도 2d는 본 발명의 데이터 베이스(또는 다른 시스템 저장소 또는 메모리)에서 저장될 수 있는 테이블들과 유의어 처리에 이용될 수 있는 테이블들에 대한 예를 개략적으로 도시한 것이다. 도 2a는 엔티티 유의어 테이블(34)에 대한 예를 도시한다. 하나의 행에는 상이한 유의어들을 식별하기 위해 유의어 식별자들이 저장된다. 다른 행에는 상이한 엔티티들을 식별하는 엔티티 식별자들이 저장되며, 식별된 엔티티는 테이블의 같은 열에 리스팅되어(listed) 있는 유의어들을 포함한다. 이 테이블은 유의어들 및 엔티티들에 대한 트랙킹(tracking)을 가능하게 하며, 다양한 유의어들이 갱신될 때 엔티티들도 갱신될 수 있게 한다.
도 2b는 어카운트 유의어 테이블(36)의 예를 도시한다. 하나의 행에는 시스템에 제공되는 상이한 어카운트들을 식별하기 위해 어카운트 식별자들이 저장된다. 다른 행에는 테이블의 같은 열에 있는 어카운트와 연관되어 있는 특정 엔티티를 식별하기 위해 엔티티 식별자들이 저장된다. 각각의 엔티티에 대해 복수의 어카운트들을 허용하는 실시예들에서, 테이블(36)은 적절한 엔티티와 어카운트들을 연관시키기 위해 이용될 수 있다.
도 2c는 본 발명에 의해 탐색되는 유의어들을 저장하기 위한 유의어 테이블(30)의 예를 도시한다. 테이블(30)에서, 테이블에 있는 각각의 데이터 속성은 특정 유의어와 연관된다. 테이블(30)은 특정 유의어를 식별하기 위한 유의어 식별자 행(40)을 포함한다. 속성 값 행(42)은 테이블의 같은 열에 리스팅되어 있는 유의어와 연관되어 있는 속성에 대한 속성 값을 저장한다. 속성 타입 행(44)은 속성들을 분류하기 위해 속성의 타입이 할당되게 하는 것을 허용하는 일부 실시예들에서 포함될 수 있다. 속성 타입은 시스템에 유용한 임의의 표시된 타입일 수 있으며 속성 테이블(32)에 명시될 수 있다(이하에서 설명됨). 일부 경우에 있어서, 후보들을 검색할 때 속성 타입은 유의어 처리에 유용할 수 있으며 이는 도 3과 관련하여 더 상세하게 설명된다. 테이블(30)에서 제공되는 각각의 유의어(유의어 ID에 의해서 식별됨)는 그와 연관된 2개 이상의 속성들(속성 값들)을 가지며, 따라서 테이블(30)의 예에서 적어도 2개 열의 저장소가 필요하다. 다른 테이블 조직들(table organizations)이 다른 실시예들에서 제공될 수 있다.
도 2d는 시스템(30)내에 엔티티들과 연관되어 있는 데이터 속성들을 저장하기 위한 속성 테이블(32)에 대한 예를 도시한다. 하나의 행(46)에서, 속성 식별자는 각각의 개별적인 속성들을 식별한다. 타입 행(48)은 속성의 타입을 나타내는데, 특정 실시예에서 속성 타입들이 제공되고 있는지 나타낸다. 예를 들어, 테이블(32)은 이름, 주소, 전화 번호, 및 고용자의 4가지 상이한 속성 타입들을 표시한다. 임의의 속성들의 타입들이, 상이한 속성들을 분류하는데 도와줄 수 있거나 효율성을 더하기 위해서 검색 파라미터들을 제한하는 것이 표시될 수 있다. 일부 실시예들에서, 하나의 속성은 구별되는 상이한 속성의 하위 부분일(sub portion) 수도 있다. 예를 들어, 우편 번호는 그 자체의 속성일 수 있지만 별개의 주소 속성의 부분일 수도 있다.
값 행(50)은 속성의 값을 표시한다. 본 명세서에서 이용되는 "값" 또는 "속성"이라는 용어는 다양한 상이한 데이터의 타입들을 지칭하는 것으로 이용된다. 예를 들어, 값은 수치 값(정수, 실수 등)일 수 있거나 또는 하나 이상의 영문 숫자, 문자 또는 특수 문자(alphanumeric or special characters)를 포함하는 텍스트 문자열(text string)일 수 있다. 이용되고 있는 특정 실시예에서 어카운트들이 이용되었다면, 어카운트 행(52)은 속성을 저장하는 어카운트에 대한 연관된 어카운트 식별자를 표시한다. 어카운트들을 이용하지 않는 다른 실시예들에서는 속성 테이블(32)은 행(52)에 어카운트 식별자들 대신에, 특정 속성들을 갖는 엔티티들을 직접적으로 검색하는데 이용될 수 있는 엔티티 식별자들을 포함할 수 있다.
다른 실시예들에서, 속성 테이블(32)은 2개 이상의 별개의 테이블들로 구현될 수 있다. 예를 들어, 각각의 테이블은 하나의 타입에 대한 속성들만을 포함할 수 있으므로 이름 속성들에 대한 테이블, 거리 주소 속성들에 대한 상이한 테이블, 이메일 주소 속성들에 대한 상이한 테이블 등이 있을 수 있다.
도 3은 본 발명의 유의어 처리 방법(100)에 대한 실시예를 설명하는 흐름도이다. 본 명세서에서 설명되는 방법들은 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합에 의해서 구현될 수 있다. 방법(100)은 메모리, 자기 테이프, 자기 디스크, 광학 디스크 등과 같은 컴퓨터 판독가능 매체상에서 제공되는 프로그램 명령어를 이용하여 구현될 수 있다. 본 명세서에서 설명된 방법의 처리 단계(process steps)는 하나의 실시예에 불과하며 이러한 단계들은 다른 실시예에서 서로 다른 순서나 병렬로(적절한 경우에 한함) 또는 다른 방식으로 결합되어 수행될 수 있다는 것을 알아야 한다.
방법은 단계(102)에서 시작되며, 단계(104)에서 인바운드 정보(본 명세서에서는 "인바운드"로 지칭됨)가 수신된다. 인바운드 정보는 시스템의 하나 이상의 데이터 속성들에 대해 조작한다. 이 조작은 다양한 상이한 형태를 취할 수 있다. 예를 들어, 인바운드는 데이터 베이스 서버(14)에 의해서 인터페이스된 데이터 베이스에 데이터를 삽입하거나 상이한 데이터 세트 또는 다른 저장소(본 명세서에서는 모두 "데이터 베이스"로 지칭됨)에 데이터를 삽입할 수 있다. 이러한 삽입된 데이터는 본 명세서에서 설명된 바와 같이, 인바운드에 포함된 데이터 속성들일 수 있다. 엔티티 해결 또는 인식(entity resolution or recognition)을 수행하는 일부 실시예들에서, 인바운드 정보는 시스템에 입력되는 데이터 속성들의 컬렉션에 대한 기록일 수 있고 시스템(10)에 의해서 인식되는 하나 이상의 데이터 엔티티들과 연관된 기록일 수 있다. 하나의 구체적인 애플리케이션의 예에서, 인바운드는 은행 대출 부서의 고객(엔티티)의 새로운 어카운트에 입력되어야 할 데이터 속성들을 포함하는 기록일 수 있으며, 여기서 기록은 은행에서 고객에 의해서 제출된 대출 신청서와 연관되며 데이터 속성들은 이름, 주소, 고용자 전화 번호 및 고객의 고용자를 포함한다.
인바운드는 시스템의 기존의 데이터 속성들도 조작할 수 있다. 예를 들어, 일부 실시예에서 인바운드가 데이터 베이스 또는 시스템에 저장된 특정 데이터 속성들이 삭제될 것을 지시하는 것을 (인바운드 정보상의 명령 또는 지시를 통해) 허용할 수도 있고 또는 선택적으로 허용할 수도 있다. 일부 실시예들에서 인바운드는 쿼리를 이용하여 기존의 데이터 속성들 또는 엔티티들을 검색하기 위해 이용될 수 있다. 인바운드는 임의의 적합한 포맷을 취할 수 있으며, 예를 들어 하나의 구현 예에서 인바운드는 XML 포맷을 취한다.
임의의 경우에 있어서, 인바운드는 일반적으로 명백하게 데이터 엔티티들 또는 기록들과 같은 데이터 베이스에 있는 데이터에 대한 조작(데이터의 삽입, 삭제, 비교 등)을 위한 것이며, 조작과 데이터는 구체적으로 또는 명시적으로 유의어들 또는 데이터 클러스터들과 연관되어 있을 필요는 없다. 예를 들어, 인바운드 정보는 시스템상의 유의어들 또는 데이터 클러스터들의 존재에 대하여 알 필요조차도 없다. 따라서 본 발명에 따른 실시예들은 유의어/데이터 클러스터 처리 및 조정을 그러한 유의어 조정을 위한 구체적인 입력을 요구함이 없이 또는 그러한 유의어 조정을 위해 명시적으로 구체적인 입력을 요구함이 없이 자동적으로 그리고 동적으로 수행할 수 있다.
단계(106)에서, 데이터 속성들은 인바운드로부터 추출된다. 일부 실시예들에서, 이러한 속성들은 연관된 인바운드와 연관된 하나의 엔티티(또는 대안적인 실시예들에서, 하나 이상의 그러한 엔티티들)에 대하여 설명하거나 연관시킨다. 예를 들어, 위에서 설명된 대출 고객에 대한 데이터를 삽입하기 위한 인바운드 기록에는 이름, 전체 주소, 전화 번호, 및 고객의 고용자에 대해서 별개의 속성들이 있을 수 있다. 전체 주소는 속성 및/또는 속성들일 수 있으며, 이러한 속성들은 일부 실시예들에서 직장 주소의 부분, 예를 들어 해당 주(state)와 주소의 우편 번호로부터 제공될 수 있다. 속성들은 일단 추출되면 시스템(10)의 메모리로 로딩될 수 있다.
단계(108)에서, 추출된 속성들에 대하여 유의어들이 검색되는데 이 유의어들은 유의어 테이블(30)로부터 선택되었다. 유의어 테이블은 임의의 추출된 속성들이 테이블내의 임의의 속성 값들과 매칭되는지를 결정하기 위해 쿼리되며 매칭이 되는 것으로 검색되었다면, 그러한 속성들을 포함하는 대응되는 유의어들이 선택된다. 테이블(30)에 있는 각각의 유의어는 적어도 2개의 속성들을 가진다. 속성들을 타입들로 분류하는 실시예들에서, 인바운드는 각각의 추출된 속성과 연관된 타입을 포함할 수 있으며 이 타입은 검색의 양을 줄이기 위해 유의어 테이블(30)에 있는 속성들의 타입들과 비교될 수 있다. 유의어 테이블(30)에 있는 각각의 유의어는 임의의 수의 상이한 타입들에 대한 속성들을 포함할 수 있다. 예를 들어, 추출된 속성들과 동일한 타입을 갖는 행(42)에 있는 대응되는 속성 값들만이 추출된 속성들과 비교되기 위하여, 추출된 속성들에 대한 타입은 도 2c의 유의어 테이블의 행(44)에 리스팅되어 있는 속성들의 타입들과 비교될 수 있다. 유의어들의 선택은 인바운드의 각각의 추출된 속성에 대하여 반복된다. 타입들을 포함하지 않은 상이한 실시예에서는, 추출된 속성은 유의어 테이블(30)에 있는 각각의 속성과 비교될 수 있다. 다른 실시예들에서는 하나 이상의 추출된 속성들과 매칭이 되는 유의어들을 선택하기 위해 다른 방법들을 이용할 수 있다.
단계(110)에서, 후보 그룹들 또는 엔티티들은 유의어 테이블(30)과 추출된 속성들의 세트로부터 선택된 유의어들을 이용하여 검색되고 선택된다. 이러한 후보 엔티티들은 본 명세서에서 "후보들"로 지칭되는데, 인바운드와 연관된 엔티티인 "인바운드 엔티티"(인바운드의 정보가 기존의 엔티티에 추가되어야 하는지 또는 인바운드에 의해서 생성된 신생성 엔티티(newly-created entity)에 추가되어야 하는지는 초기에는 알려지지 않을 수 있지만 위의 두 경우 모두 인바운드 엔티티로 지칭된다)에 대한 잠재적인 매치가 된다. 후보들을 검색하기 위해 선택된 유의어들은 다음과 같이 이용된다. 단계(110)에서 선택된 각각의 유의어에 대해서, 선택된 유의어를 공유하는 모든 후보들이 선택된다. 이는 설명된 실시예에서, 선택된 유의어의 식별자와 매칭되는 유의어 식별자를 검색하기 위해 엔티티 유의어 테이블(34)을 체크함으로써 수행될 수 있고, 매칭된 유의어를 갖는 연관된 엔티티 또는 엔티티들을 선택함으로써 수행될 수 있다. 이 과정은 각각의 선택된 유의어에 대해서 반복된다. 이러한 검색의 타입은, 예를 들어 각각의 유의어 또는 인바운드 내에 각각의 속성을 이용하여 쿼리를 수행하게 하기 보다는, 각각의 유의어를 이용하여 쿼리가 후보 매치를 검색하게 하는 것을 허용한다.
추출된 속성들의 세트는, 단계(110)에서 후보들을 검색하기 위해서도 이용된다. 유의어 테이블(30)내에 유의어의 부분이 아닌 인바운드로부터 추출된 속성들이 있을 수 있으며, 이러한 비유의어 속성들은 추가적인 후보들을 검색하고 선택하기 위해 이용된다. 예를 들어, 상술된 실시예에서 각각의 비유의어 속성 값은 테이블(32)의 속성 값들과 비교되며, 도 2b의 어카운트 엔티티 테이블(36)(또는 다른 적합한 테이블)을 이용하여 속성 값들을 매칭하기 위한 행(52)에 있는 어카운트 식별자는 그러한 매칭되는 속성들을 갖는 후보들을 검색하기 위해 이용된다. 어카운트들을 이용하지 않는 다른 실시예들에서, 행(52)에 있는 엔티티 식별자들은 매칭되는 속성들을 갖는 후보 엔티티들을 직접적으로 검색하기 위해 이용될 수 있다. 일부 실시예들에서, 일부 사전 결정된 속성들의 타입들은 후보들에 대한 검색에서 배제될 수 있다.
일부 실시예들은 유의어들에 있는 속성들을 포함하는 모든 추출된 속성들을 이용하여 단계(110)에서 검색된 모든 후보들과 비교하여 인바운드가 스코어링되는(scored) 단계(112)를 수행할 수 있다. 원한다면, 속성 스코어링에 대한 방법은 속성 타입에 따라 다양해질 수 있다. 임의의 잘 알려진 스코어링 방법은 후보들내의 속성들과 유의어들에 기초하여 후보들을 스코어링하는데 이용될 수 있다. 예를 들어, 알려진 유사 스코어링 기법들은 상이한 값 타입들(예를 들어 이름들, 주소들, 전화 번호들 등)에 대해서도 적절하게 사용될 수 있으며, 예를 들어 숫자 유사 스코어링(number similarity scoring)은 숫자 전위(digit transposition) 또는 일반적인 사용자 입력 에러들을 참작할 수 있다. 일부 실시예들에서는 유의어들을 공유하지 않는 후보들의 스코어에 페널티를 줄 수 있다. 스코어링이 완료된 후, 스코어링된 속성들이 얼마나 근접하게 인바운드의 속성들과 매치하는지가 알려지며, 스코어들은 더 정확한 후보들을 제공하기 위해 사용될 수 있는데, 예를 들어 후보들의 리스트는 원하는 작은 리스트 또는 그렇지 않으면 매치된 것으로 확인된 것으로 좁혀질 수 있다. 스코어들은 시스템(10)의 다른 기능들에서도 이용될 수 있으며, 원하는 임계값 매치들 또는 후보들을 제공하는 것, 후보들을 병합하는 것 (예를 들어, 인바운드 엔티티가 후보와 병합해야 하는지를 결정하는 스코어들), 엔티티를 분할하는 것(예를 들어, 엔티티를 구성하는 어카운트들이 더 이상 병합 가능한 매치로 판단되지 않기 때문에 인바운드 엔티티가 하나 이상의 엔티티들로 분할할 것을 드러내는 인바운드), 후보들에 대한 관계들(relationships)을 생성하는 것 등을 그 예로 들 수 있다. 일부 실시예들에서, 아래에서 설명된 바와 같이 유의어들의 추가와 제거에 영향을 줄 수 있으므로 실제 엔티티들의 병합과 분할은 즉각적으로 일어날 수 있다.
단계(114)에서, 처리는 인바운드 정보 및 후보 정보를 기초로 하여 유의어들로부터 속성들을 제거하는 것을 결정하고 수행한다. 상술된 실시예에서, 제거되는 경우는 속성들이 일반적 속성(generic)으로 변하는 것에 기초하여 제거되는 경우, 데이터 베이스로부터 삭제되는 것을 기초하여 제거되는 경우, 및/또는 후보들/속성들이 유의어 형성 임계값(synonym formation threshold) 미만으로 떨어지는 것에 기초하여 제거되는 경우를 포함한다. 일반적 속성 감지(Generic attribute detection)는 인바운드로부터 추출된 임의의 속성들이 이제 수 많은 상이한 후보들 내에서 일어나는지, 속성들이 일반적 속성이 되게 변했으며 따라서 후보들을 검색하는데 이용되지 말아야 하며 더 나아가 유의어들의 부분이 되지 말아야하는지를 결정하는 것을 포함한다. 예를 들어 시스템(10)내의 하나 이상의 특정 후보들 또는 엔티티들로부터 하나 이상의 속성들을 삭제하라는 인바운드 또는 다른 소스로부터의 직접적인 지시에 기초하여 하나 이상의 후보들 또는 엔티티들로부터 속성들의 삭제가 일어날 수 있다. 속성들이 유의어 형성 임계값 미만으로 떨어지는 현상은 기존의 유의어로부터 하나 이상의 속성들이 제거될 수 있기 위하여, 인바운드의 속성들이 유의어 속성들을 갖는 후보들의 백분율 수(percentage number)를 감소시킬 때 일어날 수 있다. 유의어들로부터 속성을 제거하는 것은 도 4와 관련하여 아래에서 더 상세하게 설명된다.
단계(116)에서, 새로운 유의어들이 (만일 존재하는 경우) 탐색되어 시스템(10)에 추가된다. 여기에는 속성들이 유의어를 형성할 자격이 되는지 체크하는 것, 후보들에 새로운 유의어들을 추가하는 것, 및/또는 기존의 유의어들에 속성들을 추가하는 것을 포함하며, 도 5와 관련하여 아래에서 더 상세하게 설명된다.
단계(118)에서, 프로세서는 이전의 단계(114) 및/또는 단계(116)에서 적어도 하나의 유의어가 추가되고/추가되거나 제거된 후보들을 재평가하고 조정한다. 추가된 또는 제거된 유의어를 포함하는 모든 후보들은 시퀀스 중립(sequence neutrality)을 유지하기 위하여 재평가되어야 하는데, 이 후보들이 관련되는 그 다음 작업을 위해 적합하도록 이러한 후보들은 가능한한 빨리 최신 것으로 갱신될 수 있다. 상술된 실시예에서, 재평가는 후보들을 해결 사이클(resolution cycle)을 통해서 실행시키는 것과 관련되는데 이는 각각의 그러한 후보에 대하여 단계(106)에서 단계(116)의 과정을 거치게 하는 것과 관련된다. 이것은 각각의 후보가 가장 최근에 갱신된 유의어들, 유의어들과 연관된 속성들을 포함할 수 있게 한다. 프로세스는 단계(120)에서 완료된다.
상술된 실시예에서, 유의어들은 위에서 설명된 바와 같이 유의어 프로세싱 애플리케이션에 의해 수신되는 인바운드 정보에 응답하여 실시간으로, 동적으로 처리된다. 이는 유의어들 및 후보들이 데이터를 입력받았을 때 또는 수신했을 때 갱신될 수 있게 하며, 이는 유의어들 및 후보들에 기초하여 나중에 쿼리들에 대한 속도를 크게 향상시킬 수 있는데 이는 나중에 데이터 클러스터링이 수행될 필요가 없기 때문이다.
도 4는 유의어들로부터 속성들을 제거하는 것은 인바운드 정보에 기초하여 수행되는 도 3의 단계(114)를 구현하는 방법에 대한 실시예를 설명하는 흐름도이다. 유의어들로부터 속성들을 제거하는 것은 위에서 설명된 바와 같이 인바운드에 의해서 유발된 임의의 복수의 상이한 결과들에 기초하여 일어날 수 있는데 여기에는 속성들이 일반적 속성으로 변하는 것, 후보 또는 엔티티로부터 속성들을 삭제하는 것, 하나 이상의 유의어들 내에서 속성들의 빈도를(frequency) 감소시키는 것이 포함된다. 후보들 또는 엔티티들로부터 속성들이 삭제되는 경우 데이터 세트로부터의 속성들에 대한 실제 삭제는 본 발명에서 설명된 프로세싱 이전에, 도중에, 또는 이후에 수행될 수 있으며 여기에서는 설명되지 않는다.
프로세스는 단계(152)에서 시작하며, 단계(154)에서는 인바운드내의 속성들의 하나, 또는 삭제된 또는 삭제될 속성들의 하나가 (만일 해당되는 경우) 선택된다. 선택된 속성은 적어도 하나의 기존의 유의어에 포함된다. 선택된 속성을 포함하는 모든 유의어들과 선택된 속성을 포함하는 모든 후보들은 이전 단계들로부터 알려져 있다.
단계(158)에서, 프로세스는 속성이 일반적 속성이 되었는지를 체크한다. 일반적 속성 감지는 선택된 속성이 이제 수 많은 상이한 후보들 내에서 일어나는지, 속성들이 일반적 속성으로 변했으며 따라서 후보들을 검색하는데 이용되지 말아야 하며 더 나아가 유의어들의 부분이 되지 말아야하는지를 결정하는 것을 포함한다. 상술된 실시예에서, 일반적 속성 처리(generics handling)는 속성을 포함하는 후보들의 수(도 3의 단계(110)에 나타난 후보들의 세트에서)가 사전 결정된 일반적 속성 임계값을 초과하는지 여부를 체크하는 것을 포함할 수 있다. 만일 이 후보들의 수가 일반적 속성 임계값(generics threshold)을 초과한다면 선택된 속성은 일반적 속성인 것으로 여겨진다. 일반적 속성들(generic attributes)을 결정하기 위해 다른 프로세싱도 수행되거나 또는 다른 프로세싱이 선택적으로 수행될 수 있다. 만일 속성이 일반적 속성인 것으로 판명된다면 프로세스는 아래에서 설명된 바와 같이 유의어로부터 속성을 제거하기 위해 단계(162)로 계속된다.
만일 속성이 일반적 속성이 아닌 것을 결정된다면 프로세스는 단계(160)에서 계속된다. 단계(160)에서 선택된 속성을 포함하는 각각의 유의어에 대하여 프로세스는 그 유의어를 포함하는 후보들의 수가 이제는 선택된 속성(인바운드 엔티티는 후보로서 포함됨)을 갖는 모든 후보들의 유의어 형성 임계값 백분율(synonym formation threshold percentage)보다 낮은지를 체크한다. 임계값 백분율은 유의어를 형성하기 위해 이전의 어떤 시점, 예를 들어 도 5의 단계(204) 또는 단계(208)에서 사용되었는데 이는 아래에서 더 상세하게 설명될 것이다. 하나의 예에서, 만일 인바운드 내의 선택된 속성이 기존의 유의어의 일부에 해당하지만 인바운드 내에서 유의어의 모든 속성들에 의해서 수반되지 않으면 속성들의 전체 세트가 유의어로서의 자격을 상실할 정도로 유의어 내에서 속성들의 전체 세트를 갖는 후보들의 백분율은 감소되었을 수 있다. 예를 들어, 만일 인바운드가 유의어에 포함된 3개의 속성들 중 처음 2개만을 포함한다면 이제 3개의 속성들 모두를 갖는 유의어를 포함하는 후보들의 백분율이 더 낮아진다. 또 다른 예에서, 만일 선택된 속성이 하나(또는 그 이상)의 후보들로부터 삭제된다면 이는 유의어를 형성하는 속성들의 세트의 후보들의 수를 감소시켰을 수 있으며(그리고 따라서 발생 빈도의 수) 이는 더 이상 임계값이 충족되지 않게 한다(인바운드 내의 지시에 의해 이러한 속성(들)이 삭제되는 경우, 속성이 삭제되는 바로 그 엔티티는 인바운드 엔티티로 생각될 수 있음).
만일 유의어 임계값이 아직도 초과된다면, 아래에서 설명된 바와 같이 프로세스는 단계(168)에서 계속된다. 만일 탐색 임계값(discovery threshold)이 초과되지 않았다면 또는 만일 단계(158)에서 속성이 일반적 속성인 것으로 밝혀졌다면, 프로세스는 단계(162)로 계속된다. 단계(162)에서 선택된 속성은 연관된 유의어로부터 제거된다. 예를 들어, 이것은 시스템 테이블(30) 내의 연관된 유의어 식별자로부터 선택된 속성들의 항목(entry) 및 타입을 제거함으로써 수행된다. 대안적으로, 속성은 상이한 시간에 유의어(들)로부터 제거되기 위해 표기되고/표시된다.
다음 단계(164)에서, 프로세스는 단계(162)에서 어떤 속성들이 제거되었던 각각의 유의어가 제거 후에 단 하나의 속성만을 포함하는지를 체크한다. 그렇지 않다면, 아래에서 설명된 바와 같이 프로세스는 다음 단계(168)로 계속된다. 만일 단 하나의 속성만이 유의어에 남게 되었다면, 단계(166)에서 유의어는 완전히 제거되는데, 다시 말해 유의어 테이블(30)로부터 유의어 항목과 그 속성을 제거함으로써 유의어는 전적으로 제거된다. 속성들을 이용하여 검색하는 것과 비교했을 때 단 하나의 속성만을 갖는 유의어가 검색의 양을 줄여주지 않기 때문에 이러한 유의어는 필요가 없게 되며 따라서 제거된다.
단계(168)에서, 프로세스는 위의 단계들에서 아직 검사되지 않은 추가적으로 자격이 있는 속성들이 존재하는지를 체크한다. 만일 그렇다면, 프로세스는 단계(154)로 돌아가며, 이 단계에서 또 다른 속성을 선택하게 된다. 만일 그러한 모든 속성들이 처리되었다면, 프로세스는 단계(170)에서 완료된다.
도 5는 유의어들이 탐색되어 후보들 및 유의어 테이블에 추가되는 도 3의 단계(116)를 구현하는 방법의 실시예를 설명하는 흐름도이다. 프로세스는 단계(200)에서 시작하며, 단계(202)에서, 프로세스는 도 3의 단계(108)에서 판정된 바와 같이 인바운드가 이미 하나 이상의 유의어를 포함하는지를 체크한다. 만일, 데이터가 어떠한 유의어들도 포함하지 않는다면, 프로세스는 단계(204)로 계속되며 이 단계의 프로세스에서는 고려되는 2개 이상의 속성 중 어느 하나라도 포함하는 모든 후보들 중 사전 정의된 유의어 형성 임계값 백분율을 초과하는 다수의 후보들에서 인바운드가 2개 이상의 매칭하는 속성을 갖고 있는지를 판정한다. 비교하는데에 이용된 후보들은 후보로서 인바운드 엔티티를 포함한다. 상술된 실시예에서, 프로세스는 속성들 사이에서 정확한 매치를 찾고자 한다. 이 단계는 동일한 속성들의 그룹 또는 세트가 유의어로서 고려될 정도로 상이한 엔티티들에서 충분한 빈도로 함께 나타나는지를 체크하는데, 이러한 속성들은 공유된 연관(shared association)을 가지며, 그렇기 때문에 그들은 다수의 엔티티들에서 함께 나타난다. 유의어 임계값 백분율은 시스템의 사용자 또는 관리자에 의해서 원하는대로 더 적게 또는 더 많은 유의어들이 발견되는 것을 허용하는 선호되는 레벨로 설정될 수 있다.
예를 들어, 유의어 임계값은 70%이며 도 3의 단계(110)에서 발견되는 15개의 후보들 중에서 10개의 후보들이 고려되는 2개의 특정 속성들에 대해 하나 이상을 갖는다. 만일 2개의 속성들이 이러한 10개의 후보들(인바운드를 포함하는 이러한 후보들) 중에 적어도 8개에서 발견되는 것으로 나타나면 유의어 임계값은 초과된 것이며, 새로운 유의어로서 자격을 지닌다고 보여질 때 2개의 속성들은 보통 함께 그룹화되는 것이 고려된다.
일부 실시예들에서, 속성들에 대한 상이한 결합들 각각은 새로운 유의어가 될 수 있는지에 대해 테스트를 받는다. 예를 들어, 만일 인바운드가 3개의 속성들을 갖는다면, 3개의 속성들 모두가 임계값 백분율을 초과하는 다수의 후보들 내에 나타나는지를 결정할 수 있고, 3개 중에 2개의 속성들에 대한 각각의 결합이 임계값 백분율을 초과하는 다수의 후보들 내에 나타나는지도 결정할 수 있다. 따라서 복수의 유의어들은 인바운드 내의 속성들의 세트로부터 발견될 수 있으며, 유의어들은 그들의 속성들의 일부에 대해 중첩(overlap)될 수 있다.
만일 단계(204)에서 유의어 임계값이 초과되지 않으면, 프로세스는 단계(216)에서 완료된다. 만일 인바운드가 유의어 임계값을 초과하는 다수의 후보자들 내에서 나타나는 2개 이상이 속성들을 갖는다면, 단계(206)에서 이러한 속성 그룹들로부터 형성된 하나 이상의 새로운 유의어들이 생성된다. 상술된 실시예에서 새로운 유의어를 추가하는 것은 새로운 유의어 내의 각각의 속성에 대하여 유의어 테이블(30) 내의 항목에 새로운, 이용되지 않은 유의어 식별자를 추가하는 것과 항목들에 연관된 속성들을 할당하는 것을 포함한다. 만일 속성 타입들이 이용되고 있다면, 유의어 내의 각각의 속성의 타입도 유의어 테이블(30)에 추가될 수 있다.
추가적으로 단계(206)에서 새로운 유의어들은 모든 적절한 후보들에 추가되는데 이 후보들은 새로운 유의어로서 생성된 속성들의 세트를 갖는 후보들이다. 이는 인바운드에 의해서 생성되거나 추가된 인바운드 엔티티(들)에 유의어를 추가하는 것을 포함할 수 있다. 상술된 실시예에서 유의어는, 엔티티 유의어 테이블(34)에 유의어 식별자와 연관된 후보 엔티티 식별자들을 추가함으로써 후보들에 유의어가 추가된다. 상이한 속성들의 그룹들이 임계값 조건을 충족한다면 복수의 새로운 유의어들이 추가될 수 있다. 프로세스는 그 다음에 단계(216)에서 완료된다.
일부 경우에 있어서, 하나의 유의어로부터 속성들의 서브세트는 하나 이상의 추가적인 유의어들을 형성할 수 있다. 예를 들어 만일 인바운드내의 4개의 속성들이 유의어 임계값을 초과하게 야기한다면 그 4개의 속성들은 제1 유의어에 포함되며 그 제1 유의어는 적합한 후보들에 추가된다. 상이한 후보들은 4개의 속성들 중 단지 2개의 속성만을 가질 수 있으며 그 상이한 후보들의 수는 그 2개의 속성들에 의해서 제2의 유의어가 형성되는 것을 가능하게 할 정도로 충분히 크며, 제2 유의어는 제1 유의어를 포함하는 후보들과 마찬가지로 그 상이한 후보들에 추가된다.
하나의 예에서, 4개의 후보들은 특정 이름 또는 주소 속성들 중 하나 또는 2개 모두를 포함하며 후보들 1-3은 모두 이러한 이름 및 주소 속성들을 가지며, 유의어 생성에 대한 임계값 백분율은 76%이다. 모든 후보들의 75%가 그룹으로서 존재하고 임계값을 초과하지 않으므로 따라서 이러한 속성들은 유의어로 형성되지 않았다. 새로운 엔티티에 이러한 동일한 속성들 둘다를 삽입하는 인바운드 정보는 그 뒤에 수신된다. 인바운드 엔티티를 포함하게 되면 이러한 매칭 속성들을 갖는 후보들의 수를 총 5개의 후보들 중 4개, 즉 80%로 만들게 되며 이는 임계값을 초과하는 것이 되고, 따라서 2개의 속성들을 갖는 새로운 유의어가 탐색되며 테이블(30)에 추가된다. 그리고, 각각의 후보들 1-3과 인바운드에 의해서 생성된 인바운드 엔티티는 그들의 엔티티 식별자들과 유의어 식별자를 엔티티 유의어 테이블(34)에 추가함으로써 새로운 유의어를 추가하게 한다.
다시 단계(202)를 참조하면, 만일 인바운드가 하나 이상의 기존의 유의어들을 포함하면, 확장된 유의어(들)을 생성하기 위해 비유의어 속성들이, 기존의 유의어(들)에 추가될 수 있는지를 판정하는 단계(208)로 프로세스가 진행된다. 기존의 유의어(들)의 일부가 아닌 어떤 속성들이 인바운드 내에 있는지, 그리고 확장된 유의어에 대해 고려되는 하나 이상의 속성을 가지면서, 즉 기존의 유의어 내에 어떤 속성을 갖거나 비유의어 속성을 가지면서, 후보들의 사전 결정된 유의어 임계값 백분율을 초과하는 다수의 유의어 후보들에서 나타나는 비유의어 속성들과 이러한 비유의어 속성들이 매치하는지가 판정된다. 여기에서,“유의어 후보들”은 인바운드에 기존의 동일한 유의어를 갖는 후보들을 말한다. 그러므로 그 방법은 본래의 유의어를 갖는 다수의 후보들에다 비유의어 속성들을 더한 것을 임계값 백분율과 비교한다. 상기와 같이, 후보들의 수에는 후보로서의 인바운드 엔티티를 포함한다. 탐색 임계값 백분율은 단계(204)에서 사용된 바와 같을 수 있다. 설명된 실시예에서, 프로세스는 속성들 간에서 정확한 매치를 찾는다.
그러므로, 이 프로세스는 하나 이상의 새로운 비유의어 속성들을 인바운드로 입력하는 것이 비유의어 속성들에 대해 매치하는 후보들의 수가 임계값을 초과하는 것을 야기하게 하는지를 체크한다. 단계(204)와 유사하게, 몇몇 실시예들에서, 비유의어 속성들과 기존의 유의어(들)의 상이한 결합들이 임계값을 초과하는지 시험될 수 있고, 다수의 결합들은 임계값 조건을 만족할 수도 있다.
만일 임계값을 만족하지 않는다면, 프로세스는 하기 설명된 단계(214)로 진행한다. 만일 인바운드가 탐색 임계값을 초과하는 다수의 유의어 후보들에서 나타나는 2개 이상의 비유의어 속성들을 갖는다면, 단계(210)에서 비유의어 속성들은 기존의 유의어와 추가된 속성들을 포함하는 새로운 확장된 유의어를 생성하기 위하여 적합한 기존의 유의어(매칭하는 후보들에서도 기존의 인바운드내의 특정 유의어)에 추가된다. 상술된 실시예에서 이것은 유의어 테이블(30)내에 기존의 유의어 식별자에 새로운 속성을 추가함으로써 수행된다. 만일 속성 타입들이 이용된다면, 유의어내의 각각의 속성의 타입도 유의어 테이블에 추가될 수 있다.
단계(212)에서, 새로운 유의어는 추가된 속성들을 가지는 임의의 후보들(그리고 기존의 유의어)에 추가된다. 상술된 실시예에서, 새로운 유의어는 유의어 식별자와 인바운드 후보 엔티티 식별자를 엔티티 유의어 테이블(34)에 추가함으로써 인바운드 엔티티(인바운드 후보)(적절할 경우)에 추가된다. 도 2a-2d에서 이용하는 테이블들과 유사한 테이블을 이용하는 상술된 실시예에서, 이미 시스템에 저장된 다른 매칭되는 후보들은 일반적으로 이미 테이블(34)내의 (이제 확장된) 유의어와 연관되어 있다. 상기 단계들은 속성들이 추가될 수 있는 인바운드 내에 존재하는 모든 유의어에 대해 반복될 수 있다.
단계(214)에서, 프로세스는 인바운드 내에 어떤 추가적인 비유의어 속성(즉, 단계(208) 조건을 만족하지 않거나 단계(210)에서 기존의 유의어들이 추가되지 않은 속성)이 없는지 체크한다. 그러한 비유의어 속성은 임계값 조건을 만족하지 않아 기존의 유의어들에 추가되지 않았을 수 있지만, 그것들 자체가 새로운 유의어를 형성할 수 있는 임계값 조건을 만족했을 수 있다. 그러므로, 만일 그러한 추가적인 비유의어 속성들이 존재한다면, 프로세스는 단계(204)로 진행되어 이러한 비유의어 속성들이 그 단계에 대해 상기에서 설명된 어떤 새로운 유의어를 형성할 수 있는지 시험된다. 그 프로세스는 이후 단계(216)에서 완료된다.
다른 실시예들에서는, 상기 설명된 방법의 단계들이 다른 순서로, 적절할 때 동시에 행해지고/행해지거나, 다른 방법으로 결합될 수 있음을 주목해야 한다. 예를 들어 도 3에서, 단계(114)의 유의어로부터 속성을 제거하는 것은 새로운 유의어 탐색 및 추가를 위해 단계(116)를 행하는 것과 동시에, 또는 프로세스의 일부분으로서 행해질 수 있다. 도 4에서, 유의어가 단계(164)의 단지 한 속성을 포함하는지 체크하는 것은 단계(162)에서 속성을 제거하는 것과 동시에 행해질 수 있다. 또한, 변형들은 다른 종류의 유의어 형성 임계값들과 같이 다른 실시예에서 사용될 수 있다.
본 발명의 실시예는 입력된 데이터의 개별 속성으로 많은 수의 개별 검색을 하는 것보다 데이터 베이스 내의 매칭 또는 후보 데이터 검색을 위해 유의어를 유리하게 사용할 수 있다. 예를 들면, 어느 한 속성이 검색될 때, 전체 유의어가 대체될 수 있다. 본 명세서에서 설명된 유의어는 분석장치(analytics), 검색 엔진, 맞춤법 체크기 등을 포함하는 다양한 애플리케이션에서 사용될 수 있다.
또한, 본 발명의 실시예는 데이터가 데이터 베이스로 입력 및 삽입되면서, 그리고 이미 시스템에 저장되어 있는 데이터 뿐만 아니라 삽입되고 있는 중의 데이터에 기초하여 실시간 그리고 즉시 동적으로 조정되는 (발견되고/발견되거나 변형되는 것을 포함하는 개념의) 유의어 또는 데이터 클러스터를 제공할 수 있다. 이것은 현 시스템의 데이터와 연관되어 유의어가 끊임없이 갱신되고 재평가되도록 해 준다. 또한, 엔티티 데이터를 최신으로 유지하고 엔티티 드리프트를 방지하기 위해 유의어와 연관된 모든 엔티티는 입력 데이터가 입력됨에 따라 실시간으로 갱신될 수 있다. 이러한 요소는 동적 유의어 테이블 또는 사전을 유지하고, 데이터 클러스터링 또는 유의어 형성이 통계적이고 저장된 데이터에 기초하여 행해지는 이전 방법보다 더 시간을 단축해 준다. 예를 들어, 데이터 마이닝에서 데이터 클러스터링은 일반적으로 매우 느리다. 그러나, 본 발명의 실시예에서 가능한 바와 같이 입력 동안에 클러스터가 실시간으로 검색된다면, 쿼리는 후에 매우 향상된 속도로 처리될 수 있다.
게다가, 본 발명의 실시예는 구체적인 도메인 지식을 요구하지 않고 유의어 탐색을 할 수 있게 해 준다. 그러므로, 다양한 또는 어떤 종류의 속성이라도 하나의 유의어에 축약될(collected) 수 있으며 유의어들은 특정 종류의 데이터에 대한 유사 기술을 알 필요 없이 결정될 수 있다. 본 명세서에서 설명되는 자동 유의어 탐색은 이름 구성 요소 뿐만 아니라, 숫자, 주소 구성 요소, 색깔, 오자(misspellings) 등의 어떤 종류의 속성에 대해서도 사용될 수 있다. 또한, 엔티티 해결을 실행할 때, (본문에서 설명되는 유의어를 사용할 때 특정한 데이터에 대해 분석자에게 주어지는) 정보의 증가된 양과 종류는 대단히 유용할 수 있다. 예를 들어, 시스템은 사용자에게 입력 주소를 가진 90%의 사람들이 특정한 전화번호 또한 공유했다는 것을 알려줄 수 있다.
또한, 본 발명의 실시예는 어떤 시점에 시스템에서 사용되고 시스템에 의해 저장되는 데이터 속성만이 유의어에서 사용되기 때문에 (유의어와 연관없는 작업을 위해) 유의어 테이블 또는 사전의 저장비용을 매우 감소시킬 수 있다. 그러므로, 전혀 사용될 필요가 없는 많은 양의 유의어 속성을 미리 저장하기 위해 과도한 저장공간을 사용하지 않고, 시스템에 의해 사용되고 처리되는 엔티티 및 데이터와 연관된 유의어만이 저장될 필요가 있는데, 이는 그러한 속성이 관련 데이터에서 전혀 탐색되지 않거나 데이터 베이스에 의해 저장되지 않기 때문이다.
본 발명은 도시된 실시예에 따라 설명되었음에도 불구하고 해당 기술 분야의 당업자는 실시예에 다양한 변형이 있을 수 있으며 그러한 변형은 본 발명의 사상과 범위 내에서 이루어진다는 것을 쉽게 인식할 것이다. 따라서, 첨부된 청구의 사상과 범위에서 벗어나지 않고 해당 기술 분야의 당업자에 의해 많은 변형이 이루어질 수 있다.
Claims (10)
- 데이터를 클러스터링하기 위한 방법으로서,
시스템 상의 정보를 수신하는 단계 - 상기 정보는 하나 이상의 데이터 속성을 포함하고, 상기 시스템은 상기 정보 내의 상기 하나 이상의 데이터 속성에 기초하여 데이터베이스 내에 저장된 데이터를 처리(manipulate)하도록 구성되며, 상기 처리(manipulation)는 하나 이상의 데이터 클러스터를 생성하고, 상기 하나 이상의 데이터 속성 중 적어도 하나를 공유하는 하나 이상의 데이터베이스 엔티티(entities)를 탐색(find)하기 위해 상기 하나 이상의 데이터 클러스터를 이용하는 것을 포함하고, 상기 정보와 상기 처리는 상기 하나 이상의 데이터 클러스터와 명시적으로(explicitly) 관련되지 않음 - ; 및
상기 정보 내의 상기 하나 이상의 데이터 속성에 기초하여 상기 데이터베이스 내의 클러스터를 자동적으로 조정하는 단계 - 상기 데이터 클러스터는 복수의 데이터 속성들과 상기 정보 내에 포함된 상기 하나 이상의 데이터 속성 중 적어도 하나를 포함하고, 상기 정보를 수신하는 단계에 응답하여 상기 데이터 클러스터는 동적으로 조정됨 -;를 포함하고,
상기 데이터 클러스터는 상기 데이터베이스 내의 상기 하나 이상의 데이터베이스 엔티티의 선택된 데이터 속성들로 그룹화되는 것인,
데이터 클러스터링 방법. - 제1항에 있어서,
상기 정보는, 상기 데이터베이스에 저장될 하나 이상의 데이터 속성과 상기 시스템에 의해 액세스 가능한 저장된 데이터를 포함하고, 상기 조정된 데이터 클러스터는 새로운 데이터 클러스터이고, 상기 조정하는 단계는 상기 하나 이상의 데이터 속성 중 적어도 하나를 포함하도록 상기 새로운 데이터 클러스터를 탐색 및 형성하는 단계를 포함하는 것인,
데이터 클러스터링 방법. - 제1항에 있어서, 상기 조정된 데이터 클러스터는 상기 시스템에 의해 액세스 가능한 기존의(existing) 저장된 데이터 클러스터이며, 상기 조정하는 단계는 상기 기존의 데이터 클러스터를 수정하는 단계를 포함하는, 데이터 클러스터링 방법.
- 제1항에 있어서, 상기 데이터 클러스터는 상기 데이터베이스 내의 상기 하나 이상의 데이터 속성 중 적어도 하나의 현재 발생 빈도 수에 기초하여 조정되는,
데이터 클러스터링 방법. - 제1항에 있어서,
상기 데이터 클러스터는 상기 데이터베이스에 저장된 복수의 엔티티로부터 적어도 하나의 후보자 엔티티를 탐색(find)함에 있어 사용을 위한 유의어(synonym) 데이터 클러스터이고, 각각의 후보자 엔티티는 복수의 연관된 데이터 속성들을 갖고, 상기 유의어 데이터 클러스터는 상기 데이터베이스 내의 하나 이상의 장소(place)에서 함께 공통적으로 나타나는 둘 이상의 데이터 속성들의 그룹인 것인,
데이터 클러스터링 방법. - 제1항에 있어서, 상기 데이터 클러스터를 조정하는 단계는,
상기 하나 이상의 데이터 속성 중 적어도 하나를 포함하는 복수의 저장된 기존의 데이터 클러스터들을 탐색(finding)하는 단계;
상기 데이터베이스에서 복수의 제1 후보자 데이터 엔티티를 탐색하는 단계 - 상기 복수의 제1 후보자 데이터 엔티티 각각은 하나 이상의 기존의 데이터 클러스터를 포함함 -;
복수의 제2 후보자 데이터 엔티티를 탐색하는 단계 - 상기 복수의 제2 후보자 데이터 엔티티 각각은 상기 기존의 데이터 클러스터에 포함되지 않은 하나 이상의 데이터 속성 중 임의의 것(any)을 포함함 -; 및
상기 제1 및 제2 후보자 데이터 엔티티 및 상기 정보에 기초하여 상기 기존의 데이터 클러스터로부터 어떤 데이터 속성이 제거되어야 하는지를 판정하는 단계;를 포함하는,
데이터 클러스터링 방법. - 데이터를 클러스터링하기 위한 방법으로서,
시스템 상의 정보를 수신하는 단계 - 상기 정보는 상기 시스템에 의해 액세스 가능한 데이터베이스 내의 복수의 데이터 엔티티(entities) 중 적어도 하나에 저장될 복수의 수신 데이터 속성들을 포함하고, 상기 복수의 데이터 엔티티 중 적어도 하나는 상기 적어도 하나의 데이터 엔티티의 기존의 데이터 속성들과 복수의 수신 데이터 속성들 간의 연관 관계(associative relationship)에 기초하여 선택됨 -; 및
상기 정보에 기초하여 하나 이상의 데이터 클러스터를 변경하는 단계 - 상기 하나 이상의 데이터 클러스터 각각은 복수의 데이터 속성들 및 복수의 수신 데이터 속성들 중 적어도 하나를 포함하고, 상기 변경하는 단계는 상기 하나 이상의 데이터 클러스터로부터 특정 데이터 속성을 제거하는 것을 포함함 -;를 포함하고,
상기 하나 이상의 데이터 클러스터 각각은 상기 데이터베이스에 저장된 상기 복수의 데이터 엔티티 중에서 선택된 데이터 속성들로 그룹화되는 것인,
데이터 클러스터링 방법. - 컴퓨터 상에서 실행되었을 때, 제1항 내지 제7항 중 어느 한 항의 방법의 모든 단계를 수행하도록 구성된 프로그램 코드 수단들을 포함하는, 컴퓨터 판독가능 기록 매체.
- 데이터를 클러스터링하기 위한 시스템으로서,
복수의 저장된 데이터 속성들을 각각 포함하는 복수의 데이터 엔티티들을 저장하는 데이터베이스;
유의어 프로세싱 모듈을 포함하는 애플리케이션 서버 - 상기 유의어 프로세싱 모듈은 시스템 상의 정보를 수신하도록 구성되고, 상기 정보는 복수의 제1 데이터 속성들을 포함하고, 상기 유의어 프로세싱 모듈은 상기 복수의 제1 데이터 속성들에 기초하여 상기 데이터베이스에 저장된 데이터를 처리(manipulate)하고, 하나 이상의 데이터 클러스터를 생성하고, 상기 하나 이상의 데이터 클러스터를 이용하여 복수의 데이터베이스 엔티티 내의 복수의 저장된 데이터 속성들 중 적어도 하나를 공유하는 하나 이상의 데이터베이스 엔티티를 탐색하도록 구성되고, 상기 정보 및 상기 처리(manipulation)는 상기 하나 이상의 데이터 클러스터와 명시적으로 연관되지 않음 -;를 포함하고,
상기 유의어 프로세싱 모듈은 수신된 상기 정보에 기초하여 데이터 클러스터를 자동적으로 조정하도록 구성되고, 상기 데이터 클러스터는 복수의 제2 데이터 속성들 및 수신된 상기 정보에 포함된 복수의 제1 데이터 속성들 중 적어도 하나를 포함하고, 수신된 상기 정보에 응답하여 상기 데이터 클러스터는 동적으로 조정되고, 상기 데이터 클러스터는 상기 데이터베이스 내의 상기 하나 이상의 데이터베이스 엔티티 중에서 선택된 데이터 속성들로 그룹화되는 것인,
데이터 클러스터링 시스템. - 유의어를 탐색하기 위한 방법으로서,
시스템 상의 정보를 수신하는 단계 - 상기 정보는 데이터베이스에 저장된 데이터 속성들을 갖는 특정 데이터 엔티티와 연관된 복수의 수신 데이터 속성들을 포함하고, 상기 복수의 수신 데이터 속성들은 상기 데이터베이스 내에 저장된 하나 이상의 데이터 엔티티에 저장되고, 상기 정보 및 상기 복수의 수신 데이터 속성들은 상기 하나 이상의 데이터 엔티티에 연관된 유의어 데이터에 명시적으로 연관되지 않음 -; 및
상기 복수의 수신 데이터 속성들 및 상기 유의어 데이터에 기초하여 유의어를 자동적으로 형성하는 단계 - 상기 형성하는 단계는 상기 데이터베이스 내의 복수의 수신 데이터 속성들 중 적어도 하나를 포함하는 복수의 후보자 데이터 엔티티를 검사하는 단계를 포함하고, 상기 유의어는 상기 정보에 응답하여 동적으로 형성되고, 상기 유의어는 상기 데이터베이스 내의 하나 이상의 장소(place)에서 함께 공통적으로 나타나는 복수의 데이터 속성들 중 두 개 이상으로 구성되는 그룹인 것인,
유의어 탐색 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/972,496 US7962486B2 (en) | 2008-01-10 | 2008-01-10 | Method and system for discovery and modification of data cluster and synonyms |
US11/972,496 | 2008-01-10 | ||
PCT/EP2009/050057 WO2009087138A1 (en) | 2008-01-10 | 2009-01-05 | Method and system for discovery and modification of data clusters and synonyms |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100106464A KR20100106464A (ko) | 2010-10-01 |
KR101231560B1 true KR101231560B1 (ko) | 2013-02-07 |
Family
ID=40474941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107015046A KR101231560B1 (ko) | 2008-01-10 | 2009-01-05 | 데이터 클러스터와 유의어의 탐색과 수정에 대한 방법 및 시스템 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7962486B2 (ko) |
EP (1) | EP2243093A1 (ko) |
JP (1) | JP5328808B2 (ko) |
KR (1) | KR101231560B1 (ko) |
CN (1) | CN101911069A (ko) |
WO (1) | WO2009087138A1 (ko) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917840B2 (en) | 2007-06-05 | 2011-03-29 | Aol Inc. | Dynamic aggregation and display of contextually relevant content |
US8103506B1 (en) * | 2007-09-20 | 2012-01-24 | United Services Automobile Association | Free text matching system and method |
DE102007057248A1 (de) * | 2007-11-16 | 2009-05-20 | T-Mobile International Ag | Verbindungsschicht für Datenbanken |
US8352460B2 (en) | 2010-03-29 | 2013-01-08 | International Business Machines Corporation | Multiple candidate selection in an entity resolution system |
US8468119B2 (en) | 2010-07-14 | 2013-06-18 | Business Objects Software Ltd. | Matching data from disparate sources |
US8918393B2 (en) | 2010-09-29 | 2014-12-23 | International Business Machines Corporation | Identifying a set of candidate entities for an identity record |
US8498998B2 (en) | 2010-10-11 | 2013-07-30 | International Business Machines Corporation | Grouping identity records to generate candidate lists to use in an entity and relationship resolution process |
CN102646103B (zh) * | 2011-02-18 | 2016-03-16 | 腾讯科技(深圳)有限公司 | 检索词的聚类方法和装置 |
US10467322B1 (en) * | 2012-03-28 | 2019-11-05 | Amazon Technologies, Inc. | System and method for highly scalable data clustering |
JP2015518210A (ja) * | 2012-04-11 | 2015-06-25 | シンガポール国立大学National University Of Singapore | 製品に関連するデータを体系化する方法、装置及びコンピュータ読み取り可能な媒体 |
US20140046923A1 (en) | 2012-08-10 | 2014-02-13 | Microsoft Corporation | Generating queries based upon data points in a spreadsheet application |
JPWO2014061190A1 (ja) * | 2012-10-17 | 2016-09-05 | 日本電気株式会社 | イベント処理装置、イベント処理方法、およびイベント処理プログラム |
US9892026B2 (en) * | 2013-02-01 | 2018-02-13 | Ab Initio Technology Llc | Data records selection |
KR20150049877A (ko) * | 2013-10-31 | 2015-05-08 | 삼성에스디에스 주식회사 | 데이터 군집 관리 장치 및 방법 |
US9432395B2 (en) | 2014-04-28 | 2016-08-30 | Quixey, Inc. | Application spam detector |
US10031939B2 (en) | 2014-09-30 | 2018-07-24 | Microsoft Technology Licensing, Llc | Automated supplementation of data model |
US9690851B2 (en) * | 2014-11-20 | 2017-06-27 | Oracle International Corporation | Automatic generation of contextual search string synonyms |
US20160239499A1 (en) * | 2015-02-12 | 2016-08-18 | Red Hat, Inc. | Object Creation Based on Copying Objects Corresponding to Similar Entities |
US10497044B2 (en) | 2015-10-19 | 2019-12-03 | Demandware Inc. | Scalable systems and methods for generating and serving recommendations |
US10878190B2 (en) * | 2016-04-26 | 2020-12-29 | International Business Machines Corporation | Structured dictionary population utilizing text analytics of unstructured language dictionary text |
US11011266B2 (en) * | 2016-06-03 | 2021-05-18 | Lyra Health, Inc. | Health provider matching service |
CN106202038A (zh) * | 2016-06-29 | 2016-12-07 | 北京智能管家科技有限公司 | 基于迭代的同义词挖掘方法及装置 |
US11514335B2 (en) * | 2016-09-26 | 2022-11-29 | International Business Machines Corporation | Root cause identification in audit data |
US11748563B2 (en) | 2018-07-30 | 2023-09-05 | Entigenlogic Llc | Identifying utilization of intellectual property |
US11176126B2 (en) * | 2018-07-30 | 2021-11-16 | Entigenlogic Llc | Generating a reliable response to a query |
US11720558B2 (en) | 2018-07-30 | 2023-08-08 | Entigenlogic Llc | Generating a timely response to a query |
US11762896B2 (en) | 2020-11-16 | 2023-09-19 | International Business Machines Corporation | Relationship discovery and quantification |
US12019597B1 (en) | 2023-03-28 | 2024-06-25 | Coupa Software Incorporated | Deduplication of records in large databases via clustering |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050080883A1 (en) | 2003-09-29 | 2005-04-14 | Nurminen Jukka K. | System and method for data handling in a network environment |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428788A (en) * | 1991-05-10 | 1995-06-27 | Siemens Corporate Research, Inc. | Feature ratio method for computing software similarity |
US5237106A (en) * | 1992-01-24 | 1993-08-17 | Union Carbide Chemicals & Plastics Technology Corporation | Reactivation of hydroformylation catalysts |
US5926812A (en) * | 1996-06-20 | 1999-07-20 | Mantra Technologies, Inc. | Document extraction and comparison method with applications to automatic personalized database searching |
US5819258A (en) * | 1997-03-07 | 1998-10-06 | Digital Equipment Corporation | Method and apparatus for automatically generating hierarchical categories from large document collections |
JPH1145266A (ja) * | 1997-07-28 | 1999-02-16 | Just Syst Corp | 文書検索装置およびその装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6260036B1 (en) * | 1998-05-07 | 2001-07-10 | Ibm | Scalable parallel algorithm for self-organizing maps with applications to sparse data mining problems |
US6581058B1 (en) * | 1998-05-22 | 2003-06-17 | Microsoft Corporation | Scalable system for clustering of large databases having mixed data attributes |
US6446061B1 (en) * | 1998-07-31 | 2002-09-03 | International Business Machines Corporation | Taxonomy generation for document collections |
US6295529B1 (en) * | 1998-12-24 | 2001-09-25 | Microsoft Corporation | Method and apparatus for indentifying clauses having predetermined characteristics indicative of usefulness in determining relationships between different texts |
US6460026B1 (en) * | 1999-03-30 | 2002-10-01 | Microsoft Corporation | Multidimensional data ordering |
US6671680B1 (en) * | 2000-01-28 | 2003-12-30 | Fujitsu Limited | Data mining apparatus and storage medium storing therein data mining processing program |
US6502091B1 (en) * | 2000-02-23 | 2002-12-31 | Hewlett-Packard Company | Apparatus and method for discovering context groups and document categories by mining usage logs |
AU2001293596A1 (en) * | 2000-09-29 | 2002-04-08 | Gavagai Technology Incorporated | A method and system for adapting synonym resources to specific domains |
US6944607B1 (en) * | 2000-10-04 | 2005-09-13 | Hewlett-Packard Development Compnay, L.P. | Aggregated clustering method and system |
EP1429258A4 (en) * | 2001-07-26 | 2007-08-29 | Ibm | DATA PROCESSING, DATA PROCESSING SYSTEM AND PROGRAM |
US7231343B1 (en) * | 2001-12-20 | 2007-06-12 | Ianywhere Solutions, Inc. | Synonyms mechanism for natural language systems |
US7174343B2 (en) * | 2002-05-10 | 2007-02-06 | Oracle International Corporation | In-database clustering |
US20040024760A1 (en) * | 2002-07-31 | 2004-02-05 | Phonetic Research Ltd. | System, method and computer program product for matching textual strings using language-biased normalisation, phonetic representation and correlation functions |
TWI289770B (en) * | 2002-08-16 | 2007-11-11 | Via Tech Inc | Keyword register system of articles and computer readable recording medium |
US20040064447A1 (en) * | 2002-09-27 | 2004-04-01 | Simske Steven J. | System and method for management of synonymic searching |
US6944612B2 (en) * | 2002-11-13 | 2005-09-13 | Xerox Corporation | Structured contextual clustering method and system in a federated search engine |
FI120755B (fi) | 2003-06-06 | 2010-02-15 | Tieto Oyj | Tietueiden käsittely vastinparien löytämiseksi vertailutietojoukosta |
US20050033568A1 (en) | 2003-08-08 | 2005-02-10 | Hong Yu | Methods and systems for extracting synonymous gene and protein terms from biological literature |
TWI290687B (en) | 2003-09-19 | 2007-12-01 | Hon Hai Prec Ind Co Ltd | System and method for search information based on classifications of synonymous words |
US7689412B2 (en) | 2003-12-05 | 2010-03-30 | Microsoft Corporation | Synonymous collocation extraction using translation information |
US7461056B2 (en) | 2005-02-09 | 2008-12-02 | Microsoft Corporation | Text mining apparatus and associated methods |
-
2008
- 2008-01-10 US US11/972,496 patent/US7962486B2/en not_active Expired - Fee Related
-
2009
- 2009-01-05 WO PCT/EP2009/050057 patent/WO2009087138A1/en active Application Filing
- 2009-01-05 KR KR1020107015046A patent/KR101231560B1/ko active IP Right Grant
- 2009-01-05 JP JP2010541766A patent/JP5328808B2/ja not_active Expired - Fee Related
- 2009-01-05 EP EP09700463A patent/EP2243093A1/en not_active Withdrawn
- 2009-01-05 CN CN200980101769XA patent/CN101911069A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050080883A1 (en) | 2003-09-29 | 2005-04-14 | Nurminen Jukka K. | System and method for data handling in a network environment |
Also Published As
Publication number | Publication date |
---|---|
EP2243093A1 (en) | 2010-10-27 |
WO2009087138A1 (en) | 2009-07-16 |
JP2011509472A (ja) | 2011-03-24 |
US20090182755A1 (en) | 2009-07-16 |
CN101911069A (zh) | 2010-12-08 |
US7962486B2 (en) | 2011-06-14 |
KR20100106464A (ko) | 2010-10-01 |
JP5328808B2 (ja) | 2013-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101231560B1 (ko) | 데이터 클러스터와 유의어의 탐색과 수정에 대한 방법 및 시스템 | |
US9720944B2 (en) | Method for facet searching and search suggestions | |
US10558754B2 (en) | Method and system for automating training of named entity recognition in natural language processing | |
US9201931B2 (en) | Method for obtaining search suggestions from fuzzy score matching and population frequencies | |
US8756207B2 (en) | Systems and methods for identifying potential duplicate entries in a database | |
US9619571B2 (en) | Method for searching related entities through entity co-occurrence | |
CN110929125B (zh) | 搜索召回方法、装置、设备及其存储介质 | |
CN112000773B (zh) | 基于搜索引擎技术的数据关联关系挖掘方法及应用 | |
Wick et al. | A unified approach for schema matching, coreference and canonicalization | |
US11720563B1 (en) | Data storage and retrieval system for a cloud-based, multi-tenant application | |
CN112507133A (zh) | 基于金融产品知识图谱实现关联搜索的方法、装置、处理器及其存储介质 | |
US20160055141A1 (en) | String comparison results for character strings using frequency data | |
US8756246B2 (en) | Method and system for caching lexical mappings for RDF data | |
US20170124090A1 (en) | Method of discovering and exploring feature knowledge | |
US10216792B2 (en) | Automated join detection | |
US20080097992A1 (en) | Fast database matching | |
US20160246794A1 (en) | Method for entity-driven alerts based on disambiguated features | |
US9965546B2 (en) | Fast substring fulltext search | |
WO1998049632A1 (en) | System and method for entity-based data retrieval | |
US10885157B2 (en) | Determining a database signature | |
US7716203B2 (en) | Method and system for tracking, evaluating and ranking results of multiple matching engines | |
CN114036256A (zh) | 基于Solr的非结构化文件检索方法、装置、设备及存储介质 | |
US11200266B2 (en) | Identifying named entities in questions related to structured data | |
US9846739B2 (en) | Fast database matching | |
CN114519350A (zh) | 关联词库生成方法、文本检索方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160128 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170125 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20200129 Year of fee payment: 8 |