KR102639979B1 - 주요 키워드 추출 장치, 그것의 제어 방법 및 주요 키워드 추출 프로그램 - Google Patents

주요 키워드 추출 장치, 그것의 제어 방법 및 주요 키워드 추출 프로그램 Download PDF

Info

Publication number
KR102639979B1
KR102639979B1 KR1020200170409A KR20200170409A KR102639979B1 KR 102639979 B1 KR102639979 B1 KR 102639979B1 KR 1020200170409 A KR1020200170409 A KR 1020200170409A KR 20200170409 A KR20200170409 A KR 20200170409A KR 102639979 B1 KR102639979 B1 KR 102639979B1
Authority
KR
South Korea
Prior art keywords
keyword
candidates
keywords
filtering
extraction device
Prior art date
Application number
KR1020200170409A
Other languages
English (en)
Other versions
KR20220081009A (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 주식회사 카카오엔터프라이즈
Priority to KR1020200170409A priority Critical patent/KR102639979B1/ko
Publication of KR20220081009A publication Critical patent/KR20220081009A/ko
Application granted granted Critical
Publication of KR102639979B1 publication Critical patent/KR102639979B1/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/34Browsing; Visualisation therefor
    • G06F16/345Summarisation for human users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

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)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 텍스트 데이터로 구성된 문서 상에서 주요한 키워드를 추출하기 위한 장치 및 제어 방법에 관한 것이다. 보다 구체적으로 본 발명은 저장된 추출대상 문서에서 소정 형태소 패턴에 해당하는 키워드를 후보로 추출하고, 상기 추출된 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 제 1 필터링을 수행하며, 상기 제 1 필터링된 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 제 1 중복 제거를 수행하고, 상기 제 1 중복 제거된 키워드 후보 각각에 대해 상기 추출대상 문서 상에서의 랭크를 산출하며, 상기 산출된 랭크에 기초하여 상기 제 1 중복 제거된 키워드 후보에 대해서 제 2 필터링을 수행하고, 상기 제 2 필터링된 키워드 후보 간에 의미적인 중복을 고려하여 제 2 중복 제거하며, 상기 제 2 중복 제거된 키워드 후보에서 추출할 키워드를 선정하는 방식으로 주요 키워드를 추출한다.

Description

