KR20210089340A - 문서 내 텍스트를 분류하는 방법 및 장치 - Google Patents

문서 내 텍스트를 분류하는 방법 및 장치 Download PDF

Info

Publication number
KR20210089340A
KR20210089340A KR1020200002382A KR20200002382A KR20210089340A KR 20210089340 A KR20210089340 A KR 20210089340A KR 1020200002382 A KR1020200002382 A KR 1020200002382A KR 20200002382 A KR20200002382 A KR 20200002382A KR 20210089340 A KR20210089340 A KR 20210089340A
Authority
KR
South Korea
Prior art keywords
text
document
segment
classifying
similarity
Prior art date
Application number
KR1020200002382A
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 삼성에스디에스 주식회사
Priority to KR1020200002382A priority Critical patent/KR20210089340A/ko
Publication of KR20210089340A publication Critical patent/KR20210089340A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • G06K9/00442
    • G06K9/6215
    • G06K9/6267

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

문서 내 텍스트를 분류하는 방법 및 장치가 제공된다. 본 발명에 따른 문서 내 텍스트를 분류하는 방법은 문서를 분석하여 상기 문서의 제1 텍스트를 제1 세그멘트로 분류하는 단계, 상기 제1 세그멘트의 주제를 결정하는 단계, 및 검색 쿼리와 상기 주제와의 관련성에 기반하여 선택적으로 상기 제1 텍스트에 대한 검색 결과를 제공하는 단계를 포함하고, 상기 제1 텍스트는 상기 검색 쿼리와 관련된 키워드를 포함한다.
이러한 방법에 따르면, 문서 내의 문맥과 주제에 맞게 문서 내 텍스트를 분류하여 사용자가 필요로 하는 주요 정보들을 효과적으로 추출할 수 있으며, 문맥과 주제에 따라 나누어진 세그멘트들을 기반으로 필요한 정보를 효과적으로 추출하여 사용자를 위한 다양한 서비스를 제공할 수 있게 된다.

Description

