KR20210042393A - 컴퓨터 구현 선행 기술 검색을 수행하기 위한 시스템들 및 방법들 - Google Patents

컴퓨터 구현 선행 기술 검색을 수행하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20210042393A
KR20210042393A KR1020217007823A KR20217007823A KR20210042393A KR 20210042393 A KR20210042393 A KR 20210042393A KR 1020217007823 A KR1020217007823 A KR 1020217007823A KR 20217007823 A KR20217007823 A KR 20217007823A KR 20210042393 A KR20210042393 A KR 20210042393A
Authority
KR
South Korea
Prior art keywords
document
documents
vector
words
encoder
Prior art date
Application number
KR1020217007823A
Other languages
English (en)
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 KR20210042393A publication Critical patent/KR20210042393A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/328Management therefor
    • 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/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • 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/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • G06N3/0427
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Algebra (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

일부 실시예들에서, 문서들의 코퍼스로부터 유사한 문서를 검색하기 위한 컴퓨터 구현 방법이 제공된다. 이 방법은: 단어들의 세트를 포함하는 검색 문서를 수신하는 단계; 제1 인코더를 적용하여 제1 벡터를 생성하는 단계; 제2 인코더를 적용하여 제2 벡터를 생성하는 단계; 검색 문서의 제1 벡터와 문서들의 코퍼스의 각각의 문서의 제1 벡터 사이의 제1 유사도를 결정하는 단계; 검색 문서의 제2 벡터와 문서들의 코퍼스의 각각의 문서의 제2 벡터 사이의 제2 유사도를 결정하는 단계; 제1 유사도에 기초하여 문서들의 제1 랭크된 리스트를 생성하는 단계; 제2 유사도에 기초하여 문서들의 제2 랭크된 리스트를 생성하는 단계; 투표 알고리즘을 적용하여 각각의 문서와 연관된 스코어를 결정하는 단계; 및 결정된 스코어에 기초하여 문서들의 제3 랭크된 리스트를 출력하는 단계를 포함할 수 있다.

Description

컴퓨터 구현 선행 기술 검색을 수행하기 위한 시스템들 및 방법들
관련 출원의 상호-참조
본 출원은 2018년 8월 28일자로 출원된 미국 가특허 출원 제62/723,959호 및 2019년 8월 27일자로 출원된 미국 특허 출원 제16/553,148호로부터 우선권을 주장하며, 두 출원은 그 전체가 참조로 포함된다.
선행 기술 검색들을 수행하는 것은 종종 번거롭고 비효율적이다. 선행 기술 검색들을 수행하는 방법들은 처리 시간이 길고, 그에 의해 특허 심사 프로세스에서 백로그들 및 지연들을 야기한다. 또한, 현재의 컴퓨터화된 검색 도구들은 사람이 하나 이상의 단계에서 정보를 입력할 것을 요구한다. 현재의 검색 방법들에서의 비효율성들은 또한 텍스트 문서들을 정량화하는 것의 어려움으로부터 비롯되어, 차선의 결과들을 산출한다.
따라서, 유사한 문서들을 효율적이고 정확하게 식별하기 위한 시스템들 및 방법들이 필요하다.
본 발명의 일부 실시예들에서는, 문서 데이터베이스를 생성하기 위한 컴퓨터 구현 방법이 제공된다.
일 실시예에서, 문서 데이터베이스를 생성하기 위한 컴퓨터 구현 방법이 제공된다. 이 방법은: 복수의 문서 중의 한 문서를 수신하는 단계 - 문서는 단어들의 세트를 포함함 - ; 단어들의 세트에 제1 인코더를 적용하여 제1 벡터를 생성하는 단계; 단어들의 세트에 제2 인코더를 적용하여 제2 벡터를 생성하는 단계; 제1 벡터 및 제2 벡터를 사용하여 문서를 검색가능 인덱스로 인덱싱하는 단계; 및 인덱스를 사용하여 문서의 검색을 가능하게 하는 단계를 포함할 수 있다.
다른 실시예에서, 문서들의 코퍼스(corpus)로부터 유사한 문서를 검색하기 위한 방법이 제공된다. 이 방법은: 단어들의 세트를 포함하는 검색 문서를 수신하는 단계; 단어들의 세트에 제1 인코더를 적용하여 제1 벡터를 생성하는 단계; 단어들의 세트에 제2 인코더를 적용하여 제2 벡터를 생성하는 단계; 검색 문서의 제1 벡터와 문서들의 코퍼스의 각각의 문서의 제1 벡터 사이의 제1 유사도를 결정하는 단계; 검색 문서의 제2 벡터와 문서들의 코퍼스의 각각의 문서의 제2 벡터 사이의 제2 유사도를 결정하는 단계; 제1 유사도에 기초하여 코퍼스 내의 문서들의 제1 랭크된 리스트를 생성하는 단계; 제2 유사도에 기초하여 코퍼스 내의 문서들의 제2 랭크된 리스트를 생성하는 단계; 투표 알고리즘을 적용해서 각각의 문서의 상대적인 랭크된 리스트 내의 위치에 기초하여 각각의 문서와 연관된 스코어를 결정하는 단계; 및 결정된 스코어에 기초하여 문서들의 제3 랭크된 리스트를 출력하는 단계를 포함할 수 있다.
다른 실시예에서, 컴퓨터 프로그램 제품은 컴퓨터 판독가능 프로그램이 구현되어 있는 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 프로그램은, 컴퓨팅 디바이스 상에서 실행될 때, 컴퓨팅 디바이스로 하여금: 단어들의 세트를 포함하는 검색 문서를 수신하게 하고; 단어들의 세트에 제1 인코더를 적용하여 제1 벡터를 생성하게 하고; 단어들의 세트에 제2 인코더를 적용하여 제2 벡터를 생성하게 하고; 검색 문서의 제1 벡터와 문서들의 코퍼스의 각각의 문서의 제1 벡터 사이의 제1 유사도를 결정하게 하고; 검색 문서의 제2 벡터와 문서들의 코퍼스의 각각의 문서의 제2 벡터 사이의 제2 유사도를 결정하게 하고; 제1 유사도에 기초하여 코퍼스 내의 문서들의 제1 랭크된 리스트를 생성하게 하고; 제2 유사도에 기초하여 코퍼스 내의 문서들의 제2 랭크된 리스트를 생성하게 하고; 투표 알고리즘을 적용해서 각각의 문서의 상대적인 랭크된 리스트 내의 위치에 기초하여 각각의 문서와 연관된 스코어를 결정하게 하고; 결정된 스코어에 기초하여 문서들의 제3 랭크된 리스트를 출력하게 할 수 있다.
전술한 일반적인 설명과 다음에 오는 상세한 설명 둘 다는 예시적이며 설명적인 것일 뿐이고, 청구된 바와 같이 개시된 실시예들을 제한하지 않는다는 것을 이해해야 한다.
본 명세서에 포함되어 그 일부를 구성하는 첨부 도면들은 개시된 실시예들을 예시하고, 설명과 함께, 개시된 실시예들을 설명하는 역할을 한다. 도면들에서:
도 1은 개시된 실시예들에 따른 선행 기술 데이터베이스를 유지하기 위한 예시적인 시스템의 블록도이다.
도 2a는 개시된 실시예들에 따른 선행 기술 데이터베이스를 검색하기 위한 예시적인 시스템의 프로세스 다이어그램이다.
도 2b는 개시된 실시예들에 따른 예시적인 시맨틱 인코더(semantic encoder)의 프로세스 다이어그램이다.
도 3a는 개시된 실시예들에 따른 예시적인 노드-에지 그래프(node-edge graph)이다.
도 3b는 개시된 실시예들에 따른 예시적인 노드-에지 그래프이다.
도 4a는 개시된 실시예들에 따른 선행 기술 데이터베이스를 검색하기 위한 예시적인 그래픽 사용자 인터페이스이다.
도 4b는 개시된 실시예들에 따른 선행 기술 검색 결과들을 디스플레이하는 다른 예시적인 그래픽 사용자 인터페이스이다.
도 5는 개시된 실시예들에 따른 선행 기술 데이터베이스를 검색하는 예에 대한 예시이다.
도 6은 개시된 실시예들에 따른 선행 기술 데이터베이스를 생성하는 예시적인 방법의 흐름도이다.
도 7은 개시된 실시예들에 따른 선행 기술 데이터베이스를 검색하는 예시적인 방법의 흐름도이다.
다음의 상세한 설명에서는, 개시된 예시적인 실시예들의 충분한 이해를 제공하기 위해 다수의 특정 상세가 제시된다. 그러나, 본 기술분야의 통상의 기술자들은 예시적인 실시예들의 원리들이 모든 특정 상세 없이 실시될 수 있다는 것을 이해할 것이다. 잘 알려진 방법들, 절차들, 및 컴포넌트들은 예시적인 실시예들의 원리들을 모호하게 하지 않도록 상세히 설명되지 않았다. 명시적으로 언급되지 않는 한, 본 명세서에 설명된 예시적인 방법들 및 프로세스들은 특정 순서 또는 시퀀스로 제약되지 않거나 특정 시스템 구성으로 제약되지 않는다. 추가적으로, 설명된 실시예들 또는 그의 요소들 중 일부가 일제히, 동일한 시점에, 또는 동시에 발생하거나 수행될 수 있다.
개시된 실시예들은 컴퓨터 구현 선행 기술 검색을 수행하기 위한 시스템들 및 방법들을 제공한다. 개시된 시스템들 및 방법들은 새로운 특허 출원들과 같은 하나 이상의 문서에 대한 선행 기술 및 그의 유사도들을 평가하는 데 사용될 수 있다. 개시된 시스템들 및 방법들은, 비효율적이고 하나 이상의 단계에서 사람의 개입을 필요로 하는, 종래의 시스템들에 비해 증가된 정확도를 제공할 수 있다.
일 실시예에서, 본 개시내용과 일치하는 시스템들 및 방법들은 입력 및 출력 관련 선행 기술 결과들 및/또는 다른 관련 문서들로서 특허 출원 또는 다른 문서를 수신할 수 있다. 이러한 시스템들 및 방법들은, 예를 들어, 새로 제출된 특허 출원과 관련된 선행 기술을 찾는데 사용될 수 있다. 다른 실시예들에서, 설명된 시스템들 및 방법들은 특허 출원을 제출하기 전에 관련 기술 검색들을 수행하는 데 사용될 수 있거나, 실시자유(freedom-to-operate) 분석들을 지원하는 데 사용될 수 있다.
본 명세서에 설명된 시스템들 및 방법들은, 예를 들어, 과학자들, 지적 재산 전문가들, 법률 전문가들, 비즈니스 전문가들, 특허청 심사관들, 규제 기관들, 및 학자들을 포함하지만 이들로 제한되지 않는, 상업, 정부, 또는 학술 기관들에 의해 사용될 수 있다. 일 실시예에서, 시스템은 사용자가 공개된 특허 출원들(또는 다른 문서들)과 새로운 특허 출원(또는 다른 문서) 사이의 유사도 검색을 수행할 수 있게 할 수 있다. 일부 실시예들에서, 시스템은 입력된 문서와 가장 유사한 것으로 결정된 문서 또는 입력된 문서와의 유사도에 기초하여 랭크된 유사한 문서들의 리스트를 출력할 수 있다.
도 1은 개시된 실시예들에 따른 선행 기술 데이터베이스를 유지하기 위한 예시적인 시스템(100)을 도시한다. 도시된 바와 같이, 시스템(100)은 선행 기술 시스템(102), 선행 기술 데이터베이스(104), 및 클라이언트 디바이스(106)를 포함할 수 있다. 시스템(100)의 컴포넌트들은 네트워크(108)를 통해 서로 접속될 수 있다.
본 기술분야의 통상의 기술자에 의해 이해되는 바와 같이, 시스템(100)의 컴포넌트들은 다양한 방식들로 배열될 수 있고, 적용가능한 경우, 하드웨어, 펌웨어, 및/또는 소프트웨어의 임의의 적합한 조합으로 구현될 수 있다. 예를 들어, 도 1의 도시와 비교하여, 시스템(100)은 더 많거나 더 적은 수의 선행 기술 시스템, 선행 기술 데이터베이스, 클라이언트 디바이스 및/또는 네트워크를 포함할 수 있다. 추가적으로, 시스템(100)은 개시된 실시예들에 따른 하나 이상의 프로세스를 수행하거나 그 수행을 보조하는 도시되지 않은 다른 컴포넌트들 또는 디바이스들을 추가로 포함할 수 있다. 도 1에 도시된 예시적인 컴포넌트들 및 배열들은 개시된 실시예들을 제한하려는 것이 아니다.
선행 기술 시스템(102)은 개시된 실시예들에 따른 컴퓨팅 디바이스, 컴퓨터, 서버, 서버 클러스터, 복수의 서버 클러스터, 및/또는 클라우드 서비스를 포함할 수 있다. 선행 기술 시스템(102)은 개시된 실시예들에 따른 동작들을 수행하도록 구성되는 하나 이상의 메모리 유닛 및 하나 이상의 프로세서를 포함할 수 있다. 선행 기술 시스템(102)은 개시된 실시예들에 따른 데이터 모델들 및/또는 데이터세트들을 생성, 수신, 검색, 저장, 및/또는 제공하도록 구성되는 컴퓨팅 시스템들을 포함할 수 있다. 선행 기술 시스템(102)은 개시된 실시예들에 따른 모델들을 생성하고 훈련하도록 구성되는 컴퓨팅 시스템들을 포함할 수 있다. 선행 기술 시스템(102)은 시스템(100)의 다른 컴포넌트들 및/또는 시스템(100) 외부의 컴퓨팅 컴포넌트들(예를 들어, 네트워크(108)를 통해)로부터 데이터를 수신하고, 이들로부터 데이터를 검색하고, 및/또는 이들에 데이터를 송신하도록 구성될 수 있다. 선행 기술 시스템(102)이 (도 2a를 참조하여) 아래에 더 상세히 개시된다.
선행 기술 시스템(102)은 하나 이상의 머신-러닝 모델을 훈련, 구현, 저장, 수신, 검색, 및/또는 송신하기 위한 프로그램들(예를 들어, 스크립트들, 함수들, 알고리즘들)을 포함할 수 있다. 머신-러닝 모델들은 신경망 모델, 주의 네트워크 모델(attention network model), 적대적 생성 모델(generative adversarial model)(GAN), 순환 신경망(recurrent neural network, RNN) 모델, 딥 러닝 모델(예를 들어, 장단기 메모리(long short-term memory, LSTM) 모델), 랜덤 포레스트 모델(random forest model), 컨볼루션 신경망(convolutional neural network, CNN) 모델, RNN-CNN 모델, LSTM-CNN 모델, 시간적-CNN 모델, 지원 벡터 머신(support vector machine, SVM) 모델, DBSCAN(Density-based spatial clustering of applications with noise) 모델, k-means 클러스터링 모델(k-means clustering model), 분배-기반 클러스터링 모델(distribution-based clustering model), k-medoids 모델, 자연어 모델(natural-language model), 및/또는 다른 머신-러닝 모델을 포함할 수 있다. 모델들은 앙상블(ensemble) 모델(즉, 복수의 모델로 구성된 모델)을 포함할 수 있다. 일부 실시예들에서, 모델의 훈련은 훈련 기준이 만족될 때 종료될 수 있다. 훈련 기준은 에포크(epoch)들의 수, 훈련 시간, 성능 메트릭(예를 들어, 테스트 데이터를 재생함에 있어서의 정확도의 추정치) 등을 포함할 수 있다. 선택은 훈련 동안 모델 파라미터들을 조정하도록 구성될 수 있다. 모델 파라미터들은 가중치들, 계수들, 오프셋들 등을 포함할 수 있다. 훈련은 감독되거나 감독되지 않을 수 있다.
선행 기술 데이터베이스(104)는 하나 이상의 서버, 하나 이상의 서버 클러스터, 또는 하나 이상의 클라우드 서비스 상에서 호스팅될 수 있다. 선행 기술 데이터베이스(104)는 네트워크(108)에 접속될 수 있다(접속이 도시되지 않음).
일부 실시예들에서, 선행 기술 데이터베이스(104)는 개시된 실시예들에 따른 시스템(100)에 의한 사용을 위해 데이터를 저장하도록 구성되는 하나 이상의 데이터베이스를 포함할 수 있다. 일부 실시예들에서, 선행 기술 데이터베이스는 개시된 실시예들에 따른 데이터세트들 및/또는 하나 이상의 데이터세트 인덱스를 저장하도록 구성될 수 있다. 선행 기술 데이터베이스(104)는 클라우드-기반 데이터베이스(예를 들어, AMAZON WEB SERVICES RELATIONAL DATABASE SERVICE) 또는 온-프레미스 데이터베이스(on-premises database)를 포함할 수 있다. 선행 기술 데이터베이스(104)는 개시된 실시예들에 따른 데이터세트들, 모델 데이터(예를 들어, 모델 파라미터들, 훈련 기준들, 성능 메트릭들 등), 및/또는 다른 데이터를 포함할 수 있다. 선행 기술 데이터베이스(104)는 시스템(100)의 하나 이상의 컴포넌트들 및/또는 시스템(100) 외부의 컴퓨팅 컴포넌트들(예를 들어, 네트워크(108)를 통해)로부터 수신된 데이터를 포함할 수 있다. 일부 실시예들에서, 선행 기술 데이터베이스(104)는 선행 기술 시스템(102)의 컴포넌트일 수 있다(도시되지 않음).
일부 실시예들에서, 선행 기술 데이터베이스(104)는 데이터 구조, 예를 들어, 그래프 구조에 정보를 저장할 수 있다. 선행 기술 데이터베이스(104)는 SATA(serial advanced technology attachment), IDE(integrated drive electronics), IEEE-1394, USB(universal serial bus), 파이버 채널, SCSI(small computer systems interface) 등과 같은 접속 프로토콜들을 이용하는 메모리 드라이브들, 이동식 디스크 드라이브들 등을 제한 없이 사용하여 구현될 수 있다. 메모리 드라이브들은 드럼, 자기 디스크 드라이브, 광자기 드라이브, 광학 드라이브, RAID(redundant array of independent disc), 솔리드 스테이트 메모리 디바이스, 솔리드 스테이트 드라이브 등을 추가로 포함할 수 있다.
클라이언트 디바이스(106)는 개시된 실시예들에 따른 동작들을 수행하도록 구성되는 하나 이상의 메모리 유닛 및 하나 이상의 프로세서를 포함할 수 있다. 일부 실시예들에서, 클라이언트 디바이스(106)는 하드웨어, 소프트웨어, 및/또는 펌웨어 모듈들을 포함할 수 있다. 클라이언트 디바이스(106)는 사용자 디바이스일 수 있다. 클라이언트 디바이스(106)는 모바일 디바이스, 태블릿, 개인용 컴퓨터, 단말기, 키오스크, 서버, 서버 클러스터, 클라우드 서비스, 저장 디바이스, 개시된 실시예들에 따른 방법들을 수행하도록 구성되는 특수화된 디바이스 등을 포함할 수 있다.
선행 기술 시스템(102), 선행 기술 데이터베이스(104), 또는 클라이언트 디바이스(106) 중 적어도 하나가 네트워크(108)에 접속될 수 있다. 네트워크(108)는 공용 네트워크 또는 사설 네트워크일 수 있고, 예를 들어, 로컬 영역 네트워크(Local Area Network), 광역 네트워크(Wide Area Network), 메트로폴리탄 영역 네트워크(Metropolitan Area Network), IEEE1002.11 무선 네트워크(예를 들어, "Wi-Fi"), 네트워크들의 네트워크(예를 들어, 인터넷), 유선 전화 네트워크(land-line telephone network) 등을 제한 없이 포함하는 유선 또는 무선 네트워크를 포함할 수 있다. 네트워크(108)는 다양한 시스템 컴포넌트들을 서로 및/또는 외부 시스템들 또는 디바이스들에 접속시키기 위해 다른 네트워크들(도 1에 도시되지 않음)에 접속될 수 있다. 일부 실시예들에서, 네트워크(108)는 보안 네트워크일 수 있고 네트워크에 액세스하기 위해 패스워드를 필요로 할 수 있다.
도 2a는 선행 기술 시스템(102)의 예시적인 구성(200)을 도시한다. 본 기술분야의 통상의 기술자에 의해 이해되는 바와 같이, 선행 기술 시스템(102)에 포함된 구성요소들 및 구성요소들의 배열이 달라질 수 있다. 예를 들어, 도 2a의 도시와 비교하여, 선행 기술 시스템(102)은 더 많거나 더 적은 수의 프로세서들, 인터페이스들 또는 I/O 디바이스들, 또는 메모리 유닛들을 포함할 수 있다. 또한, 선행 기술 시스템(102)은 개시된 실시예들에 따른 하나 이상의 프로세스를 수행하거나 그 수행을 보조하는 도시되지 않은 다른 컴포넌트들 또는 디바이스들을 추가로 포함할 수 있다. 도 2a에 도시된 컴포넌트들 및 배열들은 개시된 실시예들을 제한하려는 것이 아니며, 이는 개시된 프로세스들 및 특징들을 구현하기 위해 사용되는 컴포넌트들이 달라질 수 있기 때문이다.
프로세서(200)는 마이크로프로세서를 포함하는 알려진 컴퓨팅 프로세서들을 포함할 수 있다. 프로세서(200)는 병렬 프로세스들을 동시에 실행하는 단일-코어 또는 다중-코어 프로세서를 구성할 수 있다. 예를 들어, 프로세서(200)는 가상 처리 기술들로 구성된 단일-코어 프로세서일 수 있다. 일부 실시예들에서, 프로세서(200)는 논리 프로세서들을 사용하여 다수의 프로세스를 동시에 실행 및 제어할 수 있다. 프로세서(200)는 다수의 소프트웨어 프로세스들, 애플리케이션들, 프로그램들 등을 실행, 제어, 가동, 조작, 저장하는 등의 능력을 제공하기 위해 가상 머신 기술들, 또는 다른 알려진 기술들을 구현할 수 있다. 다른 실시예에서, 프로세서(200)는 동시에 다수의 프로세스의 실행을 허용하는 병렬 처리 기능들을 제공하도록 구성되는 다중-코어 프로세서 배열(예를 들어, 듀얼 코어, 쿼드 코어 등)을 포함할 수 있다. 본 기술분야의 통상의 기술자는 본 명세서에 개시된 능력들을 제공하는 다른 타입들의 프로세서 배열들이 구현될 수 있다는 것을 이해할 것이다. 개시된 실시예들은 임의의 타입의 프로세서에 제한되지 않는다. 프로세서(200)는 메모리에 저장된 다양한 명령어들을 실행하여 아래에 더 상세히 설명되는 개시된 실시예들의 다양한 기능들을 수행할 수 있다. 프로세서(200)는 하나 이상의 알려진 프로그래밍 언어로 작성된 기능들을 실행하도록 구성될 수 있다.
선행 기술 시스템(102)은 2개의 컴포넌트: 선행 기술 플랫폼(202) 및 선행 기술 애플리케이션(204)을 포함할 수 있다. 일부 실시예들에서, 선행 기술 시스템(102)은 추가적인 컴포넌트들을 포함하는 컴포넌트들의 다른 배열들을 포함할 수 있다.
선행 기술 플랫폼(202)은 데이터 소스(208)에서 수신된 하나 이상의 특허 파일로부터 선행 기술 데이터베이스(206)를 생성하도록 구성될 수 있다. 데이터 소스(208)는 문서 파일들을 수신하기 위해 하나 이상의 데이터베이스, 제3자 데이터베이스, 웹-스크레이퍼(web-scraper) 등에 액세스할 수 있다. 문서 파일들은 데이터 소스(208)로부터 프로덕션 데이터베이스(210)로 송신될 수 있다.
프로덕션 데이터베이스(210)는 수집된 파일들(수집된 데이터) 및 인간에 의해 수동으로 인덱싱되거나 또는 머신을 통해 자동화된 파일들(큐레이팅된 데이터)을 저장할 수 있다. 예를 들어, 인덱스는 문서와 연관된 하나 이상의 태그에 기초할 수 있다. 태그는 문서 내용, 문서에 포함된 하나 이상의 키워드, 또는 문서와 연관된 메타데이터와 관련될 수 있다. 프로덕션 데이터베이스(210)는 선행 기술 데이터베이스(104)와 동일할 수 있거나 별도의 데이터베이스일 수 있다.
일부 실시예들에서, 수집된 파일이 비-네이티브 언어(non-native language)인 경우, 번역 모듈(212)이 문서의 텍스트를 비-네이티브 언어로부터 네이티브 언어(native language)로 번역할 수 있다. 일부 실시예들에서, 번역 모듈(212)은, 예를 들어, 데이터베이스로부터 파일의 네이티브 언어 버전을 검색할 수 있다. 예를 들어, 번역 모듈(212)은 중국 특허를 포함하는 파일을 수신할 수 있다. 번역 모듈(212)은 문서를 파싱하여 특허 번호를 결정하고 이 특허 번호를 사용하여 하나 이상의 제3자 출원을 쿼리하여 네이티브 언어 대응 출원을 검색할 수 있다.
선행 기술 데이터베이스(206)를 채우기 위해, 2개의 모듈, 즉, 배치(batch) 모듈(214) 및 진행중(ongoing) 모듈(216)이 실행될 수 있다. 배치 모듈(214)은 파일들의 코퍼스를 처리할 수 있다. 예를 들어, 배치 모듈(214)은 선행 기술 데이터베이스(206)로의 파일들의 초기 처리를 실행하도록 구성될 수 있다. 일부 실시예들에서, 진행중 모듈(216)은 주기적인(예를 들어, 매일, 매주, 매월 등) 업데이트 프로세스의 일부로서 데이터 소스(208)에서 수신된 파일들을 처리할 수 있다. 일부 실시예들에서, 진행중 모듈(216)은 파일이 데이터베이스에 이미 존재하는지를 결정하기 위해 선행 기술 데이터베이스(206)에 쿼리할 수 있다. 파일이 존재하는 경우, 진행중 모듈(216)은 선행 기술 데이터베이스(206) 내의 파일과 연관된 정보를 업데이트할 수 있다.
일부 실시예들에서, 배치 모듈(214)은: 문서 파서(218a), 시맨틱 인코더(220a), 신택틱 인코더(syntactic encoder)(222a), 및 그래프 빌더(graph builder)(224a)를 포함할 수 있다. 진행중 모듈(216)은 문서 파서(218b), 시맨틱 인코더(220b), 신택틱 인코더(222b), 및 그래프 빌더(224b)를 포함할 수 있다. 일부 실시예들에서, 동일하게 명명된 컴포넌트들(예를 들어, 문서 파서(218a)와 문서 파서(218b))은 동일한 방식들로 구현될 수 있다. 다른 실시예들에서, 동일하게 명명된 컴포넌트들은 서로 상이하게 구현될 수 있다.
문서 파서(218a, 218b)는 파일의 하나 이상의 컴포넌트를 식별할 수 있다. 예를 들어, 파일이 특허인 경우, 문서 파서(218a, 218b)는 고유 식별자(예를 들어, 특허 번호, 공개 번호, 출원일), 특허 제목, 초록, 및 청구항들을 식별하기 위해 하나 이상의 문자 분석 프로세스를 수행하도록 구성될 수 있다. 일부 실시예들에서, 문서 파서(218a, 218b)는 독립 청구항 및 종속 청구항을 식별할 수 있다. 일부 실시예들에서, 문서 파서(218a, 218b)는 수신된 파일들을 전처리할 수 있다. 예를 들어, 문서 파서(218a, 218b)는 PDF 파일 또는 마이크로소프트 워드(Microsoft Word) 문서를 XML 문서로 변환할 수 있다.
문서 파서(218a, 218b)가 파일의 하나 이상의 컴포넌트를 식별했다면, 시맨틱 인코더(220a, 220b)는, 예를 들어, 심층 신경망 인코더(deep neural network encoder)를 사용하여 컴포넌트들의 벡터 표현을 생성할 수 있다. 심층 신경망 인코더는 파일의 텍스트의 시맨틱 의미를 수치적으로 캡처하도록 구성될 수 있다. 예를 들어, 시맨틱 인코더(220a, 220b)는 텍스트 정보(예를 들어, 제목, 초록, 청구항들)를 벡터의 형태로 그 텍스트의 수치적인 수학적 표현으로 변환할 수 있다. 텍스트가 대표적인 벡터로 변환되면, 그 텍스트는 문서들 사이의 유사도를 결정하기 위해 동일한 방식으로 변환된 다른 텍스트와 비교될 수 있다.
시맨틱 인코딩 프로세스(236)의 예가 도 2b에 도시된다. 시맨틱 인코더(220a, 220b)는 단어들의 시리즈(a series of words)(예를 들어, 입력 문서의 텍스트)를 벡터로 변환할 수 있으며, 여기서 벡터 내의 각각의 위치는 문서들(예를 들어, 선행 기술 데이터베이스(206)에 저장된 문서들)의 코퍼스 내의 단어의 빈도를 나타내는 값을 갖는다. 예를 들어, 텍스트 문장을 "The quick brown fox"라고 한다. 시맨틱 인코더(220a, 220b)는 이 시리즈의 각각의 단어를 평가하여 벡터를 생성할 수 있다. 80,000개의 단어의 어휘를 가정하면, [THE] [QUICK] [BROWN] [FOX]는 [1, 3257, 2037, 100]의 대응하는 정수 벡터를 가질 수 있다. 1은 "the"에 대응할 수 있고, 3257은 "quick"에 대응할 수 있는 등등이며, 그에 따라 "the"에 대응하는 1은 그것이 코퍼스 내의 가장 빈번한 단어임을 의미하고, 3257은 "quick"이 코퍼스 내의 3257번째 가장 빈번한 단어임을 의미한다. 일부 실시예들에서, 어휘는 문서들의 코퍼스에서 적어도 한 번 나타나는 단어들의 리스트일 수 있다. 다른 실시예들에서, 어휘는, 예를 들어, 참고서(예를 들어, 옥스포드 영어 사전), 하나 이상의 기술 또는 과학 사전 등에 기초할 수 있다.
임베딩(embedding) 모듈(238)은 256개의 행과 80,001개의 열의 행렬을 생성하도록 구성될 수 있다. 프로세스의 의도된 응용 및/또는 원하는 속도에 따라 더 많거나 더 적은 행들이 있을 수 있다. 행들의 수는 분석된 단어들의 수를 지칭할 수 있다. 예를 들어, 256은 특허의 청구항들의 처음 256개 단어에 대응할 수 있다. 열들의 수는 어휘에 없는 발견된 단어들, 또는 "어휘에서 벗어난(out of vocabulary)" 단어들에 대한 추가적인 첫번째 열을 갖는 가정된 어휘에 대응할 수 있다. 따라서, 열 2는 문서들의 코퍼스 전체에 걸쳐 가장 빈번히 사용되는 문장 내의 단어 등을 나타낼 수 있다.
일부 실시예들에서, 행은 텍스트에서 단어의 번호 위치를 나타낸다. 예를 들어, 단어 "the"에 대해, 임베딩 모듈(238)은 256x80,001 행렬의 행 1, 열 2에 1을 저장할 것이며, 이는 "the"가 문장에서 첫번째 단어(행 1에 대응)이고 가장 인기 있는 단어(열 2에 대응)임을 지시한다.
양방향 게이트형 순환 유닛(bidirectional gated recurrent unit)(240)은 512개의 행(임베딩 모듈(238)에 의해 생성된 행렬의 행 수의 2배) 및 80,001개의 열을 갖는 행렬을 생성하기 위해 문장을 앞뒤로 "판독"할 수 있다. 신경망(242)은 행렬을 유사도 스코어링(similarity scoring)에 사용하기 위한 최종 벡터로 변환할 수 있다. 일부 실시예들에서, 최종 벡터 내의 각각의 위치에 저장된 플로트(float)의 폭은 최적의 폭을 생성하기 위해 머신 러닝에 기초하여 결정될 수 있다.
신택틱 인코더(222a, 222b)는 TF-IDF(term frequency-inverse document frequency) 인코더를 사용하여 문서 파서(218a, 218b)에 의해 식별된 파일 컴포넌트들의 벡터 표현을 생성할 수 있다. 신택틱 인코더(222a, 222b)는 텍스트의 신택틱 의미를 캡처하도록 구성될 수 있다. 신택틱 인코더(222a, 222b)는 텍스트 정보(특허의 예에서, 제목, 초록, 및 청구항들)를 벡터의 형태로 그 텍스트의 수치적인 수학적 표현으로 변환할 수 있다. 신택틱 인코더(222a, 222b)는, 예를 들어, 파일 텍스트를 파싱하여 파일로부터 "정지 단어들"(예를 들어, "and", "the" 등)을 식별 및 제거할 수 있다. 이어서, 신택틱 인코더(222a, 222b)는 파싱된 텍스트를 분석하여 문서에서 단어가 얼마나 인기있는지를 결정할 수 있다. 파일 내의 단어 또는 객체의 인기도(popularity)는 문서 내의 모든 나머지 단어들과 비교하여 그 단어가 그 문서에 나타나는 횟수를 지칭할 수 있다. 신택틱 인코더(222a, 222b)는 또한 단어 또는 객체의 희귀도(rarity)를 결정할 수 있다. 예를 들어, 희귀도는 파일들의 코퍼스에서 단어가 나타나는 파일들의 갯수와 비교하여 파일에서 단어가 나타나는 횟수일 수 있다.
일부 실시예들에서, 그래프 빌더(224a, 224b)는 파일 정보를 지식 그래프 데이터베이스(knowledge graph database)에 저장하기 위해 파일을 처리할 수 있다. 지식 그래프 데이터베이스는 파일 정보를 그래프 데이터 구조로 저장할 수 있다. 지식 그래프를 생성하기 위한 예시적인 방법이 도 3a 및 도 3b와 관련하여 더 상세히 논의된다.
일부 실시예들에서, 선행 기술 데이터베이스(206)는 벡터 데이터, 문서 데이터, 및 지식 그래프 데이터를 저장할 수 있다. 일부 실시예들에서, 예외들은 예외 데이터 저장소(exception data store)에 유지될 수 있다. 예외 데이터 저장소는 선행 기술 데이터베이스(206)의 일부일 수 있다. 예를 들어, 문서 파서(218a, 218b)가 파일 내의 하나 이상의 컴포넌트를 식별할 수 없을 때 예외 데이터가 생성될 수 있다. 다른 예에서, 네이티브 언어 파일에 대응하는 파일을 찾을 수 없을 때 예외가 생성될 수 있다.
일부 실시예들에서, 예외 데이터가 아닌 진행중 모듈(216)로부터의 벡터 데이터뿐만 아니라 배치 모듈(214)로부터의 벡터 데이터는 벡터 데이터 저장소(vector data store)에 저장된다. 예외 데이터가 아닌 진행중 모듈(216)로부터의 문서 데이터와 배치 모듈(214)로부터의 문서 데이터는 문서 데이터 저장소(document data store)에 저장될 수 있다. 예외 데이터가 아닌 진행중 모듈(216)로부터의 그래프 데이터뿐만 아니라 배치 모듈(214)로부터의 그래프 데이터는 지식 그래프 데이터 저장소(knowledge graph data store)에 저장된다.
선행 기술 애플리케이션(204)은 데이터 소스(226), 번역 모듈(228), 준 실시간(near real-time) 모듈(230), 스코어링 모듈(232), 및 디스플레이 또는 프린터와 같은 출력 디바이스(234)를 포함할 수 있다. 출력 디바이스(234)는, 예를 들어, 네트워크(108)를 통해 선행 기술 시스템(102)과 통신하는 외부 디바이스일 수 있다. 출력 디바이스(234)는 프린터, 컴퓨팅 디바이스, 단말기, 키오스크 등 중 하나 이상일 수 있다.
선행 기술 애플리케이션(204)은 사용자가 하나 이상의 유사한 문서를 식별하기 위해 다른 문서들과 비교하기를 원하는 문서를 포함하는 입력을 (예를 들어, 클라이언트 디바이스(106)를 통해) 사용자로부터 수신하도록 구성될 수 있다. 선행 기술 애플리케이션은 입력 문서를 분석하고 선행 기술 플랫폼(202)에 의해 생성된 선행 기술 데이터베이스(206)를 검색하여 하나 이상의 유사한 문서를 식별할 수 있다.
데이터 소스(226)는 그래픽 사용자 인터페이스(GUI)를 통해 입력된 하나 이상의 파일을 수신할 수 있다. 예를 들어, GUI는 데이터 소스(226)에 업로드할 문서의 파일 위치를 나타내는 입력을 수신하도록 구성될 수 있다.
수신된 파일이 비-네이티브 언어로 되어 있는 경우, 그 파일은 번역 모듈(228)에 의해 번역될 수 있다. 번역 모듈(228)은 번역 모듈(212)과 동일한 방식으로 동작하도록 구성될 수 있다. 일부 실시예들에서, 번역 모듈(228)과 번역 모듈(212)은 동일할 수 있다. 그 다음, 파일은 준 실시간 모듈(230)에 의해 처리될 수 있고, 준 실시간 모듈(230)은 그래프 빌더(예를 들어, 그래프 빌더(224a, 224b)), 시맨틱 인코더(예를 들어, 시맨틱 인코더(220a, 220b)), 신택틱 인코더(예를 들어, 신택틱 인코더(222a, 222b)) 및 문서 파서(예를 들어, 문서 파서(218a, 218b))를 포함할 수 있다.
선행 기술 플랫폼(202)을 참조하여 전술한 바와 같이, 문서 파서가 파일의 하나 이상의 컴포넌트를 식별할 수 있다. 문서 파서가 파일의 구성요소들을 식별했다면, 그래프 빌더는 파일 정보를 지식 그래프 데이터베이스에 저장하기 위해 파일의 텍스트를 처리할 수 있다. 파일 정보는 선행 기술 데이터베이스(206)의 지식 그래프 데이터 저장소에 업로드될 수 있다. 시맨틱 인코더는 텍스트의 시맨틱 의미를 캡처하는 딥 신경망 인코더를 사용하여 문서 파서로부터 컴포넌트들의 벡터 표현을 생성할 수 있다. 신택틱 인코더는 텍스트의 신택틱 의미를 캡처하는 TF-IDF(term frequency-inverse document frequency) 인코더를 사용하여 문서 파서로부터 그 컴포넌트들의 벡터 표현을 생성할 수 있다.
일부 실시예들에서, 준 실시간 모듈(230)이 처리를 완료했을 때, 스코어링 모듈(232)은 파일 데이터를 수집하고 여러 프로세스를 실행할 수 있다. 먼저, 스코어링 모듈(232)은 선행 기술 데이터베이스(206)의 쿼리를 실행할 수 있다. 쿼리 데이터는 수신된 파일과 가장 신택틱상 유사(most syntactically similar)하고 가장 시맨틱상 유사(most semantically similar)한 파일들의 형태로 반환될 수 있다. 쿼리 데이터는 또한 지식 그래프에서 수신된 파일에 인접한 파일들을 반환할 수 있다. 일부 실시예들에서, 유사도는 코사인, 피어슨 상관 계수(Pearson correlation coefficient), 또는 자카드 인덱스(Jaccard index)를 사용하여 결정될 수 있다. 쿼리 데이터에서 반환된 파일들의 수는 파라미터일 수 있다. 유사한 특허들의 3개의 그룹(시맨틱, 신택틱, 및 그래픽)이 스코어링 모듈(232)로 반환되면, 앙상블 프로세스가 결과들을 조합하여 유사한 파일들의 최적의 응답 세트를 생성할 수 있다.
앙상블 프로세스는 투표 알고리즘(voting algorithm)을 사용하여 시맨틱, 신택틱, 및 그래프 프로세스들로부터의 파일들의 리스트들을 통합(consolidate)할 수 있다. 예를 들어, 파일이 하나의 프로세스의 출력에 나타나는 경우, 그 발생은 파일이 그 프로세스의 리스트에 나타나는 역 랭크(inverse rank)와 동일한 투표에 기여한다. 투표들은 각각의 고유 파일에 대해 누적될 수 있고, 상위 파일들이 각각의 파일이 받은 투표 수에 의해 랭크된 응답 세트로서 반환된다. 일부 실시예들에서, 선행 기술 애플리케이션(204)은 사용자 인터페이스로부터 원하는 수의 결과를 수신할 수 있다. 따라서, 선행 기술 애플리케이션(204)은 입력된 수의 결과를 갖는 리스트를 반환할 수 있다. 일부 실시예들에서, 프로세스들의 투표 기여들 중 하나 이상이 가중화될 수 있다. 예를 들어, 시맨틱 벡터가 특정 문서 타입에 대한 유사도의 더 정확한 예측자인 것으로 결정되는 경우, 시맨틱 프로세스의 투표는 신택틱 및 그래프 프로세스들보다 더 높은 가중치를 가질 수 있다.
일부 실시예들에서, 스코어링 모듈(232)은 필터링 규칙 프로세스를 포함할 수 있다. 필터링 규칙 프로세스는 사용자 입력에 기초하여 하나 이상의 필터 또는 알고리즘을 최종 응답 세트에 적용할 수 있다. 예를 들어, 사용자는 응답 세트를 제약하는 규칙들을 특정할 수 있다. 특허 선행 기술 검색의 예에서, 사용자는 선행 기술 애플리케이션(204)이 최종 응답 세트에서 각각의 출원의 중국 대응 출원을 페치하게 하도록 필터링 규칙을 적용할 수 있다.
마지막으로, 스코어링 모듈(232)이 처리를 완료하였다면, 응답 세트는 디스플레이에서 사용자에게 렌더링되거나 주변 프린터, 예를 들어, 출력 디바이스(234) 상에 인쇄될 수 있다. 예를 들어, 응답 세트는 리스트, 차트, 표, 그래픽 디스플레이 등으로서 사용자에게 제시될 수 있다. 응답 세트는 문서 식별자들(예를 들어, 특허 번호), 문서 제목들, 응답 리스트의 하나 이상의 문서에 대한 하이퍼링크들 등 중 하나 이상을 포함할 수 있다.
도 3a 및 도 3b는 지식 그래프 생성의 방법들을 설명한다. 예를 들어, 이러한 방법들은 하나 이상의 지식 그래프를 생성하기 위해 그래프 빌더(224a, 224b)에 의해 사용될 수 있다. 일부 실시예들에서, 지식 그래프는 특허들, 비-특허 문헌, 및 다른 문서들에서 발견되는 과학적 정보에 관련된 상호연결된 과학적 토픽들, 역할들, 및 명명법을 포함할 수 있다. 과학적 토픽들 및 역할들은, 예를 들어, 새로운 물질, 화합물, 또는 아이디어의 사용을, 예를 들어, 문장 이하로 설명함으로써 문서들에 대한 더 큰 이해를 제공한다. 역할들은 물질 및/또는 아이디어가 사용될 수 있는 방법 및/또는 그것이 사용될 수 있는 용량의 타입에 관한 정보를 제공할 수 있다. 일부 실시예들에서, 인간-큐레이팅된 정보(human-curated information)는 특허들 및 비-특허 문헌과 같은 문서들을 상호연결하는 메커니즘의 역할을 할 수 있다. 큐레이팅된 정보는 상호연결된 다중-관계형 이종 네트워크(interconnected multi-relational heterogeneous network)로서 리캐스팅(recast)되고 지식 그래프로서 모델링될 수 있다. 일부 실시예들에서, 과학 문서들, 역할들, 및 명명법은 특허들 및/또는 과학 문헌의 훈련 세트(training set)에 대해 훈련된 하나 이상의 머신 러닝 알고리즘을 사용하여 자동으로 생성될 수 있다.
일부 실시예들에서, 지식 그래프는 문서들 사이의 연결들을 만드는 데 사용될 수 있는 인간- 또는 컴퓨터-큐레이팅된 과학적 내용을 사용하여 작성될 수 있다. 상호연결된 네트워크의 구조 및 형상(토폴로지)은 문서 관련성의 특성일 수 있고, 큐레이터(curator)에 의해 특정된 문서 유사도의 정의를 제공할 수 있다. 따라서, 공유된 토폴로지 및/또는 기술적 유사도의 특성들에 기초하여 유사한 것으로 결정되는 문서들이 지식 그래프에서 함께 제시될 수 있다.
일부 실시예들에서, 지식 그래프에서의 문서 연결들은 화학적 토픽 및 물질 관련 정보를 포함할 수 있다. 전체 지식 그래프에서 연결된 토픽들 및 물질들의 자연스러운 분포와 같은 문서 관련성을 스코어링하기 위해 추가적인 정보가 사용될 수 있다. 예를 들어, 주어진 과학적 토픽이 유사도 스코어에 영향을 미치는 정도는 지식 그래프 내의 연결성의 패턴에 기초할 수 있다. 일 실시예에서, 개시된 시스템들 및 방법들은 하부구조 검색, 화학정보학 기법(cheminformatics techniques), 인용, 조직, 저자, 및 다른 기법 및 카테고리에 의해 세분화될 수 있다. 지식 그래프는 관련 문서들을 식별하기 위해 신경 임베딩들(neural embeddings)과 같은 인공 지능 기법들 대신에 또는 그와 함께 사용될 수 있다. 예를 들어, 전술한 바와 같이, 지식 그래프는 시맨틱 및 신택틱 유사도와 함께 사용될 수 있으며 문서 유사도의 상보적인 표현(complimentary representation)을 제공할 수 있다.
도 3a는 형상들(120a, 120b)로 표시된 2개의 특허 문서 사이의 관계를 나타내는 네트워크 구조를 도시하는 예시적인 지식 그래프(110)이다. 이러한 관계들은, 예를 들어, 인간 큐레이션을 사용하여 확립될 수 있다. 지식 그래프(110)에서, 예를 들어, 형상(125)으로서 표시된 물질들은 연결(127)을 사용하여 그 물질을 논의하는 문서(예를 들어, 특허 문서(120a))에 연결될 수 있다. 도 3a의 예시적인 네트워크 구조에서, 2개의 특허 문서(120a, 120b)는 서로 직접 관련되지 않는다(즉, 이들은 직접 연결된 토픽들 또는 물질들을 공유하지 않는다). 그 대신에, 지식 그래프(110)에 간접 연결들(140a, 140b)이 표시되어, 2개의 문서(120a, 120b)가 형상(130)으로 표시된 "알데히드"와 같은 중간 토픽/개념들을 통해 연결될 수 있게 한다. 문서들 사이의 직접 연결은 하나의 개재 물질 또는 개념과의 연결일 수 있다. 이 예에서는, 알데히드(130)라는 개념이 문서(120a)에 직접 연결되지 않지만, 그 대신에 그 자체와 문서(120a) 사이에 물질(141A) 및 물질(125)을 갖기 때문이다. 문서(120b)는 알데히드(130)라는 개념을 통해 문서(120a)에 간접적으로 연결된다.
도 3b는 형상들(220a, 220b)로 표시된 2개의 특허 문서 사이의 관계를 나타내는 네트워크 구조를 도시하는 다른 예시적인 지식 그래프(210)이다. 이 예에서, 2개의 특허 문서(220a, 220b)는 다수의 개념 및 물질 관련 정보(예를 들어, 항종양제(230a), 신생물(230b), 인간(230c), 염증(230d), 및 물질(240))와 직접 연결을 공유한다. 2개의 특허 문서 사이의 유사도의 척도는 직접 연결들 또는, 일부 실시예들에서는, 임의의 연결들을 사용하여 특허 문서들을 함께 연결하는 공유된 개념들, 물질 관련 정보, 또는 다른 과학적 정보의 수에 기초할 수 있다. 예를 들어, 문서(220a)와 문서(220b)는 공유된 개념 스코어: 0.2; 질병 연관도: 0.1; 공유된 물질 정보: 0.3을 가짐으로써, 0.6의 유사도 스코어를 산출할 수 있다. 문서(220a)와 문서(220c)(도시되지 않음)는 공유된 개념 스코어 0.0; 질병 연관도: 0.0; 공유된 물질 정보: 0.1을 가짐으로써, 0.1의 유사도 스코어를 산출할 수 있다. 유사도 스코어들은 코사인, 피어슨 상관 계수, 또는 자카드 인덱스를 사용하여 결정될 수 있다. 일부 실시예들에서, 유사도는 0에서 1까지 측정될 수 있으며, 여기서 0은 문서들 사이에 유사도가 없음을 나타내고, 1은 문서들이 완전히 유사함을 나타낸다.
도 4a는 선행 기술 애플리케이션(204)에 대한 사용자 입력을 수신하도록 구성되는 예시적인 GUI(400)이다. GUI(400)는 사용자 입력들을 수신하고 데이터를 사용자(예를 들어, 클라이언트 디바이스(106)를 운영하는 사용자 또는 특허 심사관)에게 제공하도록 구성될 수 있다.
GUI(400)는, 예를 들어, 입력 필드(402)에서 문서의 파일 위치를 수신할 수 있다. 데이터 소스(208) 및/또는 데이터 소스(226)는 입력 필드(402)에서 식별된 문서를 수신하도록 구성될 수 있다. 다른 실시예들에서, 사용자는 필드(404)에 특허 번호를 입력할 수 있다. 선행 기술 시스템은 입력된 특허 번호와 연관된 문서를 검색하기 위해 하나 이상의 제3자 데이터베이스에 쿼리하도록 구성될 수 있다. 하나 이상의 문서가 업로드되었다면, GUI(400)는 업로드된 문서들의 리스트(406)를 제시할 수 있다. 이들 업로드된 문서들은 사용자가 예를 들어, 선행 기술 데이터베이스(206)로부터 유사한 문서들을 찾기를 원하는 문서들이다.
일부 실시예들에서, 선행 기술 애플리케이션(204)은 검색 프로세스가 실행을 완료했을 때 사용자에게 경보를 제공하는 기능을 포함할 수 있다. 다른 실시예들에서, 선행 기술 애플리케이션은 검색 결과들을 포함하는 문서(예를 들어, 텍스트 파일, 스프레드시트, 마이크로소프트 워드 문서 등)를 생성할 수 있다. 사용자는 진행률 경보(들) 및/또는 결과들의 출력 리스트가 전송될 수 있는 이메일 주소를 (예를 들어, 입력 박스(408)를 통해) 입력할 수 있다. 다른 실시예들에서, 입력 박스(408)는 출력 결과들을 포함하는 파일을 세이브할 위치를 수신하도록 구성될 수 있다.
도 4b는 사용자에게, 예를 들어, 클라이언트 디바이스(106)를 통해 선행 기술 애플리케이션(204)의 출력을 제공하도록 구성되는 예시적인 GUI(410)이다.
GUI(410)는 스코어링 모듈(232)에 의해 식별된 문서들의 랭크된 리스트를 결과 창(412)에 출력할 수 있다. 결과 창(412)은 식별된 목표 특허, 예를 들어, GUI(400)를 통해 입력된 특허와 유사한 것으로 식별된 특허를 디스플레이할 수 있다. 결과 창(412)은, 예를 들어, 특허 번호, 유사도 스코어, 제목, 및 DOCDB 특허 패밀리 번호를 포함한 각각의 특허와 연관된 정보를 디스플레이할 수 있다. 일부 실시예들에서, 사용자는, 예를 들어, GUI(400)를 통해, 어느 데이터가 결과 창(412)에 디스플레이될지를 특정할 수 있다. 예를 들어, 선행 기술 애플리케이션(204)에 의해 반환된 다른 데이터는 기소 상태(prosecution status), 최종 액션 메일링 날짜, 제출 날짜 등을 포함할 수 있다. 일부 실시예들에서, GUI(410)는 결과들에 열거된 각각의 문서에 대한 선택가능한 링크들을 포함할 수 있다.
일부 실시예들에서, 사용자는 필터링 도구(414)를 사용하여 결과들을 필터링할 수 있다. 예를 들어, 결과들은 특정된 특성들을 갖는 결과들만이 디스플레이되도록 하나 이상의 특성에 의해 필터링될 수 있다. GUI(410)는 또한 사용자가 결과들을, 예를 들어, 특허 번호, CPC, 국가, 관련성 등에 의해 정렬할 수 있도록 정렬 도구(416)를 포함할 수 있다.
도 5는 선행 기술 시스템(102)을 사용하여 선행 기술 검색을 수행하기 위한 예시적인 프로세스(500)의 흐름도이다. 실시간 애플리케이션(204)은 문서(502)를 수신할 수 있다. 문서(502)는 데이터 소스(226)에서 수신될 수 있고, GUI(400)를 통해 사용자에 의해 업로드될 수 있다.
도 2a를 참조하여 전술한 바와 같이, 문서(502)는 준 실시간 모듈(230)에 의해 처리될 수 있다. 하나 이상의 딥 러닝 인코더(504)는 문서(502)에 대한 시맨틱 벡터 모듈(506)로 하여금 문서(502)에 대한 시맨틱 벡터를 생성하게 하도록 구성될 수 있다. TF-IDF 인코더(508)는 신택틱 벡터 모듈(510)로 하여금 문서(502)에 대한 신택틱 벡터를 생성하게 하도록 구성될 수 있다. 일부 실시예들에서, 하나 이상의 문서 특성을 생성하거나 식별하기 위해 하나 이상의 머신 러닝 알고리즘이 문서(502)에 적용될 수 있다. 문서는 이들 특성에 기초하여 인덱스 모듈(512)에서 인덱싱 및/또는 태깅될 수 있다. 지식 그래프 모듈(514)은 문서(502)를 지식 그래프 내에 업로드할 수 있는데, 예를 들어, 지식 그래프는 하나 이상의 특성에 기초한 특허 문서들의 코퍼스를 포함한다. 예를 들어, 특성들은 하나 이상의 유사한 문서를 결정하기 위해 지식 그래프 모듈(514)에 의해 사용될 수 있다. 문서(502)를 나타내는 노드는 공유된 특성의 수에 기초하여 유사한 문서들에 연결될 수 있다.
이들 메트릭(시맨틱 벡터, 신택틱 벡터, 및 지식 그래프)은 하나 이상의 유사한 문서를 식별하기 위해 선행 기술 데이터베이스(516)에 쿼리하는데 사용될 수 있다. 일부 실시예들에서, 문서 속성들이 수치적으로 정량화되었기 때문에, 문서(502) 및 선행 기술 데이터베이스(516) 내의 각각의 문서의 벡터들에 유사도 알고리즘이 적용될 수 있다. 유사도 알고리즘은, 예를 들어, 다음 식에 의해 정의될 수 있다:
Figure pct00001
다른 알고리즘들 또는 유사도 척도들도 적용될 수 있다. 예를 들어, 유사도는 다음과 같이 피어슨 상관 계수를 사용하여 결정될 수 있다:
Figure pct00002
여기서 cov(A,B)는 공분산이고, σA는 A의 표준 편차이고, σB는 B의 표준 편차이며, A는 문서(502)와 연관된 벡터(예를 들어, 시맨틱 벡터 또는 신택틱 벡터)를 나타내고, B는 선행 기술 데이터베이스(516) 내의 문서와 연관된 벡터를 나타낸다.
다른 실시예에서, 유사도는 다음과 같이 자카드 인덱스를 사용하여 결정될 수 있다:
Figure pct00003
지식 그래프(514)에 기초한 유사도는, 예를 들어, 문서(502)를 나타내는 노드에 인접한 노드들(예를 들어, 문서들)에 기초하여 결정될 수 있다. 일부 실시예들에서, 유사도의 정도는 문서(502)와 그의 인접한 문서들 사이에 직접적으로 및/또는 간접적으로 공유되는 특성의 수에 기초할 수 있다.
3가지 프로세스(시맨틱, 신택틱, 및 그래프) 각각은 특허들 및 그것들의 문서(502)에 대한 유사도의 정도의 랭크된 리스트(예를 들어, 표들(518, 520, 및 522) 각각)를 생성할 수 있다. 3가지 프로세스의 결과들은 하나 이상의 앙상블 방법 또는 알고리즘을 사용하여 조합되어 최종 응답 세트(final answer set)(524)를 생성할 수 있다. 최종 응답 세트는 문서(502)와 가장 유사한 것으로 결정된 특허들의 리스트를 나타낼 수 있다. 예를 들어, 표(518)를 참조하면, 특허 1에는 가장 높은 투표 수가 할당될 수 있고, 특허 2에는 특허 1보다 낮은 투표 수가 할당될 수 있으며, 특허 3에는 가장 적은 투표 수가 할당될 수 있다. 가장 많은 투표 수를 갖는 특허가 첫번째로 랭크되어, 그것이 선행 기술 문서들 중에서 문서(502)와 가장 유사하다는 것을 나타내도록 투표들은 (예를 들면, 특허 1에 대한 투표들의 합을 생성함으로써) 집계될 수 있다. 일부 실시예들에서, 최종 응답 세트(524)는 GUI(410)를 통해 사용자에게 출력될 수 있다.
도 6은 개시된 실시예들에 따른 문서 데이터베이스를 생성하기 위한 예시적인 방법(600)이다.
단계 602에서, 처리 디바이스(예를 들어, 선행 기술 시스템(102)의 처리 디바이스)가 복수의 문서 중의 한 문서를 수신할 수 있고, 이 문서는 단어들의 세트를 포함한다. 예를 들어, 문서는 특허일 수 있고, 특허 문서들의 코퍼스 중 하나일 수 있다.
단계 604에서, 처리 디바이스는 단어들의 세트에 제1 인코더를 적용하여 제1 벡터를 생성할 수 있다. 제1 인코더는 시맨틱 벡터를 생성하도록 구성될 수 있다.
단계 606에서, 처리 디바이스는 단어들의 세트에 제2 인코더를 적용하여 제2 벡터를 생성할 수 있다. 제2 벡터는, 예를 들어, 신택틱 벡터일 수 있다.
단계 608에서, 처리 디바이스는 제1 벡터 및 제2 벡터를 사용하여 문서를 인덱싱할 수 있다.
단계 610에서, 처리 디바이스는 인덱스를 사용하여 문서의 검색을 가능하게 할 수 있다. 일부 실시예들에서, 방법(600)은 다수의 문서에 대해 실행될 수 있으며, 생성되고 인덱싱된 벡터들로부터 문서 데이터베이스를 생성하는 데 사용될 수 있다. 예를 들어, 생성된 데이터베이스는 다수의 문서를 포함할 수 있고, 각각의 문서는 시맨틱 벡터 및 신택틱 벡터와 연관된다. 데이터베이스는 벡터 값들에 대해 인덱싱될 수 있으므로, 문서들에 대한 검색들을 용이하게 한다.
도 7은 문서들의 코퍼스로부터 유사한 문서를 검색하기 위한 예시적인 방법(700)이다.
단계 702에서, 예를 들어, 선행 기술 애플리케이션(204)에서, 처리 디바이스는 검색 문서를 수신할 수 있고, 검색 문서는 단어들의 세트를 포함한다. 예를 들어, 검색 문서는 특허 또는 다른 텍스트 포함 문서일 수 있다.
단계 704에서, 처리 디바이스는 단어들의 세트에 제1 인코더를 적용하여 제1 벡터를 생성할 수 있다. 제1 인코더는 시맨틱 벡터를 생성하도록 구성될 수 있다.
단계 706에서, 처리 디바이스는 단어들의 세트에 제2 인코더를 적용하여 제2 벡터를 생성할 수 있다. 제2 벡터는, 예를 들어, 신택틱 벡터일 수 있다.
단계 708에서, 처리 디바이스는 검색 문서의 제1 벡터와 문서들의 코퍼스의 각각의 문서의 제1 벡터 사이의 제1 유사도를 결정할 수 있다. 예를 들어, 처리 디바이스는 선행 기술 데이터베이스(206) 내의 문서들 각각과 검색 문서 사이의 유사도의 정도를 결정하기 위해 유사도 알고리즘을 적용할 수 있다.
단계 710에서, 처리 디바이스는 검색 문서의 제2 벡터와 문서들의 코퍼스의 각각의 문서의 제2 벡터 사이의 제2 유사도를 결정할 수 있다. 처리 디바이스는 각각의 문서와 연관된 제2 벡터에 동일한 또는 상이한 유사도 알고리즘을 적용할 수 있다. 예를 들어, 유사도 알고리즘은 코사인에 기초할 수 있거나, 피어슨 상관 계수일 수 있거나, 자카드 인덱스일 수 있다.
단계 712에서, 처리 디바이스는 제1 유사도에 기초하여 코퍼스 내의 문서들의 제1 랭크된 리스트를 생성할 수 있다. 예를 들어, 랭크된 리스트는 상위 위치에서 1의 유사도(가장 높은 유사도)를 산출하는 문서, 및 가장 낮은 위치에서 0의 유사도(가장 낮은 유사도)를 산출하는 문서를 가질 수 있다.
단계 714에서, 처리 디바이스는 제2 유사도에 기초하여 코퍼스 내의 문서들의 제2 랭크된 리스트를 생성할 수 있다. 랭크된 리스트는 위에서 설명된 바와 같은 검색 문서와 가장 많이 유사한 것으로부터 가장 적게 유사한 것으로 랭크된 문서들의 리스트를 포함할 수 있다.
단계 716에서, 처리 디바이스는 투표 알고리즘을 적용해서 각각의 문서의 상대적인 랭크된 리스트 내의 위치에 기초하여 각각의 문서와 연관된 스코어를 결정할 수 있다. 투표 알고리즘은 각각 제1 리스트 및 제2 리스트에서의 그 특허의 위치에 기초하여 각각의 랭크된 특허에 스코어를 적용하도록 구성될 수 있다. 일부 실시예들에서, 처리 디바이스는 단일 리스트 또는 2개보다 많은 리스트를 생성할 수 있다. 문서들의 리스트들의 수는, 예를 들어, 유사도 비교들의 타입들의 수에 기초할 수 있다. 예를 들어, 시맨틱 벡터 비교 및 신택틱 벡터 비교를 사용하는 프로세스에서 2개의 리스트가 생성될 수 있다. 다른 예에서, 도 5에 도시된 바와 같이, 시맨틱 벡터, 신택틱 벡터, 및 지식 그래프 각각에 대해 3개의 유사도 측정을 생성하는, 프로세스(500) 동안 3개의 리스트가 생성될 수 있다.
일 예로서, 첫번째 위치에 가장 유사한 문서가 있는, 각각이 3개의 문서를 갖는 2개의 랭크된 리스트가 주어지면, 첫번째 위치에 있는 문서에는 3개의 투표가 할당될 수 있다. 두번째 위치에 있는 문서에는 2개의 투표가 할당될 수 있고, 세번째 위치에 있는 문서에는 1개의 투표가 할당될 수 있다. 따라서, 문서 A가 한 리스트에서 첫번째로 랭크되고 다른 리스트에서 세번째로 랭크되면, 그의 최종 스코어는 4가 될 것이다. 한 리스트에서 두번째로 랭크되고 다른 리스트에서 첫번째로 랭크된 문서 B는 5의 최종 스코어를 가질 것이고 문서 C는 3의 최종 스코어를 가질 것이다. 따라서, 문서들의 최종 랭크된 리스트는: 문서 B, 문서 A, 및 문서 C를 산출할 수 있고, 이들은 가장 많이 유사한 것으로부터 가장 적게 유사한 것 순서로 정렬된다.
단계 718에서, 처리 디바이스는 결정된 스코어에 기초하여 문서들의 제3 랭크된 리스트를 출력할 수 있다. 제3 리스트는 각각의 리스트 내의 각각의 문서와 연관된 스코어들을 조합하고 고-스코어로부터 저-스코어로 문서들을 랭크함으로써 생성될 수 있다. 랭크된 리스트는, 예를 들어, GUI(410)를 통해 사용자에게 출력될 수 있다.
개시된 실시예들은 그의 응용에서 다음의 설명에 기재되고 그리고/또는 도면들 및/또는 예들에 예시된 컴포넌트들 및/또는 방법들의 구성 및 배열의 세부사항들로 반드시 제한되지는 않는다는 것이 이해되어야 한다. 개시된 실시예들은 변형들이 가능하거나, 다양한 방식들로 실시되거나 수행될 수 있다.
개시된 실시예들은 시스템, 방법, 및/또는 컴퓨터 프로그램 제품에서 구현될 수 있다. 컴퓨터 프로그램 제품은 프로세서로 하여금 본 발명의 양태들을 실행하게 하기 위한 컴퓨터 판독가능 프로그램 명령어들을 갖는 컴퓨터 판독가능 저장 매체(또는 매체들)를 포함할 수 있다.
컴퓨터 판독가능 저장 매체는 명령어 실행 디바이스에 의한 사용을 위해 명령어들을 보유하고 저장할 수 있는 유형의 디바이스(tangible device)일 수 있다. 컴퓨터 판독가능 저장 매체는, 예를 들어, 전자 저장 디바이스, 자기 저장 디바이스, 광학 저장 디바이스, 전자기 저장 디바이스, 반도체 저장 디바이스, 또는 이들의 임의의 적합한 조합일 수 있으며, 이에 제한되지 않는다. 컴퓨터 판독가능 저장 매체의 더 구체적인 예들의 완전하지 않은 리스트는: 휴대형 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거가능한 프로그램가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대형 콤팩트 디스크 판독 전용 메모리(CD-ROM), DVD(digital versatile disk), 메모리 스틱, 플로피 디스크, 명령어들이 기록된 홈(groove) 내의 상승된 구조(raised structure) 또는 펀치-카드(punch-card)와 같은 기계적으로 인코딩된 디바이스, 및 이들의 임의의 적합한 조합을 포함한다. 본 명세서에서 사용되는 바와 같이, 컴퓨터 판독가능 저장 매체는 라디오파 또는 다른 자유 전파 전자기파(freely propagating electromagnetic waves), 도파관 또는 다른 송신 매체를 통해 전파하는 전자기파(예를 들어, 광섬유 케이블을 통과하는 광 펄스), 또는 와이어를 통해 송신되는 전기 신호와 같이, 그 자체로 일시적 신호인 것으로 해석되어서는 안 된다.
본 명세서에 설명된 컴퓨터 판독가능 프로그램 명령어들은 컴퓨터 판독가능 저장 매체로부터 각자의 컴퓨팅/처리 디바이스들에 또는 네트워크, 예를 들어, 인터넷, 로컬 영역 네트워크, 광역 네트워크 및/또는 무선 네트워크를 통해 외부 컴퓨터나 외부 저장 디바이스에 다운로드될 수 있다. 네트워크는 구리 송신 케이블, 광 송신 섬유, 무선 송신, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 에지 서버(edge server)를 포함할 수 있다. 각각의 컴퓨팅/처리 디바이스의 네트워크 어댑터 카드 또는 네트워크 인터페이스가 네트워크로부터 컴퓨터 판독가능 프로그램 명령어들을 수신하고 각자의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독가능 저장 매체에 저장하기 위해 컴퓨터 판독가능 프로그램 명령어들을 포워딩한다.
본 발명의 동작들을 수행하기 위한 컴퓨터 판독가능 프로그램 명령어들은 어셈블러 명령어들, ISA(instruction-set-architecture) 명령어들, 머신 명령어들, 머신 종속 명령어들, 마이크로코드, 펌웨어 명령어들, 상태 설정 데이터, 또는 Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어들과 같은 종래의 절차형 프로그래밍 언어들을 포함한 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성된 소스 코드나 오브젝트 코드일 수 있다. 컴퓨터 판독가능 프로그램 명령어들은, 전체가 사용자의 컴퓨터에서, 일부가 사용자의 컴퓨터에서, 독립형 소프트웨어 패키지로서, 일부는 사용자의 컴퓨터에서 일부는 원격 컴퓨터에서, 또는 전체가 원격 컴퓨터 또는 서버에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 로컬 영역 네트워크(LAN) 또는 광역 네트워크(WAN)를 포함한 임의의 타입의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있거나, 또는 이러한 연결은 (예를 들어, 인터넷 서비스 제공자(Internet Service Provider)를 사용하여 인터넷을 통해) 외부 컴퓨터에 대해 이루어질 수 있다. 일부 실시예들에서, 본 발명의 양태들을 수행하기 위해, 예를 들어, 프로그램가능 로직 회로, 필드 프로그램가능 게이트 어레이(field-programmable gate arrays, FPGA) 또는 프로그램가능 로직 어레이(programmable logic arrays, PLA)를 포함하는 전자 회로는 전자 회로를 개인화(personalize)하기 위해 컴퓨터 판독가능 프로그램 명령어들의 상태 정보를 이용함으로써 컴퓨터 판독가능 프로그램 명령어들을 실행할 수 있다.
본 발명의 실시예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록도들을 참조하여 본 발명의 양태들이 본 명세서에서 설명된다. 흐름도들 및/또는 블록도들의 각각의 블록, 및 흐름도들 및/또는 블록도들의 블록들의 조합들은 컴퓨터 판독가능 프로그램 명령어들에 의해 구현될 수 있다는 것을 이해할 것이다.
이러한 컴퓨터 판독가능 프로그램 명령어들은 범용 컴퓨터, 특수 목적 컴퓨터, 또는 머신을 만들어내는 다른 프로그램가능 데이터 처리 장치의 프로세서에 제공될 수 있어, 컴퓨터 또는 다른 프로그램가능 데이터 처리 장치의 프로세서를 통해 실행하는 명령어들이 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능들/작용들(functions/acts)을 구현하기 위한 수단을 만든다. 이러한 컴퓨터 판독가능 프로그램 명령어들은 또한 컴퓨터, 프로그램가능 데이터 처리 장치 및/또는 다른 디바이스들에 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독가능 저장 매체에 저장될 수 있어, 명령어들이 저장된 컴퓨터 판독가능 저장 매체가 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능/작용의 양태들을 구현하는 명령어들을 포함하는 제조 물품을 포함한다.
컴퓨터 판독가능 프로그램 명령어들은 또한 컴퓨터, 다른 프로그램가능 데이터 처리 장치, 또는 다른 디바이스 상에 로드되어, 일련의 동작 단계들이 컴퓨터, 다른 프로그램가능 장치 또는 다른 디바이스 상에서 수행되게 하여 컴퓨터 구현 프로세스를 생성해서, 컴퓨터, 다른 프로그램가능 장치, 또는 다른 디바이스 상에서 실행하는 명령어들이 흐름도 및/또는 블록도의 블록 또는 블록들에 특정된 기능들/작용들을 구현하게 한다.
도면들에서 흐름도들 및 블록도들은 본 발명의 다양한 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능성, 및 동작을 예시한다. 이와 관련하여, 흐름도들 또는 블록도들의 각각의 블록은, 특정된 논리적 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령어를 포함하는, 소프트웨어 프로그램, 세그먼트, 또는 코드의 일부를 나타낼 수 있다. 일부 대안적인 구현들에서, 블록에 나타낸 기능들은 도면들에 나타낸 순서와 다르게 발생할 수 있다는 것에 또한 유의해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록은, 사실상, 수반되는 기능성에 따라, 실질적으로 동시에 실행될 수 있거나, 블록들이 때때로 역순으로 실행될 수 있다. 블록도들 및/또는 흐름도의 각각의 블록, 및 블록도들 및/또는 흐름도의 블록들의 조합들은 특정된 기능들 또는 작용들을 수행하는 특수 목적 하드웨어-기반 시스템들, 또는 특수 목적 하드웨어와 컴퓨터 명령어들의 조합들에 의해 구현될 수 있다는 것에 또한 유의할 것이다.
본 발명의 다양한 실시예들의 설명들은 예시의 목적을 위해 제시되었고, 개시된 실시예들을 총망라하거나 그것들로 제한하려는 것은 아니다. 설명된 실시예들의 범위 및 사상을 벗어나지 않고 많은 수정 및 변형이 본 기술분야의 통상의 기술자에게 명백할 것이다. 본 명세서에 사용된 용어는 실시예들의 원리들, 시장에서 발견된 기술들에 대한 실제적인 응용 또는 기술적인 개선을 가장 잘 설명하거나, 본 기술분야의 다른 통상의 기술자들이 본 명세서에 개시된 실시예들을 이해할 수 있게 하기 위해 선택되었다.
명료성을 위해 별개의 실시예들의 맥락에서 설명된 본 발명의 특정한 특징들이 또한 단일 실시예에서 조합하여 제공될 수 있다는 것이 이해된다. 반대로, 간결성을 위해, 단일 실시예의 맥락에서 설명된 본 발명의 다양한 특징들이 개별적으로 또는 임의의 적합한 하위 조합으로 또는 본 발명의 임의의 다른 설명된 실시예에 적합한 것으로 제공될 수도 있다. 실시예가 그러한 요소들 없이 작동하지 않는 경우 외에는, 다양한 실시예들의 맥락에서 설명된 특정한 특징들은 그러한 실시예들의 필수 특징들인 것으로 고려되지 않는다.
본 발명이 그의 특정 실시예들과 함께 설명되었지만, 다수의 대안, 수정 및 변형이 본 기술분야의 통상의 기술자들에게 명백할 것임이 분명하다. 따라서, 첨부된 청구항들의 사상 및 넓은 범위 내에 있는 모든 이러한 대안, 수정 및 변형을 포괄하도록 의도된다.

Claims (20)

  1. 문서 데이터베이스를 생성하기 위한 컴퓨터 구현 방법(computer implemented method)으로서,
    복수의 문서 중의 한 문서를 수신하는 단계 - 상기 문서는 단어들의 세트를 포함함 - ;
    상기 단어들의 세트에 제1 인코더를 적용하여 제1 벡터를 생성하는 단계;
    상기 단어들의 세트에 제2 인코더를 적용하여 제2 벡터를 생성하는 단계;
    상기 제1 벡터 및 상기 제2 벡터를 사용하여 상기 문서를 검색가능 인덱스로 인덱싱하는 단계; 및
    상기 인덱스를 사용하여 상기 문서의 검색을 가능하게 하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 인덱스는 상기 제1 벡터에 대한 제1 인덱스 및 상기 제2 벡터에 대한 제2 인덱스를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 문서와 연관된 하나 이상의 태그를 생성하기 위해 상기 단어들의 세트에 모델을 적용하는 단계; 및
    상기 하나 이상의 태그에 기초하여, 상기 문서로 노드-에지 그래프(node-edge graph)를 업데이트하는 단계 - 상기 노드-에지 그래프는 상기 복수의 문서 사이의 관계들을 나타냄 -
    를 추가로 포함하는, 방법.
  4. 제1항에 있어서,
    상기 문서를 파싱(parsing)하여 트리거 단어(trigger word)를 식별하는 단계 - 상기 트리거 단어는 단어들의 서브세트를 나타냄 - ;
    상기 문서가 상기 트리거 단어를 포함하지 않는다고 결정하는 단계; 및
    상기 문서를 예외 데이터베이스에 저장하는 단계
    를 추가로 포함하는, 방법.
  5. 제1항에 있어서, 상기 제1 인코더는 신경망 인코더를 포함하는, 방법.
  6. 제1항에 있어서, 상기 제2 인코더를 적용하는 것은 상기 단어들의 세트를 파싱하고 상기 단어들의 세트로부터 정지 단어(stop word)의 발생들을 제거하여 단어들의 서브세트를 생성하는 것을 포함하는, 방법.
  7. 제6항에 있어서,
    상기 단어들의 서브세트에서 그 서브세트의 단어들 각각이 나타나는 횟수를 결정하는 단계; 및
    상기 서브세트의 단어들 각각의 희귀도를 결정하는 단계
    를 추가로 포함하는, 방법.
  8. 제7항에 있어서, 상기 희귀도는 상기 복수의 문서에서 단어가 나타나는 횟수와 비교하여 상기 문서에서 상기 단어가 나타나는 횟수를 포함하는, 방법.
  9. 제3항에 있어서, 상기 하나 이상의 태그는 태그들의 세트에 속하고, 상기 태그들의 세트는 상기 복수의 문서에 적용된 모델에 의해 생성되는, 방법.
  10. 문서들의 코퍼스(corpus)로부터 유사한 문서를 검색하기 위한 컴퓨터 구현 방법으로서,
    단어들의 세트를 포함하는 검색 문서를 수신하는 단계;
    상기 단어들의 세트에 제1 인코더를 적용하여 제1 벡터를 생성하는 단계;
    상기 단어들의 세트에 제2 인코더를 적용하여 제2 벡터를 생성하는 단계;
    상기 검색 문서의 제1 벡터와 상기 문서들의 코퍼스의 각각의 문서의 제1 벡터 사이의 제1 유사도를 결정하는 단계;
    상기 검색 문서의 제2 벡터와 상기 문서들의 코퍼스의 각각의 문서의 제2 벡터 사이의 제2 유사도를 결정하는 단계;
    상기 제1 유사도에 기초하여 상기 코퍼스 내의 문서들의 제1 랭크된 리스트를 생성하는 단계;
    상기 제2 유사도에 기초하여 상기 코퍼스 내의 문서들의 제2 랭크된 리스트를 생성하는 단계;
    투표 알고리즘을 적용해서 각각의 문서의 상대적인 랭크된 리스트 내의 위치에 기초하여 각각의 문서와 연관된 스코어를 결정하는 단계; 및
    상기 결정된 스코어에 기초하여 문서들의 제3 랭크된 리스트를 출력하는 단계
    를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 검색 문서와 연관된 하나 이상의 태그를 생성하기 위해 상기 검색 문서의 상기 단어들의 세트에 모델을 적용하는 단계를 추가로 포함하는, 방법.
  12. 제11항에 있어서,
    상기 하나 이상의 태그에 기초하여, 상기 검색 문서로 상기 문서들의 코퍼스와 연관된 노드-에지 그래프를 업데이트하는 단계; 및
    상기 검색 문서와 에지를 공유하는 문서들의 랭크된 리스트를 생성하는 단계
    를 추가로 포함하는, 방법.
  13. 제12항에 있어서, 상기 스코어는 상기 노드-에지 그래프에 부분적으로 기초하는, 방법.
  14. 제10항에 있어서, 상기 제1 인코더는 신경망 인코더를 포함하는, 방법.
  15. 제10항에 있어서, 상기 제2 인코더를 적용하는 것은 상기 단어들의 세트를 파싱하고 상기 단어들의 세트로부터 정지 단어의 발생들을 제거하여, 단어들의 서브세트를 생성하는 것을 포함하는, 방법.
  16. 제15항에 있어서,
    상기 단어들의 서브세트에서 그 서브세트의 단어들 각각이 나타나는 횟수를 결정하는 단계; 및
    상기 서브세트의 단어들 각각의 희귀도를 결정하는 단계
    를 추가로 포함하는, 방법.
  17. 제16항에 있어서, 상기 희귀도는 상기 문서들의 코퍼스에서 단어가 나타나는 횟수와 비교하여 상기 검색 문서에서 상기 단어가 나타나는 횟수를 포함하는, 방법.
  18. 제10항에 있어서,
    조건을 포함하는 필터링 규칙을 수신하는 단계;
    상기 조건에 기초하여 상기 제3 랭크된 리스트를 필터링하는 단계; 및
    제4 랭크된 리스트를 출력하는 단계
    를 추가로 포함하는, 방법.
  19. 컴퓨터 판독가능 프로그램이 구현되어 있는 비일시적 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독가능 프로그램은, 컴퓨팅 디바이스 상에서 실행될 때, 상기 컴퓨팅 디바이스로 하여금:
    단어들의 세트를 포함하는 검색 문서를 수신하게 하고;
    상기 단어들의 세트에 제1 인코더를 적용하여 제1 벡터를 생성하게 하고;
    상기 단어들의 세트에 제2 인코더를 적용하여 제2 벡터를 생성하게 하고;
    상기 검색 문서의 제1 벡터와 상기 문서들의 코퍼스의 각각의 문서의 제1 벡터 사이의 제1 유사도를 결정하게 하고;
    상기 검색 문서의 제2 벡터와 상기 문서들의 코퍼스의 각각의 문서의 제2 벡터 사이의 제2 유사도를 결정하게 하고;
    상기 제1 유사도에 기초하여 상기 코퍼스 내의 문서들의 제1 랭크된 리스트를 생성하게 하고;
    상기 제2 유사도에 기초하여 상기 코퍼스 내의 문서들의 제2 랭크된 리스트를 생성하게 하고;
    투표 알고리즘을 적용해서 각각의 문서의 상대적인 랭크된 리스트 내의 위치에 기초하여 각각의 문서와 연관된 스코어를 결정하게 하고;
    상기 결정된 스코어에 기초하여 문서들의 제3 랭크된 리스트를 출력하게 하는, 컴퓨터 프로그램 제품.
  20. 제19항에 있어서, 상기 프로그램은 추가로 상기 컴퓨팅 디바이스로 하여금:
    딥 러닝 인코더(deep learning encoder)를 포함하는 시맨틱 벡터 모듈(semantic vector module)을 사용하여 상기 제1 인코더를 적용하게 하고;
    상기 검색 문서에서 상기 세트의 단어들 각각이 나타나는 횟수를 결정하고,
    상기 문서들의 코퍼스에서 상기 세트의 단어들 각각이 나타나는 횟수를 결정하고,
    상기 문서에서 각각의 단어가 나타나는 횟수와 상기 문서들의 코퍼스에서 각각의 단어가 나타나는 횟수의 비교를 나타내는 상기 제2 벡터를 생성하도록 구성되는 신택틱(syntactic) 모듈을 사용하여 상기 제2 인코더를 적용하게 하고;
    상기 검색 문서를 포함하는 노드로 지식 그래프(knowledge graph)를 업데이트하도록 구성되는 지식 그래프 모듈을 적용하게 하는, 컴퓨터 판독가능 매체.
KR1020217007823A 2018-08-28 2019-08-28 컴퓨터 구현 선행 기술 검색을 수행하기 위한 시스템들 및 방법들 KR20210042393A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862723959P 2018-08-28 2018-08-28
US62/723,959 2018-08-28
US16/553,148 2019-08-27
US16/553,148 US10891321B2 (en) 2018-08-28 2019-08-27 Systems and methods for performing a computer-implemented prior art search
PCT/US2019/048501 WO2020047050A1 (en) 2018-08-28 2019-08-28 Systems and methods for performing a computer-implemented prior art search

Publications (1)

Publication Number Publication Date
KR20210042393A true KR20210042393A (ko) 2021-04-19

Family

ID=69641202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217007823A KR20210042393A (ko) 2018-08-28 2019-08-28 컴퓨터 구현 선행 기술 검색을 수행하기 위한 시스템들 및 방법들

Country Status (11)

Country Link
US (2) US10891321B2 (ko)
EP (1) EP3844634A4 (ko)
JP (1) JP2021535490A (ko)
KR (1) KR20210042393A (ko)
CN (1) CN113228005A (ko)
AU (1) AU2019327434A1 (ko)
BR (1) BR112021003796A2 (ko)
CA (1) CA3110690A1 (ko)
IL (1) IL281033A (ko)
SG (1) SG11202101665YA (ko)
WO (1) WO2020047050A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023080425A1 (ko) * 2021-11-04 2023-05-11 삼성전자 주식회사 쿼리문에 관련된 검색 결과를 제공하는 전자 장치 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20185863A1 (fi) * 2018-10-13 2020-04-14 Iprally Tech Oy Järjestelmä luonnollisen kielen dokumenttien hakemiseksi
FI20185865A1 (fi) * 2018-10-13 2020-04-14 Iprally Tech Oy Menetelmä luonnollisen kielen hakujärjestelmän opettamiseksi, hakujärjestelmä ja vastaava käyttö
US11016965B2 (en) * 2019-01-22 2021-05-25 International Business Machines Corporation Graphical user interface for defining atomic query for querying knowledge graph databases
CN111325033B (zh) * 2020-03-20 2023-07-11 中国建设银行股份有限公司 实体识别方法、装置、电子设备及计算机可读存储介质
US11748567B2 (en) 2020-07-10 2023-09-05 Baidu Usa Llc Total correlation variational autoencoder strengthened with attentions for segmenting syntax and semantics
US20220043975A1 (en) * 2020-08-05 2022-02-10 Baidu Usa Llc Disentangle syntax and semantics in sentence representation with decomposable variational autoencoder
CN116670666A (zh) * 2020-10-07 2023-08-29 巴斯夫欧洲公司 信息的语义时间可视化
JP2022065502A (ja) * 2020-10-15 2022-04-27 株式会社日立製作所 Etlワークフロー推奨装置、etlワークフロー推奨方法及びetlワークフロー推奨システム
CN112347223B (zh) * 2020-11-03 2023-09-22 平安科技(深圳)有限公司 文档检索方法、设备及计算机可读存储介质
CN112732883A (zh) * 2020-12-31 2021-04-30 平安科技(深圳)有限公司 基于知识图谱的模糊匹配方法、装置和计算机设备
CN113327691B (zh) * 2021-06-01 2022-08-12 平安科技(深圳)有限公司 基于语言模型的问询方法、装置、计算机设备及存储介质
EP4336376A1 (en) * 2021-11-04 2024-03-13 Samsung Electronics Co., Ltd. Electronic device and method for providing search result related to query statement
US20230359441A1 (en) * 2022-05-09 2023-11-09 Microsoft Technology Licensing, Llc. Retrieval-augmented code completion
US11922328B1 (en) * 2023-04-10 2024-03-05 Snowflake Inc. Generating machine-learning model for document extraction

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600568B2 (en) * 2006-01-23 2017-03-21 Veritas Technologies Llc Methods and systems for automatic evaluation of electronic discovery review and productions
WO2009090498A2 (en) * 2007-10-30 2009-07-23 Transformer Software, Ltd. Key semantic relations for text processing
WO2009156987A2 (en) 2008-06-24 2009-12-30 Sharon Belenzon Search engine and methodology, particularly applicable to patent literature
US20120166414A1 (en) * 2008-08-11 2012-06-28 Ultra Unilimited Corporation (dba Publish) Systems and methods for relevance scoring
US8326785B2 (en) * 2008-09-30 2012-12-04 Microsoft Corporation Joint ranking model for multilingual web search
US8341095B2 (en) * 2009-01-12 2012-12-25 Nec Laboratories America, Inc. Supervised semantic indexing and its extensions
US9092425B2 (en) * 2010-12-08 2015-07-28 At&T Intellectual Property I, L.P. System and method for feature-rich continuous space language models
US9176949B2 (en) * 2011-07-06 2015-11-03 Altamira Technologies Corporation Systems and methods for sentence comparison and sentence-based search
US20130018650A1 (en) * 2011-07-11 2013-01-17 Microsoft Corporation Selection of Language Model Training Data
US20140236578A1 (en) * 2013-02-15 2014-08-21 Nec Laboratories America, Inc. Question-Answering by Recursive Parse Tree Descent
WO2016033676A1 (en) * 2014-09-02 2016-03-10 Netra Systems Inc. System and method for analyzing and searching imagery
US20180052929A1 (en) * 2016-08-16 2018-02-22 Ebay Inc. Search of publication corpus with multiple algorithms

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023080425A1 (ko) * 2021-11-04 2023-05-11 삼성전자 주식회사 쿼리문에 관련된 검색 결과를 제공하는 전자 장치 및 방법

Also Published As

Publication number Publication date
CN113228005A (zh) 2021-08-06
US20200073879A1 (en) 2020-03-05
US20210089563A1 (en) 2021-03-25
BR112021003796A2 (pt) 2021-05-18
EP3844634A1 (en) 2021-07-07
CA3110690A1 (en) 2020-03-05
IL281033A (en) 2021-04-29
EP3844634A4 (en) 2022-05-11
JP2021535490A (ja) 2021-12-16
SG11202101665YA (en) 2021-03-30
AU2019327434A1 (en) 2021-03-18
WO2020047050A1 (en) 2020-03-05
US10891321B2 (en) 2021-01-12

Similar Documents

Publication Publication Date Title
US10891321B2 (en) Systems and methods for performing a computer-implemented prior art search
US10725836B2 (en) Intent-based organisation of APIs
JP7282940B2 (ja) 電子記録の文脈検索のためのシステム及び方法
US9606934B2 (en) Matrix ordering for cache efficiency in performing large sparse matrix operations
Snyder et al. Interactive learning for identifying relevant tweets to support real-time situational awareness
US11853360B1 (en) Systems, devices, and methods for parallelized data structure processing
US9946763B2 (en) Evaluating passages in a question answering computer system
EP3671526B1 (en) Dependency graph based natural language processing
US20150220624A1 (en) Recipe creation using text analytics
JP7116435B2 (ja) エンティティ・モデルの確立
US20200356726A1 (en) Dependency graph based natural language processing
US20210089594A1 (en) Inter-document attention mechanism
US11874798B2 (en) Smart dataset collection system
Xue et al. Automatic generation and recommendation for API mashups
US20210089971A1 (en) Systems and methods for performing a computer-implemented and feature based prior art search
WO2022120009A1 (en) Systems and methods for performing a computer-implemented and feature based prior art search
Sukhwal et al. Designing a Healthcare QA Assistant: A Knowledge Based Approach
EP3944127A1 (en) Dependency graph based natural language processing
Barbosa Chatbot Development to Assist Patients in Health Care Services
Inje et al. Document retrieval using clustering-based Aquila hash-Q optimization with query expansion based on pseudo relevance feedback
Shukla The curious case of posts on Stack Overflow
Alanazi Opinion Mining Challenges and Case Study: Using Twitter for Sentiment Analysis towards Pfizer/BioNTech, Moderna, AstraZeneca/Oxford, and Sputnik COVID-19 Vaccines
der Linde et al. A comparison of sentiment analysis techniques in a parallel and distributed NoSQL environment
Shah The analysis of Canada's health through social media using machine learning
Weggersen et al. Knowledge Base Acceleration Using Features Inspired by Collaborative Filtering