주요 키워드 추출 장치, 그것의 제어 방법 및 주요 키워드 추출 프로그램{KEYWORD EXTRACTION APPARATUS, CONTROL METHOD THEREOF AND KEYWORD EXTRACTION PROGRAM}
본 발명은 주요 키워드를 추출하는 장치, 제어 방법 및 프로그램에 관한 것으로, 보다 구체적으로는 문서 등 복수 개의 단어로 구성되는 텍스트 데이터 상에서 이를 대표할 수 있는 키워드를 추출하고 사용자에게 제공해주기 위한 장치, 제어 방법 및 프로그램에 관한 것이다.
키워드 추출이란, 문서 등 복수 개의 단어로 구성되는 텍스트 데이터 상에서 이를 대표할 수 있는 주요한 키워드를 추출하는 것을 의미한다. 추출된 키워드는 문서 내용을 손쉽게 파악하거나 검색을 하기 위하여 사용될 수 있다. 문서를 대표하는 하나의 키워드를 추출하는 경우도 있지만, 문서의 내용을 손쉽게 파악할 수 있도록 중요도가 높은 2 ~ 5개의 키워드를 추출하여 제공하는 것이 일반적이다. 키워드 추출 기술은, 중요도 높은 키워드를 제공하기 위하여 중요도를 정확하게 판단하는 것도 중요하지만, 복수 개의 주요 키워드들 간에 중복되는 것을 최소화시키는 것 역시 중요하다.
기존 기술들은 다양한 접근 방식을 통하여 키워드를 추출하고자 시도하고 있다. 예를 들어 휴리스틱 정의를 이용하여 후보를 생성하는 '2단계 방법', 문서에서 후보 간의 연관성을 그래프로 표현하는 방식의 'Graph-based ranking 방식' 등 기술들이 일반적으로 많이 사용되는 키워드 추출 기술이다.
최근 음성 인식 기술이 발달됨에 따라, 사람의 음성을 문자로 전사하는 다양한 응용 프로그램들이 존재한다. 녹음된 음성의 내용을 개략적으로 확인하기 위해, 전사된 문자 상에서 주요 키워드를 추출하기 위한 기술들이 많이 활용되고 있다. 하지만 음성 인식 기술의 특성 상 오인식 문자가 존재할 수밖에 없고, 여러 명의 화자가 존재하기 때문에 동일한 의미의 단어를 다르게 표현하는 경우가 빈번하게 발생한다. 예를 들어 A라는 사람은 '휴대폰'이라는 표현하지만 B라는 사람은 '핸드폰'이라고 표현할 수 있다. '휴대폰'과 '핸드폰'은 문자 자체로는 서로 다른 단어이지만, 내포된 의미(말하고자 하는 의도)는 사실상 동일할 것이다. 키워드 추출 과정에서 이와 같은 단어들을 하나의 단어로 취급해야만, 추출된 키워드의 정확도를 높이고 키워드 간에 중복되는 것을 최소화시킬 수 있을 것이다.
기존에 문서 상에서 주요 키워드를 추출하기 위한 기술들은, 상기와 같은 음성 인식 기술의 특성을 제대로 반영하지 못하다는 문제점이 존재한다. 예를 들어, '휴대폰'과 '핸드폰'을 서로 다른 키워드로 인식하여 주요 키워드로 중복 제공해 주는 문제점이 있을 수도 있으며, 서로 다른 단어라고 인식하여 정확한 중요도 계산이 이루어지지 못하는 문제점도 있을 것이다.
이에 따라 인식된 음성을 전사한 문서 상에서 최적화된 키워드 추출 기술에 대한 연구가 요구되는 실정이다.
본 발명이 해결하고자 하는 과제는 문서 등 텍스트 데이터에서 주요 키워드를 추출하는 장치, 제어 방법 및 프로그램을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 음성 전사 문서에 최적화된 키워드 추출 장치, 제어 방법 및 프로그램을 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 또는 다른 과제를 해결하기 위해 본 발명의 일 측면에 따르면, 상기 추출대상 문서에서 소정 형태소 패턴에 해당하는 키워드를 후보로 추출하는 단계; 상기 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 제 1 필터링을 수행하는 단계; 상기 키워드 후보에 대해 상기 추출대상 문서 상에서의 랭크를 산출하는 단계; 상기 산출된 랭크에 기초하여 상기 키워드 후보에 대해서 제 2 필터링을 수행하는 단계; 및 추출할 키워드를 선정하는 단계를 포함하는 것을 특징으로 하는, 키워드 추출 장치의 제어 방법을 제공한다.
상기 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 제 1 중복 제거를 수행하는 단계를 더 포함할 수 있다.
상기 제 1 중복 제거를 수행하는 단계는, 상기 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 복수 개의 그룹으로 클러스터링하는 단계; 및 상기 클러스터링 된 복수 개의 그룹 각각의 대표 키워드를 제외한 나머지 키워드 후보를 제거하는 단계를 포함할 수 있다.
상기 클러스터링하는 단계는, 상기 키워드 후보 간에 LCS(Longest Common Subsequence)를 산출하는 단계; 및 상기 산출된 LCS의 길이가 소정값 이상인 키워드 후보들을 같은 그룹으로 묶는 단계를 포함할 수 있다.
상기 제 1 필터링을 수행하는 단계는, 상기 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 중요도를 산출하는 단계; 및 상기 산출된 중요도가 낮은 키워드 후보를 필터링하는 단계를 포함할 수 있다.
상기 중요도를 산출하는 단계는 상기 문법성을 고려하는데 있어서, 복수 개의 뉴스 콘텐츠를 입력 받는 단계; 상기 입력 받은 뉴스 콘텐츠에 기초하여 문법성 언어 모델을 학습하는 단계; 및 상기 학습한 문법성 언어 모델에 기초하여 중요도를 산출하는 단계를 포함할 수 있다.
상기 중요도를 산출하는 단계는 상기 출현 빈도를 고려하는데 있어서, 상기 추출대상 문서에 기초하여 정보성 언어 모델을 학습하는 단계; 및 상기 학습한 정보성 언어 모델에 기초하여 중요도를 산출하는 단계를 포함할 수 있다.
상기 키워드 후보 간에 의미적인 중복을 고려하여 제 2 중복 제거하는 단계를 더 포함할 수 있다.
상기 랭크를 산출하는 단계는, 상기 추출대상 문서 상에서 소정 키워드의 카운트 값 및 상기 소정 키워드가 포함되어 있는 문장의 카운트 값 중 하나 이상을 고려하여 상기 랭크를 산출할 수 있다.
상기 제 2 필터링을 수행하는 단계는, 상기 키워드 후보 중에서 상기 산출된 랭크가 낮은 키워드를 제거하는 방식으로 이루어질 수 있다.
상기 또는 다른 과제를 해결하기 위해 본 발명의 다른 측면에 따르면, 추출대상 문서를 저장하는 메모리; 및 상기 저장된 추출대상 문서 상에서 키워드를 추출하는 제어부를 포함하되, 상기 제어부는, 상기 추출대상 문서에서 소정 형태소 패턴에 해당하는 키워드를 후보로 추출하고, 상기 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 제 1 필터링을 수행하며, 상기 키워드 후보에 대해 상기 추출대상 문서 상에서의 랭크를 산출하고, 상기 산출된 랭크에 기초하여 상기 키워드 후보에 대해서 제 2 필터링을 수행하며, 추출할 키워드를 선정하는 것을 특징으로 하는, 키워드 추출 장치를 제공한다.
상기 제어부는, 상기 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 제 1 중복 제거를 수행할 수 있다.
상기 제어부가 상기 제 1 중복 제거를 수행하는데 있어서, 상기 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 복수 개의 그룹으로 클러스터링하고, 상기 클러스터링 된 복수 개의 그룹 각각의 대표 키워드를 제외한 나머지 키워드 후보를 제거할 수 있다.
상기 제어부가 상기 클러스터링하는데 있어서, 상기 키워드 후보 간에 LCS(Longest Common Subsequence)를 산출하고, 상기 산출된 LCS의 길이가 소정값 이상인 키워드 후보들을 같은 그룹으로 묶을 수 있다.
상기 제어부가 상기 제 1 필터링을 수행하는데 있어서, 상기 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 중요도를 산출하고, 상기 산출된 중요도가 낮은 키워드 후보를 필터링할 수 있다.
상기 제어부가 상기 문법성을 고려하는데 있어서, 복수 개의 뉴스 콘텐츠를 입력 받고, 상기 입력 받은 뉴스 콘텐츠에 기초하여 문법성 언어 모델을 학습하며, 상기 학습한 문법성 언어 모델에 기초하여 중요도를 산출할 수 있다.
상기 제어부가 상기 출현 빈도를 고려하는데 있어서, 상기 추출대상 문서에 기초하여 정보성 언어 모델을 학습하고, 상기 학습한 정보성 언어 모델에 기초하여 중요도를 산출할 수 있다.
상기 제어부는, 상기 키워드 후보 간에 의미적인 중복을 고려하여 제 2 중복 제거를 수행할 수 있다.
상기 제어부가 상기 랭크를 산출하는데 있어서, 상기 추출대상 문서 상에서 소정 키워드의 카운트 값 및 상기 소정 키워드가 포함되어 있는 문장의 카운트 값 중 하나 이상을 고려하여 상기 랭크를 산출할 수 있다.
상기 제어부가 상기 제 2 필터링을 수행하는데 있어서, 상기 키워드 후보 중에서 상기 산출된 랭크가 낮은 키워드를 제거하는 방식으로 이루어질 수 있다.
본 발명에 따른 주요 키워드 추출 장치, 그것의 제어 방법 및 프로그램의 효과에 대해 설명하면 다음과 같다.
본 발명의 실시 예들 중 적어도 하나에 의하면, 문서를 대표하기 위한 주요 키워드를 높은 정확도로 추출하면서 동시에 추출되는 키워드 간에 중복을 최소화시킬 수 있다는 장점이 있다.
또한, 본 발명의 실시 예들 중 적어도 하나에 의하면, 여러 화자의 음성을 인식한 문서에서 추출되는 키워드 간에 중복되는 것을 최소화시킬 수 있다는 장점이 있다.
본 발명의 적용 가능성의 추가적인 범위는 이하의 상세한 설명으로부터 명백해질 것이다. 그러나 본 발명의 사상 및 범위 내에서 다양한 변경 및 수정은 당업자에게 명확하게 이해될 수 있으므로, 상세한 설명 및 본 발명의 바람직한 실시 예와 같은 특정 실시 예는 단지 예시로 주어진 것으로 이해되어야 한다.
도 1은 일반적인 음성 인식 기술의 대표적인 활용 사례를 도시하는 도면이다.
도 2는 본 발명의 일실시예에 따른 주요 키워드 추출 장치(100)의 블록도를 도시하는 도면이다.
도 3은 본 발명의 일실시예에 따른 키워드 추출 장치(100)의 제어 순서도를 도시하는 도면이다.
도 4는 본 발명의 일실시예에 따라 추출된 키워드를 출력하는 예시이다.
도 5는 본 발명의 일실시예에 따른 키워드 추출의 구체적인 순서도를 도시하는 도면이다.
도 6은 본 발명의 일실시예에 따른 두 가지 종류의 언어 모델의 학습 개념도를 도시하는 도면이다.
도 7은 본 발명의 일실시예에 따라, 공통되는 문자열을 기준으로 키워드 중복을 제거(S504 단계)하는 제어 순서도를 도시하는 도면이다.
도 8은 공통되는 문자열을 기준으로 키워드 중복을 제거하는 개념 예시를 도시한다.
도 9는 본 발명의 일실시예에 따른 제 2 가중치 산출 예시를 도시한다.
도 10은 본 발명의 일실시예에 따라 의미적 중복을 고려하여 키워드 중복을 제거하는 개념도를 도시하는 도면이다.
도 11은 본 발명의 일실시예에 따른 금칙어 필터링의 개념도를 도시하는 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하에서 설명되는 본 발명의 실시예들은, 음성 전사 문서에 최적화된 키워드 추출 기술에 관한 것이지만, 본원 발명이 음성 전사 문서에 한정되지 않고 일반 문서에도 확장 적용될 수 있음은 자명하다. 또한 본 발명에서 추출되는 키워드는 하나의 단어일 수도 있지만, 두 개 이상의 단어 조합(이하에서는 두 개 이상의 단어 조합을 단어 시퀀스라 표현함)을 의미할 수도 있다. 예를 들어, 본 발명의 일실시예에 따라 추출된 키워드는 '조사 결과'와 같이 두 개의 단어가 조합된 결과이거나, '수중 침투 가능성'과 같이 세 개의 단어 조합일 수도 있다.
도 1은 일반적인 음성 인식 기술의 대표적인 활용 사례를 도시하는 도면이다.
음성 인식 장치(112)는 복수 명의 화자(111-1 ~ 111-3)로부터 음성 입력이 수신되면, 입력된 음성을 인식하고 텍스트로 전사한 음성 전사 문서(200)를 생성할 수 있다. 예를 들어, 다자간 회의하는 녹음 파일로 회의록을 만들고자 할 때 음성 인식 장치(112)를 통하여 음성 전사 문서(200)로 변환시킬 수 있다. 더 나아가 음성 인식 장치(112)가 음성 인식 시 화자를 구분한다면, 도 1에 도시된 바와 같이 음성 전사 문서(200)에 전사되는 음성은 화자별로 구분되어 표시(201)될 수 있을 것이다. 회의록의 경우, 화자를 구분하는 것이 중요할 수 있기 때문이다.
음성 전사 문서가 아닌 일반적인 문서의 경우, 특정 의미를 가지는 용어를 하나로 통일하여 작성된다. 하지만, 음성의 경우 같은 의미를 가지는 용어에 대해서 다양한 방식으로 표현하는 경우가 많다. 한 사람이 다양하게 표현하는 경우도 많지만, 사람 마다 자신만의 표현을 쓰는 경우가 많기 때문이다. 예를 들어서 A라는 사람이 '자동차'라고 표현하지만, B라는 사람은 '차'라고 표현하거나 '차량'으로 표현하는 경우가 있다. 이렇게 표현이 다양한 것을 반영하지 않고 키워드를 추출할 경우, 추출된 결과에 있어서 신뢰성이 낮아질 수밖에 없다. 이에 따라 이하에서 설명하는 본 발명의 일실시예에서는, 보다 높은 정확도로 주요 키워드를 추출할 수 있는 방법에 대해서 제안한다.
도 2는 본 발명의 일실시예에 따른 주요 키워드 추출 장치(100, 이하 키워드 추출 장치라 한다)의 블록도를 도시하는 도면이다.
본 발명의 일 실시예에 따르면, 키워드 추출 장치(100)는 모바일 폰, 셀룰러 폰, 스마트 폰, 퍼스널 컴퓨터, 랩탑, 노트북, 넷북 또는 태블릿, 휴대 정보 단말기(personal digital assistant; PDA), 디지털 카메라, 게임 콘솔, MP3 플레이어, 퍼스널 멀티미디어 플레이어(personal multimedia player; PMP), 전자 북(E-Book), 네비게이션, 디스크 플레이어, 셋톱박스, 가정용 전자기기(home appliance), 통신 장치, 디스플레이 장치, 또는 다른 전자기기에 내장되거나 또는 이것들과 상호 동작할 수 있다. 또한, 키워드 추출 장치(100)는 스마트 가전 기기, 지능형 차량, 자율 주행 장치, 스마트 홈 환경, 스마트 빌딩 환경, 스마트 오피스 환경, 스마트 전자 보안 시스템 등에 내장되거나 또는 이것들과 상호 동작할 수 있다.
키워드 추출 장치(100)는 마이크(101), 통신부(102), 제어부(103), 출력부(104), 메모리(105) 및 전원 공급부(106) 등을 포함할 수 있다. 도 2에 도시된 구성요소들은 키워드 추출 장치(100)를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 키워드 추출 장치(100)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
마이크(101)는 외부의 음향 신호를 전기적인 음성 데이터로 처리한다. 처리된 음성 데이터는 키워드 추출 장치(100)에서 수행 중인 기능(또는 실행 중인 응용 프로그램)에 따라 다양하게 활용될 수 있다. 한편, 마이크(101)에는 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)을 제거하기 위한 다양한 잡음 제거 알고리즘이 구현될 수 있다.
제어부(103)는 통상적으로 키워드 추출 장치(100)의 전반적인 동작을 제어한다. 제어부(103)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
특히 본 발명의 일실시예에 따른 제어부(103)는, 상기 마이크(101)를 통하여 입력되는 오디오 신호로부터 음성을 인식하고, 인식된 음성으로부터 주요 키워드를 추출할 수 있을 것이다. 또는 메모리(105)에 저장되어 있는 추출대상 문서에서 주요 키워드를 추출할 수 있을 것이다. 주요 키워드의 구체적인 추출 방법에 대해서는 이하 상세하게 후술한다.
또한, 메모리(105)는 키워드 추출 장치(100)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(105)는 키워드 추출 장치(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 또한 메모리(105)는 이하에서 후술하는 '추출대상 문서'를 저장할 수 있다.
통신부(102)는, 키워드 추출 장치(100)와 유무선 통신 시스템 사이, 키워드 추출 장치(100)와 이동 단말기 사이, 또는 키워드 추출 장치(100)와 외부서버 사이의 유무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 통신부(102)는, 키워드 추출 장치(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다. 음성 인식 결과 및/또는 키워드 추출 결과는 통신부(102)를 통하여 다른 이동 단말기나 외부 서버에 전송될 수 있다.
출력부(104)는 음성 전사 결과 및/또는 추출된 키워드를 출력하기 위한 구성으로, 디스플레이를 포함할 수 있다. 디스플레이를 통하여 음성 인식 결과를 출력해 줄 수도 있지만, 텍스트 데이터 형태로 출력될 수도 있을 것이다. 텍스트 데이터로 출력되는 경우, 출력부(104)는 상술한 메모리(105)에 텍스트 데이터를 저장하고, 사용자가 저장된 텍스트 데이터를 확인하는 형태로 음성 전사 결과를 제공할 수 있을 것이다.
한편, 음성 전사 결과 및/또는 추출된 키워드는, 상기 통신부(102)를 통하여 연결되는 이동 단말기의 디스플레이를 통하여 제공될 수도 있을 것이다.
전원 공급부(106)는 제어부(103)의 제어 하에서, 외부의 전원, 내부의 전원을 인가 받아 키워드 추출 장치(100)에 포함된 각 구성요소들에 전원을 공급한다.
도 3은 본 발명의 일실시예에 따른 키워드 추출 장치(100)의 제어 순서도를 도시하는 도면이다.
S1100 단계에서 키워드 추출 장치(100)는 음성 입력을 수신한다. 키워드 추출 장치(100)는 자체적으로 마이크(101)를 구비하고 이를 통하여 음성 입력을 수신할 수도 있지만, 외부 이동 단말기의 마이크를 통하여 수신한 음성 입력을 통신부(102)를 통하여 전달 받는 형태로 수신할 수도 있을 것이다.
S1101 단계에서 키워드 추출 장치(100)의 제어부(103)는 수신된 음성 입력에서 음성을 인식한다. 이렇게 인식된 음성은, 복수 개의 단어로 구성되는 텍스트 데이터일 것이다. 그리고 S1102 단계에서 키워드 추출 장치(100)의 제어부(103)는 인식된 음성(즉 텍스트 데이터)에서 주요 키워드를 추출한다. 그리고 S1103 단계에서 키워드 추출 장치(100)의 제어부(103)는 출력부(104)를 통하여 상기 추출된 주요 키워드를 출력해 줄 수 있다. 추출된 주요 키워드가 제공되는 예시는 이하 도 4를 참조하여 설명한다.
도 4는 본 발명의 일실시예에 따라 추출된 키워드를 출력하는 예시이다. 본 예시에서의 추출된 키워드는 키워드 추출 장치(100) 자체에서 출력될 수도 있지만, 키워드 추출 장치(100)에서 수행된 음성인식 및/또는 키워드 추출 결과가 외부 이동 단말기로 전송되고, 이를 수신 받은 이동 단말기 상에서 표시될 수도 있을 것이다.
도시된 도면의 예시에서의 출력 화면에서는, 음성 인식 출력 영역(402) 및 추출 키워드 영역(401)을 포함한다. 마이크(101)를 통하여 오디오 신호의 형태로 음성 입력이 수신되면, 제어부(103)는 오디오 신호에서 음성을 인식하고, 음성 인식 출력 영역(402)에 인식한 결과를 출력할 수 있다. 그리고 본 발명의 일실시예에 따라 주요 키워드가 추출되면, 적어도 하나의 주요 키워드가 상기 추출 키워드 영역(401) 상에 출력되어 사용자에게 제공될 수 있다.
이하에서는 텍스트 데이터 상에서 주요 키워드를 추출하는 구체적인 방법(S1102 단계)에 대해서 설명한다.
도 5는 본 발명의 일실시예에 따른 키워드 추출의 구체적인 순서도를 도시하는 도면이다.
S501 단계에서 제어부(103)는 키워드를 추출하기 위한 대상인 텍스트 데이터의 형태소를 분석한다. 여기서 텍스트 데이터는 복수 개의 단어로 구성될 수 있으며, 상기 S1101 단계에서 음성인식 된 결과일 수 있다. 이하, 키워드 추출 대상 텍스트 데이터를 간편하게 '추출대상 문서'라고 호칭하기로 한다.
S502 단계에서 제어부(103)는 소정 형태소 패턴에 해당하는 단어(들)를 키워드 후보로 추출한다. 예를 들어 'NNG XSN NNG'이라는 형태소 패턴에 해당하는 단어(들)를 키워도 후보로 추출할 수 있다. 아래 표 1은 형태소 코드의 일부이다. 즉, 본원 발명에서는 일반적으로 키워드로 사용되는 형태소들의 패턴(들)을 기저장하고, 해당 형태소 패턴을 갖는 키워드를 후보로 선정하도록 하는 것이다.
형태소 코드 설명 형태소 코드 설명
NNG 일반 명사 IC 감탄사
NNP 고유 명사 JKS 주격 조사
NNB 의존 명사 JKC 보격 조사
NR 수사 JKG 관형격 조사
NP 대명사 JKO 목적격 조사
VV 동사 JKB 부사격 조사
VA 형용사 JKV 호격 조사
VX 보조 용언 JKQ 인용격 조사
VCP 긍정 지정사 JX 보조사
VCN 부정 지정사 JC 접속 조사
MM 관형사 EP 선어말 어미
MAG 일반 부사 EF 종결 어미
MAJ 접속 부사 SN 숫자
...
본 발명의 일실시예에서는, 신뢰성 높은 텍스트 데이터를 이용하여 상기 형태소 패턴을 학습하도록 제안한다. 특히 본 발명의 일실시예에서는, 신뢰성 높은 텍스트 데이터로 뉴스 기사를 사용하도록 제안한다. 더 나아가, 뉴스 기사 중에서 본문을 제외한 제목만을 사용할 수 있다. 왜냐하면, 뉴스 본문에서 중요도가 높은 키워드는 뉴스 제목에 배치되는 것이 일반적이므로 키워드 후보를 추출하기 위한 형태소 패턴을 학습하기에 최적이기 때문이다.
본 발명의 일실시예에 따른 키워드 추출 장치(100)는, 상기 학습한 형태소 패턴을 데이터 베이스화하여 메모리(105)에 저장할 수 있을 것이다.
이어서 S503 단계에서 제어부(103)는 추출된 키워드 후보에 대해 문법성 및 출현 빈도 중 하나 이상을 고려하여 제 1 필터링을 수행할 수 있다.
문법성을 고려하여 필터링한다는 것은, 키워드 후보 중에서 문법에 맞지 않는 단어(들)를 제거한다는 의미이다.
출현 빈도란 '추출대상 문서'에서의 출현 빈도를 의미할 수 있다. 출현 빈도가 높지 않는 단어(들)는, 중요도가 높지 않는 것으로 판단하여, 키워드 후보에서 제거하도록 필터링 될 수 있다.
상기와 같은 제 1 필터링은, 키워드 후보로서 적합하지 않는 키워드를 간단한 방법으로 개략적으로 걸러내는 역할을 할 수 있다.
특히 본 발명의 일실시예에 따르면 상기 S503 단계는 언어 모델(language model, LM)을 이용하도록 제안한다. 언어 모델이란, 연속되는 적어도 두 개의 단어 시퀀스(단어 순서열)에 대한 확률 분포(probability distribution)를 의미한다. 즉, 언어라는 현상을 모델링하고자 단어 시퀀스에 확률을 할당하는 모델을 의미한다. 언어 모델은 특정 단어 시퀀스가 사용될 확률을 계산한다. 예를 들어 '코로나 바이러스'라는 단어 시퀀스가 사용되는 확률을 계산하는데 사용될 수 있다.
언어 모델은, 하나의 예시로 단어 과 단어 로 이루어지는 단어 시퀀스에 대해 아래 수학식 1과 같이 표현될 수 있다.
여기서 은 분석소스 상에서 단어 를 카운트 한 개수, 는 분석소스 상에서 단어 시퀀스 를 카운트 한 개수를 의미한다.
예를 들어 분석 소스(예를 들어 뉴스 콘텐츠)로부터 추출된 키워드를 카운트했을 때, '메르스'라는 단어는 1,346,709개, '메르스 잠복기'라는 단어 시퀀스가 1,038개, '메르스 증상'이라는 단어 시퀀스가 8,018개 나왔다고 가정한다. 언어 모델을 통하여 '메르스 잠복기'와 '메르스 증상' 각각에 대해서 확률을 계산할 경우, 아래 수학식 2 및 3과 같이 계산된다.
즉, 언어 모델은 'A'라는 단어가 단독으로 사용되는 경우 대비 'A+B' 단어 시퀀스로 사용되는 비율을 의미한다.
특히, 본 발명의 일실시예에 따라 언어 모델을 적용하는데 있어서, 두 가지 종류의 언어 모델을 조합하여 활용하도록 제안한다. 두 가지 종류 중 하나는 문법을 고려하는 문법성을 중점적으로 고려하기 위하여 신뢰성이 높은 소스로부터 학습을 수행한 '문법성 언어 모델'이고, 나머지 하나는 '추출대상 문서' 내의 내용을 반영하기 위한 '정보성 언어 모델'이다. 두 가지 종류의 언어 모델에 대해서 도 6을 참조하여 설명한다.
도 6은 본 발명의 일실시예에 따른 두 가지 종류의 언어 모델의 학습 개념도를 도시하는 도면이다.
'추출대상 문서' 자체의 내용은 사용자의 음성 입력을 텍스트로 전사한 것일 수 있기 때문에 문법적인 신뢰도는 높지 않을 수 있다. 또한, 일반적인 방식으로 작성된 문서의 경우에도 공신력이 없는 문서(예를 들어 단순 회의록이나 간단한 메모 정도)라면 문법적인 면에서 높은 신뢰도를 기대할 수 없다. 하지만 뉴스 콘텐츠의 경우에는 높은 신뢰도를 기대할 수 있으며, 나아가 뉴스 본문에서 더 높은 신뢰도가 기대될 수 있다.
그렇기 때문에 본 발명의 일실시예에서는, 단어 시퀀스에 대해서 문법성을 분석하기 위하여, 뉴스 콘텐츠(601)를 기반으로 학습한 '문법성 언어 모델(603)'을 활용하도록 제안한다(즉 언어 모델의 분석소스가 뉴스 콘텐츠). 더 나아가 본 발명의 일실시예에서는 뉴스 콘텐츠(601) 중에서도 뉴스 본문만으로 '문법성 언어 모델(603)'을 학습할 수 있다. 이렇게 학습된 '문법성 언어 모델(603)'을 통해서 특정 단어 시퀀스의 확률을 계산할 경우, 계산된 확률은 문법적으로 높은 신뢰성을 가질 수 있을 것이다.
이를 위해서 본 발명의 일실시예에 따른 키워드 추출 장치(100)는, 복수 개의 뉴스 콘텐츠(601)로부터 ngram(unigram, bigram 등)을 추출하고, 추출된 내용을 기초로 '문법성 언어 모델(603)'을 학습할 수 있다.
'정보성 언어 모델(604)'은 '추출대상 문서(602)' 내에서의 내용을 반영하는 모델이다. 해당 '추출대상 문서(602)' 내에서 특정 단어 시퀀스가 얼마나 자주 사용되는지에 대한 확률을 계산하기 위함이다. 즉, '정보성 언어 모델(604)'의 분석소스는 '추출대상 문서(602)'가 될 것이다.
이를 위해서, 본 발명의 일실시예에 따른 키워드 추출 장치(100)는 '추출대상 문서(602)'로부터 ngram을 추출하고, 이로부터 '정보성 언어 모델(604)'을 학습할 수 있다. 간단하게 '정보성 언어 모델(604)'은, '추출대상 문서(602)'를 기반으로 학습한 모델을 의미한다.
본 발명의 일실시예에 따른 키워드 추출 장치(100)는, '문법성 언어 모델(603)'과 '정보성 언어 모델(604)'을 함께 고려하여 상기 제 1 필터링(S503 단계)을 수행할 수 있다. 두 종류의 모델을 함께 고려할 경우, 문법성과 출현 빈도를 모두 고려하는 필터링을 수행할 수 있을 것이다. 본 발명의 일실시예에서는 두 종류의 모델을 함께 활용하기 위하여, 'pointwise KL(kullback) divergence'를 활용하도록 제안한다. 하지만 'pointwise KL(kullback) divergence'를 활용하는 것은 하나의 예시일 뿐, 본 발명이 이러한 방법에 한정되는 것은 아니다.
다시 도 5로 복귀하여, S504 단계에서 제어부(103)는 제 1 필터링 수행 결과에 대해 공통되는 문자열을 기준으로 키워드 중복을 제거한다. 이하 도 7 및 도 8을 참조하여 공통되는 문자열을 기준으로 키워드 중복을 제거하는 제어 방법에 대해서 좀 더 상세히 살펴본다.
도 7은 본 발명의 일실시예에 따라, 공통되는 문자열을 기준으로 키워드 중복을 제거(S504 단계)하는 제어 순서도를 도시하는 도면이다. 도 8은 공통되는 문자열을 기준으로 키워드 중복을 제거하는 개념 예시를 도시한다. 도 7 및 도 8을 함께 참조하여 설명한다.
제 1 필터링 수행 결과에 대하여 공통되는 문자열을 기준으로 클러스터링을 수행(S504-1)한다. 공통되는 문자열이란 판단 대상이 되는 두 개의 키워드가 공통으로 가지고 있는 문자열을 의미한다. 즉, 문자열이 공통되는 키워드들을 하나의 그룹으로 그룹핑하기 위함이다.
보다 구체적으로 본 발명에서는, 공통되는 문자열이 있는지 여부 및 공통되는 문자열의 길이를 산출하기 위하여 LCS(Longest Common Subsequence) 알고리즘을 활용할 수 있다. 제어부(103)는 상기 제 1 필터링 된 후보들 간에 LCS를 산출하고, 산출된 LCS의 길이가 소정값 이상일 경우 단일 그룹으로 그룹핑 할 수 있다. 본 발명에서는 효율적인 반복을 위하여 최소 LCS 값이 3에서부터, 클러스터링 횟수가 증가할 때마다 1씩 증가시킬 수 있을 것이다.
도 8에 도시된 예시에서, '크리스마스', '크리스마스 연휴', '크리스마스 이벤트' 등이 포함되어 있는 키워드 후보(801)가 추출되었다. 상기 키워드 후보(801)는 S503 단계에서의 필터링이 수행된 결과일 수 있을 것이다. '크리스마스', '크리스마스 연휴', '크리스마스 이벤트' 세 개의 키워드 후보는 '크리스마스'라는 문자열을 공통적으로 포함하고 있기 때문에 하나의 제 1 그룹(802-1)로 그룹핑 될 수 있다. 마찬가지로, '안드로이드'라는 문자열을 공통적으로 포함하고 있는 키워드들은 제 2 그룹(802-2)로 그룹핑 될 수 있다.
이어서 그룹핑 된 각 그룹의 대표 키워드를 제외한 나머지 키워드를 제거(S504-2 단계)하는 방식으로 제 1 중복 제거가 수행(S504 단계)될 수 있다. 도 8에 도시된 예시의 제 1 그룹(802-1)에서 '크리스마스'라는 대표 키워드를 선정하고, 나머지 '크리스마스 연휴' 및 '크리스마스 이벤트'는 제거되도록 제 1 중복 제거가 수행 된다.
본 발명의 일실시예에 따른 키워드 추출 장치(100)는 그룹 내에서 대표 키워드를 선정하기 위하여, 상술한 '문법성 언어 모델(603)'과 '정보성 언어 모델(604)'을 함께 고려할 수 있다. 예를 들어 'pointwise KL(kullback) divergence'을 통하여 두 언어 모델로부터의 확률 점수를 산출하고, 가장 높은 확률 점수를 가진 키워드를 대표 키워드로 선정할 수 있을 것이다. 즉, 대표 키워드는 문법적인 신뢰성이 높으면서 동시에 '추출대상 문서' 상에서 빈번하게 사용되는 단어가 될 수 있을 것이다.
다시 도 5로 복귀하여, S504에서 중복 제거가 완료된 키워드 후보들 각각에 대해서 랭크를 산출(S505 단계) 할 수 있다. 여기서 랭크는, '추출대상 문서' 상에서 해당 키워드가 가지는 가중치(weight)에 기초하여 결정되며, '추출대상 문서' 상에서 키워드의 중요도를 의미할 수 있을 것이다. 즉, 가중치란 키워드 후보들 간에 상대적인 순위를 결정하기 위한 중요도 점수를 의미한다.
본 발명의 일실시예에 따른 키워드 추출 장치(100)는 다양한 접근 방법으로 산출된 가중치들을 조합하여 종합 가중치를 획득하도록 제안한다.
* 출현 빈도수를 고려한 제 1 가중치(NPweight)
제 1 가중치는 간단하게 출현 빈도수의 상대적인 비교를 통하여 산출되며, 아래 수학식 4를 통하여 산출될 수 있다.
keywordi는 가중치 산출 대상 키워드를 의미하며, n는 전체 키워드 후보의 개수(여기서 전체란 순위를 결정하기 위한 키워드 후보), 는 '추출대상 문서' 상에서 전체 키워드에 대한 카운트 합을 의미한다.
* 문장과 키워드의 중요성을 함께 고려한 제 2 가중치(TF-IDFweight)
TF-IDF(Term Frequency - Inverse Document Frequency)는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다. 문서의 핵심어를 추출하거나, 검색 엔진에서 검색 결과의 순위를 결정하거나, 문서들 사이의 비슷한 정도를 구하는 등의 용도로 사용할 수 있다.
도 9는 본 발명의 일실시예에 따른 제 2 가중치 산출 예시를 도시한다.
'추출대상 문서'가 여러 문장으로 이루어진 경우, 제 2 가중치는 전체 '추출대상 문서'상에서 키워드의 카운트 값과 해당 키워드가 포함된 문장의 카운트 값을 모두 고려하기 위한 가중치이다.
제 2 가중치는 아래 수학식 5에서와 같이 산출될 수 있다.
keywordi는 가중치 산출 대상 키워드이고, sentencei는 가중치 산출 대상 키워드이 포함되어 있는 문장이며, TF(Term Frequency)는 '추출대상 문서' 상에서 특정 키워드(가중치 산출 대상 키워드)의 카운트 값이고, IDF(Inverse Document Frequency)는 특정 키워드가 포함되어 있는 문장의 카운트 값을 전체 문장수로 나누고 log를 취한 값을 의미한다.
도시된 예시를 참조하면 각 키워드 후보에 대해서 TF, IDF를 산출하고, TF와 IDF를 곱하여 제 2 가중치를 얻을 수 있다. 도 9에서 '결과'라는 키워드를 예로 들면, 전체에서 '결과'라는 키워드를 카운트하면 3이 나오기 때문에 TF를 3이라고 확인할 수 있다. 그리고 '결과'라는 키워드가 포함되어 있는 문장의 개수는 2개이고, 전체 문장의 개수는 3개이기 때문에, IDF는 log(2/3)이다.
* 문장 간의 유사도를 고려한 제 3 가중치(Sentenceweight)
제 3 가중치는 해당 키워드가 포함된 문장에 대한 가중치 값으로, 텍스트랭크(Textrank) 알고리즘을 활용하여 문장 간의 유사도를 반영할 수 있다. 제 3 가중치는 아래 수학식 6으로 산출될 수 있다. '추출대상 문서'상에서 해당 문장이 가지고 있는 중요도를 의미한다.
상기 텍스트랭크 알고리즘은, 널리 알려진 알고리즘으로 보다 구체적인 설명은 생략한다.
상기 제 1 내지 제 3 가중치를 종합적으로 고려하기 위하여, 아래 수학식 7에서와 같이 종합 가중치를 결정할 수 있다.
여기서 a, b 및 c의 값은 실험적으로 정확도가 가장 높은 값을 선정하여 설정하기 위한 상수이다. 예를 들어, a=0.5, b=0.25 및 c=0.25로 설정할 수 있다.
즉, 키워드 추출 장치(100)가 S505 단계에서의 랭크를 산출하기 위하여, 수학식 7에서의 종합 가중치를 활용할 수 있다.
도 5의 순서도로 복귀하여 S506 단계에서는 산출된 랭크에 기초하여 제 2 필터링을 수행한다. 랭크가 낮은 키워드 후보를 제외하기 위함이다. 결국 제 2 필터링에 의하면, 중요도가 낮은 키워드 후보는 제외시킬 수 있다.
본 발명의 일실시예에 따른 키워드 추출 장치(100)는 최종 선정하고자 하는 키워드의 개수가 N일 때, N*(N-1)의 키워드를 남기고 나머지는 제외시키도록 제 2 필터링할 수 있다. 왜냐하면, 남은 키워드 후보에 대해서 의미적 중복을 제거해야 하는데, 의미적 중복을 고려하기 위한 연산량이 많기 때문이다. 즉, 연산량의 효율적인 관리를 위하여, 중요도가 낮은 키워드 후보는 제 2 필터링 단계에서 제거시키는 것이다.
이어서 S507 단계에서는, 남아 있는 키워드 후보들 간의 의미적 중복을 고려하여, 중복된 키워드를 제거한다. 즉 중복되는 키워드들에 대해서 대표 키워드만을 남기고 제거시키는 것이다.
상술한 바와 같이, 음성 전사 문서 상에서 화자가 복수일 경우 동일한 의미를 다르게 표현하는 경우가 빈번하게 존대한다. 음성 전사 문서 뿐만 아니라, 일반적인 문서에서도 의미적인 중복을 제거할 필요성이 있을 것이다. 그렇기 때문에 본 발명의 일실시예에서는, 의미적으로 동일/유사한지(중복인지)를 판단하고, 판단 결과에 따라 중복되는 키워드를 후보에서 제외시키도록 제안하는 것이다.
이를 위해서 본 발명의 일실시예에서는 대량의 문서에서 학습한 임베딩 벡터(예를 들면 sent2vec)를 이용하도록 제안한다. 대량의 문서에서 학습된 임베딩 벡터이므로, 이를 이용하여 산출된 임베딩 벡터는 키워드의 의미를 내포할 수 있다. 각 키워드 후보에 대해서 임베딩 벡터가 산출된 후, 임베딩 벡터 간의 유사도가 높으면 의미적으로 중복되었다고 판단할 수 있을 것이다.
예시적으로, 코사인 유사도(cosine similarity)를 통하여 두 키워드 후보 간에 유사도를 산출할 수 있을 것이다.
도 10은 본 발명의 일실시예에 따라 의미적 중복을 고려하여 키워드 중복을 제거하는 개념도를 도시하는 도면이다.
세 개의 키워드(1001-1 ~ 1001-3) 각각에 대해 임베딩 벡터(1002-1 ~ 1002-3)를 산출한다. 산출된 임베딩 벡터(1002-1 ~ 1002-3)는 각 키워드의 의미를 내포한 벡터일 것이다. 그리고 산출된 임베딩 벡터(1002-1 ~ 1002-3) 간에 유사도를 산출하고, 산출된 유사도가 기설정 값 이상일 경우 두 키워드의 의미가 동일하다고 판단할 수 있다. 예를 들어 비교 대상인 두 키워드에 대해서 코사인 유사도(1003-1 ~ 1003-3)를 산출하고, 산출된 유사도(1003-1 ~ 1003-3)가 0.6 이상일 경우 같은 의미라고 판단할 수 있다.
도 10의 예시에서 '정리해고(1001-1)'에 대한 제 1 임베딩 벡터(1002-1)와 '쌍용 자동차(1001-2)'에 대한 제 2 임베딩 벡터(1002-2)에 대해서 제 1 코사인 유사도(1003-1)를 산출했더니 0.57이라는 값이 산출되었다. 제 1 코사인 유사도(1003-1)가 0.6 보다 낮은 값이기 때문에, '정리해고(1001-1)'와 '쌍용 자동차(1001-2)' 두 개의 키워드는 서로 다른 의미의 키워드(즉, 의미적 중복이 아님)라고 판단할 수 있다.
마찬가지로 '쌍용 자동차(1001-2)'와 '쌍용차(1001-3)'에 대해서 같은 과정을 반복하면, 0.86이라는 제 3 코사인 유사도(1003-3)가 산출된다. 이는 0.6 보다 높은 수치이기 때문에, '쌍용 자동차(1001-2)'와 '쌍용차(1001-3)'는 서로 동일한 의미를 내포한 키워드라고 판단하고, 둘 중 하나를 제거 시킬 수 있을 것이다.
마지막으로 키워드 추출 장치(100)는 S501 ~ S507 단계를 거치고 남은 키워드 후보 전부 또는 일부를 '추출대상 문서'에 대한 주요 키워드로 선정할 수 있을 것이다.
한편, 본 발명의 일실시예에 따른 키워드 추출 장치(100)는 S501 ~ S507 단계와 함께 금칙어 필터링 단계가 함께 수행할 수 있다. 금칙어 필터링이란, 비속어나 비문법적인 키워드뿐만 아니라 키워드로 선정되기 어려운 키워드를 제외시키는 것을 의미한다.
도 11은 본 발명의 일실시예에 따른 금칙어 필터링의 개념도를 도시하는 도면이다.
이를 위해서 본 발명의 일실예에 따른 금칙어 사전(1101)은, 형태소 분석기 사전(1101-1), 추상적 표현 사전(1101-2) 및 사용자 지정 금칙어 사전(1101-3) 중 적어도 하나를 포함할 수 있다. 본 발명의 일실시예에 따른 키워드 추출 장치(100)는, 키워드 후보 중에서 상기 금칙어 사전(1101)에 포함되어 있는 키워드가 있는지 판단하고, 만약 그런 키워드가 있다면 키워드 후보에서 제거시키도록 금칙어 필터링을 수행할 수 있을 것이다.
형태소 분석기 사전(1101-1)은, 부사나 중의성을 갖는 표현들을 저장하는 데이터 베이스이다. 예를 들어 '한편'이나 '각각' 등의 표현을 저장할 수 있다. 이러한 표현은 키워드로 추출하기에 적합하지 못하므로, 키워드 후보에서 제외시키는 것이 바람직할 것이다.
추상적 표현 사전(1101-2)은 추상적인 표현들을 정리한 데이터 베이스이다. 예를 들어, '이날', '이때', '내년도', '나머지' 등의 표현들을 저장한다. 이러한 표현은 '세종 말뭉치'에서 참조할 수 있다.
그 외에도 키워드로 선정되기 부적합한 표현들은 사용자 지정 금칙어 사전(1101-3)에 저장될 수 있다. 예를 들어 '근데' 또는 '이제' 등의 표현을 들 수 있을 것이다.
이런 금칙어 필터링 단계는, 주요 키워드 추출 단계(S1102) 단계 전이나 후에 수행될 수도 있지만, 바람직하게는 S502 단계에서 추출된 키워드 후보를 대상으로 수행될 수 있을 것이다.
더 나아가 본 발명에서는, 동일한 위치에서 추출되는 키워드들을 하나로 취급하여, 키워드 간에 중복되는 것을 최소화시키도록 제안한다.
도 12는 본 발명의 일실시예에 따라 추출되는 위치를 고려한 중복 제거 방식의 개념도를 도시하는 도면이다.
도시된 예시를 참조하면 '추출대상 문서'의 소정 문장(1200)에서 키워드 후보가 추출된다. 이때 추출되는 키워드 후보(1201-1 ~ 1201-3)는 소정 문장(1200)에서 표 2의 기설정된 형태소 패턴에 해당하는 단어일 수 있다. 소정 문장(1200)에 포함되어 있는 '수중 침투 가능성'이라는 단어 시퀀스로부터 제 1 내지 제 3 키워드 후보(1201-1 ~ 1201-3)가 추출되었다.
기설정 형태소 패턴 추출된 키워드 후보
NNG NNG 수중 침투
NNG NNG NNG 수중 침투 가능성
NNG NNG 침투 가능성
키워드 후보 상에서 특정 위치의 단어를 포함하는 복수 개의 단어 시퀀스가 존재할 경우, 그 복수 개의 단어 시퀀스는 중복되는 키워드일 가능성이 높으므로, 이를 하나로 취급하도록 제안하는 것이다. 도 12의 예시에서 추출된 제 1 내지 제 3 키워드 후보(1201-1 ~ 1201-3)는, 특정 위치의 '침투'라는 단어를 포함하는 복수 개의 단어 시퀀스로서, 각각을 개별적인 키워드 후보로 볼 필요가 없을 것이다. 예를 들어, 제 2 키워드(1201-2, 수중 침투 가능성)만을 키워드 후보에 남기고, 나머지 제 1 및 제 3 키워드(1201-1, 1201-3)는 키워드 후보에서 제외시킬 수 있을 것이다.
이상으로 본 발명에 따른 주요 키워드 추출 장치 및 그것의 제어 방법의 실시예를 설시하였으나 이는 적어도 하나의 실시예로서 설명되는 것이며, 이에 의하여 본 발명의 기술적 사상과 그 구성 및 작용이 제한되지는 아니하는 것으로, 본 발명의 기술적 사상의 범위가 도면 또는 도면을 참조한 설명에 의해 한정/제한되지는 아니하는 것이다. 또한 본 발명에서 제시된 발명의 개념과 실시예가 본 발명의 동일 목적을 수행하기 위하여 다른 구조로 수정하거나 설계하기 위한 기초로써 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에 의해 사용되어질 수 있을 것인데, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에 의한 수정 또는 변경된 등가 구조는 청구범위에서 기술되는 본 발명의 기술적 범위에 구속되는 것으로서, 청구범위에서 기술한 발명의 사상이나 범위를 벗어나지 않는 한도 내에서 다양한 변화, 치환 및 변경이 가능한 것이다.

Claims (21)

  1. 추출대상 문서 상에서 키워드를 추출하는 장치의 제어 방법에 있어서,
    소정의 데이터 그룹에 기초하여 키워드 후보로 추출하기 위한 형태소 패턴을 학습하는 단계;
    상기 추출대상 문서에서 상기 학습된 형태소 패턴에 해당하는 키워드를 후보로 추출하는 단계;
    상기 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 제 1 필터링을 수행하는 단계;
    상기 제 1 필터링을 수행한 후, 상기 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 제 1 중복 제거를 수행하는 단계;
    상기 키워드 후보에 대해 상기 추출대상 문서 상에서의 랭크를 산출하는 단계;
    상기 산출된 랭크에 기초하여 상기 키워드 후보에 대해서 제 2 필터링을 수행하는 단계;
    상기 제 2 필터링을 수행한 후, 상기 키워드 후보 간에 의미적인 중복을 고려하여 제 2 중복 제거하는 단계; 및
    추출할 키워드를 선정하는 단계를 포함하는 것을 특징으로 하는,
    키워드 추출 장치의 제어 방법.
  2. 삭제
  3. 제 1 항에 있어서, 상기 제 1 중복 제거를 수행하는 단계는,
    상기 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 복수 개의 그룹으로 클러스터링하는 단계; 및
    상기 클러스터링 된 복수 개의 그룹 각각의 대표 키워드를 제외한 나머지 키워드 후보를 제거하는 단계를 포함하는 것을 특징으로 하는,
    키워드 추출 장치의 제어 방법.
  4. 제 3 항에 있어서, 상기 클러스터링하는 단계는,
    상기 키워드 후보 간에 LCS(Longest Common Subsequence)를 산출하는 단계; 및
    상기 산출된 LCS의 길이가 소정값 이상인 키워드 후보들을 같은 그룹으로 묶는 단계를 포함하는 것을 특징으로 하는,
    키워드 추출 장치의 제어 방법.
  5. 제 1 항에 있어서, 상기 제 1 필터링을 수행하는 단계는,
    상기 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 중요도를 산출하는 단계; 및
    상기 산출된 중요도가 낮은 키워드 후보를 필터링하는 단계를 포함하는 것을 특징으로 하는,
    키워드 추출 장치의 제어 방법.
  6. 제 5 항에 있어서, 상기 중요도를 산출하는 단계는 상기 문법성을 고려하는데 있어서,
    복수 개의 뉴스 콘텐츠를 입력 받는 단계;
    상기 입력 받은 뉴스 콘텐츠에 기초하여 문법성 언어 모델을 학습하는 단계; 및
    상기 학습한 문법성 언어 모델에 기초하여 중요도를 산출하는 단계를 포함하는 것을 특징으로 하는,
    키워드 추출 장치의 제어 방법.
  7. 제 5 항에 있어서, 상기 중요도를 산출하는 단계는 상기 출현 빈도를 고려하는데 있어서,
    상기 추출대상 문서에 기초하여 정보성 언어 모델을 학습하는 단계; 및
    상기 학습한 정보성 언어 모델에 기초하여 중요도를 산출하는 단계를 포함하는 것을 특징으로 하는,
    키워드 추출 장치의 제어 방법.
  8. 삭제
  9. 제 1 항에 있어서, 상기 랭크를 산출하는 단계는,
    상기 추출대상 문서 상에서 소정 키워드의 카운트 값 및 상기 소정 키워드가 포함되어 있는 문장의 카운트 값 중 하나 이상을 고려하여 상기 랭크를 산출하는 것을 특징으로 하는,
    키워드 추출 장치의 제어 방법.
  10. 제 9 항에 있어서, 상기 제 2 필터링을 수행하는 단계는,
    상기 키워드 후보 중에서 상기 산출된 랭크가 낮은 키워드를 제거하는 방식으로 이루어지는 것을 특징으로 하는,
    키워드 추출 장치의 제어 방법.
  11. 추출대상 문서를 저장하는 메모리; 및
    상기 저장된 추출대상 문서 상에서 키워드를 추출하는 제어부를 포함하되,
    상기 제어부는,
    소정의 데이터 그룹에 기초하여 키워드 후보로 추출하기 위한 형태소 패턴을 학습하고,
    상기 추출대상 문서에서 상기 학습된 형태소 패턴에 해당하는 키워드를 후보로 추출하고,
    상기 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 제 1 필터링을 수행하며,
    상기 제 1 필터링을 수행한 후, 상기 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 제 1 중복 제거를 수행하고,
    상기 키워드 후보에 대해 상기 추출대상 문서 상에서의 랭크를 산출하고,
    상기 산출된 랭크에 기초하여 상기 키워드 후보에 대해서 제 2 필터링을 수행하며,
    상기 제 2 필터링을 수행한 후, 상기 키워드 후보 간에 의미적인 중복을 고려하여 제 2 중복 제거하고,
    추출할 키워드를 선정하는 것을 특징으로 하는,
    키워드 추출 장치.
  12. 삭제
  13. 제 11 항에 있어서, 상기 제어부가 상기 제 1 중복 제거를 수행하는데 있어서,
    상기 키워드 후보 간에 문자열이 공통되는지 여부를 고려하여 복수 개의 그룹으로 클러스터링하고,
    상기 클러스터링 된 복수 개의 그룹 각각의 대표 키워드를 제외한 나머지 키워드 후보를 제거하는 것을 특징으로 하는,
    키워드 추출 장치.
  14. 제 13 항에 있어서, 상기 제어부가 상기 클러스터링하는데 있어서,
    상기 키워드 후보 간에 LCS(Longest Common Subsequence)를 산출하고,
    상기 산출된 LCS의 길이가 소정값 이상인 키워드 후보들을 같은 그룹으로 묶는 것을 특징으로 하는,
    키워드 추출 장치.
  15. 제 11 항에 있어서, 상기 제어부가 상기 제 1 필터링을 수행하는데 있어서,
    상기 키워드 후보에 대해서 문법성 및 출현 빈도 중 하나 이상을 고려하여 중요도를 산출하고,
    상기 산출된 중요도가 낮은 키워드 후보를 필터링하는 것을 특징으로 하는,
    키워드 추출 장치.
  16. 제 15 항에 있어서, 상기 제어부가 상기 문법성을 고려하는데 있어서,
    복수 개의 뉴스 콘텐츠를 입력 받고,
    상기 입력 받은 뉴스 콘텐츠에 기초하여 문법성 언어 모델을 학습하며,
    상기 학습한 문법성 언어 모델에 기초하여 중요도를 산출하는 것을 특징으로 하는,
    키워드 추출 장치.
  17. 제 15 항에 있어서, 상기 제어부가 상기 출현 빈도를 고려하는데 있어서,
    상기 추출대상 문서에 기초하여 정보성 언어 모델을 학습하고,
    상기 학습한 정보성 언어 모델에 기초하여 중요도를 산출하는 것을 특징으로 하는,
    키워드 추출 장치.
  18. 삭제
  19. 제 11 항에 있어서, 상기 제어부가 상기 랭크를 산출하는데 있어서,
    상기 추출대상 문서 상에서 소정 키워드의 카운트 값 및 상기 소정 키워드가 포함되어 있는 문장의 카운트 값 중 하나 이상을 고려하여 상기 랭크를 산출하는 것을 특징으로 하는,
    키워드 추출 장치.
  20. 제 19 항에 있어서, 상기 제어부가 상기 제 2 필터링을 수행하는데 있어서,
    상기 키워드 후보 중에서 상기 산출된 랭크가 낮은 키워드를 제거하는 방식으로 이루어지는 것을 특징으로 하는,
    키워드 추출 장치.
  21. 하드웨어와 결합되어 제 1 항, 제 3 항 내지 제 7 항, 제 9 항 및 제 10 항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
KR1020200170409A 2020-12-08 2020-12-08 주요 키워드 추출 장치, 그것의 제어 방법 및 주요 키워드 추출 프로그램 KR102639979B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200170409A KR102639979B1 (ko) 2020-12-08 2020-12-08 주요 키워드 추출 장치, 그것의 제어 방법 및 주요 키워드 추출 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200170409A KR102639979B1 (ko) 2020-12-08 2020-12-08 주요 키워드 추출 장치, 그것의 제어 방법 및 주요 키워드 추출 프로그램

Publications (2)

Publication Number Publication Date
KR20220081009A KR20220081009A (ko) 2022-06-15
KR102639979B1 true KR102639979B1 (ko) 2024-02-22

Family

ID=81987472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200170409A KR102639979B1 (ko) 2020-12-08 2020-12-08 주요 키워드 추출 장치, 그것의 제어 방법 및 주요 키워드 추출 프로그램

Country Status (1)

Country Link
KR (1) KR102639979B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116306616A (zh) * 2023-02-14 2023-06-23 贝壳找房(北京)科技有限公司 用于确定文本的关键词的方法和装置
KR102599713B1 (ko) * 2023-06-14 2023-11-08 (주)유알피 문서 본문 내용을 기반으로 한 핵심 키워드 선정 시스템 및 그 방법
CN116881437B (zh) * 2023-09-08 2023-12-01 北京睿企信息科技有限公司 一种获取文本集的数据处理系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323517A (ja) 2005-05-17 2006-11-30 Mitsubishi Electric Corp テキスト分類装置およびプログラム
KR101228865B1 (ko) 2011-11-23 2013-02-01 주식회사 한글과컴퓨터 문서 표시 장치 및 문서 내 중요 단어 추출 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103201718A (zh) * 2010-11-05 2013-07-10 乐天株式会社 关于关键词提取的系统和方法
KR102093790B1 (ko) * 2015-10-27 2020-03-26 한국전자통신연구원 문자 중계 데이터로부터 이벤트 정보를 추출하는 이벤트 정보 추출 방법 및 그 방법을 수행하는 사용자 단말
KR102019194B1 (ko) * 2017-11-22 2019-09-06 주식회사 와이즈넛 문서 내 핵심 키워드 추출 시스템 및 방법
KR102196583B1 (ko) * 2019-03-12 2020-12-31 동국대학교 산학협력단 키워드 자동 추출 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323517A (ja) 2005-05-17 2006-11-30 Mitsubishi Electric Corp テキスト分類装置およびプログラム
KR101228865B1 (ko) 2011-11-23 2013-02-01 주식회사 한글과컴퓨터 문서 표시 장치 및 문서 내 중요 단어 추출 방법

Also Published As

Publication number Publication date
KR20220081009A (ko) 2022-06-15

Similar Documents

Publication Publication Date Title
US10665226B2 (en) System and method for data-driven socially customized models for language generation
CN106844658B (zh) 一种中文文本知识图谱自动构建方法及系统
KR102639979B1 (ko) 주요 키워드 추출 장치, 그것의 제어 방법 및 주요 키워드 추출 프로그램
US11017178B2 (en) Methods, devices, and systems for constructing intelligent knowledge base
US10860654B2 (en) System and method for generating an answer based on clustering and sentence similarity
US11816441B2 (en) Device and method for machine reading comprehension question and answer
US8892420B2 (en) Text segmentation with multiple granularity levels
KR101339103B1 (ko) 의미적 자질을 이용한 문서 분류 시스템 및 그 방법
US10896222B1 (en) Subject-specific data set for named entity resolution
US9734238B2 (en) Context based passage retreival and scoring in a question answering system
CN101952824A (zh) 计算机执行的对数据库中的文献进行索引和检索的方法以及信息检索系统
US10997223B1 (en) Subject-specific data set for named entity resolution
CN110162768B (zh) 实体关系的获取方法、装置、计算机可读介质及电子设备
US9940355B2 (en) Providing answers to questions having both rankable and probabilistic components
CN109710732B (zh) 信息查询方法、装置、存储介质和电子设备
WO2009026850A1 (en) Domain dictionary creation
Yao et al. Temporal event knowledge acquisition via identifying narratives
Kestemont et al. Mining the Twentieth Century's History from the Time Magazine Corpus
KR20200014046A (ko) 기계독해기반 질의응답방법 및 기기
US20130024403A1 (en) Automatically induced class based shrinkage features for text classification
Rahman et al. Towards a framework for acquisition and analysis of speeches to identify suspicious contents through machine learning
CN111243351B (zh) 一种基于分词技术的外语口语训练系统、客户端和服务器
Park et al. Verbal abuse classification using multiple deep neural networks
KR20200037593A (ko) 빈도 테이블을 이용한 챗봇 발언 생성 방법
Rahman et al. Research Article Towards a Framework for Acquisition and Analysis of Speeches to Identify Suspicious Contents through Machine Learning

Legal Events

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