문서 내 텍스트를 분류하는 방법 및 장치{METHOD AND APPRATUS FOR CATERGORIZING TEXT IN DOCUMENT}
본 발명은 문서 내 텍스트를 분류하는 방법 및 장치에 관한 것이다. 보다 자세하게는, 문서로부터 주요 정보들을 효과적으로 추출하기 위해 문서 내 텍스트를 분류하는 방법 및 장치에 관한 것이다.
현대 사회는 가히 정보의 홍수라고 불리울만큼 다양한 정보를 담은 많은 문서들을 손쉽게 찾아볼 수 있다. 이러한 정보들은 그 양이 너무 방대하고 체계적으로 분류되어 있지 않기 때문에, 이러한 정보의 홍수로부터 필요한 정보를 신속, 정확하게 취득하기 위해서는 필요로 하는 정보만을 정확히 타겟팅하여 선택적으로 추출하는 것이 필요하다.
종래의 정보 추출 방법은 단순히 키워드 기반으로 문서의 텍스트를 검색하고, 일치하는 단어가 있는 경우 해당 부분을 검색 결과로서 출력하는 것이 일반적이었다. 이 경우, 단순히 동일한 단어가 존재하는지 여부만을 판단할 뿐, 검색된 결과가 정말로 사용자가 찾고자 하는 내용에 해당하는지 그 문맥에 기반하여 판단하지는 않았다.
그에 따라, 사용자가 입력한 검색 쿼리에 따라 검색 결과를 출력하여도, 막상 사용자가 찾는 것과는 상이한 내용이 기술되어 있거나 사용자의 검색 의도를 충실하게 반영하지 못하는 문제가 있었다.
대한민국 등록특허공보 제10-2055899호 ( 2019. 12. 16)
본 발명의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 문서로부터 주요 정보들을 효과적으로 추출하기 위해 문서 내의 문맥과 주제에 맞게 문서 내 텍스트를 분류하는 방법 및 장치를 제공하는 것이다.
본 발명의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 문맥과 주제에 따라 나누어진 세그멘트들을 기반으로 필요한 정보를 효과적으로 추출하여 사용자를 위한 다양한 서비스를 제공할 수 있는 문서 내 텍스트를 분류하는 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 몇몇 실시예에 따른 컴퓨팅 장치에 의해 수행되는 문서 내 텍스트를 분류하는 방법은 문서를 분석하여 상기 문서의 제1 텍스트를 제1 세그멘트로 분류하는 단계, 상기 제1 세그멘트의 주제를 결정하는 단계, 및 검색 쿼리와 상기 주제와의 관련성에 기반하여 선택적으로 상기 제1 텍스트에 대한 검색 결과를 제공하는 단계를 포함하고, 상기 제1 텍스트는 상기 검색 쿼리와 관련된 키워드를 포함한다.
일 실시예로서, 상기 제1 세그멘트로 분류하는 단계는 상기 문서로부터 복수의 텍스트들을 추출하는 단계, 상기 복수의 텍스트들을 문장 또는 비문장으로 분류하는 단계, 상기 분류 결과에 기반하여 상기 복수의 텍스트들에 대해 연속하는 문장의 개수를 카운트하는 단계, 및 상기 카운트 결과에 기반하여 상기 제1 섹션의 시작 위치를 결정하는 단계를 포함할 수 있다.
일 실시예로서, 상기 제1 세그멘트로 분류하는 단계는 상기 문서의 복수의 텍스트들을 복수의 세그멘트들로 분류하는 단계, 상기 복수의 텍스트들 중 상기 제1 텍스트에 대해 인접한 제2 텍스트와의 유사도를 산출하는 단계, 및 상기 유사도 산출 결과에 따라 상기 제1 텍스트의 분류를 결정하는 단계를 포함할 수 있다.
일 실시예로서, 상기 복수의 세그멘트들로 분류하는 단계는 상기 제1 텍스트를 제1 세그멘트로 분류하는 단계를 포함하고, 상기 제1 텍스트의 분류를 결정하는 단계는 상기 유사도 산출 결과에 따라 상기 제1 텍스트의 분류를 상기 제1 세그멘트로 유지하는 단계를 포함할 수 있다.
일 실시예로서, 상기 복수의 세그멘트들로 분류하는 단계는 상기 제1 텍스트를 제2 세그멘트로 분류하는 단계를 포함하고, 상기 제1 텍스트의 분류를 결정하는 단계는 상기 유사도 산출 결과에 따라 상기 제1 텍스트의 분류를 상기 제2 세그멘트에서 상기 제1 세그멘트로 변경하는 단계를 포함할 수 있다.
일 실시예로서, 상기 제2 텍스트는 상기 제1 텍스트와 동일한 세그멘트에 속하거나, 상기 제1 텍스트가 속한 세그멘트와 인접한 다른 세그멘트에 속할 수 있다.
일 실시예로서, 상기 유사도를 산출하는 단계는 상기 제1 텍스트와 상기 제2 텍스트 사이의 벡터 거리에 기반하여 유사도 스코어를 산출하는 단계를 포함할 수 있다.
일 실시예로서, 상기 유사도 스코어를 산출하는 단계는 상기 제1 텍스트의 제1 단어들과 제2 텍스트의 제2 단어들 간의 벡터 거리에 기반하여 제1 유사도 스코어를 산출하는 단계, 상기 제1 텍스트와 상기 제2 텍스트로부터 유의어를 추출하고 상기 추출된 유의어가 반영된 상기 제1 텍스트의 제3 단어들과 상기 제2 텍스트의 제4 단어들 간의 벡터 거리에 기반하여 제2 유사도 스코어를 산출하는 단계, 및 상기 제1 유사도 스코어 및 상기 제2 유사도 스코어에 기반하여 상기 유사도 스코어를 산출하는 단계를 포함할 수 있다.
일 실시예로서, 상기 제1 세그멘트로 분류하는 단계는 학습 기반 알고리즘을 이용하여 수행되고, 상기 학습 기반 알고리즘을 위한 학습 데이터는 필터링 단계를 통해 필터링 된 데이터이고, 상기 필터링 단계는 로 데이터가 포함하는 미리 결정된 단어들의 개수를 카운트하는 단계, 및 상기 카운트한 결과가 제1 임계값 미만이면 상기 로 데이터를 필터링하는 단계를 포함할 수 있다.
일 실시예로서, 상기 필터링 단계는 상기 로 데이터와 다른 데이터들 간의 유사도 값들을 산출하는 단계, 및 상기 유사도 값들 중 제2 임계값 이상인 값들의 개수가 제3 임계값 이상이면 상기 로 데이터를 필터링하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 로 데이터와 상기 다른 데이터들은 서로 상이한 토픽과 관련된 데이터들일 수 있다.
일 실시예로서, 상기 검색 결과에 기반하여 복수의 문서들에 대해 상기 주제 및 키워드와 관련된 통합된 검색 결과를 제공하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 몇몇 실시예에 따른 문서 내 텍스트를 분류하는 장치는 프로세서, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리, 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은 문서를 분석하여 상기 문서의 제1 텍스트를 제1 세그멘트로 분류하는 동작, 상기 제1 세그멘트의 주제를 결정하는 동작, 및 검색 쿼리와 상기 주제와의 관련성에 기반하여 선택적으로 상기 제1 텍스트에 대한 검색 결과를 제공하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하고, 상기 제1 텍스트는 상기 검색 쿼리와 관련된 키워드를 포함한다.
상기 기술적 과제를 해결하기 위한, 문서 내 텍스트를 분류하기 위해 컴퓨팅 장치와 결합되는 컴퓨터 프로그램은, 문서를 분석하여 상기 문서의 제1 텍스트를 제1 세그멘트로 분류하는 단계, 상기 제1 세그멘트의 주제를 결정하는 단계, 및 검색 쿼리와 상기 주제와의 관련성에 기반하여 선택적으로 상기 제1 텍스트에 대한 검색 결과를 제공하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되고, 상기 제1 텍스트는 상기 검색 쿼리와 관련된 키워드를 포함한다.
상술한 본 발명의 다양한 실시예들에 따르면, 문서 내의 문맥과 주제에 맞게 문서 내 텍스트를 분류하여 사용자가 필요로 하는 주요 정보들을 효과적으로 추출할 수 있다.
또한, 문맥과 주제에 따라 나누어진 세그멘트들을 기반으로 필요한 정보를 효과적으로 추출하여 사용자를 위한 다양한 서비스를 제공할 수 있다.
본 발명에 따른 다양한 효과들은 이상에서 언급한 기술적 효과들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 효과들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 몇몇 실시예에 따른 문서 내 텍스트를 분류하는 장치를 나타내는 블록도이다.
도 2는 본 발명에 따른 방법 및 장치가 적용될 수 있는 예시적인 문서 형태를 나타내는 도면이다.
도 3은 본 발명의 몇몇 실시예에 따른 문서 내 텍스트를 분류하는 방법을 나타내는 순서도이다.
도 4는 도 3의 제1 세그멘트로 분류하는 단계(S100)를 더욱 구체화한 일 실시예를 나타내는 순서도이다.
도 5는 도 4의 문서를 복수의 섹션으로 구분하는 단계(S110)를 더욱 구체화한 일 실시예를 나타내는 순서도이다.
도 6은 도 5의 실시예를 수행하기 위한 문서 내 텍스트를 분류하는 장치(100)의 일 구성을 나타내는 도면이다.
도 7은 도 5의 실시예에서 각 섹션의 시작 위치가 결정되는 방법을 구체적으로 설명하기 위한 개념도이다.
도 8은 도 4의 복수의 세그멘트들로 분류하는 단계(S120)를 더욱 구체화한 일 실시예를 나타내는 순서도이다.
도 9는 도 8의 실시예를 수행하기 위한 문서 내 텍스트를 분류하는 장치(100)의 일 구성을 나타내는 도면이다.
도 10은 도 8의 실시예에서 인접한 텍스트와의 유사도에 따라 텍스트의 세그멘트 분류를 결정하는 방법을 구체적으로 설명하기 위한 개념도이다.
도 11은 도 8의 제2 텍스트와의 유사도를 산출하는 단계(S120)를 더욱 구체화한 일 실시예를 나타내는 순서도이다.
도 12는 본 발명의 일 실시예에 따른 데이터 필터링 방법을 나타내는 순서도이다.
도 13은 본 발명의 다양한 실시예들에 따른 방법들이 구현될 수 있는 컴퓨팅 장치(500)의 예시적인 하드웨어 구성도를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 발명에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서는, 앞서 상술한 기술적 과제를 해결하기 위한 본 발명의 다양한 실시예들에 대하여 설명하도록 한다.
도 1은 본 발명의 몇몇 실시예에 따른 문서 내 텍스트를 분류하는 장치를 나타내는 블록도이다. 도 1을 참조하면, 문서 내 텍스트를 분류하는 장치(100)는 섹션 분류부(110), 세그멘트 분류부(120), 정보 추출부(130) 및 데이터 필터링부(140)를 포함한다.
본 발명에서, 문서 내 텍스트를 분류하는 장치(100)는 표지, 본문, 별첨 등과 같이 다양한 형식과 주제의 텍스트가 혼재된 문서 파일에 대해 각 텍스트를 문맥이나 주제에 따라 분류하고, 분류된 각 주제로부터 사용자에게 유용한 정보를 추출하여 이를 기반으로 다양한 서비스를 제공한다.
섹션 분류부(110)는 문서(10)의 다양한 형식과 주제들을 표지, 본문, 별첨과 같은 복수의 섹션들로 구분한다. 사용자가 찾고자 하는 유용한 정보는 일반적으로 본문에 존재하며, 표지나 별첨에 있는 정보들은 대부분 크게 중요하지 않거나 노이즈에 해당하는 경우가 많다. 따라서, 섹션 분류부(110)는 해당 문서의 주요한 내용에 집중하여 이후의 텍스트 분류가 수행되도록 하기 위해, 문서(10)를 분석하여 주요 부분에 해당하는 본문만을 추출하는 작업을 수행한다.
본 발명에 따른 방법 및 장치가 적용될 수 있는 예시적인 문서 형태가 도 2에 도시된다. 도 2에서는 문서(10)의 일 예로서 계약서가 예시된다. 도 2를 참조하면, 문서(10)는 표지(11), 본문(12), 및 별첨(13)을 포함한다.
도 2에서 보여지는 것처럼, 문서(10)의 주요 내용은 본문(12)에 담겨있고, 표지(11) 및 별첨(13)에는 부수적인 내용이나 형식에 관한 기재가 포함된 경우가 많다. 따라서, 섹션 분류부(110)를 통해 표지(11) 및 별첨(13)을 사전에 분리하고, 주요한 내용이 있는 본문(12)을 별도로 추출해 내는 것이 바람직하다.
세그멘트 분류부(120)는 섹션 분류부(110)가 분류한 섹션에 대해 텍스트들을 그 문맥과 주제에 맞게 세그멘테이션(segmentation, 또는 분류) 한다. 가령, 세그멘트 분류부(120)는 본문(12) 내 텍스트들 중 계약기간과 관련된 텍스트들은 계약기간 세그멘트로, 손해배상과 관련된 텍스트들은 손해배상 세그멘트로 각각 분류할 수 있다. 이는 사용자에게 유용한 정보를 보다 효과적으로 추출할 수 있게 하는 데 있어 유용하다.
가령, 사용자에게 손해배상 금액에 대한 정보를 제공하고 싶을 때, "손해배상 금액"에 대한 단순 키워드 검색을 하면 의도했던 결과가 도출되지 않는 경우가 비일비재하다. 문서(10) 내에 관련 내용이 키워드("손해배상 금액")과 다른 용어로 기술되어 있는 경우 검색 결과가 아예 나오지 않을 수도 있고, 좀 더 스마트한 검색 엔진이어서 금액과 관련된 유사 내용까지 모두 검색할 수 있다 하더라도 막상 손해배상 금액과 관계없는 계약금액이나 로열티 금액 같은 엉뚱한 결과들이 도출될 수 있다. 반면에, 본문(12) 내 각 텍스트들이 그 문맥과 내용에 맞게 분류되어 있다면, 손해배상 세그멘트 내에서 금액과 관련된 내용을 추출하는 것만으로 매우 정확하고 효적으로 필요한 정보를 획득할 수 있을 것이다.
정보 추출부(130)는 세그멘트 분류부(120)에 의해 분류된 내용을 기반으로, 필요한 정보를 추출하여 사용자에게 제공한다. 예를 들어, 정보 추출부(130)는 "손해배상 금액"에 대한 검색 쿼리를 입력받고, 상기 검색 쿼리와 관련성이 높은 손해배상 세그멘트에서 금액에 대한 정보를 추출하여 사용자(20)에게 제공할 수 있다. 비단, "손해배상 금액"뿐만 아니라 "계약일자", "계약금액", "계약당사자명"과 같은 다양한 항목에 대해서도 동일한 방법의 정보 추출이 가능하며, 이를 통해 정보 추출부(130)는 향상된 검색 서비스를 사용자(20)에게 제공할 수 있다.
한편, 정보 추출부(130)는 세그멘트 분류부(120)에 의해 분류된 내용을 기반으로, 검색 서비스 외에도 다양한 서비스를 제공할 수 있다. 가령, 정보 추출부(130)는 문서(10)로부터"계약일자", "계약금액", "계약당사자명", "손해배상 금액"과 같은 주요한 항목들을 추출하고, 이렇게 추출된 정보를 문서 요약의 형태로 사용자(20)에게 제공할 수도 있을 것이다. 또는, 정보 추출부(130)는 문서(10)로부터 "계약 종료일"을 추출한 후, 계약 만료가 다가왔을 때 이를 사용자(20)에게 "만기 알림"형태로 제공할 수도 있다.
데이터 필터링부(140)는 장치(100)에 제공되는 다양한 데이터들 중 불필요한 데이터를 필터링하는 기능을 수행한다. 예를 들어, 데이터 필터링부(140)는 장치(100)의 학습 기반 알고리즘에 제공되는 학습 데이터들 중 학습에 유용하지 않거나 올바른 학습에 장애가 될 수 있는 데이터들을 미리 제거하여 머신 러닝에 의한 학습이 더욱 효과적으로 수행될 수 있도록 한다. 데이터 필터링부(140)의 기능 및 구체적인 데이터 필터링 방법에 대해서는 도 12에서 상세히 후술하기로 한다.
지금까지 설명한, 문서 내 텍스트를 분류하는 장치(100)에 따르면, 문서 내의 문맥과 주제에 맞게 문서 내 텍스트를 분류하여 사용자가 필요로 하는 주요 정보들을 효과적으로 추출할 수 있으며, 문맥과 주제에 따라 나누어진 세그멘트들을 기반으로 필요한 정보를 효과적으로 추출하여 사용자를 위한 다양한 서비스를 제공할 수 있게 된다.
도 3은 본 발명의 몇몇 실시예에 따른 문서 내 텍스트를 분류하는 방법을 나타내는 순서도이다. 도 3에서 설명되는 방법은 예를 들어, 도 1의 문서 내 텍스트를 분류하는 장치(100)에 의해 수행될 수 있다. 따라서, 이하에서 각 단계의 수행 주체가 명시되지 않은 경우, 그 수행 주체는 도 1의 문서 내 텍스트를 분류하는 장치(100)임을 가정한다.
S100 단계에서, 장치(100)는 문서(10)의 제1 텍스트를 제1 세그멘트로 분류한다. 여기서, 세그멘트는 동일 또는 유사한 주제의 텍스트들을 분류하여 모은 텍스트 집합을 의미한다. 장치(100)는 문서(10) 내의 위치와 문맥 및 텍스트들 간의 선후관계 및 상호 관련도 등을 기반으로 제1 텍스트를 제1 세그멘트로 분류할 수 있다.
S200 단계에서, 장치(100)는 제1 세그멘트의 주제를 결정한다. 제1 세그멘트의 주제는 다양한 방법으로 결정될 수 있다. 가령, 도 2에 도시된 바와 같이 각 세그멘트 내에 특정한 형식(12a)으로 주제어가 명시되는 문서의 경우, 해당 형식(12a)을 참조하여 각 세그멘트의 주제를 결정할 수 있다. 또는, 동일한 세그멘트 내의 텍스트들을 파싱하여, 각 텍스트들이 공통적으로 관련되는 키워드를 도출한 후 이를 세그멘트의 주제로 결정할 수도 있다.
S300 단계에서, 장치(100)는 문서 내 특정 내용을 찾기 위한 검색 쿼리를 수신하고, 검색 쿼리와 제1 세그멘트의 주제와의 관련성에 기반하여 선택적으로 제1 텍스트에 대한 검색 결과를 제공한다. 보다 구체적으로 설명하면, 장치(100)는 검색 쿼리로부터 키워드를 추출하고, 추출된 키워드와 각 세그멘트의 주제를 비교하여 서로 관련성이 있는 경우에는 해당 세그멘트 내에서 검색을 수행하여 검색 결과를 제공한다. 반면에, 추출된 키워드와 각 세그멘트의 주제를 비교하여 서로 관련성이 없는 경우에는, 장치(100)는 해당 세그멘트 내에서 상기 검색 쿼리에 대한 검색을 수행하지 않거나 검색을 수행한다 하더라도 그 결과를 제공하지 않는다.
예를 들어, 제1 세그멘트의 주제가 "손해배상"이고, 제1 텍스트가 "손해배상 금액은 1억원으로 한다"는 내용을 포함한다고 가정한다. 이때, 검색 쿼리로서"손해배상 금액"이 입력되면, 장치(100)는 상기 검색 쿼리를 수신하고 이로부터 키워드인 "손해배상"및"금액"을 추출한다. 그리고, 추출된 키워드("손해배상")와 제1 세그멘트의 주제("손해배상")과의 관련성을 비교하고, 그에 따라 서로 관련성이 있는 것으로 판정하여 제1 세그멘트 내에서"금액"또는"손해배상 금액"에 대한 검색을 수행한다. 그러한 검색을 통해, 장치(100)는 제1 텍스트로부터"1억원"이라는 금액 정보를 추출한 후 이를 검색 결과로 제공하게 된다.
S400 단계에서, 장치(100)는 검색 결과에 기반하여 복수의 문서들에 대한 통합된 검색 결과를 제공한다. S400 단계는, 부수적인 단계로서 본 방법의 필수적인 구성요소는 아니나, 다양한 응용 서비스를 제공할 때 유용하게 활용될 수 있다. 가령, 사용자가 100개의 계약 문서들로부터 평균적인 손해배상 금액을 알고 싶은 경우, 장치(100)는 상기 S100 단계 내지 S400 단계의 방법들을 통해, 각 계약 문서들로부터 손해배상 금액에 대한 정보를 추출한 후 그에 기반하여 100개 계약 문서들의 평균적인 손해배상 금액을 산출하여 제공할 수 있다. 다만, 이는 하나의 예시일 뿐으로서, 본 실시예의 범위가 이에 한정되지는 않는다. 예를 들어, 계약기간이 2년 이상인 계약 문서들을 출력하도록 요청받는 경우, 장치(100)는 각 계약 문서들의"계약기간"세그멘트들에 대해 기간과 관련된 정보를 추출한 후 그 중 2년 이상의 기간이 확인된 계약 문서들을 검색 결과로서 제공할 수 있으며, 그 밖의 다양한 응용 서비스들에 대해서도 본 실시예에서 설명된 방법이 유사하게 적용될 수 있다.
상기한 문서 내 텍스트를 분류하는 방법에 따르면, 문서 내의 문맥과 주제에 맞게 문서 내 텍스트를 분류하여 사용자가 필요로 하는 주요 정보들을 효과적으로 추출할 수 있으며, 문맥과 주제에 따라 나누어진 세그멘트들을 기반으로 필요한 정보를 효과적으로 추출하여 사용자를 위한 다양한 서비스를 제공할 수 있게 된다.
도 4는 도 3의 제1 세그멘트로 분류하는 단계(S100)를 더욱 구체화한 일 실시예를 나타내는 순서도이다. 도 4를 참조하면, 제1 세그멘트로 분류하는 단계(S100)는 섹션 분류부(110)에 의한 섹션 분류 단계(S110) 및 세그멘트 분류부(120)에 의한 세그멘트 분류 단계(S120)로 나뉜다.
S110 단계에서, 섹션 분류부(110)는 문서(10)를 복수의 섹션으로 구분한다. 이에 대해, 도 5 내지 도 7을 참조하여 자세히 설명하기로 한다.
도 5는 도 4의 섹션 분류 단계(S110)를 더욱 구체화한 일 실시예를 나타내는 순서도이다. 도 5를 참조하면, 섹션 분류부(110)는 문서로부터 복수의 텍스트들을 추출한 후 이를 문장 또는 비문장으로 분류하고, 분류된 결과에 기반하여 제1 섹션의 시작 위치를 결정함으로써 문서(10)를 복수의 섹션으로 구분한다.
구체적으로, S111 단계에서, 섹션 분류부(110)는 문서(10)로부터 복수의 텍스트들을 추출한다. 이를 위해, 섹션 분류부(110)는 문서(10)를 문장 또는 라인 단위로 나누어 복수의 텍스트들을 추출한다. 이때, 섹션 분류부(110)는 문서 내에 개행 문자가 있거나, 동사 또는 연결어미, 종결어미가 포함되어 있는 경우 이를 한 문장 또는 한 라인으로 보고 문장 또는 라인 단위로 텍스트를 추출할 수 있다.
일 실시예로서, 상기 문서(10)는 바이너리 파일 형태의 문서일 수도 있다. 이 경우, 섹션 분류부(110)는 상기 문서(10)를 입력 받아 텍스트 추출 라이브러리를 이용하여 상기 문서(10)를 텍스트로 변환하는 단계를 선행적으로 수행할 수 있다.
S112 단계에서, 섹션 분류부(110)는 학습 기반 알고리즘이 포함된 문장 분류 모델을 이용하여 앞서 추출된 문장 또는 라인 단위의 텍스트들이"문장"인지"비문장"인지 이진 분류를 수행한다. 이와 관련하여, 도 6을 참조하면, 상기 이진 분류를 위한 섹션 분류부(110)의 구성이 도시된다.
문장 분류 모델(112)은 전처리 모듈(111)이 제공하는 학습 데이터를 기반으로 상기 이진 분류를 위한 머신 러닝을 학습한 모델이다. 문장 분류 모델(112)은 입력된 텍스트가 문장인지 또는 비문장인지 출력하는 모델로서, 문장 분류 모델(112)의 학습 알고리즘으로는 Support Vector Machine, 또는 Naive Bayes 등이 사용될 수 있다.
전처리 모듈(111)은 학습 데이터로부터 특징값을 추출하여, 학습 데이터와 함께 문장 분류 모델(112)에 제공한다. 문장 분류 모델(112)은 제공된 특징값을 참조하며 학습 데이터를 이용해 머신 러닝을 수행한다. 일 실시예로서, 상기 특징값은 문자 길이, 단어 수, 품사 정보, 문서 내에서의 단어/문장의 정렬 정보(즉, 문서 내에서 왼쪽 정렬, 오른쪽 정렬과 같이 정렬이 되어 있는지), 텍스트 간의 상호 의존 관계 정보, 종결 어미, 연결 어미, 구두점 정보 등을 포함할 수 있다.
다시 도 5로 돌아가면, S113 단계에서 섹션 분류부(110)는 앞서 문장 또는 비문장으로 분류된 복수의 텍스트들에 대해 연속하는 문장의 개수를 카운트한다.
S114 단계에서, 섹션 분류부(110)는 문장의 개수를 카운트한 결과에 기반하여 제1 섹션의 시작 위치를 결정함으로써, 문서(10)를 복수의 섹션으로 구분한다. 일반적으로, 표지나 별첨에 포함된 텍스트는 문장보다는 단어나 구(Phrase)인 경우가 많고, 여러 개의 문장이 연속하여 나타나게 되는 것은 본문에 와서야 비로소 나타나는 경우가 많다. 이러한 특성을 활용하여, 가령, 연속하는 문장의 개수가 3개 이상인 경우 그 연속하는 문장들의 시작하는 위치를 본문의 시작 위치로 결정한다면, 손쉽게 문서(10)의 본문 섹션을 구분할 수 있다.
이에 대한 구체적인 실시예가 도 7에 도시된다. 도 7을 참조하면 연속된 문장의 개수를 카운트하여 각 섹션의 시작 위치가 결정하는 방법이 구체적으로 도시된다.
섹션 분류부(110)에 의해 문서(10)로부터 복수의 텍스트(31)가 추출되면, 추출된 텍스트들(31)에 대해 문장 분류 모델(112)을 이용한 이진 분류가 수행된다. 이진 분류의 결과 각 텍스트들(31)에 대해 문장 또는 비문장 여부가 판정된다(32).
그리고, 섹션 분류부(110)는 각 텍스트들(31) 중 연속하는 문장의 개수를 카운트한다. 그리고, 연속하는 문장의 개수가 미리 결정된 값(예를 들어, 3) 이상이면 그러한 연속하는 문장들의 시작 위치를 새로운 섹션(예를 들어, 본문 섹션)의 시작 위치로 결정한다.
도 7을 참조하면, 텍스트 2는 문장이지만 연속하는 문장의 개수가 1인 경우이므로 새로운 섹션의 시작 위치로 결정되지 않는다. 반면에, 텍스트 5, 텍스트 6, 및 텍스트 7은 각각 문장에 해당하고 서로 연속하여 위치하므로 연속하는 문장의 개수가 3이 된다. 이 경우, 연속하는 문장의 개수가 미리 결정된 값(여기서는, 3) 이상인 조건을 충족하므로, 연속하는 문장들(텍스트 5, 텍스트 6 및 텍스트 7)이 시작하는 위치인 텍스트 5의 시작점을 새로운 섹션의 시작 위치로 결정한다.
상기한 방법에 의하면, 문서(10)로부터 표지(11)와 구분하여 본문(12) 섹션을 분류해 낼 수 있다. 이에 의해 도 4의 섹션 분류 단계(S110)가 완료된다.
다시 도 4로 돌아가면, 분류된 섹션 내의 텍스트들을 그 문맥 및 주제에 따라 복수의 세그멘트들로 분류하는 세그멘트 분류 단계(S120)가 수행된다. 이에 대해 도 8 내지 도 10을 참조하여 자세히 설명하기로 한다.
도 8은 도 4의 세그멘트 분류 단계(S110)를 더욱 구체화한 일 실시예를 나타내는 순서도이다. 도 8의 실시예에서, 세그멘트 분류부(120)는 앞서 분류된 제1 섹션의 텍스트들을 복수의 세그멘트들로 분류한 후, 세그멘트 분류의 정확도를 높이기 위해 각 세그멘트의 가장자리에 위치한 텍스트들에 대해 그 인접한 텍스트와의 유사도를 산출한 후 그에 따라 해당 텍스트의 세그멘트 분류를 확정한다. 이하 도 8을 참조하여 설명한다.
S121 단계에서, 세그멘트 분류부(120)는 제1 섹션의 복수의 텍스트들을 복수의 세그멘트들로 분류한다. 이때, 세그멘트 분류부(120)는 제1 섹션으로부터 복수의 텍스트들을 추출한 후, 학습 기반 알고리즘이 포함된 세그멘트 분류 모델을 이용하여 추출된 텍스트들을 그룹핑하여 세그멘트를 구성한다. 이와 관련하여, 도 9를 참조하면, 상기 그룹핑을 위한 세그멘트 분류부(120)의 구성이 도시된다.
세그멘트 분류 모델(122)은 전처리 모듈(121)이 제공하는 학습 데이터를 기반으로 텍스트들을 그룹하기 위해 머신 러닝을 학습한 모델이다. 세그멘트 분류 모델(122)은 문서(10) 내의 위치 또는 문맥 상 서로 동일한 주제를 나타내는 것으로 판단되는 텍스트들을 동일한 세그멘트로 분류하는 모델이다.
전처리 모듈(121)은 학습 데이터로부터 특징값을 추출하여, 학습 데이터와 함께 세그멘트 분류 모델(122)에 제공한다. 세그멘트 분류 모델(122)은 제공된 특징값을 참조하며 학습 데이터를 이용해 머신 러닝을 수행한다. 일 실시예로서, 상기 특징값은 텍스트의 품사 정보, 또는 텍스트 간의 상호 의존 관계 정보 등을 포함할 수 있다.
S122 단계에서, 세그멘트 분류부(120)는 앞서 분류된 세그멘트들이 정확하게 분류되었는지 검증하기 위해, 각 세그멘트의 가장자리에 위치한 제1 텍스트에 대해 인접한 제2 텍스트와의 유사도를 산출한다.
S123 단계에서, 세그멘트 분류부(120)는 산출된 유사도에 기반하여 제1 텍스트의 세그멘트 분류를 결정한다. 가령, 제1 텍스트와 동일 세그멘트에 속한 인접한 텍스트와의 유사도가 다른 세그멘트에 속한 인접한 텍스트와의 유사도보다 크다면, 제1 텍스트는 현재 세그멘트의 텍스트들과의 관련도가 보다 높은 것이므로 현재의 세그멘트 분류를 유지할 것이다. 반면에, 제1 텍스트와 동일 세그멘트에 속한 인접한 텍스트와의 유사도보다 다른 세그멘트에 속한 인접한 텍스트와의 유사도가 더 크다면, 제1 텍스트는 현재 세그멘트의 텍스트들보다 다른 세그멘트의 텍스트들과의 관련도가 더 높은 것이므로, 제1 텍스트의 세그멘트 분류를 변경하여 상기 다른 세그멘트로 제1 텍스트의 세그멘트 분류를 결정할 것이다.
다만, 이는 예시적인 것일 뿐이며, 제1 텍스트의 세그멘트 분류가 반드시 택일적인 것은 아니다. 가령, 제1 텍스트와 동일 세그멘트(가령, 제1 세그멘트)에 속한 인접한 텍스트와의 유사도가 0.7이고, 제1 텍스트와 다른 세그멘트(가령, 제2 세그멘트)에 속한 인접한 텍스트와의 유사도가 0.3이라면, 제1 텍스트는 제1 세그멘트와 제2 세그멘트에 동시에 분류될 수 있으며, 이때, 세그멘트와의 관련도(또는, 밀접도)가 제1 세그멘트에 대해서는 0.7로 제2 세그멘트에 대해서는 0.3으로 그 산출된 유사도의 비율에 따라 결정될 수도 있다.
이에 대한, 구체적인 실시예가 도 10에 도시된다. 도 10을 참조하면, 세그멘트 분류부(120)에 의해 9개의 텍스트들이 세그멘트 A, 세그멘트 B, 및 세그멘트 C로 분류된 예가 도시된다. 세그멘트 A는 텍스트 1, 텍스트 2 및 텍스트 3을 포함한다. 상기 세그멘트 분류 후, 세그멘트 분류부(120)는 세그멘트 분류 결과를 검증하기 위해 각 세그멘트의 가장자리에 위치한 텍스트들에 대해 인접한 텍스트들과의 유사도를 산출한다. 설명의 간명화를 위해, 텍스트 3에 대해서만 예시하면, 텍스트 3은 세그멘트 A의 가장자리(즉, 맨 처음 또는 맨 마지막)에 위치한 텍스트이다. 세그멘트 분류부(120)는 텍스트 3에 대해 그와 인접한 텍스트들(즉, 텍스트 2 및 텍스트 4)과의 유사도를 산출한다. 이때, 유사도 산출의 대상이 되는 인접한 텍스트는 텍스트 3과 동일한 세그멘트에 속한 텍스트(즉, 텍스트 2)일 수도 있고, 텍스트 3과 다른 세그멘트에 속한 텍스트(즉, 텍스트 4)일 수도 있다.
유사도 산출의 결과, 동일 세그멘트에 속한 인접한 텍스트와의 제1 유사도(a)가 다른 세그멘트에 속한 인접한 텍스트와의 제2 유사도(b)보다 더 크다면, 텍스트 1은 현재 세그멘트의 텍스트(즉, 텍스트 2)와 더 밀접한 관련이 있다고 볼 것이므로, 텍스트 1의 분류를 세그멘트 A로 그대로 유지한다.
반면에, 동일 세그멘트에 속한 인접한 텍스트와의 제1 유사도(a)보다 다른 세그멘트에 속한 인접한 텍스트와의 제2 유사도(b)가 더 크다면, 텍스트 1은 현재 세그멘트의 텍스트(즉, 텍스트 2)보다 다른 세그멘트의 텍스트(즉, 텍스트4)와 더 밀접한 관련이 있다고 볼 것이므로, 텍스트 1의 분류를 세그멘트 A에서 세그멘트 B로 변경한다.
상기한 방법에 따르면, 섹션 내의 텍스트들을 문서 내의 위치와 텍스트 간 상호 관련성에 따라 더 밀접한 관련성을 갖는 텍스트들끼리 분류할 수 있게 된다. 이 경우, 동일 세그멘트 내의 텍스트들은 문맥상 서로 동일한 주제와 관련된 텍스트일 가능성이 높으므로, 문서 내 텍스트들을 주제에 따라 분류한 효과를 갖게 된다.
도 11은 도 8의 제2 텍스트와의 유사도를 산출하는 단계(S120)를 더욱 구체화한 일 실시예를 나타내는 순서도이다. 도 11에서는 텍스트들 간의 벡터 거리에 기반하여 유사도를 산출하는 구체적인 방법을 제시한다.
S122a 단계에서, 세그멘트 분류부(120)는 제1 텍스트와 제2 텍스트에 포함된 단어 또는 키워드들 간의 벡터 거리를 산출하여 제1 유사도 스코어를 산출한다. 이때, 세그멘트 분류부(120)는 예를 들어, vector space model에서 사용되는 cosine measure를 이용하여 제1 유사도 스코어를 산출할 수 있다.
S122b 단계에서, 세그멘트 분류부(120)는 제1 텍스트와 제2 텍스트에 포함된 단어 또는 키워드들의 유의어를 반영하여, 유의어 기반으로 제1 텍스트와 제2 텍스트 간의 제2 유사도 스코어를 산출한다. 가령, 세그멘트 분류부(120)는 제1 텍스트와 제2 텍스트의 단어 또는 키워드로부터 유의어들을 추출하고(이때, 추출되는 유의어에는 상기 단어 또는 키워드의 외국어 번역어가 포함될 수 있다), 추출된 유의어가 추가된 상기 제1 텍스트의 단어 또는 키워드들과 상기 제2 텍스트의 단어 또는 키워드 간의 벡터 거리를 산출하여 제2 유사도 스코어를 산출할 수 있다. 이때, 세그멘트 분류부(120)는 예를 들어, word2vec 알고리즘을 이용하여 제2 유사도 스코어를 산출할 수 있다.
S122c 단계에서, 세그멘트 분류부(120)는 산출된 제1 유사도 스코어 및 제2 유사도 스코어에 기반하여 제1 텍스트와 제2 텍스트 간의 최종적인 유사도 스코어를 산출한다.
일 실시예로서, 세그멘트 분류부(120)는 제1 유사도 스코어 및 제2 유사도 스코어의 가중치 합을 상기 유사도 스코어로서 산출할 수 있다. 이 경우, 유사도 스코어의 산출식은 아래 수학식 1과 같이 표현될 수 있다.
Figure pat00001
여기서, s1은 제1 유사도 스코어이고 s2는 제2 유사도 스코어이고,
w1은 제1 유사도 스코어에 적용되는 제1 가중치이고,
w2는 제2 유사도 스코어에 적용되는 제2 가중치이다.
일 실시예로서, 세그멘트 분류부(120)는 제1 텍스트와 제2 텍스트가 서로 동일한 별첨을 참조하는지를 더 반영하여 상기 유사도 스코어를 산출할 수 있다. 예를 들어, 제1 텍스트와 제2 텍스트 내에 동일하게 "별첨 #1"이라는 구문이 포함되는 경우, 유사도 스코어의 산출식은 아래 수학식 2과 같이 조정될 수 있다.
Figure pat00002
여기서, s1은 제1 유사도 스코어이고 s2는 제2 유사도 스코어이고,
a는 "별첨 #1" 참조에 따른 제3 유사도 스코어이고,
w1은 제1 유사도 스코어에 적용되는 제1 가중치이고,
w2는 제2 유사도 스코어에 적용되는 제2 가중치이고,
W3은 제3 유사도 스코어에 적용되는 제3 가중치이다.
도 12는 본 발명의 일 실시예에 따른 데이터 필터링 방법을 나타내는 순서도이다. 도 12의 데이터 필터링 방법은 도 1의 데이터 필터링부(140)에 의해 수행되며, 본 발명에 따른 장치(100)에 제공되는 다양한 데이터들 중 불필요한 데이터를 필터링하는 기능을 수행한다.
일 실시예로서, 데이터 필터링부(140)는 문장 분류 모델(112) 또는 세그멘트 분류 모델(122)를 위한 학습 데이터를 준비함에 있어 학습에 유용하지 않거나 올바른 학습에 장애가 될 수 있는 데이터들을 미리 제거하여 머신 러닝 학습이 더욱 효과적으로 수행될 수 있도록 할 수 있다.
이하, 본 실시예에 따른 데이터 필터링 방법에 대해 도 12를 참조하여 설명한다.
S1100 단계에서, 데이터 필터링부(140)는 로 데이터가 포함하는 미리 결정된 단어의 개수를 카운트한다. 상기 미리 결정된 단어는 사전에 추출된 중요 단어 세트에 속하는 단어들로서, 예를 들어 ISF(Inverse Sentence Frequency)를 기반으로 추출된 단어 세트에 속하는 단어일 수 있다. 이때, 상기 로 데이터는 데이터 필터링부(140)에 의해 필터링 되기 전의 원래 데이터를 의미한다.
S1200 단계에서, 미리 결정된 단어의 개수를 카운트한 결과가 제1 임계값 미만이면, 본 실시예는 S1500 단계로 진행하여 해당 로 데이터를 필터링한다. 이는 로 데이터에 미리 결정된 중요 단어 세트가 충분히 포함하지 않은 경우이므로, 해당 로 데이터를 상대적으로 중요도가 낮은 데이터로 보고 불필요한 학습을 지양하기 위해 미리 필터링하는 것이다.
반면에, 미리 결정된 단어의 개수를 카운트한 결과가 제1 임계값 이상이면, 미리 결정된 중요 단어 세트가 충분히 포함한 경우이므로 본 실시예는 S1300 단계로 진행한다.
S1300 단계에서, 데이터 필터링부(140)는 로 데이터와 다른 데이터들 간의 유사도 값들을 산출한다. 이때, 다른 데이터들은 상기 로 데이터와는 서로 상이한 토픽과 관련된 다른 로 데이터들일 수 있다. 다시 말해, 로 데이터가 제1 토픽과 관련된 데이터이면, 다른 데이터들은 제1 토픽이 아닌 토픽들(예를 들어, 제2 토픽 또는 제3 토픽)과 관련된 로 데이터들일 수 있다.
S1400 단계에서, 데이터 필터링부(140)는 로 데이터와 다른 데이터들 간의 유사도 값들 중 유사도가 제2 임계값 이상인 값들의 개수가 제3 임계값 이상인지 판단한다.
그리고, 제2 임계값 이상인 유사도 값들의 개수가 제3 임계값 이상이면, 본 실시예는 S1500 단계로 진행하여 해당 로 데이터를 필터링 한다. 유사도 값이 제2 임계값 이상이라는 것은 로 데이터와 다른 데이터와의 유사도가 충분히 높다는 것을 의미하는 데, 이처럼 유사도가 높은 다른 데이터가 제3 임계값 이상의 개수만큼 다수 존재한다는 것은 로 데이터가 자신의 토픽 외에 다른 토픽과의 관련성이 상당히 높다는 의미이므로 그만큼 학습을 잘못 유도할 우려가 있어 필터링하는 것이다.
반면에, 제2 임계값 이상인 유사도 값들의 개수가 제3 임계값 미만이면, 본 실시예는 그대로 종료하며 해당 로 데이터는 필터링 되지 않고 장치(100)에 제공되게 된다.
이하에서는, 도 13을 참조하여 본 발명의 다양한 실시예에서 설명된 방법들을 구현할 수 있는 예시적인 컴퓨팅 장치(500)에 대하여 설명하도록 한다.
도 13은 컴퓨팅 장치(500)를 나타내는 예시적인 하드웨어 구성도이다.
도 13에 도시된 바와 같이, 컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 버스(550), 통신 인터페이스(570), 프로세서(510)에 의하여 수행되는 컴퓨터 프로그램(591)을 로드(load)하는 메모리(530)와, 컴퓨터 프로그램(591)를 저장하는 스토리지(590)를 포함할 수 있다. 다만, 도 13에는 본 발명의 실시예와 관련 있는 구성요소들 만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 13에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 도 13에 도시된 컴퓨팅 장치(500)는 IaaS(Infrastructure-as-a-Service) 방식의 클라우드 서비스를 제공하는 서버팜(server farm)에 소속된 물리 서버 중 어느 하나를 가리킬 수 있다.
프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(500)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(530)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(590)로부터 하나 이상의 프로그램(591)을 로드(load) 할 수 있다. 예를 들어, 컴퓨터 프로그램(591)이 메모리(530)에 로드 되면, 도 4에 도시된 바와 같은 로직(또는 모듈)이 메모리(530) 상에 구현될 수 있다. 메모리(530)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.
버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(570)는 컴퓨팅 장치(500)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(570)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(590)는 하나 이상의 컴퓨터 프로그램(591)을 비임시적으로 저장할 수 있다. 스토리지(590)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(591)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다.
예를 들어, 컴퓨터 프로그램(591)은 문서를 분석하여 상기 문서의 제1 텍스트를 제1 세그멘트로 분류하는 동작, 상기 제1 세그멘트의 주제를 결정하는 동작, 및 검색 쿼리와 상기 주제와의 관련성에 기반하여 선택적으로 상기 제1 텍스트에 대한 검색 결과를 제공하는 동작들을 수행하도록 하는 인스트럭션들을 포함할 수 있고, 이때, 상기 제1 텍스트는 상기 검색 쿼리와 관련된 키워드를 포함할 수 있다.
컴퓨터 프로그램(591)이 메모리(530)에 로드 되면, 프로세서(510)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
지금까지 도 1 내지 도 13을 참조하여 본 발명의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 발명의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 13을 참조하여 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (14)

  1. 컴퓨팅 장치에 의해 수행되는 문서 내 텍스트를 분류하는 방법에 있어서,
    문서를 분석하여 상기 문서의 제1 텍스트를 제1 세그멘트로 분류하는 단계;
    상기 제1 세그멘트의 주제를 결정하는 단계; 및
    검색 쿼리와 상기 주제와의 관련성에 기반하여 선택적으로 상기 제1 텍스트에 대한 검색 결과를 제공하는 단계를 포함하고,
    상기 제1 텍스트는 상기 검색 쿼리와 관련된 키워드를 포함하는,
    문서 내 텍스트를 분류하는 방법.
  2. 제1 항에 있어서
    상기 제1 세그멘트로 분류하는 단계는,
    상기 문서로부터 복수의 텍스트들을 추출하는 단계;
    상기 복수의 텍스트들을 문장 또는 비문장으로 분류하는 단계; 및
    상기 분류 결과에 기반하여 상기 복수의 텍스트들에 대해 연속하는 문장의 개수를 카운트하는 단계; 및
    상기 카운트 결과에 기반하여 제1 섹션의 시작 위치를 결정하는 단계를 포함하는,
    문서 내 텍스트를 분류하는 방법.
  3. 제1 항에 있어서,
    상기 제1 세그멘트로 분류하는 단계는,
    상기 문서의 복수의 텍스트들을 복수의 세그멘트들로 분류하는 단계;
    상기 복수의 텍스트들 중 상기 제1 텍스트에 대해 인접한 제2 텍스트와의 유사도를 산출하는 단계; 및
    상기 유사도 산출 결과에 따라 상기 제1 텍스트의 분류를 결정하는 단계를 포함하는,
    문서 내 텍스트를 분류하는 방법.
  4. 제3 항에 있어서,
    상기 복수의 세그멘트들로 분류하는 단계는,
    상기 제1 텍스트를 상기 제1 세그멘트로 분류하는 단계를 포함하고,
    상기 제1 텍스트의 분류를 결정하는 단계는,
    상기 유사도 산출 결과에 따라 상기 제1 텍스트의 분류를 상기 제1 세그멘트로 유지하는 단계를 포함하는,
    문서 내 텍스트를 분류하는 방법.
  5. 제3 항에 있어서,
    상기 복수의 세그멘트들로 분류하는 단계는,
    상기 제1 텍스트를 제2 세그멘트로 분류하는 단계를 포함하고,
    상기 제1 텍스트의 분류를 결정하는 단계는,
    상기 유사도 산출 결과에 따라 상기 제1 텍스트의 분류를 상기 제2 세그멘트에서 상기 제1 세그멘트로 변경하는 단계를 포함하는,
    문서 내 텍스트를 분류하는 방법.
  6. 제3 항에 있어서,
    상기 제2 텍스트는,
    상기 제1 텍스트와 동일한 세그멘트에 속하거나,
    상기 제1 텍스트가 속한 세그멘트와 인접한 다른 세그멘트에 속하는,
    문서 내 텍스트를 분류하는 방법.
  7. 제3 항에 있어서,
    상기 유사도를 산출하는 단계는,
    상기 제1 텍스트와 상기 제2 텍스트 사이의 벡터 거리에 기반하여 유사도 스코어를 산출하는 단계를 포함하는,
    문서 내 텍스트를 분류하는 방법.
  8. 제7 항에 있어서,
    상기 유사도 스코어를 산출하는 단계는,
    상기 제1 텍스트의 제1 단어들과 제2 텍스트의 제2 단어들 간의 벡터 거리에 기반하여 제1 유사도 스코어를 산출하는 단계;
    상기 제1 텍스트와 상기 제2 텍스트로부터 유의어를 추출하고, 상기 추출된 유의어가 반영된 상기 제1 텍스트의 제3 단어들과 상기 제2 텍스트의 제4 단어들 간의 벡터 거리에 기반하여 제2 유사도 스코어를 산출하는 단계; 및
    상기 제1 유사도 스코어 및 상기 제2 유사도 스코어에 기반하여 상기 유사도 스코어를 산출하는 단계를 포함하는,
    문서 내 텍스트를 분류하는 방법.
  9. 제1 항에 있어서,
    상기 제1 세그멘트로 분류하는 단계는,
    학습 기반 알고리즘을 이용하여 수행되고,
    상기 학습 기반 알고리즘을 위한 학습 데이터는,
    필터링 단계를 통해 필터링 된 데이터이고,
    상기 필터링 단계는,
    로 데이터가 포함하는 미리 결정된 단어의 개수를 카운트하는 단계; 및
    상기 카운트한 결과가 제1 임계값 미만이면 상기 로 데이터를 필터링하는 단계를 포함하는,
    문서 내 텍스트를 분류하는 방법.
  10. 제9 항에 있어서,
    상기 필터링 단계는,
    상기 로 데이터와 다른 데이터들 간의 유사도 값들을 산출하는 단계; 및
    상기 유사도 값들 중 제2 임계값 이상인 값들의 개수가 제3 임계값 이상이면 상기 로 데이터를 필터링하는 단계를 더 포함하는,
    문서 내 텍스트를 분류하는 방법.
  11. 제10 항에 있어서,
    상기 로 데이터와 상기 다른 데이터들은 서로 상이한 토픽과 관련된 데이터들인,
    문서 내 텍스트를 분류하는 방법.
  12. 제1 항에 있어서,
    상기 검색 결과에 기반하여, 복수의 문서들에 대해 상기 주제 및 상기 키워드와 관련된 통합된 검색 결과를 제공하는 단계를 더 포함하는,
    문서 내 텍스트를 분류하는 방법.
  13. 프로세서;
    상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    문서를 분석하여 상기 문서의 제1 텍스트를 제1 세그멘트로 분류하는 동작,
    상기 제1 세그멘트의 주제를 결정하는 동작, 및
    검색 쿼리와 상기 주제와의 관련성에 기반하여 선택적으로 상기 제1 텍스트에 대한 검색 결과를 제공하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하고,
    상기 제1 텍스트는 상기 검색 쿼리와 관련된 키워드를 포함하는,
    문서 내 텍스트를 분류하는 장치.
  14. 문서 내 텍스트를 분류하기 위해 컴퓨팅 장치와 결합되어,
    문서를 분석하여 상기 문서의 제1 텍스트를 제1 세그멘트로 분류하는 단계;
    상기 제1 세그멘트의 주제를 결정하는 단계; 및
    검색 쿼리와 상기 주제와의 관련성에 기반하여 선택적으로 상기 제1 텍스트에 대한 검색 결과를 제공하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되고,
    상기 제1 텍스트는 상기 검색 쿼리와 관련된 키워드를 포함하는,
    컴퓨터 프로그램.
