KR20200137924A - 텍스트 스트리밍 환경에서의 실시간 키워드 추출 방법 및 장치 - Google Patents

텍스트 스트리밍 환경에서의 실시간 키워드 추출 방법 및 장치 Download PDF

Info

Publication number
KR20200137924A
KR20200137924A KR1020190132568A KR20190132568A KR20200137924A KR 20200137924 A KR20200137924 A KR 20200137924A KR 1020190132568 A KR1020190132568 A KR 1020190132568A KR 20190132568 A KR20190132568 A KR 20190132568A KR 20200137924 A KR20200137924 A KR 20200137924A
Authority
KR
South Korea
Prior art keywords
word
sentence
data
value
real
Prior art date
Application number
KR1020190132568A
Other languages
English (en)
Other versions
KR102296931B1 (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 KR20200137924A publication Critical patent/KR20200137924A/ko
Application granted granted Critical
Publication of KR102296931B1 publication Critical patent/KR102296931B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Landscapes

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

Abstract

본 발명은 마이크로 배치(micro batch) 처리 기반 TextRank 알고리즘을 이용한 실시간 키워드 추출 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 실시간 키워드 추출 장치는 텍스트 스트리밍 환경에서 입력된 제1 문장의 단어 데이터를 수신하는 데이터 수신부; 상기 입력된 제1 문장의 단어 데이터를 연산하고, 상기 제1 문장의 단어 데이터의 연산값이 저장되는 마이크로 테이블(micro table)을 생성하여 상기 연산값을 상기 생성된 마이크로 테이블에 저장하는 저장부; 상기 마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF(Term frequency-Inverse document frequency) 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단어 가중치 산출부; 상기 산출된 단어 가중치를 기반으로 단어 노드 그래프(node graph)를 생성하는 단어 노드 그래프 생성부; 상기 단어 가중치 및 상기 단어 노드 그래프에서 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 중요도 값을 산출하는 중요도 값 산출부; 및 상기 산출된 중요도 값에 따라 키워드를 추출하는 키워드 추출부를 포함할 수 있다.

Description

텍스트 스트리밍 환경에서의 실시간 키워드 추출 방법 및 장치 {Real-time keyword extraction method and device in text streaming environment}
본 발명은 실시간 키워드 추출 방법 및 장치에 관한 것으로, 더욱 상세하게는 마이크로-배치(micro-batch) 처리 방식을 이용한 TextRank 알고리즘을 기반으로 텍스트 스트리밍 환경에서 핵심 키워드를 추출하는 실시간 키워드 추출 방법 및 장치에 관한 것이다.
키워드(keyword)는 문장을 대표할 수 있는 단어나 구의 형태로써 텍스트 데이터의 의미를 파악하기 위한 매우 중요한 요소이다. 최근에는 키워드를 활용한 문서의 요약, 분류, 검색 등 다양한 분야에 키워드가 사용되고 있기 때문에 이를 추출하는 기술에 대한 중요성은 증가하고 있다.
지속적으로 텍스트의 입력이 들어오는 환경, 즉, 텍스트 스트리밍(text streaming) 환경에서 실시간으로 텍스트 데이터들을 분석하여 핵심 키워드를 도출하는 기술이 등장하여 사용되고 있다. 고객과의 상담이 많은 보험 및 세일즈맨, 잦은 회의록 작성을 요구하는 기업 등 텍스트의 핵심 요약을 필요로 하는 환경에서 실시간으로 키워드를 추출할 수 있는 방법 및 장치가 필요하다.
특히, 음성 시그널을 텍스트화 해주는 기술과 키워드 추출 기술이 결합되어 사용될 경우, 음성 데이터를 텍스트로 보관하여 이를 기업의 무형자산으로 축적하고, 향후 텍스트로 보관된 음성 데이터를 분석해 기업경영 개선 및 고객과의 분쟁 해결에 활용할 수 있고, 자동으로 대화 내용의 키워드를 추출함으로써 회의 요약을 효율적으로 진행할 수 있어 업무의 피로도 감소 및 기업의 경제적 손실을 줄일 수 있다.
도 1은 텍스트에서 키워드 추출 시 주로 사용되는 기존의 TextRank 프로세스를 나타내는 도면이다. 도 1과 같은 기존의 키워드 추출 방식은 형태소 분석을 수행한 명사 및 대명사 등의 단어 묶음 데이터를 입력받고, 매 단어 데이터 입력마다 현재 단어 데이터 입력 뿐만 아니라 입력된 모든 단어 데이터들을 일괄적으로 처리하는 방식을 사용한다. 이로 인해 전체 연산량이 증가하여 키워드 추출 속도가 현저하게 느려진다는 문제점이 있다.
KR 10-1508260 B1 KR 10-1105798 B1 KR 10-0785754 B1
본 발명은 전술한 문제점을 해결하고자 한 것으로, 입력되는 단어 데이터를 기반으로 키워드 추출 알고리즘을 통해 실시간으로 키워드를 추출할 수 있는 실시간 키워드 추출 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 마이크로 배치(micro batch) 처리 방식을 기반으로 한 실시간 키워드 추출 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 목적들은 상술된 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 실시간 키워드 추출 방법은 (a) 텍스트 스트리밍 환경에서 입력된 제1 문장의 단어 데이터를 수신하는 단계; (b) 상기 입력된 제1 문장의 단어 데이터를 연산하고, 상기 제1 문장의 단어 데이터의 연산값이 저장되는 마이크로 테이블(micro table)을 생성하여 상기 연산값을 상기 생성된 마이크로 테이블에 저장하는 단계; (c) 상기 마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF(Term frequency-Inverse document frequency) 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단계; (d) 상기 산출된 단어 가중치를 기반으로 단어 노드 그래프(node graph)를 생성하는 단계; (e) 상기 단어 가중치 및 상기 단어 노드 그래프에서 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 중요도 값을 산출하는 단계; 및 (f) 상기 산출된 중요도 값에 따라 키워드를 추출하는 단계를 포함할 수 있다.
상기 (d) 단계 이후에, 텍스트 스트리밍 환경에서 입력된 상기 제1 문장과 상이한 제2 문장의 단어 데이터를 수신하는 단계; 상기 제2 문장의 단어 데이터를 상기 마이크로 테이블에 존재하는 기존 단어 데이터 및 상기 마이크로 테이블에 존재하지 않는 신규 단어 데이터로 분류하는 단계; 상기 기존 단어 데이터를 연산하여 상기 마이크로 테이블의 연산값을 갱신하는 단계; 상기 갱신된 마이크로 테이블의 연산값을 기반으로 TF-IDF 알고리즘을 이용하여 상기 기존 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단계; 및 상기 산출된 단어 가중치를 기반으로 상기 단어 노드 그래프를 갱신하는 단계를 더 포함할 수 있다.
상기 분류하는 단계 이후에, 상기 신규 단어 데이터를 연산하여 그 연산값을 상기 마이크로 테이블에 저장하는 단계; 및 상기 신규 단어 데이터에 대한 단어 노드를 상기 단어 노드 그래프에 추가하는 단계를 더 포함할 수 있다.
상기 입력된 문장의 단어 데이터는 상기 입력된 문장으로부터 형태소 분석을 통해 추출된 단어들을 포함할 수 있다.
상기 마이크로 테이블의 연산값은 상기 단어 데이터에 포함된 단어들의 특정 문장 내 빈도수 및 상기 단어들이 포함된 문장의 개수를 나타내는 DF(document frequency) 값을 포함할 수 있다.
상기 (e) 단계는, 상기 마이크로 테이블의 연산값에서 DF 값이 2 이상인 단어들의 단어 노드들에 대해서만 선택적으로 상기 중요도 값을 산출하는 단계를 포함할 수 있다.
상기 (e) 단계는, 상기 단어 노드들 중 인접한 단어 노드들끼리 그룹을 형성하고, 상기 그룹 별로 상기 중요도 값을 산출하는 단계를 포함할 수 있다.
상기 (f) 단계는, 상기 중요도 값의 순서에 따라 추출되는 상기 키워드의 수를 설정하는 단계를 포함할 수 있다.
상기 (a) 단계 이전에, 텍스트 스트리밍 환경에서 상기 제1 문장을 입력받고, 상기 제1 문장으로부터 문자 데이터를 추출하는 단계를 더 포함할 수 있다.
컴퓨터 판독 가능한 기록 매체는 상기 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록할 수 있다.
본 발명의 일 실시예에 따른 실시간 키워드 추출 장치는 텍스트 스트리밍 환경에서 입력된 제1 문장의 단어 데이터를 수신하는 데이터 수신부; 상기 입력된 제1 문장의 단어 데이터를 연산하고, 상기 제1 문장의 단어 데이터의 연산값이 저장되는 마이크로 테이블(micro table)을 생성하여 상기 연산값을 상기 생성된 마이크로 테이블에 저장하는 저장부; 상기 마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF(Term frequency-Inverse document frequency) 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단어 가중치 산출부; 상기 산출된 단어 가중치를 기반으로 단어 노드 그래프(node graph)를 생성하는 단어 노드 그래프 생성부; 상기 단어 가중치 및 상기 단어 노드 그래프에서 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 중요도 값을 산출하는 중요도 값 산출부; 및 상기 산출된 중요도 값에 따라 키워드를 추출하는 키워드 추출부를 포함할 수 있다.
상기 데이터 수신부가 입력된 상기 제1 문장과 상이한 제2 문장의 단어 데이터를 수신하는 경우, 상기 저장부는 상기 제2 문장의 단어 데이터를 상기 마이크로 테이블에 존재하는 기존 단어 데이터 및 상기 마이크로 테이블에 존재하지 않는 신규 단어 데이터로 분류하고, 상기 기존 단어 데이터를 연산하여 상기 마이크로 테이블의 연산값을 갱신하고, 상기 단어 가중치 산출부는 상기 갱신된 마이크로 테이블의 연산값을 기반으로 TF-IDF 알고리즘을 이용하여 상기 기존 단어 데이터에 포함된 단어들의 단어 가중치를 산출하고, 상기 단어 노드 그래프 생성부는 상기 산출된 단어 가중치를 기반으로 상기 단어 노드 그래프를 갱신할 수 있다.
상기 저장부에서 상기 신규 단어 데이터가 분류된 경우, 상기 저장부는 상기 신규 단어 데이터를 연산하여 그 연산값을 상기 마이크로 테이블에 저장하고, 상기 단어 노드 그래프 생성부는 상기 신규 단어 데이터에 대한 단어 노드를 상기 단어 노드 그래프에 추가할 수 있다.
상기 입력된 문장의 단어 데이터는 상기 입력된 문장으로부터 형태소 분석을 통해 추출된 단어들을 포함할 수 있다.
상기 마이크로 테이블의 연산값은 상기 단어 데이터에 포함된 단어들의 특정 문장 내 빈도수 및 상기 단어들이 포함된 문장의 개수를 나타내는 DF(document frequency) 값을 포함할 수 있다.
상기 중요도 값 산출부는, 상기 마이크로 테이블의 연산값에서 DF 값이 2 이상인 단어들의 단어 노드들 들에 대해서만 선택적으로 상기 중요도 값을 산출할 수 있다.
상기 중요도 값 산출부는, 상기 단어 노드들 중 인접한 단어 노드들끼리 그룹을 형성하고, 상기 그룹 별로 상기 중요도 값을 산출할 수 있다.
상기 키워드 추출부는, 상기 중요도 값의 순서에 따라 추출되는 상기 키워드의 수를 설정 가능할 수 있다.
상기 실시간 키워드 추출 장치는, 텍스트 스트리밍 환경에서 상기 제1 문장을 입력받고, 상기 제1 문장으로부터 형태소 분석을 통해 단어들을 추출하는 전처리부를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 실시간 키워드 추출 방법은 회의 및 속기록 등의 모든 대화 내용을 텍스트로 저장하는 환경에서 마이크로 배치(micro batch) 처리를 기반으로 한 실시간 키워드 추출을 토대로 텍스트들의 핵심 내용 파악 및 요약을 통해 업무의 효율성을 높일 수 있다는 장점이 있다.
또한, 본 발명의 일 실시예에 따른 실시간 키워드 추출 방법은 단어 데이터가 입력될 때마다 모든 단어들을 일괄적으로 처리하는 기존 추출 방식에 비해 현재 입력되는 단어 데이터로 인해 갱신되는 단어들에 대해서만 선택적으로 알고리즘을 연산함으로써 빠른 연산 및 키워드 추출이 가능하다는 장점이 있다.
본 발명의 효과들은 이상에서 언급된 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 기존 TextRank 알고리즘의 흐름도를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 실시간 키워드 추출 장치를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 실시간 키워드 추출 방법의 알고리즘을 개략적으로 나타내는 순서도이다.
도 4는 본 발명의 일 실시예에 따른 저장부가 생성한 마이크로 테이블(micro table)을 개략적으로 나타낸다.
도 5는 본 발명의 일 실시예에 따른 단어 노드 그래프 생성부에서 생성한 단어 노드 그래프 및 PageRank 알고리즘을 이용하여 중요도 값을 산출하는 것을 나타내는 도면이다.
도 6은 기존 TextRank 알고리즘과 마이크로 배치(micro batch) 처리 방식 TextRank 알고리즘의 연산 속도 차이의 일례를 나타내는 그래프이다.
도 7은 본 발명의 일 실시예에 따른 실시간 키워드 추출 방법의 흐름도를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 실시간 키워드 추출 방법에서 단어 데이터가 추가적으로 입력될 때의 흐름을 전반적으로 나타낸 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 명세서에서 제1 및/또는 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 즉, 구성요소들을 상기 용어들에 의해 한정하고자 함이 아니다.
본 명세서에서 '포함하다' 라는 표현으로 언급되는 구성요소, 특징, 및 단계는 해당 구성요소, 특징 및 단계가 존재함을 의미하며, 하나 이상의 다른 구성요소, 특징, 단계 및 이와 동등한 것을 배제하고자 함이 아니다.
본 명세서에서 단수형으로 특정되어 언급되지 아니하는 한, 복수의 형태를 포함한다. 즉, 본 명세서에서 언급된 구성요소 등은 하나 이상의 다른 구성요소 등의 존재나 추가를 의미할 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함하여, 본 명세서에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자(통상의 기술자)에 의하여 일반적으로 이해되는 것과 동일한 의미이다.
즉, 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 실시간 키워드 추출 장치를 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 실시간 키워드 추출 장치(10)는 데이터 수신부(100), 저장부(200), 단어 가중치 산출부(300), 단어 노드 그래프(node graph) 생성부(400), 중요도 값 산출부(500) 및 키워드 추출부(600)를 포함할 수 있다.
일 실시예에서, 실시간 키워드 추출 장치(10)는 마이크로 배치(micro batch) 처리 방식을 기반으로 한 TextRank 알고리즘을 통해 텍스트 스트리밍(text streaming) 환경에서 입력되는 문장들로부터 실시간으로 키워드를 추출할 수 있다. 여기서, 마이크로 배치 처리에 대한 설명을 부가하자면, 배치(batch) 처리란 스트리밍되는 데이터를 일정 시간 단위로 모아서 처리하는 것을 의미하며, 마이크로 배치(micro batch) 처리는 작은 크기 단위의 배치(batch) 처리, 예컨대, 수 초 단위의 배치 처리를 의미한다. TextRank 알고리즘은 TF-IDF(term frequency-inverse doucment frequency) 알고리즘과 PageRank 알고리즘을 통해 여러 문장이 포함된 문서들에서 가장 중요한 키워드를 추출할 수 있는 알고리즘을 말한다.
데이터 수신부(100)는 형태소 분석이 이루어진 명사 및 대명사 등의 가공된 단어 데이터를 수신할 수 있다. 단어 데이터는 텍스트 스트리밍(text streaming) 환경에서, 즉, 지속적으로 텍스트 입력이 들어오는 환경에서 입력되는 문장으로부터 전처리를 통해 추출된 단어들의 묶음을 의미한다.
텍스트 스트리밍 환경에서 입력되는 문장의 전처리는 입력되는 문장에 대한 형태소 분석을 의미한다. 예컨대, '청춘은 청춘이기 때문에 꽃처럼 아름답다.' 라는 문장이 전처리부(미도시)로 입력되는 경우, 전처리부는 형태소 분석을 통해 '청춘, 청춘, 꽃'이라는 단어 데이터를 추출하고 데이터 수신부(100)는 추출된 단어 데이터를 전처리부로부터 수신하여 키워드 추출 시 단어 데이터를 사용할 수 있다.
일 실시예에 있어서, 실시간 키워드 추출 장치(10)는 전처리부를 포함할 수 있다. 즉, 텍스트 스트리밍 환경에서 여러 문장들이 실시간 키워드 추출 장치(10)의 전처리부로 입력되고, 전처리부가 입력된 문장으로부터 형태소 분석을 통해 단어 데이터를 추출하고, 단어 데이터를 데이터 수신부(100)가 수신할 수 있다.
도 3은 본 발명의 일 실시예에 따른 실시간 키워드 추출 방법의 알고리즘을 개략적으로 나타내는 순서도이다.
도 3을 참조하면, 문장들이 포함되어 있는 문서 데이터를 입력받는 텍스트 스트리밍 환경에서, 전처리부가 문장들을 입력받아 형태소 분석을 통해 입력된 문장들로부터 단어들의 묶음으로 이루어진 단어 데이터를 추출하고, 추출된 단어 데이터는 데이터 수신부(100)를 통해 실시간 키워드 추출 장치(10)가 수신하여 마이크로 배치 처리 방식 TextRank 알고리즘을 수행할 수 있다.
저장부(200)는 데이터 수신부(100)가 수신한 단어 데이터를 연산하여 그 연산값을 저장할 수 있는 마이크로 테이블(micro table)을 생성하고, 연산값을 생성된 마이크로 테이블에 저장할 수 있다.
여기서, 연산값이란 데이터 수신부(100)가 수신한 단어 데이터에 포함된 단어들의 특정 문장 내 빈도수 및 상기 단어들이 포함된 문장의 개수를 나타내는 DF(document frequency) 값을 포함할 수 있다.
예컨대, '청춘, 청춘, 꽃'이라는 단어 데이터를 데이터 수신부(100)가 수신한 경우, 저장부(200)는 '청춘' 및 '꽃'이라는 단어에 대한 연산을 실시하여 '청춘' 및 '꽃'이라는 단어의 특정 문장 내 빈도수와 입력된 전체 문장들에서의 '청춘' 및 '꽃'이 포함된 문장의 개수를 연산할 수 있다.
저장부(200)는 연산값을 저장 및 갱신할 수 있는 마이크로 테이블을 생성할 수 있다. 마이크로 테이블은 단어 데이터에 포함된 단어들의 연산값인 특정 문장 내 빈도수와 상기 단어들이 포함된 문장의 개수를 나타내는 DF 값을 저장할 수 있는 일종의 표(table)를 말한다.
도 4는 본 발명의 일 실시예에 따른 저장부가 생성한 마이크로 테이블(micro table)을 나타낸다.
도 4를 참조하면, 마이크로 테이블은 단어들의 DF 값 및 특정 문장 내에서의 빈도수를 저장할 수 있다. 또한, 신규 단어가 입력될 시 신규 단어들을 마이크로 테이블의 열에 추가할 수 있고, 신규 문장에 대한 단어 데이터가 입력될 시 신규 문장에 대한 행을 마이크로 테이블에 추가할 수 있다.
도 4의 마이크로 테이블은 한 문장으로부터 '청춘, 청춘, 꽃'이라는 단어 데이터를 수신했을 때 생성되는 마이크로 테이블을 나타낸다. '청춘'이라는 단어가 문장에서 2번, '꽃'이라는 단어가 문장에서 1번 나타나므로 특정 문장 내 빈도수는 각각, 2, 1을 나타낸다. 또한, '청춘' 및 '꽃'이라는 단어가 포함된 문장의 수는 현재까지 총 1개이므로 DF 값은 양 단어 모두 1을 나타낸다. 추후, 신규 단어가 포함된 단어 데이터를 수신하는 경우에도 초기에는 신규 단어에 대한 DF 값이 1일 것이다.
저장부(200)는 첫 번째로 수신한 단어 데이터로부터 연산을 통해 마이크로 테이블을 생성할 수 있고, 마이크로 테이블을 생성한 후에 수신하는 상이한 문장의 단어 데이터를 마이크로 테이블에 존재하는 기존 단어 데이터 및 마이크로 테이블에 존재하지 않는 신규 단어 데이터로 분류할 수 있다.
예컨대, '청춘, 꽃'이라는 단어가 마이크로 테이블에 존재하고, '꽃, 사랑'이라는 상이한 문장의 단어 데이터를 수신한 경우, '꽃'이라는 단어를 기존 단어 데이터로 분류하고, '사랑'이라는 단어를 신규 단어 데이터로 분류할 수 있다.
저장부(200)는 기존 단어 데이터로 분류된 단어 데이터를 연산하여 마이크로 테이블의 연산값을 갱신할 수 있다. 한편, 신규 단어 데이터가 분류된 경우, 저장부(200)는 신규 단어 데이터에 포함된 단어들을 마이크로 테이블의 열에 추가하고, 신규 단어 데이터의 연산값을 마이크로 테이블에 저장할 수 있다.
단어 가중치 산출부(300)는 저장부(200)에서 생성 및 갱신한 마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF(Term frequency-Inverse document frequency) 알고리즘을 이용하여 단어 데이터에 포함된 단어들의 단어 가중치를 산출할 수 있다.
TF-IDF는 데이터 마이닝 등의 분야에서 이용하는 가중치 부여 방식으로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어의 특정 문서 내에서의 중요도를 나타내는 수치를 의미한다. TF(term frequency)는 특정 단어가 특정 문서 내에 얼마나 자주 등장하는지를 의미하며, IDF(inverse document frequency)는 DF 값의 역수로, DF 값은 문서군 내에서의 단어의 빈도를 의미한다. TF-IDF는 TF 값과 IDF 값의 곱으로 TF-IDF 값이 높을수록 문서의 핵심어로 판단될 수 있다.
단어 가중치 산출부(300)는 저장부(200)에서 생성한 마이크로 테이블에 저장된 연산값을 이용하여 단어 별로 정규화(normalize)된 단어 가중치를 산출할 수 있다. 단어 가중치는 상기에 설명한 TF-IDF 알고리즘을 이용하여 산출할 수 있다. 즉, 한 문장 내에서의 단어 빈도수 및 전체 입력된 문장들 내에서의 단어 빈도수를 나타내는 DF 값을 토대로 단어의 가중치를 연산할 수 있다.
일 실시예에서, 단어 가중치 산출부(300)는 저장부(200)가 기존 단어 데이터를 연산하여 마이크로 테이블의 연산값을 갱신한 경우, 갱신된 마이크로 테이블의 연산값을 기반으로 TF-IDF 알고리즘을 이용하여 기존 단어 데이터에 포함된 단어들의 단어 가중치를 산출할 수 있다.
단어 가중치 산출 과정을 하기 표 1 및 2를 통해 보다 상세히 설명한다.
청춘 열정 사랑
DF 값 2 2 1 1
문장A 2 1 0 0
문장B 0 0 1 0
문장C 3 0 0 0
문장D 0 1 0 1
표 1은 서로 다른 4개의 문장으로부터 생성된 마이크로 테이블을 나타낸다. 문장A는 '청춘, 청춘, 꽃', 문장B는 '열정', 문장C는 '청춘, 청춘, 청춘', 문장D는 '꽃, 사랑'이라는 단어 데이터를 가지고 있는 문장이고 이에 대한 단어 데이터를 입력받은 실시간 키워드 추출 장치(10)의 저장부(200)가 위와 같은 마이크로 테이블을 생성할 수 있다.
IDF값은 DF 값의 역수를 나타내고 TF(term frequency)는 특정 문장 내 빈도수를 의미한다. TF-IDF 알고리즘은 TF 값과 IDF 값을 곱한 후 이를 정규화하여 단어 가중치를 산출한다. 여기서, TF-IDF 알고리즘은 입력된 문장들 각각을 기준으로, 즉, 문장 별로 단어 가중치를 연산한다. 상기 표 1의 마이크로 테이블에 대하여 TF-IDF 알고리즘을 이용해 산출한 단어 가중치는 하기 표 2와 같다.
청춘 열정 사랑
0.66 0.33 0 0
0 0 1 0
1 0 0 0
0 0.33 0 0.66
문장A에서 '청춘'의 경우, TF 값은 2, IDF 값은 0.5로 TF-IDF 값은 1이며 '꽃'의 경우, TF 값은 1, IDF 값은 0.5로 TF-IDF 값은 0.5로 나타낼 수 있다. '청춘', '꽃'의 TF-IDF 연산 값을 1을 기준으로 정규화하면 각각 0.66, 0.33으로 나타낼 수 있는 바, 상기 표 2의 두 번째 행과 같은 단어 가중치 값이 산출되는 것이다.
나머지 문장B, C, D에서도 각각 TF-IDF 알고리즘을 수행하여 상기 표 2와 같은 단어 가중치 값을 산출할 수 있다.
단어 노드 그래프 생성부(400)는 단어 가중치 산출부(300)에서 산출한 단어 가중치를 기반으로 단어 노드 그래프(node graph)를 생성할 수 있다. 단어 노드 그래프 생성부(400)는 PageRank 알고리즘을 통해 단어 가중치를 연산하여 단어의 문장 내 중요도를 나타내는 중요도 값을 산출할 수 있도록 단어 데이터에 포함된 단어 별로 단어 노드를 생성할 수 있다.
일 실시예에서, 단어 노드 그래프 생성부(400)는 저장부(200)에서 신규 단어 데이터를 분류한 경우, 신규 단어에 대한 단어 노드를 단어 노드 그래프에 추가할 수 있다.
또한, 기존 단어 데이터를 연산하여 마이크로 테이블의 연산값을 갱신한 경우, 갱신된 마이크로 테이블의 연산값을 기반으로 단어 가중치 산출부(300)가 갱신된 기존 단어 데이터에 포함된 단어들에 대한 단어 가중치를 산출하고, 산출된 단어 가중치를 기반으로 단어 노드 그래프 생성부(400)는 단어 노드 그래프를 갱신할 수 있다.
즉, 단어 노드 그래프 생성부(400)는 저장부(200)가 단어 데이터로부터 기존 단어 데이터를 분류한 경우, 기존 단어 데이터에 포함된 단어들에 대한 단어 노드를 갱신할 수 있다.
중요도 값 산출부(500)는 단어 노드 그래프 생성부(400)에서 생성한 단어 노드 그래프를 기반으로 PageRank 알고리즘을 통해 단어의 키워드 여부를 나타내는 단어의 중요도 값을 산출할 수 있다.
중요도 값 산출부(500)는 단어 노드 그래프의 단어 노드가 포함하는 단어 가중치와 단어 노드들과 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 단어들의 중요도 값을 산출할 수 있다.
PageRank 알고리즘은 하기 수학식 1과 같이 표현할 수 있다.
Figure pat00001
여기서, PR(A)는 단어 노드 A의 중요도 값,
Figure pat00002
은 단어 노드 A와 연결된 단어 노드, PR(
Figure pat00003
)은
Figure pat00004
단어 노드의 중요도 값, C(
Figure pat00005
)은
Figure pat00006
단어 노드와 연결된 다른 단어 노드의 수, d는 damping factor, N은 PageRank 알고리즘이 수행되는 단어 노드의 수를 의미한다. 여기서, damping factor는 0.85로 설정된다.
PageRank 알고리즘은 상기 수학식 1을 반복 연산하는데, 이 과정에서 PR(A) 값이 일정한 값으로 수렴하게 된다. 수렴하는 최종 연산값이 단어 노드 A의 중요도 값이다. 첫 번째 연산 과정에서는 PR(
Figure pat00007
)에 단어 노드
Figure pat00008
의 단어 가중치 값이 대입되며 첫 번째 연산 과정에서 도출된 중요도 값을 다시 PR(
Figure pat00009
)에 대입하여 위 연산 과정을 반복하는 것이다.
일 실시예에서, 중요도 값 산출부(500)는 마이크로 테이블의 연산값에서 DF 값이 2 이상인 단어들의 단어 노드들에 대해서만 선택적으로 PageRank 알고리즘을 수행할 수 있다.
DF 값이 2 이상인 단어들은 최소 두 개 이상의 문장에 포함된 단어들을 말하는 바, PageRank 알고리즘이 수행되어 중요도 값이 산출되는 단어 노드들은 갱신된 단어 노드들을 의미한다.
도 5는 본 발명의 일 실시예에 따른 단어 노드 그래프 생성부에서 생성한 단어 노드 그래프 및 PageRank 알고리즘을 이용하여 중요도 값을 산출하는 것을 나타내는 도면이다.
도 5의 단어 노드 그래프는 단어 노드 그래프 생성부(400)가 상기 표 1 및 2의 마이크로 테이블과 단어 가중치를 기반으로 생성한 단어 노드 그래프이다. 단어 가중치가 0인 단어 노드는 생성되지 않으며, 단어 노드는 문장 내 단어 별로 하나씩 생성되고 단어 가중치 값을 포함한다.
여기서 DF 값이 2 이상인, 갱신된 단어 노드를 포함하는 단어는 '청춘', '꽃'인 바, '청춘' 및 '꽃'에 해당하는 단어 노드들(붉은색으로 표시)에 대해서만 선택적으로 PageRank 알고리즘을 적용하여 중요도 값을 산출한다.
도 5의 맨 오른쪽 그림을 참조하면, 중요도 값 산출부(500)는 DF 값이 2 이상인 단어 노드들 중 인접한 단어 노드들끼리 그룹을 형성하고, 그룹 별로 PageRank 알고리즘을 적용하여 중요도 값을 산출한다. 즉, 첫 번째 행에 있는 '청춘', '꽃' 단어 노드가 인접해 있으며, 세 번째 행에 있는 '청춘' 단어 노드와 네 번째 행에 있는 '꽃' 단어 노드가 서로 인접해 있다. 인접한 단어 노드들끼리 간선으로 연결하여 그룹을 형성하고, 그룹 별로 PageRank 알고리즘을 적용하여 각각의 단어 노드 별로 중요도 값이 산출된 것을 확인할 수 있다.
예컨대, 도 5에서 첫 번째 행에 있는, 서로 인접한 단어 노드인 '청춘', '꽃'을 그룹으로 형성하여 상기 수학식 1의 PageRank 알고리즘 연산을 반복한다. PageRank 알고리즘의 첫 번째 연산에는 단어 가중치인 0.66과 0.33을 대입한다. 최종적으로 PageRank 알고리즘을 통해 얻은 단어 별 중요도 값은 '청춘' 단어 노드의 경우, 0.5이며 '꽃' 단어 노드의 경우 0.5로 산출된다.
저장부(200)에서 분류된 신규 단어 데이터에 포함된 단어들의 단어 노드들은 단어 노드 그래프 생성부(400)에서 추가되고, 기존 단어 데이터에 포함된 단어들의 단어 노드들은 단어 노드 그래프 생성부(400)에서 갱신될 수 있다. 여기서, 중요도 값 산출부(500)는 DF 값이 2 이상인, 갱신된 단어 노드들에 대해서만 PageRank 알고리즘을 수행하는 바, 모든 단어 노드들에 대해 연산을 수행했던 기존 방식에 비해 연산 수행속도를 줄일 수 있다는 장점이 있다.
키워드 추출부(600)는 중요도 값 산출부(500)에서 산출한 단어 별 중요도를 나타내는 중요도 값이 높은 단어를 핵심 키워드로 추출할 수 있다.
중요도 값 산출부(500)에서 산출한 중요도 값은 단어 별로 단어들의 문장 내 중요도를 나타내는 지표로써, 중요도 값이 높을수록 핵심 키워드임을 의미한다. 키워드 추출부(600)는 산출한 중요도 값의 순서대로 단어들을 나열할 수 있으며, 중요도 값이 높은 순서대로 키워드를 추출할 수 있다.
예컨대, 도 5와 같이 중요도 값이 산출된 경우, '청춘' 0.66, '꽃' 0.66, '청춘' 0.5, '꽃' 0.5의 순서대로 단어들을 나열할 수 있다.
키워드 추출부(600)는 중요도 값의 순서에 따라 추출되는 키워드의 수를 설정할 수 있다. 예컨대, 키워드 추출부(600)에서 중요도 값의 순서대로 나열한 단어들이 '청춘' 0.8, '꽃' 0.7, '사랑' 0.5, '열정' 0.3이고, 키워드 추출부(600)가 설정한 키워드의 수가 1개인 경우, '청춘'이 키워드로 추출될 것이다. 키워드 추출부(600)가 설정한 키워드의 수가 2개인 경우, '청춘' 및 '꽃'이 키워드로 추출될 것이다.
본 발명의 일 실시예에 따른 실시간 키워드 추출 장치(10)는 마이크로 배치 처리 방식을 이용한 TextRank 알고리즘을 이용하여 현재 입력되는 단어 데이터 중 기존에 존재하던 단어들에 대해서만 키워드 추출 연산을 수행하므로, 기존의 TextRank 알고리즘에서 단어 데이터가 입력될 때마다 전체 데이터에 대해서 추출 연산을 수행하는 것에 비해 보다 빠른 연산 및 키워드 추출이 가능하다는 장점이 있다.
도 6은 기존 TextRank 방식과 마이크로 배치(micro batch) TextRank 방식의 연산 속도 차이의 일례를 나타내는 그래프이다.
도 6은 제20대 국회 2018년 국회운영위원회(2018년 11월 7일) 속기록 데이터를 기반으로 TextRank와 마이크로 배치 처리 방식의 TextRank의 키워드 추출 연산 수행 시간을 비교한 그래프이다. 도 6을 참조하면, 기존 TextRank 알고리즘의 경우 입력되는 문장의 수가 늘어날수록 연산 시간도 이에 비례하여 증가하는 것을 확인할 수 있다. 그러나, 본 발명의 일 실시예에 따른 실시간 키워드 추출 장치(10)가 수행하는 마이크로 배치 처리 방식을 기반으로 한 TextRank 알고리즘의 경우 입력되는 문장의 수에 상관없이 연산 시간이 일정하게 유지되는 것을 확인할 수 있다.
본 발명의 일 실시예에 따른 실시간 키워드 추출 장치(10)에서 수행하는 마이크로 배치 처리 방식 TextRank 알고리즘의 수행속도는 하기 수학식 2와 같이 표현될 수 있다.
Figure pat00010
여기서,
Figure pat00011
는 전체 처리 시간, N은 신규 단어의 개수, E는 기존 단어의 개수,
Figure pat00012
은 마이크로 테이블에 신규 단어 추가 시간,
Figure pat00013
는 단어 노드 그래프에 신규 단어 노드 추가 시간,
Figure pat00014
은 마이크로 테이블에 기존 단어 갱신 시간,
Figure pat00015
는 TF-IDF 알고리즘 연산 시간,
Figure pat00016
는 선택적 PageRank 알고리즘 연산 시간을 의미한다.
전체 처리 시간은 데이터 수신부(100)가 단어 데이터를 수신하고 키워드 추출부(600)에서 키워드를 추출하기까지의 시간을 의미한다. 이는 신규 단어 데이터 및 기존 단어 데이터에 대한 연산 시간의 총합으로 표현될 수 있다.
도 7은 본 발명의 일 실시예에 따른 실시간 키워드 추출 방법의 흐름도를 나타내는 도면이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 실시간 키워드 추출 방법은 입력된 제1 문장의 단어 데이터를 수신하는 단계(S701), 제1 문장의 단어 데이터를 연산하고, 그 연산값이 저장되는 마이크로 테이블(micro table)을 생성하여 연산값을 생성된 마이크로 테이블에 저장하는 단계(S702), 마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF(term frequency-inverse document frequency) 알고리즘을 이용하여 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단계(S703), 산출된 단어 가중치를 기반으로 단어 노드 그래프(node graph)를 생성하는 단계(S704), 단어 가중치 및 단어 노드 그래프에서 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 중요도 값을 산출하는 단계(S705) 및 산출된 중요도 값에 따라 키워드를 추출하는 단계(S706)를 포함할 수 있다.
또한, 일 실시예에 있어서, 실시간 키워드 추출 방법은 S704 단계 이후에 제1 문장과 상이한 제2 문장의 단어 데이터를 수신하는 단계, 제2 문장의 단어 데이터를 기존 단어 데이터 및 신규 단어 데이터로 분류하는 단계, 마이크로 테이블의 연산값을 갱신하는 단계, 기존 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단계 및 단어 노드 그래프를 갱신하는 단계를 더 포함할 수 있다.
또한, 일 실시예에 있어서, 실시간 키워드 추출 방법은 상기 분류하는 단계 이후에 신규 단어 데이터를 연산하여 그 연산값을 마이크로 테이블에 저장하는 단계 및 신규 단어 데이터에 대한 단어 노드를 단어 노드 그래프에 추가하는 단계를 더 포함할 수 있다.
또한, 일 실시예에 있어서, 실시간 키워드 추출 방법은 S701 단계 이전에, 텍스트 스트리밍 환경에서 제1 문장을 입력받고, 제1 문장으로부터 문자 데이터를 추출하는 단계를 더 포함할 수 있다.
입력된 제1 문장의 단어 데이터를 수신하는 단계(S701)는 데이터 수신부(100)가 텍스트 스트리밍 환경에서 입력된 제1 문장의 단어 데이터를 수신하는 단계이다.
데이터 수신부(100)는 텍스트 스트리밍 환경에서 입력되는 문장에 대한 전처리가 완료된 단어 데이터를 수신할 수 있다. 텍스트 스트리밍 환경에서 입력되는 문장의 전처리는 입력되는 문장에 대한 형태소 분석을 통해 문장으로부터 단어들을 추출하는 것을 의미한다. 예컨대, 텍스트 스트리밍 환경에서 제1 문장이 실시간 키워드 장치(10)의 전처리부로 입력되는 경우, 전처리부는 형태소 분석을 통해 제1 문장에 포함되어 있는 단어 데이터를 추출하고 데이터 수신부(100)는 추출된 단어 데이터를 수신하여 이를 키워드 추출 시 사용할 수 있다. 여기서, 단어 데이터는 입력된 문장으로부터 형태소 분석을 통해 추출된 단어들을 포함할 수 있다.
제1 문장의 단어 데이터를 연산하고, 그 연산값이 저장되는 마이크로 테이블(micro table)을 생성하여 연산값을 생성된 마이크로 테이블에 저장하는 단계(S702)는 저장부(200)가 데이터 수신부(100)에서 수신한 단어 데이터를 기반으로 단어 데이터를 연산하고, 그 연산값이 표시될 수 있는 마이크로 테이블을 생성한 후, 마이크로 테이블에 연산값을 저장하는 단계이다. 여기서, 마이크로 테이블의 연산값은 단어 데이터에 포함된 단어들의 특정 문장 내 빈도수 및 상기 단어들이 포함된 문장의 개수를 나타내는 DF(document frequency) 값을 포함할 수 있다.
마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF(term frequency-inverse document frequency) 알고리즘을 이용하여 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단계(S703)는 단어 가중치 산출부(300)가 저장부(200)에서 생성한 마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF 알고리즘을 통해 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단계이다.
산출된 단어 가중치를 기반으로 단어 노드 그래프(node graph)를 생성하는 단계(S704)는 단어 노드 그래프 생성부(400)가 단어 가중치 산출부(300)에서 산출한 단어 가중치를 기반으로 단어 노드 그래프를 생성하는 단계이다.
단어 가중치 및 단어 노드 그래프에서 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 단어 데이터에 포함된 단어들의 중요도 값을 산출하는 단계(S705)는 중요도 값 산출부(500)에서 PageRank 알고리즘을 이용하여 단어 별 중요도 값을 산출하는 단계이다.
여기서, 중요도 값 산출부(500)는 마이크로 테이블의 연산값에서 DF 값이 2 이상인 단어들의 단어 노드들에 대해서만, 즉, 갱신된 단어 노드들에 대해서만 선택적으로 중요도 값을 산출할 수 있다.
또한, 중요도 값 산출부(500)는 상기 단어 노드들 중 인접한 단어 노드들끼리 그룹을 형성하고, 그룹 별로 PageRank 알고리즘을 수행하여 중요도 값을 산출할 수 있다.
산출된 중요도 값에 따라 키워드를 추출하는 단계(S706)는 키워드 추출부(600)가 중요도 값 산출부(500)에서 산출한 중요도 값을 기반으로 키워드를 추출하는 단계이다. 키워드 추출부(600)는 중요도 값 산출부(500)에서 산출한 중요도 값의 순서대로 단어들을 나열할 수 있으며, 중요도 값이 높은 순서대로 키워드를 추출할 수 있다. 키워드 추출부(600)는 중요도 값의 순서에 따라 추출되는 키워드의 수를 설정할 수 있다.
일 실시예에 있어서, 상기 S704 단계 이후에 데이터 수신부(100)는 제1 문장과 상이한 제2 문장의 단어 데이터를 수신할 수 있다.
데이터 수신부(100)가 제1 문장의 단어 데이터를 수신한 후, 저장부(200)가 마이크로 테이블을 생성한 경우, 저장부(200)는 제2 문장의 단어 데이터를 마이크로 테이블에 존재하는 기존 단어 데이터 및 마이크로 테이블에 존재하지 않는 신규 단어 데이터로 분류할 수 있다.
저장부(200)는 신규 단어 데이터가 분류된 경우, 신규 단어 데이터를 연산하여 그 연산값을 마이크로 테이블에 저장할 수 있다. 또한, 단어 노드 그래프 생성부(400)는 신규 단어 데이터에 대한 단어 노드를 단어 노드 그래프에 추가할 수 있다.
저장부(200)는 마이크로 테이블에 존재하는 기존 단어 데이터가 분류된 경우, 기존 단어 데이터를 연산하여 마이크로 테이블의 연산값을 갱신할 수 있다. 단어 가중치 산출부(300)는 갱신된 마이크로 테이블의 연산값을 기반으로 TF-IDF 알고리즘을 이용하여 기존 단어 데이터에 포함된 단어들의 단어 가중치를 산출할 수 있다. 단어 노드 그래프 생성부(400)는 산출된 단어 가중치를 기반으로 단어 노드 그래프를 갱신할 수 있다.
일 실시예에 있어서, 중요도 값 산출부(500)는 마이크로 테이블의 연산값에서 DF 값이 2 이상인 단어들의 단어 노드들, 즉, 단어 노드 그래프 생성부(400)에서 갱신된 단어 노드들에 대해서만 선택적으로 PageRank 알고리즘을 수행할 수 있다.
키워드 추출부(600)는 중요도 값 산출부(500)에서 산출한 단어들의 중요도 값을 그 순서대로 나열하고, 핵심 키워드를 최종적으로 추출할 수 있다. 키워드 추출부(600)는 중요도 값의 순서에 따라 추출되는 키워드의 수를 설정할 수 있다.
도 8은 본 발명의 일 실시예에 따른 실시간 키워드 추출 방법에서 단어 데이터가 추가적으로 입력될 때의 흐름을 전반적으로 나타낸 도면이다.
일 실시예에 있어서, 데이터 수신부(100)가 제1 문장의 단어 데이터를 입력 받은 후, 마이크로 테이블이 존재하지 않는 경우, 저장부(200)는 제1 문장의 단어 데이터의 연산값을 저장할 수 있는 마이크로 테이블을 생성하고, 연산값을 마이크로 테이블에 저장할 수 있다. 또한, 연산값을 기반으로 단어 가중치 산출부(300)가 단어 가중치를 산출하고, 산출된 단어 가중치를 기반으로 단어 노드 그래프 생성부(400)가 단어 노드 그래프를 생성할 수 있다. 이 과정이 끝난 후, 추가적인 단어 데이터를 데이터 수신부(100)가 수신할 수 있다.
일 실시예에 있어서, 데이터 수신부(100)가 제1 문장의 단어 데이터와 상이한 제2 문장의 단어 데이터를 수신하고, 마이크로 테이블이 존재하는 경우, 저장부(200)는 마이크로 테이블에 존재하는 기존 단어 데이터 및 마이크로 테이블에 존재하지 않는 신규 단어 데이터로 분류하는 단계를 거칠 수 있다.
기존 단어가 아닌 즉, 마이크로 테이블에 존재하지 않는 신규 단어 데이터에 대한 연산값은 마이크로 테이블에 추가적으로 저장되고, 단어 노드 그래프에 신규 단어 데이터에 대한 단어 노드가 추가될 수 있다. 이 과정이 끝난 후, 추가적인 단어 데이터를 데이터 수신부(100)가 수신할 수 있다.
마이크로 테이블에 존재하는 기존 단어 데이터의 경우, 기존 단어 데이터를 연산하여 마이크로 테이블의 연산값을 갱신하고, 갱신된 마이크로 테이블의 연산값을 기반으로 TF-IDF 알고리즘을 이용하여 기존 단어 데이터에 포함된 단어들의 단어 가중치를 산출하고, 산출된 단어 가중치를 기반으로 단어 노드 그래프를 갱신할 수 있다.
중요도 값 산출부(500)는 단어 가중치 및 단어 노드 그래프에서 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 단어 데이터에 포함된 단어들의 중요도 값을 산출할 수 있다. 여기서, 중요도 값 산출부(500)는 마이크로 테이블의 연산값에서 DF 값이 2 이상인 단어들의 단어 노드들에 대해서만 선택적으로 중요도 값을 산출할 수 있다. 또한, 중요도 값 산출부(500)는 단어 노드들 중 인접한 단어 노드들끼리 그룹을 형성하고 그룹 별로 PageRank 알고리즘을 이용하여 중요도 값을 산출할 수 있다.
키워드 추출부(600)는 중요도 값 산출부(500)에서 산출한 중요도 값의 순서대로 단어들을 나열하고 중요도 값에 따라 키워드를 추출할 수 있다. 키워드 추출부(600)는 중요도 값의 순서에 따라 추출되는 키워드의 수를 설정할 수 있다.
본 발명의 일 실시예에 따른 실시간 키워드 추출 방법은 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능한 기록 매체는 컴퓨터에 의해 액세스(access)될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 또한, 컴퓨터 판독 가능한 기록 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다.
본 명세서에서 설명된 실시예들에 관한 예시적인 모듈, 단계 또는 이들의 조합은 전자 하드웨어(코딩 등에 의해 설계되는 디지털 설계), 소프트웨어(프로그램 명령을 포함하는 다양한 형태의 애플리케이션) 또는 이들의 조합에 의해 구현될 수 있다. 하드웨어 및/또는 소프트웨어 중 어떠한 형태로 구현되는지는 사용자 단말에 부여되는 설계상의 제약에 따라 달라질 수 있다.
본 명세서에서 설명된 구성의 하나 이상은 컴퓨터 프로그램 명령으로서 메모리에 저장될 수 있는데, 이러한 컴퓨터 프로그램 명령은 디지털 신호 프로세서를 중심으로 본 명세서에서 설명된 방법을 실행할 수 있다. 본 명세서에 첨부된 도면을 참조하여 특정되는 구성 간의 연결 예는 단지 예시적인 것으로, 이들 중 적어도 일부는 생략될 수도 있고, 반대로 이들 구성 뿐 아니라 추가적인 구성을 더 포함할 수 있음은 물론이다.
이상의 설명은 본 발명의 기술적 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술적 사상의 범위가 한정되는 것이 아니다. 본 발명의 보호범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10 : 실시간 키워드 추출 시스템
100 : 데이터 수신부
200 : 저장부
300 : 단어 가중치 산출부
400 : 단어 노드 그래프 생성부
500 : 중요도 값 산출부
600 : 키워드 추출부

Claims (19)

  1. (a) 텍스트 스트리밍 환경에서 입력된 제1 문장의 단어 데이터를 수신하는 단계;
    (b) 상기 입력된 제1 문장의 단어 데이터를 연산하고, 상기 제1 문장의 단어 데이터의 연산값이 저장되는 마이크로 테이블(micro table)을 생성하여 상기 연산값을 상기 생성된 마이크로 테이블에 저장하는 단계;
    (c) 상기 마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF(Term frequency-Inverse document frequency) 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단계;
    (d) 상기 산출된 단어 가중치를 기반으로 단어 노드 그래프(node graph)를 생성하는 단계;
    (e) 상기 단어 가중치 및 상기 단어 노드 그래프에서 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 중요도 값을 산출하는 단계; 및
    (f) 상기 산출된 중요도 값에 따라 키워드를 추출하는 단계를 포함하는,
    실시간 키워드 추출 방법.
  2. 제1항에 있어서,
    상기 (d) 단계 이후에,
    텍스트 스트리밍 환경에서 입력된 상기 제1 문장과 상이한 제2 문장의 단어 데이터를 수신하는 단계;
    상기 제2 문장의 단어 데이터를 상기 마이크로 테이블에 존재하는 기존 단어 데이터 및 상기 마이크로 테이블에 존재하지 않는 신규 단어 데이터로 분류하는 단계;
    상기 기존 단어 데이터를 연산하여 상기 마이크로 테이블의 연산값을 갱신하는 단계;
    상기 갱신된 마이크로 테이블의 연산값을 기반으로 TF-IDF 알고리즘을 이용하여 상기 기존 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단계; 및
    상기 산출된 단어 가중치를 기반으로 상기 단어 노드 그래프를 갱신하는 단계를 더 포함하는,
    실시간 키워드 추출 방법.
  3. 제2항에 있어서,
    상기 분류하는 단계 이후에,
    상기 신규 단어 데이터를 연산하여 그 연산값을 상기 마이크로 테이블에 저장하는 단계; 및
    상기 신규 단어 데이터에 대한 단어 노드를 상기 단어 노드 그래프에 추가하는 단계를 더 포함하는,
    실시간 키워드 추출 방법.
  4. 제1항에 있어서,
    상기 입력된 문장의 단어 데이터는 상기 입력된 문장으로부터 형태소 분석을 통해 추출된 단어들을 포함하는,
    실시간 키워드 추출 방법.
  5. 제1항에 있어서,
    상기 마이크로 테이블의 연산값은 상기 단어 데이터에 포함된 단어들의 특정 문장 내 빈도수 및 상기 단어들이 포함된 문장의 개수를 나타내는 DF(document frequency) 값을 포함하는,
    실시간 키워드 추출 방법.
  6. 제2항에 있어서,
    상기 (e) 단계는,
    상기 마이크로 테이블의 연산값에서 DF 값이 2 이상인 단어들의 단어 노드들에 대해서만 선택적으로 상기 중요도 값을 산출하는 단계를 포함하는,
    실시간 키워드 추출 방법.
  7. 제6항에 있어서,
    상기 (e) 단계는,
    상기 단어 노드들 중 인접한 단어 노드들끼리 그룹을 형성하고, 상기 그룹 별로 상기 중요도 값을 산출하는 단계를 포함하는,
    실시간 키워드 추출 방법.
  8. 제1항에 있어서,
    상기 (f) 단계는,
    상기 중요도 값의 순서에 따라 추출되는 상기 키워드의 수를 설정하는 단계를 포함하는,
    실시간 키워드 추출 방법.
  9. 제1항에 있어서,
    상기 (a) 단계 이전에,
    텍스트 스트리밍 환경에서 상기 제1 문장을 입력받고, 상기 제1 문장으로부터 문자 데이터를 추출하는 단계를 더 포함하는,
    실시간 키워드 추출 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 기재된 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  11. 텍스트 스트리밍 환경에서 입력된 제1 문장의 단어 데이터를 수신하는 데이터 수신부;
    상기 입력된 제1 문장의 단어 데이터를 연산하고, 상기 제1 문장의 단어 데이터의 연산값이 저장되는 마이크로 테이블(micro table)을 생성하여 상기 연산값을 상기 생성된 마이크로 테이블에 저장하는 저장부;
    상기 마이크로 테이블에 저장된 연산값을 기반으로 TF-IDF(Term frequency-Inverse document frequency) 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 단어 가중치를 산출하는 단어 가중치 산출부;
    상기 산출된 단어 가중치를 기반으로 단어 노드 그래프(node graph)를 생성하는 단어 노드 그래프 생성부;
    상기 단어 가중치 및 상기 단어 노드 그래프에서 연결된 인접한 단어 노드의 수를 기반으로 PageRank 알고리즘을 이용하여 상기 단어 데이터에 포함된 단어들의 중요도 값을 산출하는 중요도 값 산출부; 및
    상기 산출된 중요도 값에 따라 키워드를 추출하는 키워드 추출부를 포함하는,
    실시간 키워드 추출 장치.
  12. 제11항에 있어서,
    상기 데이터 수신부가 입력된 상기 제1 문장과 상이한 제2 문장의 단어 데이터를 수신하는 경우,
    상기 저장부는 상기 제2 문장의 단어 데이터를 상기 마이크로 테이블에 존재하는 기존 단어 데이터 및 상기 마이크로 테이블에 존재하지 않는 신규 단어 데이터로 분류하고, 상기 기존 단어 데이터를 연산하여 상기 마이크로 테이블의 연산값을 갱신하고,
    상기 단어 가중치 산출부는 상기 갱신된 마이크로 테이블의 연산값을 기반으로 TF-IDF 알고리즘을 이용하여 상기 기존 단어 데이터에 포함된 단어들의 단어 가중치를 산출하고,
    상기 단어 노드 그래프 생성부는 상기 산출된 단어 가중치를 기반으로 상기 단어 노드 그래프를 갱신하는,
    실시간 키워드 추출 장치.
  13. 제12항에 있어서,
    상기 저장부에서 상기 신규 단어 데이터가 분류된 경우,
    상기 저장부는 상기 신규 단어 데이터를 연산하여 그 연산값을 상기 마이크로 테이블에 저장하고,
    상기 단어 노드 그래프 생성부는 상기 신규 단어 데이터에 대한 단어 노드를 상기 단어 노드 그래프에 추가하는,
    실시간 키워드 추출 장치.
  14. 제11항에 있어서,
    상기 입력된 문장의 단어 데이터는 상기 입력된 문장으로부터 형태소 분석을 통해 추출된 단어들을 포함하는,
    실시간 키워드 추출 장치.
  15. 제11항에 있어서,
    상기 마이크로 테이블의 연산값은 상기 단어 데이터에 포함된 단어들의 특정 문장 내 빈도수 및 상기 단어들이 포함된 문장의 개수를 나타내는 DF(document frequency) 값을 포함하는,
    실시간 키워드 추출 장치.
  16. 제12항에 있어서,
    상기 중요도 값 산출부는,
    상기 마이크로 테이블의 연산값에서 DF 값이 2 이상인 단어들의 단어 노드들 들에 대해서만 선택적으로 상기 중요도 값을 산출하는,
    실시간 키워드 추출 장치.
  17. 제16항에 있어서,
    상기 중요도 값 산출부는,
    상기 단어 노드들 중 인접한 단어 노드들끼리 그룹을 형성하고, 상기 그룹 별로 상기 중요도 값을 산출하는,
    실시간 키워드 추출 장치.
  18. 제11항에 있어서,
    상기 키워드 추출부는,
    상기 중요도 값의 순서에 따라 추출되는 상기 키워드의 수를 설정 가능한,
    실시간 키워드 추출 장치.
  19. 제11항에 있어서,
    상기 실시간 키워드 추출 장치는,
    텍스트 스트리밍 환경에서 상기 제1 문장을 입력받고,
    상기 제1 문장으로부터 형태소 분석을 통해 단어들을 추출하는 전처리부를 더 포함하는,
    실시간 키워드 추출 장치.








KR1020190132568A 2019-05-29 2019-10-23 텍스트 스트리밍 환경에서의 실시간 키워드 추출 방법 및 장치 KR102296931B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190063395 2019-05-29
KR1020190063395 2019-05-29

Publications (2)

Publication Number Publication Date
KR20200137924A true KR20200137924A (ko) 2020-12-09
KR102296931B1 KR102296931B1 (ko) 2021-09-01

Family

ID=73787588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190132568A KR102296931B1 (ko) 2019-05-29 2019-10-23 텍스트 스트리밍 환경에서의 실시간 키워드 추출 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102296931B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312532A (zh) * 2021-06-01 2021-08-27 哈尔滨工业大学 一种基于深度学习面向公检法领域的舆情等级预测方法
KR102405831B1 (ko) * 2021-01-26 2022-06-08 주식회사 댈류 검색 결과 보정을 제공하는 검색엔진 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
KR20220107684A (ko) * 2021-01-26 2022-08-02 주식회사 댈류 즉각적 반응을 제공하는 검색엔진 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
CN116681056A (zh) * 2023-05-24 2023-09-01 人民网股份有限公司 基于价值量表的文本价值计算方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102444457B1 (ko) 2022-06-03 2022-09-19 주식회사 액션파워 단어 그래프를 이용한 대화의 요약 생성 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100785754B1 (ko) 2006-03-22 2007-12-18 엔에이치엔(주) 지역별 실시간 키워드 순위 결정 방법 및 지역별 실시간키워드 순위 결정 시스템
KR20100068532A (ko) * 2008-12-15 2010-06-24 한국전자통신연구원 문서 데이터의 키워드 추출 및 연관어 네트워크 구성 장치 및 방법
KR101105798B1 (ko) 2009-02-05 2012-01-17 한국전자통신연구원 키워드 정련 장치 및 방법과 그를 위한 컨텐츠 검색 시스템 및 그 방법
KR101508260B1 (ko) 2014-02-04 2015-04-07 성균관대학교산학협력단 문서 특징을 반영하는 요약문 생성 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100785754B1 (ko) 2006-03-22 2007-12-18 엔에이치엔(주) 지역별 실시간 키워드 순위 결정 방법 및 지역별 실시간키워드 순위 결정 시스템
KR20100068532A (ko) * 2008-12-15 2010-06-24 한국전자통신연구원 문서 데이터의 키워드 추출 및 연관어 네트워크 구성 장치 및 방법
KR101105798B1 (ko) 2009-02-05 2012-01-17 한국전자통신연구원 키워드 정련 장치 및 방법과 그를 위한 컨텐츠 검색 시스템 및 그 방법
KR101508260B1 (ko) 2014-02-04 2015-04-07 성균관대학교산학협력단 문서 특징을 반영하는 요약문 생성 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ugo Erra etc. Approximate TF-IDF based on topic extraction from massive message stream using the GPU(2015)* *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102405831B1 (ko) * 2021-01-26 2022-06-08 주식회사 댈류 검색 결과 보정을 제공하는 검색엔진 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
KR20220107684A (ko) * 2021-01-26 2022-08-02 주식회사 댈류 즉각적 반응을 제공하는 검색엔진 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
CN113312532A (zh) * 2021-06-01 2021-08-27 哈尔滨工业大学 一种基于深度学习面向公检法领域的舆情等级预测方法
CN113312532B (zh) * 2021-06-01 2022-10-21 哈尔滨工业大学 一种基于深度学习面向公检法领域的舆情等级预测方法
CN116681056A (zh) * 2023-05-24 2023-09-01 人民网股份有限公司 基于价值量表的文本价值计算方法及装置
CN116681056B (zh) * 2023-05-24 2024-01-26 人民网股份有限公司 基于价值量表的文本价值计算方法及装置

Also Published As

Publication number Publication date
KR102296931B1 (ko) 2021-09-01

Similar Documents

Publication Publication Date Title
KR102296931B1 (ko) 텍스트 스트리밍 환경에서의 실시간 키워드 추출 방법 및 장치
WO2021120627A1 (zh) 数据搜索匹配方法、装置、计算机设备和存储介质
CN108038096A (zh) 知识库文档快速检索方法、应用服务器计算机可读存储介质
US12093648B2 (en) Systems and methods for producing a semantic representation of a document
CN107885717B (zh) 一种关键词提取方法及装置
Gunawan et al. Multi-document summarization by using textrank and maximal marginal relevance for text in Bahasa Indonesia
CN104615723B (zh) 查询词权重值的确定方法和装置
Tandel et al. Multi-document text summarization-a survey
CN115062135B (zh) 一种专利筛选方法与电子设备
Twinandilla et al. Multi-document summarization using k-means and latent dirichlet allocation (lda)–significance sentences
US20230073243A1 (en) Systems and methods for term prevalance-volume based relevance
Suarez et al. Combining financial word embeddings and knowledge-based features for financial text summarization uc3m-mc system at fns-2020
CN112926297B (zh) 处理信息的方法、装置、设备和存储介质
US20190197128A1 (en) Dataset adaptation for high-performance in specific natural language processing tasks
CN109918661B (zh) 同义词获取方法及装置
CN112784046B (zh) 文本聚簇的方法、装置、设备及存储介质
CN112529627B (zh) 商品隐式属性抽取方法、装置、计算机设备及存储介质
CN113673215A (zh) 文本的摘要生成方法、装置、电子设备及可读介质
CN112784600A (zh) 信息排序方法、装置、电子设备和存储介质
CN113377922B (zh) 用于匹配信息的方法、装置、电子设备以及介质
CN113220841B (zh) 确定鉴别信息的方法、装置、电子设备和存储介质
Sonawane et al. The role of coreference resolution in extractive summarization
CN113377921B (zh) 用于匹配信息的方法、装置、电子设备以及介质
US9244921B2 (en) Altering relevancy of a document and/or a search query
CN116610782B (zh) 文本检索方法、装置、电子设备及介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant