KR101599145B1 - 개념 중심의 자동 섹션 식별 - Google Patents

개념 중심의 자동 섹션 식별 Download PDF

Info

Publication number
KR101599145B1
KR101599145B1 KR1020140105694A KR20140105694A KR101599145B1 KR 101599145 B1 KR101599145 B1 KR 101599145B1 KR 1020140105694 A KR1020140105694 A KR 1020140105694A KR 20140105694 A KR20140105694 A KR 20140105694A KR 101599145 B1 KR101599145 B1 KR 101599145B1
Authority
KR
South Korea
Prior art keywords
text
section
concepts
document
electronic document
Prior art date
Application number
KR1020140105694A
Other languages
English (en)
Other versions
KR20150034599A (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 KR20150034599A publication Critical patent/KR20150034599A/ko
Application granted granted Critical
Publication of KR101599145B1 publication Critical patent/KR101599145B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/258Heading extraction; Automatic titling; Numbering

Abstract

전자 문서를 위한 섹션 메타데이터를 생성하기 위한 메커니즘들이 제공된다. 이들 메커니즘들은 문서를 수신하고 상기 문서의 텍스트 컨텐트 내에 존재하는 개념들을 식별하기 위해 분석한다. 상기 메커니즘들은 관련된 개념들 또는 개념 패턴들을 정의하는 하나 또는 그 이상의 규칙들의 적용에 기초하여 개념 그룹들을 식별하기 위해 상기 텍스트 컨텐트 내에서 개념들을 서로 상관시킨다. 상기 메커니즘들은 상기 텍스트 컨텐트 내에서 개념들의 상기 상관에 기초하여 상기 텍스트 컨텐트 내에서 텍스트의 섹션들을 결정한다. 상기 결정의 결과들에 기초하여, 상기 메커니즘들은 상기 문서를 위한 섹션 메타데이터를 생성하고 문서 처리 시스템에 의한 사용을 위해 상기 문서와 연관된 상기 섹션 메타데이터를 저장한다.

Description

개념 중심의 자동 섹션 식별{CONCEPT DRIVEN AUTOMATIC SECTION IDENTIFICATION}
본 발명은 일반적으로 향상된 데이터 처리 장치 및 방법과 관련되고, 더 구체적으로는 개념 중심의 자동 섹션 식별(concept driven automatic section identification)을 위한 메커니즘과 관련된다.
인터넷과 같은 컴퓨팅 네트워크들의 사용량이 증가함에 따라, 현재 여러 가지의 구조화된(structured) 소스 및 구조화되지 않은(unstructured) 소스로부터 인간들에게 이용가능한 정보의 양이 쇄도하고, 이러한 정보의 양에 압도당한다. 그러나, 사용자들이 여러 가지 주제들(subjects)에 관한 정보에 대한 검색 동안 찾을 수 있는 그들이 관련 있다고 믿는 것을 종합하려고 노력할 때, 정보 갭들이 매우 많다. 이러한 검색을 돕고자, 최근의 연구는 질의(Question)와 응답(Answer)(QA) 시스템들을 생성하는 것에 중점을 두고 있다. 상기 QA 시스템들은 입력 질의를 취하고, 그것을 분석하며, 그 입력 질의에 대한 가장 가능성이 높은 응답을 나타내는 결과들을 리턴할 수 있다. QA 시스템들은, 예컨대, 전자 문서들과 같은 컨텐트(content)의 소스들의 대형 세트들 전체를 검색하기 위해 자동화된 메커니즘들을 제공하며, 입력 질의에 응답하기 위해, 질의에 대한 응답과, 응답이 얼마나 정확한 것인지에 관한 신뢰성 척도(confidence measure)를 결정하기 위해, 그 입력 질의에 관해 그것들을 분석한다.
이러한 QA 시스템 중 하나는 뉴욕, 아몽크의 인터내셔널 비지네스 머신즈 코포레이션(International Business Machines(IBM) Corporation)으로부터 이용가능한 WatsonTM 시스템이다. WatsonTM 시스템은 향상된 자연 언어 처리(advanced natural language processing), 정보 검색(information retrieval), 지식 표현(knowledge representation) 및 추론(reasoning), 그리고 오픈 영역 질의 응답(open domain question answering) 분야에 대한 기계 학습 기술들(machine learning technologies)의 적용(application)이다. WatsonTM 시스템은 가설 생성(hypothesis generation), 대량의 증거 수집(massive evidence gathering), 분석(analysis), 및 점수매김(scoring)을 위해 사용되는 IBM의 DeepQATM 기술을 기반으로 하고 있다. DeepQATM은 입력 질의를 취하고, 그것을 분석하며, 그 질의를 구성 파트들(constituent parts)로 분해(decompose)하며, 그 분해된 질의와 응답 소스들의 주요 검색의 결과들에 기초하여 하나 또는 그 이상의 가설을 생성하며, 증거 소스들로부터의 증거 검색에 기초하여 가설 및 증거 점수 매김(scoring)을 수행하며, 하나 또는 그 이상의 가설의 종합(synthesis)을 수행하며, 그리고 훈련된 모델들(trained models)에 기초하여, 신뢰 척도에 따라 그 입력 질의에 대한 응답을 출력하기 위해 최종 병합(merging) 및 랭킹(ranking)을 수행한다.
여러 가지 미국특허출원공개 문헌들은 여러 유형의 질의 및 응답 시스템들을 기술하고 있다. 미국특허출원공개 제2011/0125734호는 데이터의 코퍼스(corpus)에 기초하여 질의 및 응답 쌍들을 생성하기 위한 메커니즘을 개시한다. 이 시스템은 질의들의 세트로 시작하고, 그런 다음 그들 질의들에 대한 응답을 추출하기 위해 컨텐트의 세트를 분석한다. 미국특허출원공개 제2011/0066587호는 분석된 정보의 리포트를 질의들의 집합(collection)으로 변환하고, 질의들의 집합에 대한 응답들이 그 정보 세트로부터 응답되었는지 반박(refute)되었는지에 관한 결정을 위한 메커니즘을 개시한다. 그 결과 데이터(results data)는 업데이트된 정보 모델 내에 편입된다.
QA 시스템, 또는 다른 전자 문서 처리 시스템에 의해 생성된 결과들의 품질은 흔히 그 문서들로부터 정보를 추출할 수 있는 능력에 의존한다. 이러한 전자 처리를 지원하기 위해, 메타데이터(metadata)는 흔히 이들 전자 문서 처리 시스템들에 의해 파싱(parse)되고 처리될 수 있는 전자 문서들과 연관된다. 그러나, 전자 문서들 자신들의 컨텐트에서와 같이, 전자 문서 처리 시스템에 의해 생성된 결과들의 품질은 또한 이 메타데이터에서 제공된 정보의 양 및 품질에 의해서도 제한된다.
일 실시예에 따라, 프로세서 및 메모리를 포함하는 데이터 처리 시스템에서, 전자 문서를 위한 섹션 메타데이터(section metadata)를 생성하기 위한 방법이 제공된다. 이 방법은 상기 데이터 처리 시스템에 의해, 처리를 위한 전자 문서를 수신하는 단계, 상기 데이터 처리 시스템에 의해, 상기 전자 문서의 텍스트 컨텐트(textual content) 내에 존재하는 개념들(concepts)을 식별하기 위해 상기 전자 문서를 분석하는 단계를 포함한다. 상기 방법은, 상기 데이터 처리 시스템에 의해, 관련 개념들(related concepts) 또는 개념 패턴들(concept patterns)을 정의하는 하나 또는 그 이상의 규칙들의 적용에 기초하여 상기 텍스트 컨텐트 내에서 개념 그룹들(concept groups)을 식별하기 위해 상기 텍스트 컨텐트 내 개념들을 서로 상관(correlate)시키는 단계를 더 포함한다. 또한, 상기 방법은, 상기 데이터 처리 시스템에 의해, 상기 텍스트 컨텐트 내에서 개념들의 상기 상관(correlation)에 기초하여 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션(at least one section of text)을 결정하는 단계를 포함한다. 더욱이, 상기 방법은, 상기 데이터 처리 시스템에 의해, 상기 결정의 결과들에 기초하여, 상기 전자 문서를 위한 섹션 메타데이터를 생성하고, 그것에 의해 상기 전자 문서에서 상기 적어도 하나의 섹션을 식별하는 단계를 포함한다. 상기 방법은 또한 문서 처리 시스템에 의한 사용을 위해 상기 전자 문서와 연관된 상기 섹션 메타데이터를 저장하는 단계도 포함한다.
다른 실시예들에 있어서, 컴퓨터 판독가능 프로그램(computer readable program)을 갖는 컴퓨터 사용가능 또는 판독가능 매체를 포함하는 컴퓨터 프로그램 제품(computer program product)이 제공된다. 상기 컴퓨터 판독가능 프로그램은, 상기 데이터 처리 시스템 또는 컴퓨팅 디바이스에서 실행될 때, 상기 데이터 처리 시스템 또는 컴퓨팅 디바이스로 하여금 상기 방법 실시예에 관해 위에서 서술된 동작들의 중 한 가지, 및 이것들의 조합들을 수행하도록 한다.
또 다른 실시예에서, 시스템/장치가 제공된다. 상기 시스템/장치는 상기 하나 또는 그 이상의 프로세서들에 결합된 하나 또는 그 이상의 프로세서들 및 메모리를 포함할 수 있다. 상기 메모리는 상기 하나 또는 그 이상의 프로세서들에 의해 실행될 때, 상기 하나 또는 그 이상의 프로세서들로 하여금 상기 방법 실시예에 관해 위에서 서술된 동작들 중 하나, 및 이것들의 조합들을 수행하도록 하는 명령들을 포함할 수 있다.
본 발명의 여러 가지 특징들 및 이점들은 본 발명의 실시예들에 관한 다음의 상세한 설명에서 기술될 것이고, 혹은 다음의 상세한 설명을 고려하여 기술 분야에서 통상의 기술을 가진 자들에게 분명해질 것이다.
본 발명의 바람직한 사용 모드 및 그것의 추가 목적들 및 이점들뿐만 아니라, 본 발명은, 실시예들에 관한 다음의 상세한 설명을 참조하여, 첨부되는 도면들과 함께 읽혀질 때 가장 잘 이해될 것이다.
도 1은 컴퓨터 네트워크에서 질의 및 응답(question and answer, QA)의 한 가지 실시예의 개략적인 다이어그램을 도시한다.
도 2는 도 1의 QA 시스템의 하나의 실시예의 개략적인 다이어그램을 도시한다.
도 3은 일 실시예에 따른 질의 및 응답 시스템 분석 파이프라인의 예시적 블록 다이어그램이다.
도 4는 구조적 주석(structural annotations)에 기초하여 텍스트의 일 부분(a portion of text)이 섹션들로 분리될 수 있는 방식을 도시하는 다이어그램 예이다.
도 5는 일 실시예에 따른 문서의 섹션들을 식별하기 위해 개념적 주석(conceptual annotations)의 사용을 도시하는 다이어그램 예이다.
도 6은 일 실시예의 메커니즘들을 사용하여 식별된 텍스트의 결과적인 섹션들을 도시하는 다이어그램 예이다.
도 7은 일 실시예에 따른 섹션 텍스트/헤딩 상관 메커니즘(section text/heading correlation mechanism)의 블록 다이어그램의 일 예이다.
도 8은 일 실시예에 따른 문서를 위한 섹션 헤딩/섹션 텍스트 메타데이터(section heading/section text metadata)를 생성하기 위한 동작의 일 예를 개략적으로 기술하는 흐름도의 일 예이다.
텍스트에서 섹션들의 식별은 현대의 구조화되지 않은 정보 처리에서 중요한 고려사항이다. 정보 검색(retrieval) 및 추출(extraction), 텍스트 추천(text recommendation), 및 질의응답(question answering)과 같은 태스크들은 모두 서브-문서 텍스트 구절들(passages)의 의미 분류(semantic classification)에 관한 더 깊은 이해(deeper awareness)로부터 더 많은 혜택을 볼 수 있다. 이러한 의미 분류(semantic classification)는 서로 간에 유사성(affinity)을 갖는 의미 컨텐트(semantic content)의 구별되는 부분들(distinct portions)을 식별하는 것으로부터 획득된 정보를 이용함으로써 더 크게 향상될 수 있다. 이러한 유사성들(affinities)의 식별은, 의미심장하게 관련된 텍스트(meaningfully related text) - 특히 자연 언어 텍스트 - 의 인접 부분들(contiguous portions)의 매우 정확한 식별을 제공하기 위한 메커니즘들을 제공하는 것을 포함할 수 있다. 일 실시예에서, 이러한 유사성들의 식별은 섹션 텍스트를 섹션 헤딩들(section headings) 및/또는 기정(predefined) 의미 카테고리들/주제(subject matter)와 상관(correlate)시키는 것을 포함할 수 있다. 몇몇 실시예들에서, 유사성들은 관련된 엔티티들의 군집화(clustering)를 위해 개별 개념들 사이에서 결정될 수 있다. 더욱이, 유사성들은 텍스트의 관련되지 않는 구절들(passages)을 구별하는 것을 돕기 위해 개념들의 군집들(clusters)의 세트들 사이에서 결정될 수 있다.
상세한 설명에서 사용되는 "개념(concept)" 이라는 용어는 기정 의미 카테고리(semantic category)를 일컬으며, 이는 흔히 특정 주제(topic)를 설명하는 텍스트에서 다소 나타날 수 있다는 것을 이해해야 할 것이다. 의미론적 개념(semantic concept)은, 예를 들어, 의학 맥락에서 환자 또는 약물(drug)에서부터, 보험금 청구 문서(insurance claim document)에서 차 부품들 및 손해 설명(damage descriptions) 등에 이르기까지의 그 어떤 것일 수 있다. 카테고리 또는 주제(topic)의 어떤 잠재적 의미론적 정의(potential semantic definition)는 "개념" 이라는 용어의 범위 내에 있는 것으로 고려된다.
실시예들은 기정(predefined) 지식 베이스(knowledge base)와 함께 이들 개념들의 통계적 분석을 레버리지(leverage)하고, 그에 따라 문서를 구별되는 섹션들, 또는 관련 부분들로 정확히 나누기 위해, 여기서 "개념 밀도(concept density)" 및 "개념 유사성(concept affinity)"으로 언급되는 것을 레버리지(leverage)한다. "개념 밀도(concept density)"라는 용어는 텍스트 컨텐트(textual content)의 일 부분 내에서 개념 유형의 존재(occurrence) 빈도를 일컫는다. "개념 유사성(concept affinity)" 이라는 용어는 어떤 개념 유형, 및 텍스트의 잠재적 섹션 또는 인접 부분(contiguous portion)이 밀접하게 관련되는 정도를 일컫는다.
실시예들은, 정보 추출과 관련되고, 텍스트 컨텐트, 특히 자연 언어 텍스트 컨텐트로부터, 명명된 엔티티 인식 및 지식 추출의 태스크들을 연관시키는, 어떤 시스템의 동작을 최적화하기 위해 사용될 수 있다. 이러한 시스템들은 텍스트 컨텐트에 관해 동작들을 수행하는 시스템들의 다른 어떤 유형들 - 그것의 동작은 텍스트 컨텐트를 개념적으로 관련되는 컨텐트의 그룹들, 즉 개념 그룹들로 분할하는 것에 의해 향상될 수 있음 - 뿐만 아니라 텍스트 검색 시스템들 및 질의 응답 시스템들(question answering systems)을 포함한다.
다음의 설명을 위해, 시스템이 뉴욕 아몽크의 인터내셔널 비지네스 머신즈 코포레이션으로부터 이용가능한 WatsonTM QA 시스템과 같은 질의 및 응답(QA) 시스템이라는 것이 가정될 것이지만, 실시예들은 그러한 시스템으로 한정되지 않으며 실시예들의 사상 및 범위를 벗어나지 않고서 텍스트 컨텐트에 관해 동작하는 어떤 시스템이든지 실시예들의 메커니즘들에 사용될 수 있다는 것이 이해되어야 할 것이다. 또한, 다음의 설명은 텍스트의 인접 부분들을 서로 연관시키는 것, 그리고 텍스트의 인접 부분들을 섹션 헤더들과 연관시키는 것에 관하여 주로 포커싱할 것이지만, 실시예들은 그러한 것으로 한정되지 않으며, 섹션 헤더들의 존재 또는 비존재에 상관없이 사실상 텍스트의 관련된 부분들을 식별할 수 있다는 것에 유의하여야 할 것이다. 예를 들어, 텍스트 컨텐트에 어떠한 명백한 섹션 헤딩도 없을 때, 이후에 설명되는 바와 같이, 개념 그룹들의 유사성(affinity)에서의 차이에 기인하여, 주제(subject/topic)의 변경은 실시예들로써 여전히 검출될 수 있다. 예를 들어, 약물들(drugs) 및 여러 가지 유형들의 암(cancer)을 설명하는 텍스트의 일 부분은 특정 의미론적 개념들(semantic concepts)을 포함할 것이며, 반면에 동물원들에 관한 텍스트는 동물들, 및 천연 서식지 등에 관한 레퍼런스들을 포함할 것인데, 이것들은 약물들 및 암 유형들을 설명하는 텍스트의 일 부분과는 다른 의미론적 개념들이다. 이러한 개념 그룹핑들(concept groupings)에서의 변화들은 실시예들의 메커니즘들에 의해 식별되며, 텍스트의 이러한 부분들이 연관된 섹션 헤더들을 갖든 그렇지 않든, 텍스트의 관련된 부분들을 식별하기 위해 사용된다. 어떤 경우들에 있어서, 섹션 헤더들은 텍스트의 그 부분들에서 식별된 개념들에 기초하여 추론(infer)될 수 있다.
관련 개념들을 개념 그룹들 내에 함께 그룹핑함으로써, 실시예들의 메커니즘들은, 어떤 구조적 단서들도 없이 텍스트의 그 부분들을 분리된 섹션들로 나누기 위해, 심지어 텍스트의 동일한 인접 부분 내에서 이들 개념 그룹들과 연관된 텍스트의 부분들 간을 구별할 수 있다. 텍스트 컨텐트 내에서 개념들의 이들 그룹핑들 또는 군집들(clusters)은 기존의 지식 베이스를 사용하여 인식될 수 있고, 컨텐트, 예컨대, 문서 등의 그 부분에 대한 출력 메타데이터(output metadata)에서 텍스트의 여러 가지 결과적인 섹션들에 라벨들이 배정될 수 있다. 또한, 컨텐트의 그 부분 내에서 식별되고 있는 개념들의 그룹핑들 또는 군집들의 결과로, 이는 또한 그 그룹핑들/군집들의 일부가 아닌, 그래서 관련되지 않은 컨텐트의 그 부분의 그러한 부분들(pieces)을 식별하는데, 이는 텍스트 검색 시스템, QA 시스템, 또는 다른 정보 추출 시스템에 도움이 될 수 있다.
일 실시예에서, 실시예의 메커니즘들은, 관련 특징들이 존재(occur)하는 섹션의 식별에 기초하여 질의 및 응답(QA) 시스템에서의 응답 텍스트를 위해 적합성 점수들(relevancy scores)을 증가시키기(boost) 위해 사용될 수 있다. 예를 들어, 환자-특정 데이터(patient-specific data)에 관해 작동하는 QA 시스템에서, 환자의 의료 기록의 "현병력(History of Present Illness)" 섹션에서 의학적 질환 X에 관한 언급은, 환자의 기록의 섹션 또는 의료 절차들을 설명하는 것과 주로 관련되는 또 다른 의료 문서에서의 의학적 질환의 언급보다 더 높은 점수를 받아야 한다.
컨텐트 - 예컨대, 문서들 - 내 텍스트의 섹션 또는 텍스트의 다른 부분들을 식별하는 한 가지 방법은, 처리되고 있는 컨텐트에서 섹션 헤딩을 식별하고, 그 컨텐트 내 텍스트를 그 식별된 섹션 헤딩과 연관시키는 것이다. 섹션 헤딩의 식별은, 한 단어(single word), 또는 미리 정해진 임계 개수(threshold number)의 단어들보다 더 작은 개수의 단어들 - 라인 바꿈(line break)이 뒤따름 - 을 포함하는 문장에 따라 그 섹션 헤딩을 식별하는 단계를 포함하는 여러 가지 방법들에서 수행될 수 있다. 이 문장에 부가되는, 콜론 문자(colon character) 또는 다른 특별한 문자는, 그 단어 또는 구(phrase)가 섹션 헤딩임을 나타내기 위한 추가 증거(evidence)로서 취급된다. 그런 다음, 그 식별된 섹션 헤딩 바로 뒤에 오는 텍스트의 단락(들)(paragraph(s))은 텍스트의 관련된 바디(the related body of text)인 것으로 이해된다. 섹션 헤더들 및 대응하는 텍스트를 식별하기 위한 다른 더 복잡한 시도들(sophisticated attemps)은, 알려진 섹션 헤딩 키워드들 및 포맷팅 문자들(formatting characters)에 기초한 통계적 방법들 또는 패턴 규칙들을 사용할 수 있다.
그러나, 특정 섹션 헤딩과 연관된 텍스트, 즉, 그 관련된 섹션 텍스트의 경계를 결정함에 있어서, 주요 도전 과제가 존재한다. 한 가지 접근법은, 그 관련된 섹션 텍스트를, 섹션 헤더 바로 뒤에 나타나고 또한 그 단락의 끝에 맞닥뜨리게 될 때까지 또는 그 컨텐트의 텍스트에서 다음 섹션 헤더에 맞닥뜨리게 될 때까지 계속되는, 텍스트로서 식별하는 것이다. 하나의 단락 또는 섹션 헤더들 사이에 나타나는 텍스트의 부분 내에는 주제 특정 컨텐트의 몇 가지 세트들이 있을 수 있으므로, 이러한 접근법들은 흔히 그 섹션 컨텐트의 주제(subject matter)를 잘못 표현(misrepresent)한다. 더욱이, 관련된 텍스트는 그 섹션 헤더 바로 다음에(immediately subsequently) 있는 것으로 가정되고 새로운 섹션 헤더에 맞닥뜨리게 될 때까지 계속되는 접근법들에서는, 문서에 다른 어떤 섹션 헤더들도 없을 때 어려움이 발생할 수 있다. 따라서, 텍스트의 후속 단락들 또는 부분들은 가장 최근의 섹션 헤더에 대해 명시적인 의미적 관련성(semantic link)을 갖지 않을 수 있다. 더욱이, 몇몇 경우들에서 섹션은 하나의 라인, 문자 등으로 끝날 수 있는데, 이는 텍스트의 그 부분이 하나의 섹션 헤더인 것으로 의도되지 않은 때에도, 또 다른 섹션 헤더인 것처럼 보이도록 한다.
여기에 기술되는 실시예들은, 그 섹션 헤더에 대한 의미 링크가 있기만 하면, 특정 섹션 헤더(또는 섹션 헤딩)에 뒤따르는 텍스트를 링크하도록 동작하는 상기 이슈들에 대한 솔루션을 제공한다. 예를 들어, 의료 영역(medical domain)에서, 환자의 병력 기록 문서 내 특정 섹션들을 식별하는데 LOINC(Logic Observation Identifiers Names and Codes)가 사용된다. 이것들은 환자의 케이스의 정확한 자동화 분석을 보증함에 있어서 또는 적절한 치료(treatment)를 결정함에 있어서 중요할 수 있다. 섹션에 적용될 가장 적절한 LOINC 코드를 결정하는 것은, 그 문서의 구조(structure) 또는 포맷(format)으로부터 섹션 구분자들(section delimiters)의 명백한 표시들(indications)이 없을 때 어려울 수 있다. 이러한 경우들에 있어서, 텍스트의 컨텐트 자체는 특정 섹션 유형들과 관련된 명명된 엔티티들(named entities)에 대해 분석되어야 한다. 이들 명명된 엔티티들이 특정 섹션 또는 LOINC 코드를 나타내기 위해 고려될 수 있는 방법들은 많이 있다. 이것의 일 예는, 이들 명명된 엔티티들, 또는 그러한 엔티티들의 순서화된 군집들(ordered clusters)이, 그 텍스트에서 나타나는 순서(order)이다.
실시예들은 서로 간의 개념들의 의미론적 상호작용(semantic interaction)에 기초한 개념 유사성들을 이용한다. 이러한 개념 유사성들은, 텍스트 컨텐트에서 식별된 개념들과 제안된 섹션 헤딩들 또는 의미 카테고리들/주제(subject matter) 사이의 유사성들, 관련된 엔티티들의 군집화(clustering)를 위한 개별 개념들 사이의 유사성들, 개념들의 군집들의 세트들 사이의 유사성들 - 이에 의해 텍스트의 관련된 부분과 관련되지 않은 부분 등을 식별함 - 등일 수 있다. 몇몇 경우들에 있어서, 개념 유사성들은 컨텐트의 부분의 구조적 엘리먼트들의 맥락 내에서 식별되는데, 여기서 컨텐트의 그 부분은 문서들의 형태, 텍스트의 부분들, 웹 페이지들, 스캔된 문서들(scanned-in documents), 등의 형태일 수 있다(여기서는 총괄하여 간단히 "문서들"로 일컬어짐).
실시예들은, 상호작용하고 강하게 관련된 개념들의 세트에 의해 기술되는 주제들(topics)에 관한 논의들을 문서 섹션들(헤딩들을 포함함)이 포함하는 경향이 있다는 개념(notion)을 이용한다. 예를 들어, "약물치료(Medications)" 섹션은 "약물(Drug)" 유형의 개념들에 관한 언급들을 거의 확실히 포함할 것이고, 헤딩 "약물치료(Medications)"를 뒤따르는 섹션에서 "약물(Drug)"의 유형이 언급되고, "복용량(Dosage)", "경로(Route)", "빈도(Frequency)", "부작용(AdverseDrugReaction)" 유형의 개념들도 그 섹션을 구성하는 문장들에서 또한 언급될 가능성이 매우 크다. 개념들 또는 주제들(topics)의 링크된 그룹들은 흔히 섹션 헤딩이 존재하든 그렇지 않든 문서에서 섹션을 나타낸다. 실시예들은, 섹션 경계들을 결정하도록, 그리고 만약 그러한 섹션 헤딩들이 존재한다면, 이들 섹션들을 대응하는 섹션 헤딩들과, 또는 어떤 실시예들에서 제안된 섹션 헤딩들과 연관시키도록, 문서의 부분들을 점수 매기기(score) 위해 이러한 특징들을 이용한다.
실시예들의 메커니즘들에서, 문서를 처리할 때, 문서의 모든 잠재적 섹션들은 주제(topic)/개념 그룹핑들 및 점수매김 방법론(scoring methodology)에 기초하여 식별된다. 잠재적 섹션들 및 점수매김 방법론의 식별은, 섹션들 서로에 대해 그리고 각각의 단위 수준(granularity level) - 예컨대, 단어, 문장, 단락 등 - 에서 기존 또는 제안된(추론된) 섹션 헤딩들(의미론적 컨텐트 개념 그룹핑 또는 군집화의 결과에 기초하여 생성된)에 대해, 섹션들의 유사성을 결정하기 위해 적용될 수 있다. 실제 또는 추론된 섹션 헤딩에 대해 그리고 서로에 대해 각각의 섹션의 유사성이 계산된다. 중복되는 섹션들(overlapping sections)이 가능하고 최종 섹션 배정 및 선택은, 중복되지 않는 방법으로 그 문서를 커버하는 가장 높게 점수가 매겨지는 섹션 헤딩/섹션 텍스트 및 섹션 텍스트/섹션 텍스트 쌍들을 선택하는 것에 기초한다.
따라서, 실시예들의 메커니즘들은 텍스트의 섹션들을 서로 링크시키거나, 텍스트의 섹션들을 대응하는 섹션 헤더들(실제 또는 추론된)과 링크시키기 위해, 구조 구분자들(structure delimiters) - 예컨대, 단락 바꿈들(paragraph breaks), 특수 문자들 등 - 에 의존하지 않는다. 오히려, 실시예들의 메커니즘들은, 메타데이터, 예컨대, 주석들(annotations)을 생성하기 위해서, 온톨로지(ontologies), 의미 네트워크들(semantic networks), 및 다른 지식 베이스들에 기초하여, 어떤 실제 또는 추론된 섹션 헤더들 및 섹션 텍스트 내에서 개념들을 식별하도록 그 컨텐트 텍스트를 분석하고, 그런 다음 그 섹션 텍스트들을 서로 간에 그리고 섹션 헤딩들(추론된 또는 다른)과 상관시키는데, 상기 메타데이터는 텍스트의 섹션들을 서로 간에 및/또는 대응하는 실제 또는 추론된 섹션 헤딩들, 일반적인 의미 카테고리들 등과 링크시키는 것이다. 상관들(correlations)은 개념 그룹들 또는 군집들의 관련성(relatedness) - 이는 의미론적 유사성(semantic affinity)의 강한 표시자(strong indicator)를 제공함 - 에 기초한다. 실시예들의 점수매김 메커니즘들은, 그러한 유사성들이 자연 언어 처리(natural language processing, NLP) 시스템들, 질의 및 응답(Question and Answer, QA) 시스템들 등과 같은 분석 메커니즘들에서 사용하기 위해 문서들에 주석을 달기 위한(anotating) 섹션 배정들(section assignments)을 선택하기 위한 기준으로서 정량화(quantify)되고 사용될 수 있는 방식을 제공한다.
발명의 실시예들의 상기 측면들 및 이점들은 첨부되는 도면들을 참조하여 이후에 더 상세히 설명될 것이다. 도면들은 본 발명의 실시예들을 설명하려는 의도로만 제공된 것임을 이해해야 할 것이다. 본 발명은, 실시예의 측면들, 실시예들, 도면들에 분명하게 보여지지 않지만 실시예들의 현재 설명에 비추어 당해 기술 분야에서 통상의 기술을 가진 자들에게는 자명한 변형 예들을 다 포함할 수 있다.
당해 기술 분야에서 숙련된 자라면 알 수 있는 바와 같이, 본 발명은 시스템, 방법, 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 발명의 측ㄹ면들은 전적으로 하드웨어 실시예의 형태를 취할 수 있고, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함함)의 형태를 취할 수도 있으며, 또는 소프트웨어와 하드웨어 측면들 - 이들 모두는 여기서는 일반적으로, "회로", "모듈", 또는 "시스템"으로 일컬어질 수 있음 - 을 조합하는 실시예의 형태를 취할 수도 있다. 더 나아가, 본 발명의 측면들은, 어떤 하나 또는 그 이상의 컴퓨터 판독가능 매체(들) - 그 상에 구현되는 컴퓨터 사용가능 프로그램 코드를 가짐 - 에서 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 또는 그 이상의 컴퓨터 판독가능 매체(들)의 어떤 조합이든지 이용될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 스토리지 매체일 수 있다. 컴퓨터 판독가능 스토리지 매체는 시스템, 장치, 또는 전자, 자기, 광, 전자기, 또는 반도체 종류의 디바이스, 이것들의 어떤 적절한 조합, 또는 이것들의 등가물(equivalents)일 수 있다. 컴퓨터 판독가능 스토리지 매체의 더 구체적인 예들(모든 것을 총망라한 것은 아님)은 다음과 같은 것들, 즉, 스토리지 기능을 갖는 전자 디바이스, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 억세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거가능 프로그램형 읽기 전용 메모리(erasable programmable read-only memory)(EPROM 또는 플래쉬 메모리), 광섬유 기반 디바이스, 휴대용 컴팩트 디스크 읽기 전용 메모리(CDROM), 광 스토리지 디바이스, 자기 스토리지 디바이스, 또는 이것들의 어떤 적절한 조합을 포함한다. 본 문서의 맥락에서, 컴퓨터 판독가능 스토리지 매체는, 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한, 또는 명령 실행 시스템, 장치, 또는 디바이스와 함께 사용하기 위한 프로그램을 포함 또는 저장할 수 있는 어떤 실체적 매체일 수 있다.
어떤 실시예들에서, 컴퓨터 판독가능 매체는 영구적(non-transitory) 컴퓨터 판독가능 매체이다. 영구적 컴퓨터 판독가능 매체는, 분리된 신호 또는 전파 전파(propagation wave), 즉 순수한 신호 또는 전파 전파 그 자체가 아닌 어떤 매체이다. 영구적 컴퓨터 판독가능 매체는 신호들 및 전파 전파들을 이용할 수 있으나, 신호 또는 전파 전파 자체는 아니다. 따라서, 예를 들어, 자신들의 상태를 유지하기 위해, 어떤 식으로든 신호들을 이용하는, 메모리 디바이스들의 여러 가지 형태들, 그리고 시스템들, 디바이스들, 장치들의 다른 유형들이, 본 명세서의 범위 내의 비일시적 컴퓨터 판독가능 매체로 고려될 수 있다.
한편, 컴퓨터 판독가능 신호 매체는, 예를 들어, 기저대역으로 또는 반송파(carrier wave)의 일부로서, 그 내부에 구현된 컴퓨터 판독가능 프로그램 코드를 갖는 전파되는 데이터 신호를 포함할 수 있다. 이러한 전파되는 신호는, 전자기, 광, 또는 이것들의 어떤 적절한 조합(그러나, 이것들로 한정되는 것은 아님)을 포함하는 다양한 형태들 중 어떤 것이나 취할 수 있다. 컴퓨터 판독가능 신호 매체는, 컴퓨터 판독가능 스토리지 매체가 아니면서, 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한, 또는 명령 실행 시스템, 장치, 또는 디바이스와 함께 사용하기 위한, 프로그램을 전달, 전파, 또는 이동시킬 수 있는, 어떤 컴퓨터 판독가능 매체일 수 있다. 이와 유사하게, 컴퓨터 판독가능 스토리지 매체는 컴퓨터 판독가능 신호 매체가 아닌 어떤 컴퓨터 판독가능 매체이다.
컴퓨터 판독가능 매체 상에 구현되는 컴퓨터 코드는, 어떤 적절한 매체, 예를 들어, 무선, 유선, 광섬유 케이블, RF(radio frequency), 등(그러나, 이러한 것들로 한정되는 것은 아님)을 사용하여 전송될 수 있다.
본 발명의 측면들을 위한 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 하나 또는 그 이상의 프로그래밍 언어들의 어떤 조합으로 작성될 수 있는데, 이러한 프로그래밍 언어들의 예들에는, JavaTM, SmalltalkTM, C++ 등과 같은 객체 지향형 프로그래밍 언어, "C" 프로그래밍 언어, Prolog, 또는 유사 프로그래밍 언어들과 같은 전통적인 로지컬 선언형/절차형 프로그래밍 언어들이 포함된다. 프로그램 코드는 독립형 소프트웨어 패키지로서, 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 또는 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서, 또는 전적으로 원격 컴퓨터 또는 서버상에서 실행될 수 있다. 후자의 경우, 원격 컴퓨터는 LAN 또는 WAN을 포함하는 네트워크의 어떤 유형을 통해서 사용자의 컴퓨터에 연결될 수 있으며, 또는 외부 컴퓨터에 대해 연결될 수 있다(예를 들어, 인터넷 서비스 공급자를 사용하여 인터넷을 통해).
본 발명의 측면들은 발명의 실시예들에 따라 방법들, 장치들(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록도들을 참조하여 이하에서 설명된다. 흐름도들 및/또는 블록도들의 각각의 블록, 흐름도들 및/또는 블록도들 내의 블록들의 조합들은 컴퓨터 프로그램 명령들에 의해 구현될 수 있다는 것이 이해되어야 할 것이다. 이들 컴퓨터 프로그램 명령들은 범용 컴퓨터, 특수 컴퓨터, 또는 다른 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성할 수 있고, 그리하여 그 명령들이 컴퓨터 또는 다른 프로그램가능 데이터 처리 장치의 프로세서를 통해 실행될 때, 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/작용들을 구현하기 위한 수단을 생성하도록 한다.
이들 컴퓨터 프로그램 명령들은 또한, 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 디바이스들이 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독가능 매체에 저장될 수도 있고, 그리하여, 그 컴퓨터 판독가능 매체에 저장된 명령들이 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능/작용을 구현하는 명령들을 포함하는 제조물품(article of manufacture)을 생성해 내도록 한다.
컴퓨터 프로그램 명령들은 또한 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 디바이스들 상으로 로드되어, 일련의 동작 단계들이 그 컴퓨터, 다른 프로그램가능 장치, 또는 다른 디바이스들 상에서 수행될 수 있도록 하여, 컴퓨터로 구현된 프로세스를 생성해 내도록 한다. 그리하여 그 컴퓨터 또는 다른 프로그램가능 장치 상에서 실행되는 명령들이 흐름도 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/작용들을 구현하기 위한 프로세스들을 제공하도록 할 수 있다.
도면들에서 흐름도 및 블록도들은, 본 발명의 여러 가지 실시예들에 따라 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍쳐(architecture), 기능(functionality), 및 동작을 설명한다. 여기서, 흐름도 또는 블록도들에서의 각각의 블록은, 모듈, 세그먼트, 또는 코드부(portion of code)를 나타낼 수 있으며, 이는 특정 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행가능한 명령들을 포함한다. 또한, 어떤 다른 구현 예들에서, 블록에 표시된 기능들은 도면들에 표시된 그 순서를 벗어나서 일어날 수도 있다는 것에 유의하여야 할 것이다. 예를 들어, 연속해서 보여지는 두 개의 블록들은, 관련된 기능에 따라서, 사실상, 실질적으로 동시에 실행될 수도 있고, 또는 그 블록들은 때로는 역순으로 실행될 수도 있다. 또한, 블록도들 및/또는 흐름도의 각각의 블록, 블록도들 및/또는 흐름도에서의 블록들의 조합들은, 특정 기능들 또는 작용들, 또는 특수 하드웨어 및 컴퓨터 명령들의 조합들을 수행하는 특수 하드웨어(special purpose hardware) 기반의 시스템들에 의해 구현될 수 있다.
따라서, 실시예들은 여러 가지 다른 유형의 데이터 처리 환경들에서 이용될 수 있다. 실시예들의 메커니즘들은, 문서들, 웹 페이지들, 문서들의 부분들, 구절들(passages) 등과 같은 텍스트를 포함하는 컨텐츠의 부분들의 처리를 지원하기에 특히 아주 적합하다. 이와 같이, 실시예들의 메커니즘들은 자연 언어 처리(NLP) 시스템들, 질의 및 응답(QA) 시스템들, 또는 텍스트의 섹션들을 섹션 헤딩들과 상관시키는 것에 기초하여 텍스트 컨텐트(textual content)를 처리하는 다른 어떤 시스템에 의해 문서들의 처리를 지원할 수 있다. 단지 예로서(그러나, 이 예로 한정되지는 않음), 다음의 설명을 제공하기 위해, 실시예들은, 입력 질의(input question)에 대한 후보 응답들(candidate answers)을 생성하기 위해, 정보의 코퍼스(corpus)에서 주석이 달린 문서들(annotated documents)을 이용하는 질의 및 응답(QA) 시스템에 관해서 설명될 것이다. 이는 실시예들의 메커니즘들이 이용되거나 통합될 수 있는 텍스트 컨텐트 처리 시스템들의 유형들에 관한 어떤 한정을 서술하거나 암시하려는 의도는 아니고 단지 예일 뿐이라는 것에 유의하여야 한다. 정보 추출, 엔티티 인식 등을 위한 동작들을 수행하는 텍스트 컨텐트 처리 시스템들의 다른 유형들이 실시예들의 사상 및 범위를 벗어나지 않고서 실시예들의 메커니즘들과 함께 사용될 수 있다.
상술한 내용을 고려할 때, 도 1-3은, 질의/응답, 질의 및 응답, 또는 질의 응답(Question Answering), (QA) 시스템, 방법론(methodology), 및 실시예들의 메커니즘들이 구현될 수 있는 컴퓨터 프로그램 제품의 예를 도시한다. 이후에 더 상세히 논의되는 바와 같이, 실시예들은, 이들 문서들, 또는 문서들의 부분들의 처리에서 QA 시스템을 지원하려는 목적으로, 문서들, 또는 문서들의 부분들에 주석을 다는 것에 관해, 이들 QA 메커니즘들에 통합될 수 있고, 이들 QA 메커니즘들의 기능을 증가시키고 확장시킬 수 있다. 특히, 실시예들의 메커니즘들은, 텍스트의 섹션들을, 입력 질의들에 대한 후보 응답들을 식별하기 위해 QA 시스템에 의해 사용될 수 있는 섹션 헤딩들과 상관시키도록 주석들(annotations)을 생성한다.
실시예들의 메커니즘들을 설명하기 위해 여기에서 제공되는 예들은 QA 시스템 구현으로 정해지므로, 어떻게 실시예들의 메커니즘들이 이러한 QA 시스템들에 통합되고 증가시키는지를 설명하기 전에, QA 시스템에서 질의 및 응답 생성이 어떻게 구현될 수 있는지에 관한 이해를 먼저 하는 것이 중요하다. 도 1-3에 설명된 QA 메커니즘들은, 실시예들이 구현될 수 있는 QA 메커니즘들의 유형에 관해, 어떠한 제한을 언급하거나 암시하려는 의도는 아니고 단지 예들이다. 도 1-3에 도시된 QA 시스템의 예에 대한 여러 가지 변형들은, 본 발명의 사상 및 범위를 벗어나지 않고서 본 발명의 여러 가지 실시예들에서 구현될 수 있다.
QA 메커니즘들은 데이터 또는 정보의 코퍼스(이는 또한 컨텐트의 코퍼스로도 일컬어짐)로부터 정보에 접근하고, 그것을 분석하며, 그런 다음 이 데이터의 분석에 기초하여 응답 결과들(answer results)을 생성함으로써 동작한다. 데이터의 코퍼스로부터 정보에 접근하는 것은 일반적으로, 구조화된 레코드들(structured records)의 집합(collection)에 있는 질의들에 응답하는 데이터베이스 쿼리(database query), 비구조화된 데이터(텍스트, 마크업 언어 등)의 집합에 대한 쿼리(query against a collection of unstructured data)에 응답하여 문서 링크들의 집합을 산출(deliver)하는 검색(search)을 포함한다. 전통적인 질의 응답 시스템들은, 데이터의 코퍼스 및 입력 질의에 기초하여 응답들을 생성하고, 데이터의 코퍼스에 대한 질의들의 집합에 대한 응답들을 검증(verify)하고, 데이터의 코퍼스를 사용하여 디지털 텍스트에서 에러들을 정정(correct)하고, 잠재적 응답들, 즉 후보 응답들(candidate answers)의 풀(pool)로부터 질의들에 대한 응답들을 선택할 수 있다.
아티클 작가들(article authors), 전자 문서 생성자들, 웹 페이지 작가들, 문서 데이터베이스 생성자들 등과 같은, 컨텐트 생성자들(content creators)은, 자신들의 컨텐트를 작성하기 전에 그러한 컨텐트에 기술된 산물들(products), 솔루션들, 및 서비스들을 위해, 유스 케이스들(use cases)을 결정할 수 있다. 그 결과, 컨텐트 생성자들은, 그 컨텐트에 의해 다뤄지는(addressed) 특정 주제(topic)에서 그 컨텐트가 응답하도록 의도되는 것이 어떤 질의들인지를 알 수 있다. 데이터의 코퍼스의 각각의 문서에서, 질의와 연관된, 역할들, 정보의 유형, 태스크들 등의 관점에서, 질의들을 카테고리화하는 것은 QA 시스템이 특정 쿼리(query)와 관련된 컨텐트를 포함하는 문서들을 더 빠르고 효율적으로 식별할 수 있도록 한다. 컨텐트는 또한, 컨텐트 사용자들에게 유용할 수 있는, 컨텐트 생성자가 고려하지 않는 다른 질의들에 응답할 수도 있다. 질의들 및 응답들은 주어진 문서에 대해 컨텐트에 포함되도록 그 컨텐트 생성자에 의해 검증될 수 있다. 이들 기능들은 향상된 정확성(accuracy), 시스템 성능(system performance), 기계 학습(machine learning), 및 QA 시스템의 신뢰성(confidence)에 기여한다. 컨텐트 생성자들, 자동화된 툴들 등은 주석을 달거나, 그렇지 않으면, 그 컨텐트에 관한 이들 질의 및 응답 속성들을 식별하기 위해, QA 시스템에 의해 사용가능한 정보를 제공하기 위한 메타데이터를 생성할 수 있다.
이러한 컨텐트에 관한 동작시, QA 시스템은, 입력 질의에 대해 가장 확률 높은 응답들, 즉, 후보 응답들을 식별하기 위해 그 컨텐트를 평가하는 복수의 집중적인 분석 메커니즘들(intensive analysis mechanisms)을 사용하여 입력 질의들에 대한 응답들을 생성한다. 실시예들은, QA 시스템에 의해 이미 처리된 질의들과 유사한 질의들의 후속 처리를 위해 소모되는 리소스 및 계산 시간을 감소시키기 위해, QA 시스템에 의해 이미 수행된 작업을 레버리지한다.
도 1은 컴퓨터 네트워크(102)에서 질의 및 응답 생성(QA) 시스템(100)의 일 실시예의 개략적인 다이어그램을 도시한다. 여기에 기술되는 원리들과 함께 사용될 수 있는 질의 및 응답 생성의 일 예는 미국특허출원공개(U.S. Patent Application Publication) 번호 2011/0125734에 기술되어 있는데, 이는 그 전체가 참조로서 본 명세서 내에 편입된다. QA 시스템(100)은 컴퓨터 네트워크(102)에 연결된 하나 또는 그 이상의 컴퓨팅 디바이스들(104)(이는 하나 또는 그 이상의 프로세서들 및 하나 또는 그 이상의 메모리들, 그리고 잠재적으로, 일반적으로 버스들, 스토리지 디바이스들, 통신 인터페이스들 등을 포함하는 당해 기술 분야에서 알려진, 다른 어떤 컴퓨팅 디바이스 엘리먼트들을 포함함) 상에서 구현될 수 있다. 네트워크(102)는, 하나 또는 그 이상의 유선 및/또는 무선 데이터 통신 링크들을 통해 서로 간에 그리고 다른 디바이스들 또는 컴포넌트들과 통신하는 다수의 컴퓨팅 디바이스들(104)을 포함할 수 있는데, 여기서 각각의 통신 링크는 와이어들(wires), 라우터들(routers), 스위치들, 송신기들, 수신기들 등을 포함할 수 있다. QA 시스템(100) 및 네트워크(102)는 그들 각각의 컴퓨팅 디바이스들(110-112)을 통해 하나 또는 그 이상의 QA 시스템 사용자들을 위한 질의/응답(QA) 생성 기능을 인에이블시킬 수 있다. QA 시스템(100)의 다른 실시예들은, 여기에 기술되는 것들 이외의 컴포넌트들, 시스템들, 서브-시스템들, 및/또는 디바이스들과 함께 사용될 수 있다.
QA 시스템(100)은 여러 가지 소스들로부터 입력들을 받는 QA 시스템 파이프라인(108)을 구현하도록 구성될 수 있다. 예를 들어, QA 시스템(100)은 네트워크(102), 전자 문서들의 코퍼스(106), QA 시스템 사용자들, 또는 다른 입력 데이터 및 다른 가능한 입력 소스들로부터 입력을 받을 수 있다. 일 실시예에서, QA 시스템(100)에 대한 입력들의 일부 또는 모두는 네트워크(102)를 통해 라우트(route)될 수 있다. 네트워크(102)의 여러 가지 컴퓨팅 디바이스들(104)은 컨텐츠 생성자들 및 QA 시스템 사용자들을 위한 억세스 포인트들을 포함할 수 있다. 컴퓨팅 디바이스들(104)의 일부는 데이터의 코퍼스(106)를 저장하는 데이터베이스를 위한 디바이스들을 포함할 수 있다(이는 단지 설명 목적으로 도 1에서 독립된 엔티티로서 보여지고 있음). 데이터의 코퍼스(106)의 부분들은 또한, 하나 또는 그 이상의 데이터베이스들, 또는 도 1에 명시적으로 도시되지 않은 다른 컴퓨팅 디바이스들에서, 하나 또는 그 이상의 다른 네트워크 부착 스토리지 디바이스들상(network attached storage device)에 제공될 수 있다. 네트워크(102)는 여러 가지 실시예들에서 로컬 네트워크 연결들 및 원격 연결들을 포함할 수 있고, 그리하여, QA 시스템(100)이, 로컬 및 글로벌을 포함하는 어떤 크기의 환경들, 예컨대, 인터넷에서 동작할 수 있도록 한다.
일 실시예에서, 컨텐트 생성자는 QA 시스템(100)으로써 데이터의 코퍼스의 일부로서 사용하기 위한 데이터의 코퍼스(106)의 문서에 컨텐트를 생성한다. 그 문서는, QA 시스템(100)에서 사용하기 위한, 어떤 파일, 텍스트, 아티클(article), 또는 데이터의 소스를 포함할 수 있다. QA 시스템 사용자들은, 네트워크 연결 또는 네트워크(102)에 대한 인터넷 연결을 통해 QA 시스템(100)에 접근할 수 있고, 데이터(106)의 코퍼스에서 컨텐트에 의해 응답될 수 있는 QA 시스템(100)에 대한 질의들을 입력할 수 있다. 일 실시예에서, 질의들은 자연 언어를 사용하여 형성될 수 있다. QA 시스템(100)은 그 질의를 해석할 수 있고, QA 시스템 사용자, 예컨대 QA 시스템 사용자(110)에게, 질의에 대한 하나 또는 그 이상의 응답들을 포함하는 회신(response)을 제공할 수 있다. 몇몇 실시예들에서, QA 시스템(100)은 후보 응답들의 랭크된 리스트에서 사용자들에게 회신(response)을 제공할 수 있다.
QA 시스템(100)은, 입력 질의, 데이터의 코퍼스(106)를 처리하고, 데이터의 코퍼스(106)의 처리에 기초한 입력 질의에 대한 응답들을 생성하기 위한 복수의 단계들을 포함하는, QA 시스템 파이프라인(108)을 구현한다. QA 시스템 파이프라인(108)은 이후 도 3에 관한 설명에서 더 상세히 설명될 것이다.
몇몇 실시예들에서, QA 시스템(100)은 WatsonTM QA 시스템일 수 있는데, 이는 뉴욕 아몽크의 인터내셔널 비지네스 머신즈 코포레이션으로부터 이용가능하며, 이후에 기술되는 실시예들의 메커니즘들로 증강(augment)된다. WatsonTM QA 시스템은 입력 질의 - 이 입력 질의는 그 후 질의의 주요 특징들을 추출하기 위해 WatsonTM QA 시스템이 파싱(parse)하고, 그런 다음 차례대로 데이터의 코퍼스에 적용되는 쿼리들을 만들어내기(formulate) 위해 사용됨 - 을 수신할 수 있다. 데이터의 코퍼스에 대한 쿼리들의 적용에 기초하여, 가설들의 세트, 즉 입력 질의에 대한 후보 응답들은 입력 질의에 대한 가치있는 회신(response)을 포함할 약간의 가능성을 갖는 데이터의 코퍼스의 부분들을 데이터의 코퍼스를 조사함으로써 생성된다.
그런 다음, WatsonTM QA 시스템은 다양한 추론 알고리즘들(reasoning algorithms)을 사용하여 그 쿼리들의 적용 동안 발견된 데이터의 코퍼스의 부분들 각각에서 사용된 언어 및 입력 질의의 언어에 관한 심도 있는 분석(deep analysis)을 수행한다. 적용되는 추론 알고리즘들에는 수백 개 또는 심지어 수천 개들이 있을 수 있는데, 이들 각각은, 서로 다른 분석, 예컨대, 비교를 수행하고, 점수(score)를 생성한다. 예를 들어, 어떤 추론 알고리즘들은 데이터의 코퍼스의 발견된 부분들 및 입력 질의의 언어 내에서 용어들(terms)의 매칭 및 동의어들을 찾을 수 있다. 다른 추론 알고리즘들은 그 언어에서 시간적인(temporal) 또는 공간적인(spatial) 특징들을 찾을 수 있는 한편, 다른 추론 알고리즘들은 데이터의 코퍼스의 부분의 소스를 평가할 수 있고 그것의 진실성(veracity)을 평가할 수 있다.
여러 가지 추론 알고리즘들로부터 획득된 점수들은, 그 잠재적 답변(potential response)이 그 추론 알고리즘의 특정 초점 영역에 기초하여 입력 질의에 의해 추론되는 정도를 표시한다. 그런 다음, 각각의 결과적인 점수는 통계적 모델에 대비하여 가중(weight)된다. 그 통계적 모델은, WatsonTM QA 시스템의 훈련(training) 기간 동안 특정 영역을 위해 두 개의 유사한 구절들(passages) 사이의 추론(inference)을 수립함에 있어서 추론 알고리즘이 얼마나 잘 수행되었는지를 캡쳐한다. 그런 다음, 통계적 모델은 WatsonTM QA 시스템이 그 잠재적 회신(potential response), 즉, 후보 응답이 질의에 의해 추론된다는 증거에 관하여 갖는 신뢰성(confidence)의 수준을 요약하기 위해 사용될 수 있다. 이 프로세스는, WatsonTM QA 시스템이 다른 것들보다 상당히 더 확실한 것으로 드러나는(surface) 후보 응답들을 식별하고, 그래서 입력 질의에 대해, 최종 응답, 또는 응답들의 랭크된(ranked) 세트를 생성할 때까지, 그 후보 응답들 각각에 대해 반복될 수 있다. WatsonTM QA 시스템에 관한 더 많은 정보는, 예를 들어, IBM 코포레이션 웹사이트, IBM 레드북들(Redbooks) 등으로부터 획득될 수 있다. 예를 들어, WatsonTM QA 시스템에 관한 정보는, 유안(Yuan) 등의 "Watson and Healthcare" (IBM 디벨롭퍼웍스(developerWorks), 2011) 및 "The Era of Cognitive Systems:An Inside Look at IBM Watson and How it Works"(by Rob High, IBM Rdebooks, 2012)에서 확인될 수 있다.
도 2는 실시예들의 측면들이 구현될 수 있는 데이터 처리 시스템의 일 예의 블록도이다. 데이터 처리 시스템(200)은 도 1에서의 서버(104) 및 클라이언트(110)와 같은 컴퓨터의 일 예인데, 여기에는 본 발명의 실시예들을 위한 프로세스들을 구현하는 컴퓨터 사용가능 코드 또는 명령들이 위치할 수 있다. 일 실시예에서, 도 2는 서버(104)와 같은 서버 컴퓨팅 디바이스를 나타내며, 이는 이후에 설명되는 실시예들의 추가 메커니즘들을 포함하도록 증강되는 QA 시스템(100) 및 QA 시스템 파이프라인(108)을 구현한다.
도시된 예에서, 데이터 처리 시스템(200)은 노쓰 브릿지(north bridge) 및 메모리 컨트롤러 허브(NB/MCH)(202) 및 사우쓰 브릿지 및 입력/출력(I/O) 컨트롤러 허브(SB/ICH)(204)를 포함하는 허브 아키텍쳐를 채용한다. 처리장치(processing unit)(206), 메인 메모리(208), 그래픽스 프로세서(210)은 NB/MCH(202)에 연결된다. 그래픽스 프로세서(210)는 AGP(accelerated graphics port)를 통해 NB/MCH(202)에 연결될 수 있다.
도시된 예에서 LAN 어댑터(212)는 SB/ICH(204)에 연결된다. 오디오 어댑터(216), 키보드 및 마우스 어댑터(220), 모뎀(222), 읽기 전용 메모리(ROM)(224), 하드 디스크 드라이브(HDD(226), CD-ROM 드라이브(230), 범용 직렬 버스(USB) 포트들 및 다른 통신 포트들(232), PCI/PCIe 디바이스들(234)은 버스(238) 및 버스(240)를 통해 SB/ICH(204)에 연결된다. PCI/PCIe 디바이스는, 예를 들어, 이더넷 어댑터들, 애드인 카드들, 및 노트북 컴퓨터용 PC 카드들을 포함할 수 있다. PCI는 카드 버스 컨트롤러를 사용하는 반면, PCIe는 그렇지 않다. ROM(224)은, 예를 들어, 플래쉬 베이직 입력/출력 시스템(BIOS)일 수 있다.
HDD(266) 및 CD-ROM 드라이브(230)는 버스(240)를 통해 SB/ICH(204)에 연결된다. HDD(226) 및 CD-ROM 드라이브(230)는, 예를 들어, IDE(integrated drive electronics) 또는 SATA(serial advanced technology attachment) 인터페이스를 사용할 수 있다. 수퍼 I/O(SIO) 디바이스(236)는 SB/ICH(204)에 연결될 수 있다.
운영체제는 처리장치(206) 상에서 실행된다. 운영체제는 도 2에서 데이터 처리 시스템(200) 내에서 여러 가지 컴포넌트들의 제어를 조정하고 제공한다. 클라이언트로서, 운영체제는 Microsoft®Windows7®과 같은 상업적으로 이용가능한 운영체제일 수 있다. JavaTM 프로그래밍 시스템과 같은 객체 지향형 프로그래밍 시스템은 운영체제와 함께 실행될 수 있으며, 데이터 처리 시스템(200) 상에서 실행되는 JavaTM 프로그램들 또는 어플리케이션들로부터 그 운영체제 대한 호출(calls)을 제공한다.
서버로서, 데이터 처리 시스템(200)은, 예를 들어, AIX®(Advanced Interactive Executive) 운영체제 또는 LINUX® 운영체제를 실행하는, IBM® eServerTM System p® 컴퓨터 시스템일 수 있다. 데이터 처리 시스템(200)은 처리장치(206)에서 복수의 프로세서들을 포함하는 대칭형 멀티프로세서(symmetric multiprocessor, SMP) 시스템일 수 있다. 이와는 다르게, 단일 프로세서 시스템이 채용될 수 있다.
운영체제를 위한 명령들, 객체 지향형 프로그래밍 시스템, 및 어플리케이션들 도는 프로그램들은, HDD(226)과 같은 스토리지 디바이스들 상에 위치하고, 처리장치(206)에 의한 실행을 위해 메인 메모리(208)로 로드될 수 있다. 객체 지향형 프로그래밍 시스템이 여기서 일 예로 사용되고 있으나, 데이터 처리 시스템(200)은, 선언형(declarative), 객체지향형, 절차형(procedural), 또는 특정 구현에 적합한 다른 어떤 유형의 프로그래밍 언어를 포함하는, 어떤 프로그래밍 언어를 채용할 수 있다는 것을 이해해야 할 것이다. 본 발명의 실시예들을 위한 처리들은, 컴퓨터 사용가능 프로그램 코드를 사용하여 처리장치(206)에 의해 수행될 수 있는데, 이 컴퓨터 사용가능 프로그램 코드는, 예를 들어, 메인 메모리(208), ROM(224)과 같은 메모리에, 또는 예를 들어, 하나 또는 그 이상의 주변 디바이스들(226 및 230)에 위치할 수 있다.
도 2에 도시된 버스(238 또는 240)과 같은 버스 시스템은, 하나 또는 그 이상의 버스들로 이루어질 수 있다. 물론, 버스 시스템은 패브릭(fabric) 또는 아키텍쳐에 연결된 서로 다른 컴포넌트들 또는 디바이스들 간의 데이터의 전송을 제공하는 통신 패브릭 또는 아키텍쳐의 어떤 유형을 사용하여 구현될 수 있다. 도 2의 모뎀(222) 또는 네트워크 어댑터(212)와 같은 통신 유닛은, 데이터를 송신 및 수신하기 위해 사용되는 하나 또는 그 이상의 디바이스들을 포함할 수 있다. 예를 들어, 메모리는, 도 2의 메인 메모리(208), ROM(224), 또는 NB/MCH(202)에서 발견되는 것과 같은 캐시일 수 있다.
당해 기술 분야에서 통상의 기술을 가진 자들은 그 구현에 의존하여 도 1 및 2에 도시된 하드웨어가 변경될 수 있다는 것을 이해할 것이다. 도 1 및 2에 도시된 하드웨어에 추가로 또는 그것들 대신에, 플래쉬 메모리, 이에 상당하는 비휘발성 메모리, 또는 광 디스크 드라이브들 등과 같은 다른 인터넷 하드웨어 또는 주변 디바이스들이 사용될 수 있다. 또한, 실시예들의 프로세스들은, 본 발명의 사상 및 범위를 벗어나지 않고서, 앞서 언급된 SMP 시스템 이외의 멀티프로세서 데이터 처리 시스템에 적용될 수 있다.
더욱이, 데이터 처리 시스템(200)은, 클라이언트 컴퓨팅 디바이스, 서버 컴퓨팅 디바이스, 태블릿 컴퓨터, 랩탑 컴퓨터, 전화기 또는 통신 디바이스, 개인용 디지털 보조기기(PDA) 등을 포함하는 다수의 상이한 데이터 처리 시스템들 중 어떤 형태를 취할 수 있다. 몇몇 실시예들에서, 데이터 처리 시스템(200)은, 예를 들어, 운영체제 파일들 및/또는 사용자-생성 데이터를 저장하기 위한 비휘발성 메모리를 제공하도록 플래쉬 메모리로 구성되는 휴대용 컴퓨팅 디바이스일 수 있다. 기본적으로, 데이터 처리 시스템(200)은, 구조적 제한없이, 공지되거나 이후에 개발되는 데이터 처리 시스템 중 어떤 것일 수 있다.
도 3은 일 실시예에 따라 입력 질의를 처리하기 위한 QA 시스템 파이프라인을 도시한다. 도 3의 QA 시스템 파이프라인은, 예를 들어, 도 1에서 QA 시스템(100)의 QA 시스템 파이프라인(108)으로 구현될 수 있다. 도 3에 도시된 QA 시스템 파이프라인의 단계들(stages)은, 하나 또는 그 이상의 소프트웨어 엔진들, 컴포넌트들 - 이것들은 특정 단계에 귀속된(attributed to) 기능을 구현하기 위한 로직으로 구현됨 - 로서 구현될 수 있다는 것을 이해해야 할 것이다. 각 단계는 이러한 소프트웨어 엔진들, 컴포넌트들 등 중 하나 또는 그 이상을 사용하여 구현될 수 있다. 소프트웨어 엔진들, 컴포넌트들 등은 하나 또는 그 이상의 데이터 처리 시스템들 또는 디바이스들의 하나 또는 그 이상의 프로세서들 상에서 실행될 수 있고, 그 데이터 처리 시스템들 중 하나 또는 그 이상 상에서 하나 또는 그 이상의 데이터 스토리지 디바이스들, 메모리들 등에 저장된 데이터를 이용 또는 동작시킬 수 있다. 도 3의 QA 시스템 파이프라인은, 예를 들어, 이후에 기술되는 실시예들의 향상된 메커니즘을 구현하기 위해 단계들 중 하나 또는 그 이상에서 증강(augment)될 수 있고, 향상된 메커니즘을 구현하기 위해 추가 단계들이 제공될 수 있으며, 또는 파이프라인(300)과의 인터페이싱을 위해 그리고 실시예들의 향상된 기능 및 동작들을 구현하기 위해, 파이프라인(300)으로부터 독립된 로직이 제공될 수 있다.
도 3에 도시된 바와 같이, QA 시스템 파이프라인(300)은 입력 질의를 분석하고 최종 답변을 생성하도록 QA 시스템이 동작하는 복수의 단계들(310-380)을 포함한다. 처음의 질의 입력 스테이지(310)에서, QA 시스템은 자연 언어 포맷으로 제공되는 입력 질의를 받는다. 즉, 사용자는 사용자 인터페이스를 통해, 사용자가 응답을 획득하기를 바라는 입력 질의, 예컨대, "Who are Washington's closest advisors?"를 입력할 수 있다. 그 입력 질의를 수신하는 것에 응답하여, QA 시스템 파이프라인(500)의 다음 단계, 즉, 질의 및 주제 분석 단계(320)는, 입력 질의로부터 주요 특징들을 추출하고, 유형들, 예컨대, 이름들 날짜들, 또는 다양한 다른 정의된 주제들 중 어떤 것에 따라, 주요 특징들을 분류하기 위해, 자연 언어 처리(NLP) 기술들을 사용하여 그 입력 질의를 파싱(parse)한다. 예를 들어, 위에서의 질의 예에서, "who" 라는 용어는 사람의 아이덴티티(identity)가 검색되고 있다는 것을 나타내는 "persons"에 대한 주제와 연관될 수 있고, "Washington"은 그 질의가 연관되는 사람의 적절한 이름으로 식별될 수 있으며, "closest"는 가까움(proximity) 또는 관계(relationship)를 나타내는 단어로서 식별되며, "advisors"는 명사 또는 다른 언어 주제(topic)를 나타낼 수 있다.
그런 다음, 식별된 주요 특징들은, 하나 또는 그 이상의 가설들(hypotheses)을 생성하기 위해, 그 질의를 데이터/정보의 코퍼스들(corpora, 이후, '코포라'라고도 함)에 적용될 수 있는 하나 또는 그 이상의 쿼리들로 분해하는 질의 분해 단계(330) 동안 사용될 수 있다. 쿼리들은 구조 쿼리 언어(Structure Query Language, SQL) 등과 같은 공지된 또는 이후에 개발되는 쿼리 언어로 생성될 수 있다. 쿼리들은, 전자 텍스트, 문서들, 아티클들(articles), 웹사이트들 등 - 이것들은 데이터/정보의 코퍼스들(345)을 구성함 - 에 관한 정보를 저장하는 하나 또는 그 이상의 데이터베이스들에 적용될 수 있다. 즉, 이들 여러 가지 소스들 자신들, 소스들의 집합들 등은 코퍼스들(corpora)(345) 내에서 서로 다른 코퍼스(347)를 나타낼 수 있다. 특정 구현에 따라 달라지는 여러 가지 기준에 기초하여 문헌들의 서로 다른 집합들에 대해 정의된 서로 다른 코퍼스(347)가 있을 수 있다. 예를 들어, 서로 다른 코퍼스들은 서로 다른 주제들(topics), 주제 카테고리들, 정보의 소스들 등에 대해 구축될 수 있다. 일 예로서, 첫 번째 코퍼스는 헬스케어 문서들과 연관될 수 있는 반면에, 두 번째 코퍼스는 재정적 문서들과 연관될 수 있다. 이와는 다르게, 하나의 코퍼스는 미국 에너지국(U.S. Depratment of Energy)에 의해 발행되는 문서들일 수 있는 반면, 다른 코퍼스는 IBM 레드북스 문서들일 수 있다. 일부 유사한 속성을 갖는 컨텐츠의 모든 집합은 코퍼스들(345) 내에서 코퍼스(347)로 고려될 수 있다.
쿼리들은, 전자 텍스트들, 문서들, 기사들, 웹사이트들 등 - 이것들은 데이터/정보의 코포라 또는 코퍼스, 예컨대, 도 1에서 데이터의 코포라/코퍼스(106)를 구성함 - 에 관한 정보를 저장하는 하나 또는 그 이상의 데이터베이스들에 적용될 수 있다. 가설 생성 단계(340)에서 생성할 데이터/정보의 코퍼스에 적용되고 있는 쿼리들은 결국, 평가될 수 있는 입력 질의에 응답하기 위한 잠재적 가설들을 식별하는 결과를 가져온다. 즉, 쿼리들의 적용은 결국 특정 쿼리의 기준과 매치하는 데이터/정보의 코퍼스의 부분들의 추출 결과를 가져온다. 그런 다음, 코퍼스의 이들 부분들은, 입력 질의에 응답하기 위한 가설들을 생성하기 위해, 가설 생성 단계(340) 동안, 분석되고 사용될 수 있다. 이들 가설들은 또한 여기서는, 입력 질의에 대한 "후보 응답들(candidate answers)"로서도 언급된다. 이 단계(340)에서, 어떤 입력 질의에 대해, 평가될 필요가 있을 수 있는 생성된 수백 개의 가설들 또는 후보 응답들이 있을 수 있다.
그런 다음, 단계 350에서, QA 시스템 파이프라인(300)은, 특정 가설이 입력 질의에 대한 정확한 응답일 가능성을 평가하기 위해 증거 점수매김(evidence scoring)을 수행할 뿐만 아니라, 각각의 가설 또는 "후보 응답"의 언어 및 입력 질의의 언어의 심도 있는 분석과 비교를 수행한다. 위에서 언급한 바와 같이, 이는 복수의 추론 알고리즘들(reasoning algorithms)과 관련될 수 있는데, 추론 알고리즘들 각각은 입력 질의의 언어 및/또는 코퍼스의 컨텐트 - 이는 그 가설을 지원하거나, 혹은 지원하지 않는 증거를 제공함 - 에 관해 독립적인 유형의 분석을 수행한다. 각각의 추론 알고리즘들은, 대응하는 가설의 정확성의 척도(measure of the correctness), 즉 가설에서 신뢰성의 척도(measure of confidence) 뿐만 아니라 쿼리들의 적용에 의해 추출되는 데이터/정보의 코퍼스의 개개의 부분들의 관련성(relevance)의 척도(measure)를 나타내는, 그것이 수행하는, 분석에 기초하여, 점수를 생성한다.
종합 단계(synthesis stage)(360)에서, 여러 가지 추론 알고리즘들에 의해 생성된 다수의 관련성 점수들(relevance scores)은 여러 가지 가설들에 대해 신뢰성 점수들(confidence scores) 내에 종합(synthesize)될 수 있다. 이 프로세스는 여러 가지 점수들에 가중치들을 적용하는 것과 관련될 수 있는데, 여기서 가중치들은 이후에 기술되는 바와 같이, QA 시스템에 의해 채용되고 및/또는 동적으로 업데이트된 통계 모델의 훈련(training)을 통해 결정되었다. 가중된 점수들은, 이들 점수들이 개별 가설들 또는 후보 응답들에 대해 신뢰성 점수 또는 척도(measure)를 생성하기 위해 결합(combine)될 수 있는 방식으로 식별하는 QA 시스템의 훈련을 통해 생성된 통계 모델에 따라 처리될 수 있다. 이 신뢰성 점수 또는 척도는, 후보 응답이 입력 질의에 의해 추론된다는, 즉 후보 응답이 입력 질의에 대한 정확한 응답이라는, 증거에 관해, QA 시스템이 갖는 신뢰성의 수준(level of confidence)을 요약한다.
그 결과의 신뢰성 점수들 또는 척도들은 최종 신뢰성 병합 및 랭킹 단계(370)에 의해 처리되는데, 이 단계는 그 신뢰성 점수들 및 척도들을 비교할 수 있고, 그것들을 미리 결정된 스레쉬홀드들과 비교할 수 있고, 또는 입력 질의에 대한 응답일 가능성이 가장 큰 가설들/후보 응답들이 어느 것인지를 결정하기 위해 그 신뢰성 점수들에 관해 다른 어떤 분석을 수행할 수 있다. 가설들/후보 응답들은, 가설들/후보 응답들(이후에는 간단히 "후보 응답들"로 일컬어짐)의 랭크된 리스팅을 생성하기 위해 이들 비교들에 따라 랭크될 수 있다. 단계 380에서, 후보 응답들의 랭크된 목록으로부터, 최종 응답 및 신뢰성 점수, 또는 후보 응답들 및 신뢰성 점수들의 최종 세트가 생성되어 오리지널 입력 질의의 제출자에게 출력될 수 있다.
도 3에 도시되고, 위에서 기술된 바와 같이, 가설 생성 단계(340)는, 텍스트 문서들(textual documents) 또는 문서들의 부분들 및 연관된 메타데이터를 포함할 수 있는, 데이터의 코퍼스(또는 정보)에 대한 하나 또는 그 이상의 쿼리들의 적용과 관련된다. 실시예들의 메커니즘들에 따라, 이 메타데이터는 구조적 그리고 개념적 주석들을 포함하는 문서들을 위한 주석들(annotations)을 포함할 수 있다. 주석들은, 문서들, 또는 문서들의 부분들에서 텍스트의 섹션들과 섹션 헤딩들의 연관을 식별하기 위해 사용될 수 있는 추가 정보를 제공함으로써, 입력 질의에 대한 후보 응답들을 생성함에 있어서 가설 생성 단계(340)를 지원한다. 텍스트의 섹션들의 섹션 헤딩들과의 연관들은 그 문서들과 연관된 메타데이터로 조직화(codify)되어 있을 수 있고, 이러한 연관들은, 예를 들어, 후보 응답들이 발견되는 섹션들에 기초하여 전체적으로 그 문서 내에서의 구절(passages)에 대해 또는 그 문서에 대해 점수들을 변경함으로써, 후보 응답들을 생성함에 있어서 설 생성 단계(340)에 의해 마찬가지로 사용될 수 있다.
즉, 실시예들에 따라, 섹션 텍스트/ 헤딩 상관 메커니즘(390)은, 텍스트 컨텐트의 부분들, 예컨대, 문서들, 문서들의 부분들, 웹 페이지들 등을 분석함에 있어서 사용하기 위한 구조적 그리고 개념적 주석들을 생성하기 위해, 그러한 패턴들이 존재하는지를 식별하도록 컨텐트의 부분들에 대해 구조적 그리고 개념적 주석들의 패턴들을 적용하기 위해, 섹션 텍스트 사이 그리고 섹션 텍스트와 섹션 헤딩들 사이의 상관관계들을 끌어내도록(draw) 패턴들의 적용에 기초하여 컨텐트의 부분들에 점수를 매기기 위해, 그리고, 섹션 명확화(section disambiguation)를 수행하기 위해 그리고 부스팅(boosting)을 위해 입력으로 외부 문맥(external context)을 사용하기 위해, 제공된다. 섹션 텍스트/헤딩 상관 메커니즘(390)에 의해 수행되는 이들 동작들 각각은 이후에 더 상세히 기술될 것이다.
여기에서 간단히 문서(document)로서 언급되는, 나누어질(sectioned) 컨텐트의 부분은 구조적 그리고 개념적 주석들 둘 다로 주석이 달린다. 이 예는 구조적 주석들을 갖는 문서를 설명하지만, 실시예들은 그러한 구조적 주석들을 필요로 하지 않고 그리고 이미 정의된 지식 리소스들을 사용하여 문서 그 자체의 컨텐트 내에서 개념들의 식별에 전적으로 기초하여 동작할 수 있다는 것을 다시 이해해야 할 것이다. 구조적 주석들이 제공되는 경우들에 있어서, 이들 구조적 주석들은, 텍스트의 섹션들, 텍스트의 부분들 간의 유사성들(affinities), 개념들과 텍스트의 유사성들, 실제 또는 추론된 섹션 헤딩들과 텍스트의 섹션들의 유사성들을 식별하기 위해 개념 식별 및 주석들에 추가하여 사용될 수 있다.
설명된 예에서, 구조적 주석 유형들은, 단락 바꿈들(paragraph breaks), 텍스트에 뒤따르는 콜론, 또는 컨텐트의 그 부분의 형태의 구조, 포맷 또는 다른 식별들(identifications)을 표시하는 다른 유형의 주석들과 같은 것들을 포함할 수 있다. 이들 구조적 주석들은, 프로그래머에 의해 분명히 코딩된, 또는 표준 기계 학습 기술들을 사용하여 정보의 샘플 코퍼스로부터 학습된, 구조 또는 포맷팅 규칙들의 적용을 통해 컨텐트의 부분에서 섹션 텍스트/헤딩 상관 메커니즘(390)에 의해 식별된다. 이러한 구조적 주석들은 당해 기술 분야에서 일반적으로 알려져 있으며, 문서 또는 문서의 메타데이터, 예컨대, 워드 프로세서들 등 내에 자동으로 또는 수동으로 입력될 수 있고, 사용자가 그 문서의 생성에서 어떤 키스트로크들(keystrokes)을 사용할 때, 또는 웹 페이지들을 생성하기 위한 마크업 언어들 또는 툴들이 문서의 구조적 측면들을 나타내기 위해 흔히 태그들 및 다른 구조적 메타데이터를 삽입할 때, 문서의 코딩 내에 구조적 주석들을 흔히 삽입한다. 그래서, 구조적 주석들은 문서 내에, 또는 그 문서와 연관된 메타데이터의 일부로서 이미 존재할 수 있고, 비록 이것이 어떤 실시예들에서 또한 가능하지만, 섹션 텍스트/헤딩 상관 메커니즘(390)에 의해 삽입 또는 추가될 필요가 없을 수 있다.
한편, 개념적 주석들(conceptual annotations), 예컨대, 명명된 엔티티들(named entities), 의미상 그리고 어휘의 관계들(lexical ralationships) 등은, 하나 또는 그 이상의 입력 온톨로지들(ontologies), 즉, 영역 내에서 개념들의 세트로서 지식의 형식적 표현들, 및 개념들의 쌍들 사이의 관계들에 기초하고, 그에 의해 영역을 모델링한다. 이들 온톨로지들은 키 영역 의존 또는 독립 온톨로지들, 예를 들어, 해부의 기본적인 모델(Foundational Model of Anatomy, FMA)(의학적 영역 그리고 특히 인간의 몸의 모든 부분들 및 기능 시스템들의 영역-어휘를 기술하는 온톨로지), 워드넷(WordNet) 등, 파생된(derived) 의미 네트워크들(링크되고 관련된 용어들, 사실들, 및 개념들의 네트워크), 및/또는 문서들의 대표적인 코퍼스에 기초하여 이들 온톨로지들 및 의미 네트워크들에 대한 수동(manual) 또는 계산된 확장들(extensions)을 포함할 수 있다.
예를 들어, 파생된 의미 네트워크들은, 예컨대, "펠릭스(Felix)"가 개념 "cat"의 한 인스턴스임을 인식함으로써, 텍스트의 특정 부분을 온톨로지에서 특정 개념과 연관시키는 것을 포함할 수 있으며, 비록 그 텍스트 자체가 언급하지 않더라도, 펠릭스(Felix)가 4 개의 다리, 꼬리를 가지며, 쥐를 쫓는 것을 좋아한다는 것을 또한 추론할 수 있다. 문서, 또는 문서들의 코퍼스에서 텍스트의 전체 바디에 대해 이러한 연관들을 수행하는 것은, 결국 그 텍스트에서 인스턴스들 사이의 구조적 링크들로서 근본적인 온톨로지들을 사용하여 구축되는 의미 네트워크가 될 수 있다.
또 다른 예에서, 파생된 의미 네트워크는, 자연 언어 텍스트를 파싱(parsing) 함으로써, 기존의 지식 리소스에 이미 저장되지 않은 새로운 사실들의 학습을 포함할 수 있다. 예를 들어, "Felix 그 고양이가 싸우고 있었고 단지 세 개의 다리만을 가지고 있다(Felex the cat was in the fight and has only three legs)"는 텍스트에서, (1)고양이들이 싸움 중에 있을 수 있고, (2) 고양이들이 단지 네 개의 다리가 아니라 세 개의 다리를 가질 수 있다는 것을 포함하는 몇 가지 새로운 사실들을 추론할 수 있다. 이 정보는 파생된 의미 네트워크의 일부로서 저장될 수 있다. 의미 네트워크들의 다른 유형들은, 텍스트의 파싱, 그리고 용어들, 사실들, 개념들 등 사이의 관계들의 결정으로부터 구축될 수 있다.
따라서, 문서들의 코퍼스를 처리함에 있어서, 이들 용어들 사이의 관계를 나타내는 용어들의 패턴들이 식별될 수 있고, 이 정보는 이미 수립된 온톨로지들 및 의미 네트워크들을 증가시키기 위해 사용될 수 있다.(예컨대, 용어들 "두통(headache)" 및 "머리에서의 고통(pain in the head)"이 흔히 서로 바꿔가며 또는 함께 그 코퍼스에서의 문서들에서 사용될 수 있고, 따라서, 의미 네트워크에서 링크될 수 있음)
예를 들어, "의료(Medical)" 영역 내에서, 의료 영역에 대한 온톨로지에서 "질병(Disease)", "약물(Drug)", 및 "치료(Treatment)" 등과 같은 개념들을 관련된 개념들로서 함께 링크할 수 있다. 의료 영역을 위한 의미 네트워크에서, "headache", "pain in the head" 및 "두통(cephalgia)" 이라는 용어들을 함께 링크할 수 있고, 그리하여 그것들이 모두 같은 개념으로 맵핑되고 따라서 의미상으로 동등한 것, 즉, 동의어들로서 처리되도록 한다. 이와 유사하게, "T3" 및 "T4"와 같은 호르몬 인스턴스들(hormone instances)은, 비록 그것들이 동일한 엔티티들은 아니지만 온톨로지에서 그것들의 연관(linkage)에 기초하여 더 밀접하게 관련된 것으로 인식됨에도 불구하고, 둘 다 의료 영역에 대한 온톨로지/의미 네트워크에서 갑상선 호르몬들(thyroid hormones)로서 인식될 수 있다. 동의어들의 예들은 의미 네트워크들 및 온톨로지들의 사용에 의해 인식가능한 용어들 간의 연관의 일 예로서 이 설명 전반에 걸쳐 사용되고 있지만, 실시예들은 그러한 것으로 한정되지 않으며 어떠한 의미상 관계들도 의미 네트워크들 및 온톨로지들에 의해 표현될 수 있다는 것이 이해되어야 할 것이다.
따라서, 온톨로지들, 의미 네트워크들, 및 특정(specific) 및 포괄적인(generic) 영역들을 위한 다른 지식 베이스들은, 개념 주석들로 문서들에 주석을 달기 위해 사용될 수 있다. 예를 들어, 영역을 위한 의미 네트워크는 문서에서 용어들을 인식하고, 관련된 개념들의 대응하는 세트를 식별하고 그것에 의해 이들 관련된 개념들에 대응하는 그 문서의 다른 부분들을 식별하도록, 영역 특정 온톨로지와 함께 사용될 수 있는 개념에 그들 용어들을 관련시키기 위해, 사용될 수 있다.
일 예로서, 문서는, 그 문서의 일 부분에, "headache" 라는 용어를 포함할 수 있고, 다른 부분에, "아세트아미노펜(acetaminophen)" 이라는 용어를 포함할 수 있다. 의미 네트워크 및 온톨로지는 "headache" 라는 용어가 "증상(symptom)" 또는 "병(illness)" 또는 다른 유사한 개념인 것으로 인식할 수 있고, "acetaminophen" 이라는 용어가 "drug" 인 것으로 인식할 수 있다. 더욱이 그 문서는 또한 그 문서의 또 다른 부분에 "pain in the head" 라는 용어 - 이는, 의미 네트워크가 "headache" 라는 용어와 의미상으로 관련된 것으로, 예컨대, "headache"에 대한 동의어인 것으로 식별할 수 있음 - 를 포함할 수 있다. 따라서, 이러한 방법으로, 문서의 부분들은, 온톨로지컬하게(ontologically) 관련된 개념들(drug acetaminophern과의 headache/pain in the head) 뿐만 아니라 유사한 개념들(headache 및 pain in the head)로 정해지는 것으로 서로 간에 개념적으로 관련될 수 있다. 이러한 방법에서, 문서 내의 개념들의 패턴은 식별될 수 있고, 그에 따라 관련된 개념들을 갖는 관련된 텍스트의 섹션이 식별될 수 있다. 더욱이, 이것들을 구조적 주석들과 결합하는 것, 구조적 및 개념적 주석들의 패턴들은, 실제 및/또는 추론된 섹션 헤딩들 및 구조의 패턴들뿐만 아니라 관련된 텍스트의 섹션들 및 그들의 연관된 개념 그룹핑들/군집들을 식별하기 위해, 사용될 수 있다.
즉, 실시예들에 따라, 구조적 및/또는 개념적 주석들은, 문서 내에서 후보 섹션들 및/또는 후보 실제 또는 추론된 섹션 헤딩들을 식별하기 위해 다차원 패턴들을 정의하기 위한 기준(basis)으로서 사용될 수 있다. 일 실시예에서, 이들 패턴들은, 섹션 헤딩 내에서 개념 주석들 사이의 관계들뿐만 아니라 섹션 헤딩들에서 예상되는 포맷팅 또는 다른 구조적 엘리먼트들(예컨대, 섹션 바꿈들(section breaks), 단일 라인들, 특수 문자들 등)을 식별하는 구조적 주석들을 포함한다. 이들 섹션 헤딩 패턴들은 기계 학습 기술들을 사용하여 샘플 코퍼스로부터 학습되는, 사용자 공지 영역 섹션 정의들(user known domain section definitions)로부터 사용자에 의해 분명히 특정될 수 있고, 또는 사용자 특정 및 자동 학습 기술들의 조합을 사용하여 정의될 수 있다. 이러한 섹션 헤딩 패턴들의 예들은, 다음을 포함한다.
<단일 라인><섹션 바꿈 여백>(<섹션 또는 필드 후보><콜론-또는 다른 섹션 종료 구두점>)
<단일 라인><단일 엔티티>(예컨대, <사람 이름><여백>) + <섹션 바꿈 여백>
<단일 라인><섹션 바꿈 여백><섹션 또는 필드 후보><콜론>
<<개념 A>,<개념B>,<개념C> 중 적어도 하나를 포함하는 단락>
<단일 라인><콜론>?<개념E를 포함하는 단락><개념F를 포함하는 단락><섹션 바꿈 여백>
패턴들은 실제 섹션 헤딩들이 될 가능성이 있는 텍스트의 부분들을 식별하기 위해 그 문서 내 텍스트에 적용될 수 있다. 텍스트의 부분들이 특정 패턴과 매치하는지를 결정하기 위해, 자연 언어 처리(Natural Language Processing, NLP) 기술들은 이들 패턴들과 함께 더 사용될 수 있다. 예를 들어, 사람의 이름을 알기 위해 NLP가 사용될 수 있고, 그런 다음 그 패턴의 일부로서, 사람의 이름인 그 용어(term)를 "<PersonName>"을 지정하는 패턴과 상관시킨다.
만약 텍스트의 일부분이 지정된 패턴과 매칭하는 것으로 식별되면, 텍스트의 그 부분은 후보 섹션 헤딩으로 식별될 수 있고, 텍스트의 그 부분의 적절한 포인터들 또는 식별자들, 또는 텍스트의 그 부분의 카피(copy)는 이후에 설명되는 바와 같이 추가 처리를 위해 후보 섹션 헤딩 데이터 구조에 저장될 수 있다. 이 후보 섹션 헤딩 데이터 구조는 후보 섹션 헤딩들로 고려될 수 있는 문서 내의 텍스트의 복수의 부분들을 위한 엔트리들을 포함할 수 있다.
프레임들(로직 또는 지식을 인코딩하기 위해 사용되는 인공 지능, 예컨대, 자연 언어 트리플렛들(natural language triplets)의 형태에서 논리적 사실들이 그 텍스트로부터 추출되어 적절한 지식 베이스에 저장되는 구문 프레임들(syntactic frames)의 형태에서, 개념 주석들 간의 관계들을 포함하는 유사한 패턴들, 속성(attribute), 값-쌍 트리플렛들, 즉 (속성, 값-쌍)(attribute, value-pair), 및 구조적 주석들 등은 서로에 대해 및/또는 유사한 실제 또는 추론된 섹션 헤딩들에 대해 대응하는 텍스트의 섹션들인 문서 내 텍스트의 부분들을 식별하기 위해 정의될 수 있다. 복수의 패턴들이 정의되어, 어느 패턴들이 그 문서의 텍스트의 컨텐트에 의해 매치되는지를 식별하기 위해 그 문서의 텍스트에 적용될 수 있다. 예를 들어, 패턴, 또는 패턴을 지정하는 규칙이 다음의 유형을 가질 수 있다.
<단일 라인><콜론>?<개념E를 포함하는 단락><개념F를 포함하는 단락><섹션 바꿈 여백>
패턴들은, 관련된 개념들 및 문서의 그 부분들의 텍스트 컨텐트 내에서 그러한 관련된 개념들의 예상되는 순서화(expected ordering) 뿐만 아니라 구조적 포맷들을 지정할 수 있다. 예를 들어, 만약 코퍼스의 문서들에서 개념F(ConceptF)가 일반적으로 개념E 이후에 나타나는 것으로 알려져 있으면, 위의 예에서 제시된 바와 같이 패턴을 지정하는 규칙은 그들 내에서 관련된 개념들 E 및 F를 갖는 문서들의 부분들을 매우 확실히 식별할 것이다.
매칭 규칙들/패턴들은 매칭 점수매김 방법론(matching scoring methodology)의 정도에 기초하여 점수가 매겨질 수 있다. 매치(a match)를 점수 매김(scoring)하는 것은 임의 개수의 자연 언어 처리(NLP) 또는 예상되는 것을 실제 결과들과 비교하기 위한 수학적 기술들을 사용하여 수행될 수 있다. 온톨로지의 맥락에서, 개념 매치 점수들의 세트를 리턴하도록 레버리지될 수 있는 "의미론적 유사성(semantic similarity)"을 위한 몇 가지 알고리즘들이 있다. 채용되는 방법들의 몇몇 예들은 직접 텍스트 매칭, 그 텍스트에서 개념들의 연관된 n-그램들(n-grams)을 수동으로(manually) 특정된 패턴들과 비교하는 것, 등을 포함할 수 있다.
점수 매김은 관심 영역(domain of interest)을 위해 수립된 패턴들/규칙들 각각에 관해 수행될 수 있다. 따라서, 예를 들어, 만약 처리되고 있는 코퍼스의 영역이 의료 영역, 또는 종양학(Oncology) 영역과 같은 더 구체적인 영역이라면, 규칙들/패턴들의 대응하는 세트는, 그 코퍼스의 영역을 위해 섹션 텍스트/헤딩 상관 메커니즘(390)에 의해 규칙들/패턴 스토리지로부터 검색(retrieve)될 수 있다. 그런 다음, 이들 규칙들/패턴들은, 어떤 개념들 및 관련된 개념들에 대응하는 텍스트의 부분들에 대응하는, 후보 섹션 헤딩들 및 텍스트의 부분들 - 섹션 헤딩과 연관된 섹션들에 대응하는 섹션 헤딩들 및/또는 텍스트의 부분들을 나타내는 구조적 패턴들을 가짐 - 을 식별하기 위해 그 코퍼스 내 문서에 적용될 수 있다. 따라서, 문장들 및 단락들의 형태에서 제안된 섹션 텍스트는 후보 실제 또는 추론된 섹션 헤딩들과 함께 식별된다.
그런 다음, 제안된 섹션 텍스트는 온톨로지들 및 다른 구조화된 지식 리소스들에서 정의된 개념적 유사성들을 통해 그것의 잠재적 해당 섹션 헤딩들과 관련된다. 예를 들어, 온톨로지는, 일반적으로 텍스트의 단일 섹션 내에서 "Disease"의 개념이 "Treatment"의 개념에 선행하다는 것을 지정하는 섹션 텍스트 규칙/패턴을 갖는, "Disease" 및 "Treatment"를 포함하는 개념들의 그룹핑을 식별할 수 있다. 이 규칙/패턴을 문서에 적용함에 있어서, 그리고 의미 네트워크들, 또는 다른 지식 베이스들, 그리고 NLP 기술들을 더 적용함에 있어서, "심장병(heart disease)" 및 "스텐트(stent)" 용어들이, 그 의미 네트워크를 통해 "Disease"의 개념에 묶여 있는 것으로 식별되고 있는 "heart disease" 용어 그리고 그 의미 네트워크를 통해 "Treatment"의 개념에 묶여 있는 "stent"로 존재하는, 텍스트의 일 부분이 식별될 수 있다. 만약 이들 용어들이 규칙/패턴에 의해 지정된 패턴에서 나타나면, 이들 용어들 주위의 텍스트의 부분들은 텍스트의 동일한 섹션 내 포함(inclusion)을 위해 선택될 수 있다. 그런 다음, 이들 개념들을 식별된 실제 또는 추론된 섹션 헤딩들과 상관시키는 것은 섹션 헤딩을 그 섹션 텍스트에 링크시킬 수 있다. 따라서, 예를 들어, 만약 유형 "Heart Disease:" 또는 "Diagnosis:" 등을 갖는 섹션 헤딩 규칙들/패턴들을 적용함에 의해 섹션 헤딩이 발견되었고, 섹션 헤딩 규칙들/패턴들이 "Disease" 또는 "Treatment", 또는 이 둘 모두의 개념들을 포함하면, 섹션 텍스트와 섹션 헤딩 사이에서 상관이 만들어질 수 있다. 섹션 텍스트에서 개념들이 섹션 헤딩 또는 섹션 헤딩 규칙들/패턴들에서의 개념들과 매치하는 정도는 계산되어 그 관계를 위해 정량화할 수 있는 점수를 발생시키는데 사용될 수 있다.
규칙들/패턴들은 헤딩들을 위해, 텍스트 내에서 개념 패턴들을 위해, 또는 더 일반적으로는, 동일한 규칙들/패턴들이 텍스트 내에서 헤딩들과 개념 패턴들 둘 모두에 적용될 수 있도록 하기 위해, 분리되어 수립될 수 있다. 어떤 실시예들에서, 섹션 헤딩 식별을 위한 규칙들/패턴들은, 텍스트 컨텐트 그 자체 내에서 관련된 개념들을 식별하기 위한 규칙들/패턴들과 상당히 다를 수 있다. 예를 들어, 문서에서 섹션 헤딩들을 식별하기 위한 규칙들/패턴들이 앞서 위에서 설명된 바와 같은 형태를 취할 수 있지만, 텍스트 컨텐트 그 자체 내에서 관련된 개념들을 식별하기 위한 규칙/패턴은 다음의 유형, 즉, <Drug><Cancer><Patient> 및 <Mortality> 개념들을 포함하는 문장일 수 있으며, 이는, 지정된 순서로, 그 섹션이 환자 사망(patient mortality)에 관한 지정된 약물(drug)의 영향에 관한 것임을 나타내고 그에 따라 "Patient Mortality" 섹션과 관련된다.
제안된 섹션들은 중복(overlap)될 수 있고, 단일의 실제 또는 추론된 섹션 헤딩은 유사하게 중복되는 몇 개의 제안된 섹션들을 가질 수 있다. 따라서, 문서에서 텍스트의 동일한 부분들은 서로 중복되는 텍스트의 이들 제안된 섹션들을 갖는 텍스트의 다수의 제안된 섹션들에 존재할 수 있다. 예를 들어, 텍스트 B의 부분은 텍스트 A, 텍스트 B, 및 텍스트 C를 포함하는 텍스트의 제안된 섹션에 있을 수 있다. 이와 유사하게, 텍스트 B의 동일한 부분은 또한 텍스트 A 및 텍스트 B를 포함하는 텍스트의 제안된 섹션, 또는 텍스트 A, 텍스트 B, 텍스트 C, 및 텍스트 D를 포함하는 텍스트의 제안된 섹션에 있을 수 있고, 그리하여 동일 또는 다른 섹션 텍스트 규칙들/패턴들과 매치하는, 텍스트의 다수의 중복되는 제안된 섹션들이 생성될 수 있고, 텍스트의 그러한 제안된 섹션들을 식별된 섹션 헤딩들과 상관시킬 때 고려될 수 있다.
일 예로서 텍스트를 고려하자(괄호안의 번호들은 문장 번호들을 나타내며, 실제로 텍스트 자체의 일부분은 아님):
(1) John has been diagnosed with diabetes, type II. (2) He must therefore carefully monitor his intake of sugar. (3) Jonh's medical history and high cholesterol demonstrates that his lifestyle habits have contributed to the onset of the disease. (4) His family history indicates that he will suffer from severe weight problems unless a strict diet and exercise plan are followed. (5) His 60 year old father has also been diagnosed with diabetes, and is clinically obese with failing health. (6) John has severt allergies to wheat and dairy, which will limit his options in terms of diet.
만약 가능한 헤딩들의 세트가 "Allergies", "Family History", 및 "Patient Details"과 같은 토픽들을 포함하면, 인접한 문장의 여러 가지 세트들은 상기 예에서 관련된 텍스트의 유효한 섹션들로서 고려될 수 있다. 섹션의 모든 어토믹 컴포넌트(atomic component) 각각은, 예를 들어, 그것이 문장이든 단락이든, 그 자체로서 가치가 있는(on its own merit) 하나의 가능한 섹션으로 고려되고, 모든 가능한 조합들이 고려된다.
예를 들어, 위의 예에서 다음의 문장 번호들은 유효한 "Patient Details" 섹션들일 수 있다. 즉, 문장들 1, 1-2, 2, 1-3, 2-3, 3, 1-4, 2-4, 3-4, 4, 1-5, 2-5, 3-5, 4-5, 5, 1-6, 2-6, 3-6, 4-6, 5-6, 6. "Family History"에 대해서는, 문장들 4, 4-5, 5.
"Allergies"에 대해서는, 문장 6.
이 경우, "Patient Details"에 대해 제안되는 몇 개의 중복되는 섹션들이 있으며, 이들 중 많은 것은 또한 "Family History"에 대해 제안된 섹션들과 중복될 수도 있다. 점수매김 메커니즘들을 그 제안된 섹션들에 적용한 후, 실시예들의 메커니즘들은, "Family History"에 대해 제안된 섹션(4-5)이 "Patient Details"에 대해 제안된 다른 중복되는 섹션들 중 어떤 것보다도 훨씬 더 높은 점수를 갖는다는 것을 확인할 수 있다. 이와 유사하게, 문장 6은 다른 중복되는 제안된 섹션들 중 어떤 것보다도 "Allergies"에 대해 훨씬 더 높은 점수를 가질 수 있다. 그러므로, 비록 중복되는 몇 개의 제안된 섹션들이 있더라도, 중복되지 않는 섹션들의 가장 높은 점수를 갖는 그룹들은 출력, 예컨대, Patient Details에 대해서는 섹션 1-3, Family History에 대해서는 섹션 4-5, 그리고 Allergies에 대해서는 섹션 6으로 리턴될 수 있다. 이와는 다르게, 중복되거나 그 밖의 섹션들의 모든 가능한 세트들은 사용자에 의한 추가 처리를 위해 리턴될 수 있다.
문서에서 섹션들의 경계를 설명하는 메타데이터에 추가로, 근본적인 의미 네트워크(underlying semantic network)로부터의 제안된 섹션들 사이의 의미 링크들을 상세하게 디스플레이하는, 연관된 그래프가 또한 제공될 수 있다. 의미 링크들의 이러한 디스플레이는 사용자에 의한 제안들을 디버깅하기 위해 사용될 수 있다. 왜냐하면 의미 개념들 사이의 잘못된 링크들이 있을 수 있음을 그 디스플레이가 나타낼 수 있고, 결과적으로 규칙들/패턴들은 원하는 결과를 달성하도록 적절하게 조절될 수 있기 때문이다.
텍스트의 각각의 제안된 섹션은 문서에서 가장 가까운 선행 섹션 헤딩(preceding section heading)에 대한 관련성(relatedness)에 대해 점수가 매겨질 수 있고, 또는 만약 문서에 어떠한 실제 섹션 헤딩도 존재하지 않으면, 텍스트의 섹션은 가능한 섹션 헤딩 유형들의 특정 리스트에 관해, 또는 주제(subject matter)의 다른 어떤 카테고리컬 그룹핑(categorical grouping)에 관해, 시스템에서 근본적인 의미론적 지식(underlying semantic knowledge)에 의해, 점수가 매겨질 수 있다. 예를 들어, 섹션 텍스트에서 식별된 개념들은 매칭의 정도를 결정하기 위해 가장 가까운 선행 섹션 헤딩에서 지정된 개념들과 비교될 수 있다. 섹션 텍스트와 후보 섹션 헤딩 사이의 관계를 위한 점수는, 의미상으로(semantically) 연관되는 것으로 알려진 그리고 그 섹션 텍스트에 존재하는 후보 섹션 헤딩에서의 개념들의 존재 또는 결여에 기초하여, 가중 또는 변경된다.
이와는 다르게, 만약 어떠한 실제 섹션 헤딩도 존재하지 않는다면, 텍스트의 섹션 내에서 발견되는 개념들은 섹션 헤딩을 추론하기 위해 사용될 수 있다. 예를 들어, 심지어 문서에서 분명한 섹션 헤딩도 없이, 개들(dogs), 말들(horses) 및 고양이들(cats)에 대한 참조들을 포함하는 텍스트의 부분은, 의미론적 지식 베이스(semantic knowledge base)에 의해, 카테고리 "Animals"을 나타내는 것으로 결정될 수 있고, 발견되는 다른 모든 개념들을 포함하는 텍스트의 부분은 그 전체로서, 이러한 추론된 섹션 헤딩에 대한 관련성을 위해 점수가 매겨질 수 있다. 그래서, 기존 지식 리소스들에 기초하여 식별되는 텍스트 내의 개념들은, 추론된 헤딩들을 생성하는데 사용될 수 있고, 그런 다음 그 컨텐트의 텍스트는 그 추론된 헤딩에 대한 텍스트의 그 부분의 관련도(degree of relatedness)를 결정하기 위해 이들 추론된 헤딩들에 관해 점수가 매겨질 수 있다.
이와 유사하게, 예상되는 개념들이 텍스트의 섹션으로부터 없는 경우, 관계들(relationships)에 대한 점수들을 가중하기 위해 가중 규칙들(weighting rules)이 이용될 수 있다. 즉, 비록 그 섹션 헤딩 또는 섹션 텍스트를 위한 규칙들/패턴들에 분명하게 포함되지 않지만, 온톨로지, 의미 네트워크 등에서 지정될 수 있는 바와 같이, 개념들 간의 학습된 관계들이 식별될 수 있고, 후보 섹션 헤딩/텍스트에 존재하는 개념들과 연관될 것으로 예상되는 개념들을 식별하기 위해 사용될 수 있다. 만약 이러한 개념들이 존재하면, 섹션 헤딩과 제안된 섹션 텍스트 사이의 관계에 대해 점수가 증가될 수 있고, 또는 아주 많이 가중될 수 있다. 만약 개념이 없다면, 점수는 증가될 수 없거나 심지어 감소될 수 있고, 또는 아주 적게 가중될 수 있다.
예를 들어, 헤딩 "Medication"과 연관된 문서의 부분에 나타나는 다음의 두 개의 문장들을 고려하자. 즉,
The patient experienced pains in the head and paracetamol was administered.
The ptnt suffered from headaches and was given acetaminophen.
의학 온톨로지를 참조함으로써, 약물 파라세타몰(paracetamol) 및 약물 아세타미노펜(acetaminophen)이 동일한 약물이고, "headache" 및 "pain in the head"는 동일한 의학적 통증 또는 병을 지칭하는 동의어들이라는 것이 발견될 수 있다. 예를 들어, 워드넷(Wordnet)과 같은 리소스는, "suffered" 및 "experienced" 뿐만 아니라 "given" 및 "administered" 용어들 사이의 관계와 같은 용어들의 상대적 동등함(relative equivalence)의 개요를 서술할 수 있다. "patient" 및 "ptnt"와 같이 동등한 엔티티들(equivalent entities)에 대해 텍스트의 표면 형태들(textual surface forms)을 다르게 하는 것은, 동등한 형태들을 인식하기 위한 퍼지 매칭 알고리즘들(fuzzy matching algorithms)의 사용뿐만 아니라, 온톨리지들의 명명된 엔티티 리소스들, 의미 네트워크들, 또는 다른 지식 베이스들을 통해, 그리고 더 나아가, 개념들을 통해, 제공된다. 따라서, 이들 메커니즘들을 사용하고, 적절한 섹션 텍스트 규칙들/패턴들을 적용할 때, 텍스트에서 분명한 차이점들에도 불구하고, 이들 두 개의 문장들 간에 분명한 긍정적인 매치들(positive matches)이 있고, 그리하여 이들 문장들이 텍스트의 동일한 섹션의 일부로서 고려될 수 있도록 한다. 더욱이, 약(medication)을 식별하는 약물/치료 및 병(malady)의 패턴이 보여진다는 점에서 그 섹션 텍스트와 섹션 헤딩 "Medication" 사이에서 유사한 상관들(correlations)이 이뤄질 수 있다.
따라서, 섹션 텍스트와 가장 가까운 선행 섹션 헤딩 사이의 각각의 관계에 대한 가중된 점수는, 그 제안된 섹션 텍스트의 개념들과 후보 섹션 헤딩 및/또는 대응하는 후보 섹션 헤딩 규칙/패턴에 존재하는 개념들 사이의 매칭 정도에 기초하여 생성될 수 있다. 그런 다음, 이들 점수들은, 그 문서와 연관된 메타데이터에서와 같이, 그 문서를 전체적으로 표현하기 위해 제안된 섹션 텍스트와 대응하는 후보 섹션 헤딩들의 연관성들을 선택하기 위해서 사용될 수 있다. 제안된 섹션 텍스트와 대응하는 후보 섹션 헤딩들 간의 이러한 관계들은, 그 문서와 연관된 메타데이터에서 섹션 텍스트들 및 섹션 헤딩들, 예컨대, 그 문서에 대한 메타데이터에서 섹션 헤딩 및 섹션 텍스트 주석들의 결과적인 표현(resulting representation)에서의 중복을 최소화하기 위해, 복수의 중복되는 제안된 섹션 텍스트들과 대응하는 후보 섹션 헤딩들 사이로부터, 선택될 수 있다.
예를 들어, 텍스트의 중복 섹션들을 포함하여, 텍스트의 점수가 매겨진 섹션들은, 전체 문서의 최상의 커버리지를 제공하는 텍스트의 비중복(non-overlapping) 섹션들의 최상의 점수매김 세트(scoring set)를 선택하기 위해 트래버스(traverse)될 수 있다. 즉, 기준은 섹션 텍스트들과 대응하는 실제 또는 추론된 섹션 헤딩들 사이의 관계들의 점수를 최대화하는 것, 섹션 텍스트들의 중복량을 최소화하는 것, 그리고 문서의 전체 텍스트 컨텐트의 커버리지량을 최대화하는 것에 관해 평가된다. 일 실시예에서는, 문서의 완전한 커버리지가 요구되지만, 다른 실시예들에서는, 이 요건은 완화될 수 있고, 그리하여 그 문서의 전체 컨텐츠의 최대 커버리지 또는 커버리지의 스레쉬홀드량(threshold amount)이 이용될 수 있도록 한다.
섹션 텍스트들의 결과적인 세트, 대응하는 실제 또는 추론된 섹션 헤딩들, 그리고 그것들의 관계들은 이 프로세스의 결과로서 나온다. 이들 결과들은 문서에, 또는 문서와 함께 저장된 메타데이터 주석들을 생성하기 위해 사용될 수 있다. 그런 다음, 이들 메타데이터 주석들은, 문서의 처리를 증가시키기 위해 NLP 시스템, QA 시스템 등과 같은 문서 처리 시스템들에 의해 사용될 수 있다. 예를 들어, QA 시스템에서, 문서에서 또는 문서와 연관된, 섹션 헤딩/섹션 텍스트 관계 메타데이터 주석들은, 후보 답변들이 문서에서 발견되는 섹션들에 기초하여 후보 답변들과 연관된 점수들을 변경하기 위해 사용될 수 있다.
섹션 텍스트/섹션 헤더 연관 메타데이터 주석들 내 포함(inclusion)을 위해 문서에서 최소한으로(minimally) 또는 중복되지 않는 텍스트의 섹션들을 선택하기 위한 동작에서, 그 목표는, 전체 헤딩/섹션 맥락(context)에 기초하여 점수들을 부스트(boost)하고, 경쟁하거나 애매하게 제안되는 텍스트의 섹션들을 해결하기 위한 것이다(만약, 그것이 발생한다면). 더 간단한 경우들에서, 중복되지 않는 섹션들의 최상의 점수 매김(scoring)은, 문서를 통한 전체 비중복 커버지리 경로(full non-overlapping coverage path)에 대한 점수들의 가장 큰 합을 갖는, 문서를 통한 경로를 취함으로써 결정된다. 이것이 바람직하지만, 섹션들을 위한 가중치들(weightings)에서의 증가들 또는 부스트 팩터들(boost factors)을 결정할 때, 텍스트의 섹션들의 최종 선택은 흔히 다음과 같은 것을 고려해야 필요가 있다. 즉,
(1) 텍스트의 다른 제안된 섹션들 대비 텍스트의 제안된 섹션의 위치, 예컨대, 어떤 섹션들은 통상 섹션 시퀀스들의 학습된 조건부 확률들(conditional probabilities)을 이용하는 다른 섹션들에 선행하고, 예컨대, 개요(abstract)가 흔히 도입(introduction)에 선행함;
(2) 제안된 섹션들 사이의 의미 거리(semantic distance), 예컨대, 약(medication)과 치료(treatments)는 밀접하게 관련되는 반면, 치료와 증상(symptoms)은 덜 밀접하게 관련됨;
(3) 현재 제안되는 섹션에 관해 가장 높은 랭킹의 인접 섹션들의 확률에 기초한 부스트 팩트(boost fact); 및
(4) 만약 경쟁하는(유사하게 점수 매겨진) 제안된 섹션들이 충분히 관련되지 않으면(예컨대, 섹션이 "증상(symptoms)" 및 "약(medication)" 이라는 제목에 대해 유사하게 점수 매겨짐), 시스템은 인접한 제안된 섹션들의, 대응하는 후보 섹션 헤딩들 및 주제, 또는 개념들의 관련성(relatedness)에 따라 그 점수들을 변경할 것이다.
문서를 표현하기 위해, 충돌들(conflicts) 및 모호성들(ambiguities)을 해결하는 것을 돕기 위해 텍스트의 섹션들 및 대응하는 연관된 섹션 헤딩들을 선택하기 위한 프로세스 동안, 외부 문맥(external context)로부터의 정보가 사용될 수 있다. 예를 들어, 도 3에 도시된 예에서와 같이, 섹션 텍스트/헤딩 상관 메커니즘(390)이 QA 시스템과 함께 사용되는 경우, 질의로부터의 데이터 자체, 그리고 어떤 후보 응답 데이터는 유사한 점수 매김 충돌들의 차이를 더 명확히 보여주기(disambiguate) 위해 사용될 수 있다. 예를 들어, 유방암 환자 케이스들을 분석하는 시스템에서, 완전한 환자 히스토리는 코퍼스로부터의 문서로서 입력될 수 있고, 이 환자 히스토리 및 다른 데이터는 폐암에 대해 이야기하는 레퍼런스들을 포함할 수 있다. 그러나, 선택 프로세스는 질의에 또는 지정된 파라미터들에서 제공되는 맥락 데이터(contextual data)에 기인하여 유방암 측으로 치우칠 것이다.
따라서, 실시예들은, 구조적 그리고 개념적 주석들, 온톨로지들, 의미 네트워크들, 및 다른 지식 베이스들에 기초하여 섹션 헤더들 및 섹션 텍스트를 식별하기 위한 메커니즘들을 제공한다. 실시예들은 식별되거나 추론된 섹션 헤더들과 대응하는 섹션 텍스트 사이의 관계들을 수립하기 위한 메커니즘들을 더 제공한다. 더욱이, 심지어 섹션 텍스트가 중복되고, 제안된 섹션 텍스트가 오리지널 저자(original author)에 의해 의도된 문서 내의 실제 섹션들인 충돌들, 또는 모호성들(ambiguities)이 있는 상황들에서도, 실시예들은 문서를 나타내기 위해 섹션 헤딩들 및 대응하는 섹션 텍스트를 선택하기 위한 메커니즘들을 더 제공한다. 실시예들은, 섹션 점수들을 최대화하고, 섹션 텍스트의 중복을 최소화하고, 문서 커버지리를 최대화하는, 선택된 섹션 헤딩들 및 대응하는 섹션들을 식별하기 위해 문서에 주석을 달기 위한 주석 메타데이터(annotation metadata)를 생성한다.
도 4는 텍스트의 일 부분이 일 실시예에 따른 구조적 주석들에 기초하여 섹션들로 분리될 수 있는 방식을 도시하는 다이어그램의 일 예이다. 도 4에 도시된 바와 같이, 텍스트의 그 부분은, "PURPOSE:", "PATIENTS AND METHODS:", "RESULTS:" 등과 같은 섹션 타이틀들을 포함한다. 이러한 섹션 타이틀들은, 예컨대, 콜론에 선행하는 모든 대문자들로 된 용어(term) 등의 구조적 규칙들/패턴들에 기초하여 식별될 수 있다. 이러한 규칙들/패턴들은, 예를 들어, 섹션 헤딩들의 식별을 위해 정의될 수 있다. 더욱이, 대응하는 섹션 텍스트 규칙들/패턴들은, 예를 들어, 섹션 텍스트가 콜론 이후에 나타나고, 단락 바꿈(paragraph break)에 의해 종결되는 것을 나타내는 특정된 구조적 주석들로 수립될 수 있다.
이러한 규칙들/패턴들을 사용할 때, 도 4에 도시된 바와 같이, 여러 가지 섹션 헤딩들(410-450) 및 대응하는 섹션 텍스트(460-495)는 식별될 수 있다. 섹션 텍스트(460-495)는, 컨텐트에서의 구조적 주석들, 예컨대, 단락 바꿈들(paragraph breaks) 등에 기초하여 가장 가까운 선행 섹션 헤딩(nearest preceding section heading)(410-450)과 연관될 수 있다. 구조적 주석들에 기초한 이러한 연관들은, 위에서 앞서 설명되고 도 5 및 도 6에 대한 설명에서 더 기술되는 바와 같이, 실시예들의 메커니즘들을 사용하는 개념 주석들과 함께 하나의 팩터로서 사용될 수 있다.
도 5는 일 실시예에 따라 문서의 섹션들을 식별하기 위해 개념적 주석들의 사용을 도시하는 다이어그램의 일 예이다. 도 5에 도시된 예는 도 4에 도시된 "결과들(Results)" 및 "결론들(Conclusions)" 섹션들(490-495)에 대응하나, 섹션 타이틀들이 없다. 도 5는 텍스트의 섹션들 및 텍스트의 섹션들 사이의 관계를 식별하기 위한 개념 주석 기반의 규칙들/패턴들을 사용할 수 있다.
도 5에 도시된 예에서, 환자 기록들의 규칙들/패턴들의 세트는, 위에서 앞서 기술된 바와 같이, 개념들, 개념 그룹들, 관련된 개념들/개념 그룹들, 구조적 특징들, 실제/추론된 헤딩들 등을 식별하기 위해 텍스트에 적용될 수 있다. 이 예에서, 규칙들/패턴들의 적용을 통해 식별될 수 있는 6 개의 기본적인 개념들, 즉, 환자 속성들(Patient Attributes), 환자 그룹들(Patient Groups), 강화(Intensification), 결론들(Conclusions), 환자 결과들(Patient Outcomes), 및 약물 복용량들(Drug Dosages)이 있다. 이들 개념들은 도 5의 텍스트에서 여러 가지의 점선 밑줄들(dashed underlinings)로 표현되었으며, 이에 따라 동일한 개념들을 갖는 의미 엔티티들의 그룹들을 표현한다. 텍스트 내에서 이들 서로 다른 개념 유형들의 분포(distribution), 및 역 문서 빈도(IDF, Inverse Document Frequency)(집합 또는 코퍼스에서 문서에 대해 단어(word)가 얼마나 중요한가를 나타내는 수치 통계(numerical statistic)) 및 개념 밀도(Concept Density)와 같이, 텍스트 내에서의 개념들의 통계적 분석을 통해 획득된 그것들의 연관된 특징들은, 앞서 위에서 기술한 바와 같이, 구별되는 섹션들이 식별될 수 있도록 한다.
텍스트의 이러한 특징들 및 통계적 분석은, 보이지 않는/ 장래의 문서 텍스트에서 가장 가능성이 높은 섹션들을 예측하여 가중하기 위해, 특히 코퍼스에 걸쳐 적용될 때, 팩트들의 여러 가지 유형들을 학습하기 위해 이용될 수 있다. 예를 들어, 도시된 예에서는, 텍스트의 다른 어떤 섹션보다 최종 섹션에 더 많은 결론 개념들(Conclusion Concepts)이 있었다. 따라서, 문서의 최종 섹션이 문서의 다른 섹션들보다 더 많은 결론 개념들(Conclusion Concepts)을 가질 가능성이 있고, 그래서, 장차 텍스트를 분석할 때, 만약 텍스트의 일 부분이 그 안에 식별되는 상대적으로 더 큰 량의 결론 개념들(Conclusion Concepts)을 갖는다면, 그것은 그 문서의 최종 섹션인 것으로 고려될 수 있다는 것이 더 학습될 수 있다.
더욱이, 도시된 예에서, 개념 식별 및 통계적 분석을 통해, 실시예들은 특히 중간 단락과 다른 단락들 간에, 텍스트의 세 개의 단락들 모두에 공통되는 몇 가지 개념 유형들(Concept Types)이 있고, 그에 따라 그 중간 단락의 섹션 멤버쉽에서의 모호성(ambiguity)으로 이어진다는 것을 결정할 수 있다. 개념들의 주어진 세트는 어떤 수의 서로 다른 섹션 헤딩들을 제안할 수 있다. 여기서 중간의 단락은 선행 단락과 후행 단락 사이에서 공통 개념들을 공유하는 것으로 보인다.
이 모호성을 해결하기 위해, 실시예들은 몇 가지 관점들에서 텍스트 데이터를 분석할 수 있다. 예를 들어, 실시예들은, 텍스트에서 용어들/개념들의 역 문서 빈도(Inverse Document Frequency, IDF)를 결정할 수 있고, 단지 세 번째 섹션이 "환자 속성(Patient Attribute)" - 그것을 텍스트의 그 조각에 대한 중요 개념(key Concept)으로 표시함 - 을 포함한다는 것을 식별할 수 있다. 더욱이, 실시예들은 텍스트의 다수의 단락들에서 공통 개념들을 식별하기 위해 그 텍스트 데이터를 분석할 수 있다. 이 경우, 개념들 "Patient Group" 및 "Patient Outcome"은 처음의 두 단락들에 존재(occur)하지만, 세 번째 단락에서는 그렇지 않다. 그래서 첫 번째 및 두 번째 단락들이 합쳐지는 섹션(cohesive section)으로 그룹핑될 수 있다는 것을 나타낸다. 더 나아가, 실시예들은 텍스트 데이터의 그 부분에서 식별되는 여러 가지 개념들의 개념 밀도(concept density)를 분석할 수 있다. 이 경우, 실시예들은 첫 번째 단락에 더 많은 "Patient Outcomes" 및 "Patient Groups"이 있고, 최종 단락에 더 많은 "Conclusions"이 있음을 결정할 수 있다. 텍스트/개념 분석(textual/concept analysis)의 여러 가지 유형들은, 텍스트 내에서 관련된 섹션들을 식별하고, 동일 또는 다른 코퍼스의 동일 또는 다른 문서들에서 텍스트의 장래의 부분들(future portions)에서 사용하기 위한 규칙들/패턴들을 생성하기 위해 사용될 수 있는 사실들을 식별하기 위해, 텍스트의 그 부분으로부터 개념/개념 그룹핑 정보를 추출하도록, 개별적으로 또는 결합하여 수행될 수 있다. 유사 문서들의 코퍼스의 통계적 분석을 수행함으로써, 실시예들은 이들 사실들을 특정한 실제 또는 추론된 섹션 헤딩들과 연관시키기 위해 학습할 수 있다.
도 5에서, 텍스트의 도시된 부분에서 텍스트의 단락들을 정의하는 구별되는 구조적 엘리먼트들이 더 있으며, 이는 앞서 위에서 기술된 바와 같이, 주어진 섹션의 한계(limits)를 결정함에 있어서 유용한 단서일 수 있으며, 텍스트의 관련된 섹션들을 식별하기 위해, 식별된 개념들, 개념 그룹핑들 등과 함께 사용될 수 있음에 유의하여야 할 것이다. 그러나, 예를 들어, 광학 문자 판독(optical charater recognition)을 사용하여 손으로 작성된 닥터 노트들(Doctors notes)의 스캔들(scans)과 같이, 특히 문서들이 인간에 의해 만들어진 것이 아닌 소스들(non human authored sources)로부터 나올 수 있을 때, 이것이 항상 실 세계(real-world) 데이터를 갖는 케이스인 것은 아니다. 이러한 경우들에 있어서, 그 텍스트의 요약된 형태에 관해 자동화된 프로세스는 고사하고, 손으로 작성된 문서에서 섹션들의 경계를 인간 독자가 결정하는 것은 쉽지 않을 수 있다. 그러나, 도 5에 보여지는 바와 같이, 실시예들은, 이들 개념들, 패턴들, 그룹핑들 등에 관해 통계적 분석을 수행하는 것뿐만 아니라, 규칙들/패턴들의 적용을 통해 그 문서의 컨텐트 내에서, 개념들, 개념들의 패턴들, 개념들의 그룹핑들 등을 식별함으로써 그 문서에 존재하는 구조적 주석들 또는 섹션 헤딩들이 있는지에 관계없이, 문서 내에서 텍스트의 섹션들을 식별할 수 있다.
도 5에 도시된 바와 같이, 실시예들은 특정 섹션 헤딩들과 연관되는 단락들 간을 구별할 수 있고, 비록 얼핏 보더라도, 그것들은 유사한 의미론적 컨텐트(semantic content)를 공유하는 것처럼 보이지 않고, 이것을 사소하지 않은 태스크로 만든다. 통계적 분석을 사용하여, 실시예들은 이들 단락들을 적절하게 그룹핑하도록 학습한다.
실시예들의 동작들은 여러 가지 단위들(granularities)로 채용될 수 있다. 예를 들어, 상기 동작들은 또한 단락 수준보다 오히려 문장 수준에서 수행될 수도 있다. 그리하여, 실시예들은, 특정 실제 또는 추론된 섹션 헤딩들을 나타내는 개념들의 존재 또는 부재에 기초하여 함께 문장들을 그룹핑할 수 있다. 비록 주어진 시점에 근본적인 지식 베이스(underlying knowledge base)에서는, 발견된 개념들과 공통으로 연관된 문장 헤딩은 없지만, 개념들의 유사한 세트들을 포함하는 것으로 보이는 문장들은 어떠한 라벨링된 헤딩(labelled heading)도 없이, 인접 섹션으로 함께 그룹핑될 수 있다. 또한, 만약 시스템의 사용자가 원한다면, 이러한 라벨링되지 않은 부분들은 선행하거나 후행하는 명백히 식별되는 섹션으로 그룹핑될 수 있고, 이는 더 적절하게 라벨링된 섹션과 링크하는 동일 비교 접근법들(same comparative approaches)을 레버리지한다. 더욱이, 몇몇 실시예들에서, 텍스트를 오리지널 저자(original author)에 의해 의도되지 않은 헤딩들과 링크시키기를 원할 수 있으며, 실시예들의 메커니즘들을 사용하여 단어 수준(word level)에서 문장들의 부분들 간을 구별할 수 있는 기능은 유용한 것으로 확인될 수 있고, 따라서, 구현될 수 있다.
도 6은 일 실시예의 메커니즘들을 사용하여 식별되는 텍스트의 결과적인 섹션들을 도시하는 다이어그램의 일 예이다. 도 6에서, 섹션들 주위의 유사한 점선들은, 도 5에 도시된 여러 가지 개념들을 나타내는 점선들에 대응하며, 이는 개념들에 대응하는 여러 가지 추론된 섹션 헤딩들과 연관된 텍스트의 섹션들을 나타내기 위해 사용된다. 따라서, 예를 들어, 섹션(610)은 개념/추론된 섹션 헤딩 "강화(Intensification)"와 연관되고, 섹션(620)은 개념/추론된 섹션 헤딩 "Patient Outcomes"과 연관되고, 섹션(630)은 개념/추론된 섹션 헤딩 "Patient Groups"과 연관되고, 섹션(640)은 개념/추론된 섹션 헤딩 "Drug Dosage"와 연관되고, 섹션(650)은 개념/추론된 섹션 헤딩 "Conclusions"과 연관된다.
도 7은 일 실시예에 따라, 도 3에서의 섹션 텍스트/헤딩 상관 메커니즘(390)과 같은 섹션 텍스트/헤딩 상관 메커니즘의 블록도의 일 예이다. 도 7에 도시된 엘리먼트들은 하드웨어, 소프트웨어, 하드웨어 및 소프트웨어의 어떤 조합으로 구현될 수 있다. 일 실시예에서, 도 7에서의 엘리먼트들은 하나 또는 그 이상의 데이터 처리 시스템들의 하나 또는 그 이상의 프로세서들 상에서 실행되는 소프트웨어 명령들로서 구현될 수 있다.
도 7에 도시된 바와 같이, 섹션 텍스트/헤딩 상관 메커니즘은, 컨트롤러(710), 통신 인터페이스(720), 지식 리소스 인터페이스(730), 주석 엔진(740), 섹션 헤딩/텍스트 패턴 엔진(750), 섹션 헤딩/텍스트 점수매김 엔진(760), 섹션 헤딩/텍스트 선택 엔진(770), 및 문서 메타데이터 생성 엔진(780)을 포함한다. 컨트롤러(710)는 섹션 텍스트/헤딩 상관 메커니즘(700)의 전체 동작을 제어하고, 다른 엘리먼트들(720-780)의 동작을 조정한다. 통신 인터페이스(720)는 데이터가 송신 및 수신될 수 있는 데이터 통신 경로를 제공한다. 특히, 실시예들의 메커니즘들에 의해 나누어질 문서에 대응하는 데이터는 문서들(705)의 코퍼스로부터 수신될 수 있고, 수신된 문서와 연관된 섹션 텍스트/헤딩 상관 메커니즘(700)에 의해 생성된 대응하는 섹션 메타데이터 주석들은, 그 문서와 연관되어, 또는 그 문서의 일부로서, 코퍼스(705)에 저장될 수 있다.
컨트롤러(710)는, 문서와 연관된 영역을 식별하기 위해, 수신된 문서, 그 문서와 연관된 메타데이터, 또는 요청 또는 그 문서를 전달하는 다른 통신에서 수신되는 정보에 관한 초기 분석을 수행한다. 그 영역은 심지어 문서가 수신되는 코퍼스(705)와 연관되어 지정될 수 있다. 어떤 경우에나, 그 영역은, 실시예들에 따라 섹션화(sectioning)를 수행하도록 그 문서를 분석할 때 이용하기 위해 어느 지식 리소스들(790)을 선택할 것인지에 관한 방법으로 식별될 수 있다. 즉, 여러 가지 특정(specific) 및/또는 포괄적(generic) 영역들을 위해 개발된 많은 다른 지식 리소스들(790), 예컨대, 첫 번째의 "Medical" 영역, 두 번째의 "Accounting" 영역, 세 번째의 "Legal" 영역 등이 있을 수 있다. 지식 리소스들(790) 자신들은 개념들의 온톨로지들, 의미 네트워크들 등일 수 있다. 지식 리소스들(790)은, 지식 리소스 인터페이스(730)를 통해 접근될 수 있다.
주석 엔진(740)은, 수신된 문서 내의 구조적 특징들, 개념 특징들 등과 같은 컨텐츠를 식별하고, 그것들을 지식 리소스들 내의 대응하는 엘리먼트들, 예컨대, 온톨로지 내 개념들, 의미 관계들을 갖는 용어들 등과 연관시키기 위해, 그 문서 텍스트의 컨텐츠에 그 지식 리소스들을 적용한다. 주석 엔진(740)은 개념 유형, 의미상 유형들, 구조적 엘리먼트들 등의 대응하는 주석들로 그 문서에서 발견되는 특징들에 주석을 달 수 있다. 이들 주석들은, 섹션 헤딩 및 섹션 텍스트 규칙들/패턴들을 적용하기 위해 섹션 헤딩/텍스트 패턴 엔진(750)에 의해 사용될 수 있으며, 섹션 헤딩 및 섹션 텍스트 규칙들/패턴들은 또한 지식 리소스들(790)로부터 획득될 수도 있으며, 섹션 헤더들 및/또는 섹션 텍스트들을 정의하는 구조적 및/또는 개념적 주석들 및 그러한 주석들의 시퀀스들을 참조하는 규칙들/패턴들을 포함한다.
섹션 헤딩/텍스트 패턴 엔진(750)은 이들 규칙들/패턴들(여기서 규칙들은 패턴들을 강제하거나 또는 그렇지 않으면 패턴들을 포함할 수 있음)을 적용하여, 그것에 따라 문서 내 후보 섹션 헤딩들 및 문서 내 제안된 섹션 텍스트들을 식별한다. 섹션 헤딩/텍스트 점수매김 엔진(760)은 제안된 섹션 텍스트들과 가장 가까운 선행 후보 섹션 헤딩 사이의 관계들(relationships)에 점수를 매길 수 있다. 그런 다음, 섹션 헤딩/텍스트 선택 엔진(770)은, 그 선택된 섹션 헤딩들/텍스트들의 중복을 최소화하고 문서 컨텐츠 커버리지를 최대화하는 한편, 선택된 후보 섹션 헤딩들 및 대응하는 섹션 텍스트들의 관계들 또는 링크들의 점수를 최대화하기 위해, 후보 섹션 헤딩들 및 그들의 대응하는 섹션 텍스트들을 선택할 수 있다. 그런 다음 결과적으로 선택된 섹션 헤딩들 및 대응하는 섹션 텍스트들은, 코퍼스(705)에서의 문서에 또는 문서와 연관되어 저장되는 섹션 주석 메타데이터를 생성하기 위해, 문서 메타데이터 생성 엔진(780)에 의해 사용된다.
도 8은 일 실시예에 따라, 문서에 대한 섹션 헤딩/섹션 텍스트 메타데이터를 생성하기 위한 동작의 일 예의 개요를 서술하는 흐름도의 일 예이다. 도 8에서 설명되는 동작은, 예를 들어, 도 3 및 7에서 각각 섹션 텍스트/헤딩 상관 메커니즘(390 및/또는 700)에 의해, 구현될 수 있다. 동작은, 앞서 위에서 기술된 바와 같이, 선택 텍스트/헤딩 상관 메커니즘에 의해 수행된 기능들 - 각각의 기능은 다수의 서브-기능들(sub-functions)을 포함함 - 의 높은 수준의 표현을 도시한다. 당해 기술 분야에서 통상의 기술을 가진 자라면, 본 발명의 사상 및 영역을 벗어나지 않고서, 도 8에서 제공되는 예를 고려하여, 실시예들의 메커니즘들을 구현할 수 있는 여러 가지 다른 방법들이 있을 수 있다는 것을 인식할 것이다.
도 8에 도시된 바와 같이, 실시예들의 동작에 따라 선택될 문서를 수신함(단계 810)으로써 동작이 시작된다. 그런 다음, 지식 리소스들은 문서의 섹션화를 돕기 위해 검색(retrieve) 된다(단계 820). 위에서 언급한 바와 같이, 이들 지식 리소스들은, 온톨로지들, 의미 네트워크들, 또는 문서가 수신된 코퍼스 또는 그 수신된 문서의 특정 영역에 대해 포괄적 또는 특정 지식 베이스들의 다른 유형들을 포함할 수 있다.
문서는 지식 리소스들에 포함된 정보에 기초하여 구조 및 개념 주석들로 주석이 달린다(단계 830). 구조적 및/또는 개념적 규칙들/패턴들이 검색된다(단계 840). 이들 규칙들/패턴들은 또한 문서가 수신된 코퍼스 또는 수신된 문서의 영역에 대해 그 성질에서 포괄적이거나 특정될 수 있다. 이들 규칙들/패턴들은 후보 섹션 헤딩(들) 및 제안된 섹션 텍스트(들)을 식별하기 위해 문서 텍스트에 적용된다(단계 850). 제안된 섹션 텍스트(들)은 문서에서 가장 가까운 선행 섹션 헤딩과 연관되고 가중된 매칭 알고리즘에 기초하여 점수 매김된다(단계 860). 대응하는 섹션 헤딩(들) 및 섹션 텍스트(들)은 점수 매김(scoring) 및 문서 커버리지/중복 기준에 기초하여 선택된다(단계 870). 선택된 섹션 헤딩(들) 및 대응하는 섹션 텍스트(들)은, 문서 처리 시스템에 의한 나중의 사용을 위해 문서와 연관되어 저장되는 섹션 주석 메타데이터를 생성하기 위해 사용된다(단계 880). 그런 다음 동작은 종료된다.
도 8에서 설명된 동작은 반복적으로 수행될 수 있고, 그리하여, 원하는 수준의 결과가 달성될 때까지, 예를 들어, 그 텍스트 내에서 식별된 섹션들의 원하는 수준의 중복/비중복이 달성될 때까지 도 8에서 동작들을 반복적으로 수행하기 위해 구현될 수 있도록 한다. 더욱이, 앞서 논의된 바와 같이, 도 8은 문서 내에서 구조적 주석들의 사용을 참조하지만, 실시예들은 심지어 그러한 어떤 구조적 주석들의 부재하에서 동작할 수 있고 텍스트의 컨텐츠 내에서 식별된 개념들에 기초하여 완전히 동작할 수도 있다. 즉, 실시예들은 텍스트에서 구조적 특징들을 레버리지할 수 있지만, 이것들은 항상 이용가능할 수 있는 것은 아니다. 모든 섹션들이 문서 그 자체에서 분명히 구별되지 않는, 이러한 경우들에서, 실시예들은, 의미론적 컨텐트(semantic content), 즉 주석이 달린 개념들에 전적으로 의존할 수 있다. 따라서, 도 8에서 동작의 출력은, 제안된 섹션들의 세트들을 중복시키는 것, 그리고 점수매김(scoring) 및 리랭킹(re-ranking)의 몇 가지 반복들을 필요로 할 수 있는 문서를 커버하는 최상의 세트를 선택하는 프로세스를 포함할 수 있다. 도 8은 도면을 간단하게 나타내기 위해 한 번만 반복하는 것을 보여주고 있지만, 한 번의 반복만이 사용되어야 한다는 것을 서술 또는 암시하려는 의도는 아니다.
더 나아가, 위에서 언급한 바와 같이, 실시예들은 전적으로 하드웨어 실시예의 형태를 취할 수도 있고, 전적으로 소프트웨어 실시예의 형태를 취할 수도 있으며, 또는 하드웨어와 소프트웨어 엘리먼트들 둘 다를 포함하는 실시예의 형태를 취할 수도 있음을 이해해야 할 것이다. 일 실시예에서, 실시예들의 메커니즘들은 소프트웨어 또는 프로그램 코드로 구현되는데, 이는 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하나, 이러한 것들로 한정되는 것은 아니다.
프로그램 코드를 저장 및/또는 실행하기에 적합한 데이터 처리 시스템은 메모리 엘리먼트들에 직접적으로 결합되거나 시스템 버스를 통해 간접적으로 결합된 적어도 하나의 프로세서를 포함할 것이다. 메모리 엘리먼트들은 프로그램 코드의 실제 실행 동안 채용되는 로컬 메모리, 벌크 스토리지, 및 캐시 메모리들 - 캐시 메모리들은 실행 동안 벌크 스토리지로부터 코드가 검색(retrieve)되어야 하는 횟수를 줄이기 위해 적어도 일부 프로그램 코드의 임시 스토리지를 제공함 - 을 포함할 수 있다.
입력/출력 또는 I/O 디바이스들(키보드들, 디스플레이들, 포인팅 디바이스들 등을 포함하나 이러한 것들로 한정되는 것은 아님)은 직접적으로 또는 중간의 I/O 컨트롤러들 통해 시스템에 결합될 수 있다. 또한 네트워크 어댑터들은, 데이터 처리 시스템이 중간의 사설망 또는 공중망을 통해 다른 데이터 처리 시스템들 또는 원격 프린터들 또는 스토리지 디바이스에 결합될 수 있도록 하기 위해 시스템에 결합될 수 있다. 모뎀들, 케이블 모뎀들 및 이더넷 카드들은 단지 현재 이용가능한 네트워크 어댑터들의 몇몇 유형일 뿐이다.
본 발명에 관한 설명은 설명 및 예시의 목적으로 제시되었으며, 개시된 그 형태대로 본 발명을 한정하려거나, 모든 실시예들을 총 망라하려는 의도는 아니다. 당해 기술 분야에서 통상의 기술을 가진 자들이라면 많은 변형 및 변경 예들을 생각해 낼 수 있을 것이다. 실시예들은, 발명의 원리들, 실제 적용을 가장 잘 설명하기 위해, 그리고 고려되는 특정 사용에 적합한 여러 가지 변형 예들을 갖는 다양한 실시예들에 대해 당해 기술 분야에서 통상의 기술을 가진 자들이 본 발명을 이해할 수 있도록 하기 위해, 선택되고 설명되었다.

Claims (20)

  1. 프로세서 및 메모리를 포함하는 데이터 처리 시스템에서, 전자 문서를 위한 섹션 메타데이터(section metadata)를 생성하는 방법으로서,
    상기 데이터 처리 시스템에 의해, 처리를 위한 전자 문서를 수신하는 단계;
    상기 데이터 처리 시스템에 의해, 상기 전자 문서의 텍스트 컨텐트(textual content) 내에 존재하는 개념들(concepts)을 식별하기 위해 상기 전자 문서를 분석하는 단계;
    상기 데이터 처리 시스템에 의해, 관련 개념들 또는 개념 패턴들을 정의하는 하나 또는 그 이상의 규칙들의 적용에 기초하여 상기 텍스트 컨텐트 내에서 개념 그룹들을 식별하기 위해 상기 텍스트 컨텐트 내 개념들을 서로 상관(correlate)시키는 단계;
    상기 데이터 처리 시스템에 의해, 상기 텍스트 컨텐트 내에서 개념들의 상기 상관(correlation)에 기초하여 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션을 결정하는 단계;
    상기 데이터 처리 시스템에 의해, 상기 결정의 결과들에 기초하여, 상기 전자 문서를 위한 섹션 메타데이터를 생성 - 그것에 의해 상기 전자 문서에서 상기 적어도 하나의 섹션을 식별함 - 하는 단계; 및
    상기 데이터 처리 시스템에 의해, 문서 처리 시스템에 의한 사용을 위해 상기 전자 문서와 연관된 상기 섹션 메타데이터를 저장하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션을 결정하는 단계는, 복수의 개념들 또는 개념 그룹들을 지정(specify)하는 지식 베이스(knowledge base)를 이용하는 단계, 및 상기 지식 베이스에서 각각의 개념 또는 개념 그룹과 상기 텍스트 컨텐트의 부분들 사이의 유사성의 척도(a measure of affinity)를 결정하는 단계를 더 포함하는, 방법.
  3. 청구항 1에 있어서, 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션을 결정하는 단계는, 상기 텍스트 컨텐트에서 섹션 헤더에 대한 상기 텍스트 컨텐트에서의 텍스트의 후보 섹션에서의 개념 사이의 유사성의 척도(a measure of affinity)를 결정하는 단계를 더 포함하는, 방법.
  4. 청구항 1에 있어서, 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션을 결정하는 단계는,
    상기 전자 문서 내에서 후보 섹션 헤딩(candidate section heading)과 텍스트의 제안된 섹션(proposed section)을 식별하는 단계;
    텍스트의 상기 제안된 섹션이 상기 후보 섹션 헤딩에 대한 유사성의 스레쉬홀드 척도(threshold measure of affinity)를 갖는지를, 텍스트의 상기 제안된 섹션 내의 하나 또는 그 이상의 개념 엘리먼트들(concept elements)에 기초하여, 결정하는 단계; 및
    텍스트의 상기 제안된 섹션이 적어도 상기 후보 섹션 헤딩에 대한 유사성의 스레쉬홀드 척도를 갖는 것에 기초하여, 텍스트의 상기 제안된 섹션이 상기 후보 섹션 헤딩과 연관된 텍스트의 실제 섹션이 되도록 선택하는 단계를 더 포함하는, 방법.
  5. 삭제
  6. 청구항 1에 있어서, 상기 텍스트 컨텐트 내에서 개념들의 상관(correlation)에 기초하여 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션을 결정하는 단계는, 상기 텍스트 컨텐트 내에서 상기 개념들의 통계적 분석을 수행하는 단계를 포함하며, 여기서 상기 통계적 분석은, 개념 밀도 분석(concept density analysis), 역 문서 빈도 분석(inverse document frequency analysis), 또는 상기 텍스트 컨텐트 내에서 텍스트의 복수의 제안된 섹션들 사이의 개념 공통성 분석(concept commonality analysis) 중 적어도 하나를 포함하는, 방법.
  7. 청구항 1에 있어서, 상기 텍스트 컨텐트는 연관된 구조적 주석들(associated structural annotations)을 갖지 않으며, 상기 텍스트 컨텐트 내에서 개념들의 상기 상관(correlation)에 기초하여 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션을 결정하는 단계는, 상기 텍스트 컨텐트와 연관된 구조적 주석들(structural annotations)에 관계없이 수행되는, 방법.
  8. 청구항 1에 있어서, 상기 텍스트 컨텐트 내에서 개념들의 상기 상관에 기초하여 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션을 결정하는 단계는, 상기 텍스트 컨텐트와 연관된 구조적 주석들에 또한 기초하여, 상기 텍스트 컨텐트 내에서 텍스트의 상기 적어도 하나의 섹션을 결정하는 단계를 더 포함하는, 방법.
  9. 청구항 1에 있어서, 상기 문서 처리 시스템은 자연 언어 처리 시스템이고, 상기 방법은, 상기 전자 문서와 연관된 섹션 메타데이터에 기초하여 상기 전자 문서에 관한 자연 언어 처리를 수행하는 단계를 더 포함하는, 방법.
  10. 삭제
  11. 컴퓨터 판독가능 프로그램을 갖는 컴퓨터 판독가능 스토리지 매체로서, 상기 컴퓨터 판독가능 프로그램은, 데이터 처리 시스템상에서 실행될 때, 상기 데이터 처리 시스템으로 하여금,
    처리를 위한 전자 문서를 수신하고;
    상기 전자 문서의 텍스트 컨텐트(textual content) 내에 존재하는 개념들(concepts)을 식별하기 위해 상기 전자 문서를 분석하고;
    관련된 개념들 또는 개념 패턴들을 정의하는 하나 또는 그 이상의 규칙들의 적용에 기초하여, 상기 텍스트 컨텐트 내에서 개념 그룹들을 식별하기 위해 상기 텍스트 컨텐트 내에서 개념들을 서로 간에 상관(correlate)시키고;
    상기 텍스트 컨텐트 내에서 개념들의 상기 상관(correlation)에 기초하여 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션(at least one section of text)을 결정하고;
    상기 결정의 결과들에 기초하여, 상기 전자 문서를 위한 섹션 메타데이터를 생성하고, 그에 따라 상기 전자 문서에서 상기 적어도 하나의 섹션을 식별하고;
    문서 처리 시스템에 의한 사용을 위해 상기 전자 문서와 연관된 상기 섹션 메타데이터를 저장하도록 하는, 컴퓨터 판독가능 스토리지 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 프로세서; 및 상기 프로세서에 결합된 메모리를 포함하는 장치로서,
    상기 메모리는, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    처리를 위한 전자 문서를 수신하고;
    상기 전자 문서의 텍스트 컨텐트 내에 존재하는 개념들을 식별하기 위해 상기 전자 문서를 분석하고;
    관련된 개념들 또는 개념 패턴들을 정의하는 하나 또는 그 이상의 규칙들의 적용에 기초하여 상기 텍스트 컨텐트 내에서 개념 그룹들을 식별하기 위해 상기 텍스트 컨텐트 내에서 개념들을 서로 상관(correlate)시키고;
    상기 텍스트 컨텐트 내에서 개념들의 상기 상관(correlation)에 기초하여 상기 텍스트 컨텐트 내에서 텍스트의 적어도 하나의 섹션을 결정하고;
    상기 결정의 결과들에 기초하여, 상기 전자 문서를 위한 섹션 메타데이터를 생성하고, 그것에 의해 상기 전자 문서에서 상기 적어도 하나의 섹션을 식별하고;
    문서 처리 시스템에 의한 사용을 위해 상기 전자 문서와 연관된 상기 섹션 메타데이터를 저장하도록 하는, 명령들을 포함하는, 장치.
KR1020140105694A 2013-09-26 2014-08-14 개념 중심의 자동 섹션 식별 KR101599145B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/037,506 2013-09-26
US14/037,506 US9058374B2 (en) 2013-09-26 2013-09-26 Concept driven automatic section identification

Publications (2)

Publication Number Publication Date
KR20150034599A KR20150034599A (ko) 2015-04-03
KR101599145B1 true KR101599145B1 (ko) 2016-03-02

Family

ID=52691938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140105694A KR101599145B1 (ko) 2013-09-26 2014-08-14 개념 중심의 자동 섹션 식별

Country Status (3)

Country Link
US (1) US9058374B2 (ko)
KR (1) KR101599145B1 (ko)
CN (1) CN104516942B (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474961B2 (en) 2013-06-20 2019-11-12 Viv Labs, Inc. Dynamically evolving cognitive architecture system based on prompting for additional user input
US9633317B2 (en) 2013-06-20 2017-04-25 Viv Labs, Inc. Dynamically evolving cognitive architecture system based on a natural language intent interpreter
US9594542B2 (en) * 2013-06-20 2017-03-14 Viv Labs, Inc. Dynamically evolving cognitive architecture system based on training by third-party developers
US9519461B2 (en) 2013-06-20 2016-12-13 Viv Labs, Inc. Dynamically evolving cognitive architecture system based on third-party developers
US9461945B2 (en) * 2013-10-18 2016-10-04 Jeffrey P. Phillips Automated messaging response
WO2015086824A1 (en) * 2013-12-13 2015-06-18 Danmarks Tekniske Universitet Method of and system for information retrieval
US20150169676A1 (en) * 2013-12-18 2015-06-18 International Business Machines Corporation Generating a Table of Contents for Unformatted Text
US10540347B2 (en) * 2014-10-27 2020-01-21 Nuance Communications, Inc. Contextual search disambiguation
US10891699B2 (en) * 2015-02-09 2021-01-12 Legalogic Ltd. System and method in support of digital document analysis
US9760564B2 (en) * 2015-07-09 2017-09-12 International Business Machines Corporation Extracting veiled meaning in natural language content
US9864598B2 (en) 2015-09-18 2018-01-09 ReactiveCore LLC System and method for providing supplemental functionalities to a computer program
US11157260B2 (en) 2015-09-18 2021-10-26 ReactiveCore LLC Efficient information storage and retrieval using subgraphs
US9372684B1 (en) * 2015-09-18 2016-06-21 ReactiveCore LLC System and method for providing supplemental functionalities to a computer program via an ontology instance
JP6776551B2 (ja) * 2016-03-01 2020-10-28 セイコーエプソン株式会社 電子機器および電子機器における表示方法
US20170270250A1 (en) * 2016-03-21 2017-09-21 International Business Machines Corporation Building a patient's medical history from disparate information sources
CN107229609B (zh) * 2016-03-25 2021-08-13 佳能株式会社 用于分割文本的方法和设备
US20170371955A1 (en) * 2016-06-23 2017-12-28 International Business Machines Corporation System and method for precise domain question and answer generation for use as ground truth
US20170371956A1 (en) * 2016-06-23 2017-12-28 International Business Machines Corporation System and method for precise domain question and answer generation for use as ground truth
US10606952B2 (en) 2016-06-24 2020-03-31 Elemental Cognition Llc Architecture and processes for computer learning and understanding
US10331659B2 (en) 2016-09-06 2019-06-25 International Business Machines Corporation Automatic detection and cleansing of erroneous concepts in an aggregated knowledge base
US20180068222A1 (en) * 2016-09-07 2018-03-08 International Business Machines Corporation System and Method of Advising Human Verification of Machine-Annotated Ground Truth - Low Entropy Focus
US10558754B2 (en) 2016-09-15 2020-02-11 Infosys Limited Method and system for automating training of named entity recognition in natural language processing
US20180152539A1 (en) * 2016-11-30 2018-05-31 International Business Machines Corporation Proactive communication channel controller in a collaborative environment
US10628525B2 (en) 2017-05-17 2020-04-21 International Business Machines Corporation Natural language processing of formatted documents
US10223639B2 (en) 2017-06-22 2019-03-05 International Business Machines Corporation Relation extraction using co-training with distant supervision
US10229195B2 (en) 2017-06-22 2019-03-12 International Business Machines Corporation Relation extraction using co-training with distant supervision
US11475209B2 (en) 2017-10-17 2022-10-18 Handycontract Llc Device, system, and method for extracting named entities from sectioned documents
US10726198B2 (en) 2017-10-17 2020-07-28 Handycontract, LLC Method, device, and system, for identifying data elements in data structures
US11409749B2 (en) * 2017-11-09 2022-08-09 Microsoft Technology Licensing, Llc Machine reading comprehension system for answering queries related to a document
US10803100B2 (en) * 2017-11-30 2020-10-13 International Business Machines Corporation Tagging named entities with source document topic information for deep question answering
US10810897B2 (en) * 2017-12-13 2020-10-20 International Business Machines Corporation Question generation for learning session
US20190295001A1 (en) * 2018-03-21 2019-09-26 International Business Machines Corporation Cognitive data curation in a computing environment
US10885270B2 (en) 2018-04-27 2021-01-05 International Business Machines Corporation Machine learned document loss recovery
US11295867B2 (en) * 2018-06-05 2022-04-05 Koninklljke Philips N.V. Generating and applying subject event timelines
WO2020009709A1 (en) * 2018-07-06 2020-01-09 Google Llc User-specific text record-based format prediction
WO2020109277A1 (en) * 2018-11-29 2020-06-04 Koninklijke Philips N.V. Method and system for creating a domain-specific training corpus from generic domain corpora
US11061913B2 (en) * 2018-11-30 2021-07-13 International Business Machines Corporation Automated document filtration and priority scoring for document searching and access
US11074262B2 (en) * 2018-11-30 2021-07-27 International Business Machines Corporation Automated document filtration and prioritization for document searching and access
US10949607B2 (en) 2018-12-10 2021-03-16 International Business Machines Corporation Automated document filtration with normalized annotation for document searching and access
US11068490B2 (en) 2019-01-04 2021-07-20 International Business Machines Corporation Automated document filtration with machine learning of annotations for document searching and access
US10977292B2 (en) * 2019-01-15 2021-04-13 International Business Machines Corporation Processing documents in content repositories to generate personalized treatment guidelines
US11721441B2 (en) 2019-01-15 2023-08-08 Merative Us L.P. Determining drug effectiveness ranking for a patient using machine learning
US10909320B2 (en) * 2019-02-07 2021-02-02 International Business Machines Corporation Ontology-based document analysis and annotation generation
EP4327214A1 (en) * 2019-02-18 2024-02-28 David Nahamoo Intelligent document system
US11494555B2 (en) * 2019-03-29 2022-11-08 Konica Minolta Business Solutions U.S.A., Inc. Identifying section headings in a document
US11468346B2 (en) 2019-03-29 2022-10-11 Konica Minolta Business Solutions U.S.A., Inc. Identifying sequence headings in a document
US11915614B2 (en) 2019-09-05 2024-02-27 Obrizum Group Ltd. Tracking concepts and presenting content in a learning system
CN114616572A (zh) 2019-09-16 2022-06-10 多库加米公司 跨文档智能写作和处理助手
EP3792923A1 (en) * 2019-09-16 2021-03-17 Siemens Healthcare GmbH Method and device for exchanging information regarding the clinical implications of genomic variations
US11354894B2 (en) * 2019-10-16 2022-06-07 Disney Enterprises, Inc. Automated content validation and inferential content annotation
US11321956B1 (en) 2019-12-03 2022-05-03 Ciitizen, Llc Sectionizing documents based on visual and language models
LU101705B1 (en) * 2020-03-26 2021-09-27 Microsoft Technology Licensing Llc Document control item
CN111858883A (zh) * 2020-06-24 2020-10-30 北京百度网讯科技有限公司 三元组样本的生成方法、装置、电子设备及存储介质
US11663215B2 (en) 2020-08-12 2023-05-30 International Business Machines Corporation Selectively targeting content section for cognitive analytics and search
CN112307772B (zh) * 2020-11-05 2022-03-25 广东工业大学 一种基于语义本体的广彩瓷知识库的构建方法
US11763072B2 (en) * 2021-08-26 2023-09-19 Kpmg Llp System and method for implementing a document quality analysis and review tool

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0358815B1 (en) 1988-09-12 1993-05-26 Océ-Nederland B.V. System and method for automatic segmentation
US6654744B2 (en) 2000-04-17 2003-11-25 Fujitsu Limited Method and apparatus for categorizing information, and a computer product
US6970881B1 (en) * 2001-05-07 2005-11-29 Intelligenxia, Inc. Concept-based method and system for dynamically analyzing unstructured information
AUPR701701A0 (en) 2001-08-14 2001-09-06 Mcdonald, Nathan Document analysis system and method
US6978274B1 (en) * 2001-08-31 2005-12-20 Attenex Corporation System and method for dynamically evaluating latent concepts in unstructured documents
US6985908B2 (en) 2001-11-01 2006-01-10 Matsushita Electric Industrial Co., Ltd. Text classification apparatus
US7818308B2 (en) 2003-10-01 2010-10-19 Nuance Communications, Inc. System and method for document section segmentation
EP1687737A2 (en) 2003-11-21 2006-08-09 Philips Intellectual Property & Standards GmbH Text segmentation and topic annotation for document structuring
WO2005050474A2 (en) 2003-11-21 2005-06-02 Philips Intellectual Property & Standards Gmbh Text segmentation and label assignment with user interaction by means of topic specific language models and topic-specific label statistics
US20060149800A1 (en) * 2004-12-30 2006-07-06 Daniel Egnor Authoritative document identification
US8036889B2 (en) * 2006-02-27 2011-10-11 Nuance Communications, Inc. Systems and methods for filtering dictated and non-dictated sections of documents
US7734623B2 (en) * 2006-11-07 2010-06-08 Cycorp, Inc. Semantics-based method and apparatus for document analysis
US8037051B2 (en) 2006-11-08 2011-10-11 Intertrust Technologies Corporation Matching and recommending relevant videos and media to individual search engine results
US8290967B2 (en) 2007-04-19 2012-10-16 Barnesandnoble.Com Llc Indexing and search query processing
US7937338B2 (en) 2008-04-30 2011-05-03 International Business Machines Corporation System and method for identifying document structure and associated metainformation
US8275803B2 (en) 2008-05-14 2012-09-25 International Business Machines Corporation System and method for providing answers to questions
US8280838B2 (en) 2009-09-17 2012-10-02 International Business Machines Corporation Evidence evaluation system and method based on question answering
US8635525B2 (en) * 2009-11-10 2014-01-21 At&T Intellectual Property I, L.P. Systems, methods and computer readable media for creating and updating electronic documents
US20110125734A1 (en) 2009-11-23 2011-05-26 International Business Machines Corporation Questions and answers generation
US8380719B2 (en) * 2010-06-18 2013-02-19 Microsoft Corporation Semantic content searching
EP2622599B1 (en) 2010-09-28 2019-10-23 International Business Machines Corporation Evidence diffusion among candidate answers during question answering
WO2012047541A1 (en) 2010-09-28 2012-04-12 International Business Machines Corporation Providing answers to questions using multiple models to score candidate answers
US8601030B2 (en) 2011-09-09 2013-12-03 International Business Machines Corporation Method for a natural language question-answering system to complement decision-support in a real-time command center
CN102945228B (zh) * 2012-10-29 2016-07-06 广西科技大学 一种基于文本分割技术的多文档文摘方法

Also Published As

Publication number Publication date
CN104516942A (zh) 2015-04-15
CN104516942B (zh) 2018-04-17
US20150088888A1 (en) 2015-03-26
US9058374B2 (en) 2015-06-16
KR20150034599A (ko) 2015-04-03

Similar Documents

Publication Publication Date Title
KR101599145B1 (ko) 개념 중심의 자동 섹션 식별
Li et al. Neural natural language processing for unstructured data in electronic health records: a review
US9965548B2 (en) Analyzing natural language questions to determine missing information in order to improve accuracy of answers
Poelmans et al. Formal concept analysis in knowledge processing: A survey on applications
US9606990B2 (en) Cognitive system with ingestion of natural language documents with embedded code
Thompson et al. Text mining the history of medicine
US10366107B2 (en) Categorizing questions in a question answering system
Cai et al. A deep learning model incorporating part of speech and self-matching attention for named entity recognition of Chinese electronic medical records
Landolsi et al. Information extraction from electronic medical documents: state of the art and future research directions
US11379660B2 (en) Deep learning approach to computing spans
Badal et al. Natural language processing in text mining for structural modeling of protein complexes
Kordjamshidi et al. Structured learning for spatial information extraction from biomedical text: bacteria biotopes
US11748562B2 (en) Selective deep parsing of natural language content
Mrabet et al. Combining open-domain and biomedical knowledge for topic recognition in consumer health questions
Perez-Arriaga Automated development of semantic data models using scientific publications
Liang et al. Lab indicators standardization method for the regional healthcare platform: a case study on heart failure
CN113728322A (zh) 使用医疗线索的情感检测
Landolsi et al. Extracting and structuring information from the electronic medical text: state of the art and trendy directions
Ernst Biomedical knowledge base construction from text and its applications in knowledge-based systems
Lara-Clares et al. A reproducible experimental survey on biomedical sentence similarity: A string-based method sets the state of the art
US20230070715A1 (en) Text processing method and apparatus
Luque et al. A semantically enriched text mining system for clinical decision support
Wei Table-to-Text: Generating Descriptive Text for Scientific Tables from Randomized Controlled Trials
Nassimi Entity Linking for the Biomedical Domain
Miloševic et al. Table mining and data curation from biomedical literature

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: 20200129

Year of fee payment: 5