KR1020200002382A 2020-01-08 2020-01-08 문서 내 텍스트를 분류하는 방법 및 장치 KR20210089340A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200002382A KR20210089340A (ko) 2020-01-08 2020-01-08 문서 내 텍스트를 분류하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200002382A KR20210089340A (ko) 2020-01-08 2020-01-08 문서 내 텍스트를 분류하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210089340A true KR20210089340A (ko) 2021-07-16

Family

ID=77150836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200002382A KR20210089340A (ko) 2020-01-08 2020-01-08 문서 내 텍스트를 분류하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20210089340A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230087912A (ko) 2021-12-10 2023-06-19 주식회사 아티피셜 소사이어티 인공지능 기반의 텍스트 처리 방법
KR20230090890A (ko) 2021-12-15 2023-06-22 주식회사 아티피셜 소사이어티 인지 능력을 평가하기 위한 방법
US11915614B2 (en) 2019-09-05 2024-02-27 Obrizum Group Ltd. Tracking concepts and presenting content in a learning system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102055899B1 (ko) 2017-09-28 2019-12-16 한국과학기술원 맥락을 이용하여 문서를 검색하는 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102055899B1 (ko) 2017-09-28 2019-12-16 한국과학기술원 맥락을 이용하여 문서를 검색하는 시스템 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11915614B2 (en) 2019-09-05 2024-02-27 Obrizum Group Ltd. Tracking concepts and presenting content in a learning system
KR20230087912A (ko) 2021-12-10 2023-06-19 주식회사 아티피셜 소사이어티 인공지능 기반의 텍스트 처리 방법
KR20230090890A (ko) 2021-12-15 2023-06-22 주식회사 아티피셜 소사이어티 인지 능력을 평가하기 위한 방법

Similar Documents

Publication Publication Date Title
US10496928B2 (en) Non-factoid question-answering system and method
CN105045781B (zh) 查询词相似度计算方法及装置、查询词搜索方法及装置
US10789281B2 (en) Regularities and trends discovery in a flow of business documents
US9483460B2 (en) Automated formation of specialized dictionaries
US20150227505A1 (en) Word meaning relationship extraction device
JP6335898B2 (ja) 製品認識に基づく情報分類
KR20210089340A (ko) 문서 내 텍스트를 분류하는 방법 및 장치
JP6767042B2 (ja) シナリオパッセージ分類器、シナリオ分類器、及びそのためのコンピュータプログラム
CN108027814B (zh) 停用词识别方法与装置
US20200285808A1 (en) Synonym dictionary creation apparatus, non-transitory computer-readable recording medium storing synonym dictionary creation program, and synonym dictionary creation method
US11144723B2 (en) Method, device, and program for text classification
WO2019028990A1 (zh) 代码元素的命名方法、装置、电子设备及介质
CN111984851A (zh) 医学资料搜索方法、装置、电子装置及存储介质
US11893537B2 (en) Linguistic analysis of seed documents and peer groups
CN108228612B (zh) 一种提取网络事件关键词以及情绪倾向的方法及装置
WO2016036345A1 (en) External resource identification
CN110795942A (zh) 基于语义识别的关键词确定方法、装置和存储介质
JP4979637B2 (ja) 複合語の区切り位置を推定する複合語区切り推定装置、方法、およびプログラム
CN109753646B (zh) 一种文章属性识别方法以及电子设备
EP3944234A1 (en) Method for processing a video file comprising audio content and visual content comprising text content
KR102351745B1 (ko) 사용자 리뷰 기반 평점 재산정 장치 및 방법
KR20180059112A (ko) 콘텐츠 분류 장치 및 방법
KR101614551B1 (ko) 카테고리 매칭을 이용한 키워드 추출 시스템 및 방법
JP4985096B2 (ja) 文書解析システム、および文書解析方法、並びにコンピュータ・プログラム
JP2014235584A (ja) 文書分析システム、文書分析方法およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination