KR102675245B1 - 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법 - Google Patents

응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법 Download PDF

Info

Publication number
KR102675245B1
KR102675245B1 KR1020210036766A KR20210036766A KR102675245B1 KR 102675245 B1 KR102675245 B1 KR 102675245B1 KR 1020210036766 A KR1020210036766 A KR 1020210036766A KR 20210036766 A KR20210036766 A KR 20210036766A KR 102675245 B1 KR102675245 B1 KR 102675245B1
Authority
KR
South Korea
Prior art keywords
word
words
frequency
tree
txt
Prior art date
Application number
KR1020210036766A
Other languages
English (en)
Other versions
KR20220131725A (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 KR1020210036766A priority Critical patent/KR102675245B1/ko
Publication of KR20220131725A publication Critical patent/KR20220131725A/ko
Application granted granted Critical
Publication of KR102675245B1 publication Critical patent/KR102675245B1/ko

Links

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/36Creation of semantic tools, e.g. ontology or thesauri
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법에 관한 것이다. 본 발명에 의하면, 단어 트리 구조를 이용해 응집도 점수를 계산하고, 이를 기반으로 키워드를 추출함으로써 본 발명을 통해 소셜 빅데이터 분석에 필수적인 신조어와 고유명사 키워드 추출 정확도를 획기적으로 향상시킬 수 있는 효과가 있다.

Description

응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법{EFFICIENT KEYWORD EXTRACTION METHOD FROM SOCIAL BIG DATA BASED ON COHESION SCORING}
본 발명은 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법에 관한 것으로써, 보다 상세하게는 단어 트리 구조를 이용해 응집도 점수를 계산하고, 이를 기반으로 키워드를 추출함으로써 본 발명을 통해 소셜 빅데이터 분석에 필수적인 신조어와 고유명사 키워드 추출 정확도를 획기적으로 향상시킬 수 있는 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법에 관한 것이다.
빅데이터는 3V(Volume, Velocity, Variety) 속성을 지니는 데이터로 정의될 수 있으며, 신용카드 트랜잭션, 휴대폰 전화 및 문자 내역 등 다양한 형태의 데이터가 포함될 수 있다. 이 중, SNS 피드 및 블로그 리뷰 등을 포함한 소셜 빅데이터는 고객 관점의 의견이나 불만 사항을 추출하기 위해 가장 대중적으로 이용되고 있다. 소셜 빅데이터는 온라인 포털 업체 등이 제공하는 오픈 API 등을 통해 무료로 획득 가능하며, 텍스트 형태로 구성되어(신용카드, 휴대폰 내역 등 수치로 이루어진 데이터에 비해) 의견이나 불만 사항의 직접적인 원인을 바로 알아낼 수 있다는 점에서 선호된다.
소셜 리뷰 및 고객의 상품평을 효과적으로 분석하기 위한 많은 연구가 진행되었다. 소셜 리뷰로부터 잠재적인 광고 키워드를 추출하거나, 소셜 빅데이터를 이용한 영화 흥행 요인 분석, 온라인 쇼핑몰의 상품평 분류를 통한 감성 분석 등의 주제가 소개된 바 있다. 이들 대부분은 한나눔 등의 기존 형태소 분석기를 활용하여 소셜 리뷰로부터 키워드 집합을 얻는다고 가정한 후 논의를 진행한다는 점에서 공통점이 있다.
블로그나 SNS 피드 등의 소셜 리뷰는 고객 관점의 의견이나 불만 사항을 반영한 키워드를 추출하기 위한 목적으로 광범위하게 활용되고 있으며, 최근 트렌드를 반영한 신조어나 고유명사를 포함하는 경우가 많다. 이들 단어는 사전에 포함되어 있지 않아 기존 형태소 분석기가 잘 인지하지 못하는 경우가 많으며, 동시에 상당한 처리 시간이 소요되어 키워드 분석 결과를 실시간으로 제공하는데 어려움이 있다.
형태소 분석의 효율을 높이기 위한 방법 관련해서도 다양한 연구가 진행되었으며, 크게 3가지 접근 방법으로 분류될 수 있다. 첫째는, 형태소 분석 알고리즘을 개선하여 사전 탐색 회수를 줄이고자 하였다. 둘째는, 사전 구조를 개선하여 효율을 높이고자 하였으며, 셋째는, 고빈도 어절에 대한 기분석 사전을 구축하여 코드 변환, 원형 복원 등의 절차적인 분석 단계를 생략하는 방법이다. 이들 방법은 모두 사전을 기반으로 형태소 분석을 수행한다는데 공통점이 있다.
한편, 소셜 빅데이터 분석에 대한 관심이 높아지면서 이들에 포함된 신조어나 고유 명사 등을 보다 정확하게 처리하기 위한 기법들이 제안되었다. 이들은 단어 추출에 있어 사전이 아닌, 단어의 빈도수 등을 바탕으로 한 통계적 기법을 이용하며, 브랜칭 엔트로피(Branching Entropy) 등이 대표적이다. 해당 방법은 단어 내부에서는 불확실성, 즉 엔트로피가 줄어들고, 단어의 경계에서는 불확실성이 증가한다는 점을 이용한다. 예를 들어, 글자가 "natur"까지 등장했다면, 그 다음에 나올 수 있는 글자는 "nature"이거나 "natural" 두 가지 경우에 국한되므로 불확실성이 낮아진다. 이에 반해 "nature"까지 등장할 경우, 다음 글자에 대한 불확실성이 다시 높아지므로, "nature"를 단어의 경계로 설정한다. Soynlp에서 이용되는 응집도 점수 역시 유사한 아이디어로부터 산정식을 산출하며, 엔트로피 값이 아닌 조건부 확률을 이용한다는 점에서 차이가 있다.
소셜 빅데이터 분석에서는 형태소 분석을 통한 키워드 추출이 필수적으로 요구된다. 예를 들어, "화덕피자로 엄청 유명해진 그라파피자리아, 인싸들의 핫플!"이라는 리뷰를 가정해본다. 키워드 추출을 위해 먼저 형태소 분석작업이 수행된다. 해당 단계에서는 "유명해진" 등의 형용사나 동사에 대한 활용 처리를 수행하며, 명사로부터 "로" “들의” 등의 조사를 분리해낸다. 이후 키워드 선정 과정에서 의미가 크지 않은 조사나 "엄청" 등의 부사를 제거하며, 최종적으로 {"화덕피자", "유명한", "그라파피자리아" “인싸”, "핫플"} 등이 결과값으로 반환된다.
위 예제에서도 볼 수 있듯이, 소셜 리뷰는 고유명사("그라파피자리아”)나 트렌드를 반영한 신조어("인싸", "핫플")를 포함하는 경우가 많다. 문제는 KAIST의 한나눔이나 서울대의 꼬꼬마 등을 포함한 기존 형태소 분석기들이 이를 잘 처리하지 못한다는 점이다. 그 이유는 형태소 분석을 위해 기존 분석기들이 사전을 이용하나, 해당 사전에는 고유명사나 신조어가 포함되지 않아 관련 명사 추출이 어렵다는 점에 기인한다. 예를 들어 꼬꼬마의 경우, 위 리뷰에 대해 {"화덕", "피자", "그", "라파", "피자", "리아",...} 등의 형태로 사전에 포함된 단어 위주로 결과를 전달한다. 실제 리뷰에서 중요한 의미들은 명사에 부여된다는 점을 고려할 때, 고유명사 및 신조어를 효과적으로 추출하기 위한 방법은 필수적이라 할 수 있다.
기존 형태소 분석기를 활용할 때 제기될 수 있는 또 다른 이슈는 형태소 분석에 상당한 시간이 소요된다는 점이다. 예를 들어, 100개의 소셜 리뷰를 처리하는데 한나눔은 3.87초, 꼬꼬마는 135초가 소요된다. 만약 전국 10만개의 업체를 대상으로 업체별 평균 1,000개 정도의 리뷰를 처리해야 한다고 가정할 경우, 한나눔에서 리뷰에 대한 형태소 분석 시간으로 약 33일이 소요된다. 형태소 분석 외에 요약정보 추출이나 결과 시각화 시간까지 합칠 경우 그 시간이 더 늘어날 수 있으며, 이 경우 월 단위로 최신 정보를 유지하거나, 실시간으로 분석 결과를 제공하고자 할 때 어려움이 있을 수 있다.
한국 등록특허공보 제10-1624909호 (정규화된 키워드 가중치에 기반한 연관 키워드 추출 방법, 2016.05.27.)
본 발명은 이와 같은 문제점을 해결하기 위해 창안된 것으로서, 응집도 점수(Cohesion Score)를 기반으로 소셜 리뷰로부터 신조어나 고유명사 등을 포함한 키워드를 효율적으로 추출하기 위한 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법을 제공함을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명에 따른 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법의 일측면에 따르면, (a) 소셜 리뷰 집합으로부터 단어별 출현 빈도수를 계산하는 단계; (b) 단어의 포함 관계를 기반으로 단어 그룹(G)을 생성하는 단계; (c) 생성된 상기 단어 그룹(G)에 대한 단어 트리(T)를 구성하는 단계; (d) 상기 단어 트리(T)를 기반으로 응집도 점수(Cohesion Score)를 이용하여 상기 각 단어 그룹(G)에 대한 대표 단어와 빈도수를 추출하는 단계; 및 (e) 추출된 상기 대표 단어 집합으로부터 상기 빈도수 기준으로 상위 X개(여기서, X는 사용자가 정의한 상수)의 단어를 키워드 추출 결과로 제공하는 단계를 포함한다.
또한, 상기 단계(a)는, 상기 소셜 리뷰 집합에서 공백을 중심으로 단어를 구분하는 단계; 및 같은 단어를 묶어서 상기 단어별 출현 빈도수를 계산하는 단계를 포함할 수 있다.
또한, 상기 단계(b)는, 상기 단어별 출현 빈도수의 집합(S)으로부터 상기 단어의 포함 관계(startsWith)를 기준으로 상기 단어 그룹(G)를 생성할 수 있다.
또한, 상기 단어별 출현 빈도수의 집합(S)은 wi (0 ≤ i ≤ N, N은 단어 수)이고, 여기서, wi = (제1 txt, cnt) (제1 txt는 단어, cnt는 상기 제1 txt의 출현 빈도수)로 정의될 수 있다.
또한, 상기 단어 그룹(G)은 ui (0 ≤ i ≤ M ≤ N, M은 그룹 수)이고, 여기서, ui = (제2 txt, wj) (제2 txt는 상기 제1 txt의 단어 중 대표단어, wj는 상기 단어 그룹(G)에 속한 wj = (제1 txt, cnt)의 집합, 0 ≤ j ≤ N) 로 정의될 수 있다.
또한, 상기 단계(c)에서, 상기 단어 트리(T)는, 루트 노드를 제외하고 단어별로 노드가 구성되되, 상기 노드에는 상기 단어별 출현 빈도수 및 상기 단어 트리(T)에서의 깊이 값을 포함하고, 상기 루트 노드는 상기 루트 노트를 제외한 모든 노드에 포함된 상기 단어별 출현 빈도수를 합한 값으로 설정될 수 있다.
또한, 상기 단계(d)에서, 상기 단어 트리(T)에서 i번째 노드 ti의 상기 응집도 점수를 계산하기 위한 식은 하기의 수학식에 의해 계산되고,
여기서, n은 상기 단어 트리(T)에서 상기 ti의 깊이 값, cj는 상기 루트 노드부터 상기 ti까지 연결된 경로에서 j번째 깊이에 있는 단어의 freq 값으로, 이때 상기 freq 값은 상기 단어를 포함하는 단어군의 출현 빈도수로 정의될 수 있다.
본 발명에 의하면, 단어 트리 구조를 이용해 응집도 점수를 계산하고, 이를 기반으로 키워드를 추출함으로써 본 발명을 통해 소셜 빅데이터 분석에 필수적인 신조어와 고유명사 키워드 추출 정확도를 획기적으로 향상시킬 수 있는 효과가 있다.
또한, 응집도 점수는 단어의 빈도수를 기반으로 통계적인 방법으로 계산되어 별도의 사전이 필요 없다는 장점이 있으며, 사전을 검색하지 않으므로 단어 추출 속도가 빨라질 수 있는 효과가 있다.
또한, 사전에 기반한 기법에 비해 신조어나 고유명사를 처리할 때 단어 추출 정확도가 높음으로써 특히 신조어나 고유명사가 주요 의미를 가지는 소셜 리뷰(SNS, 블로그 글)를 처리할 때 효과가 크다.
도 1은 본 발명의 일실시예에 따른 표 1의 단어 집합에 대해 단어 트리를 구성한 예를 나타내는 도면이다.
도 2는 자바스크립트로 구현된 코드의 일예를 나타내는 도면이다.
도 3에서와 같이 getWordList()에서 반환된 list 정보를 바탕으로 단어별 응집도 점수를 계산하기 위한 자바스크립트 기능의 일예를 나타내는 도면이다.
도 4는 본 발명에서는 제안한 알고리즘을 검증하기 위한 키워드 추출의 정확도 및 효율성 실험예를 나타내는 도면이다.
도 5는 키워드 추출을 위한 단어별 최소 빈도수 기준의 일예를 나타내는 도면이다.
도 6은 본 발명의 일실시예에 따른 응집도 점수를 기반으로 한 키워드 추출 과정을 나타내는 도면이다.
도 7은 단어별 빈도수 집합 S로부터 단어 그룹 G를 구하기 위한 알고리즘 getWordGroups을 나타내는 도면이다.
도 8은 G에 속한 각각의 단어 그룹 ui로부터 단어의 포함 관계(startsWith)를 기준으로 단어 트리 Ti 생성의 일예를 나타내는 도면이다.
도 9는 ui = (txt, wj )로부터 T를 구하기 위한 알고리즘 getWordTree을 나타내는 도면이다.
도 10은 표 6의 결과값에 대한 단어 트리 구조를 나타내는 도면이다.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
본 발명에서 제안하는 방법은 응집도 점수를 기반으로 키워드를 추출한다. 먼저 기존에 소개된 응집도 점수의 동작 원리에 대해 설명하고, 실제 데이터 적용 시 생길 수 있는 문제점을 해결하기 위해 본 발명에서 제안하는 알고리즘에 대해 설명하기로 한다.
먼저, 응집도 점수(Cohesion Score)는 단어를 구성하는 글자들만의 정보를 이용하여 단어의 경계를 판단하는 산정 방법이다. 한국어 어절의 경우, 의미를 지니는 명사, 동사, 형용사 등의 단어에 해당하는 L 파트와, 문법 기능을 위한 조사나 어미에 해당하는 R 파트로 구성되어 있다. 목표는 L + R 형태의 어절에서 L을 분리해내는 것이며, 응집도 점수는 이를 위한 식을 제공할 수 있다.
예를 들어, 입력 데이터에 네 개의 어절과 각 어절에 대한 빈도가 아래와 같이 주어졌다고 가정해 본다.
노 (200)
노란 (100)
노란색 (90)
노란색을 (9)
일반적으로, 주어진 어절이 의미가 있는 L 파트에 해당할 경우 빈도수가 높게 나타나며, 의미가 없는 R 파트를 포함할 경우 빈도수가 떨어진다. 따라서 위 예의 경우 네 어절 중 "노란색"이 키워드로 선정될 수 있도록 응집도 점수가 정의된다. "노란"의 경우도 키워드로 선정될 수 있으나, 빈도가 비슷하게 나타날 경우 일반적으로 긴 단어가 더 풍부한 의미를 지닌다는 사실로부터 "노란색"이 선정될 수 있도록 응집도 점수를 정의한다. 아래 수학식 1에서 n은 어절의 최대 길이에 해당한다.
위 식으로부터 응집도 점수를 계산하기 위해서는 먼저 부분문자열 x 이후 y가 나타날 조건부 확률인 P(xy|x) 값을 계산해야 한다.
P(노란|노) = 100/200 = 0.5
P(노란색|노란) = 90/100 = 0.9
P(노란색을|노란색) = 9/90 = 0.1
위 확률로부터 수학식 1을 이용하여 "노란색"에 대한 응집도 점수를 다음과 같이 계산할 수 있다.
f (노란색) = (P(노란|노) × P(노란색|노란))0.5
= (0.5 Х 0.9)0.5 ≒ 0.67
P(xy|x)는 1 이하의 확률값이므로, 길이가 길수록 누적곱의 값이 줄어들게 된다. 따라서 빈도가 비슷할 경우 더 긴 글자를 선택할 수 있도록, 수학식 1에서는 P(xy|x)의 곱에 1/(n-1) 승을 취한다.
f (노란)과 f (노란색을) 값 역시 수학식 1을 통해 각각 0.5와 0.36으로 계산되며, 비교 결과 "노란색"의 점수가 가장 높게 나타난다. 해당 결과로부터 어절이 "노란색" + "을"의 형태로 구성된 것으로 간주하고, "노란색"을 L 값으로 반환한다.
상기 수학식 1은 아래의 수학식 2와 같이 간소화될 수 있다.
위 식에서 볼 수 있듯이, 응집도 점수 값을 가장 크게 좌우하는 파라미터는 단어의 길이 n임을 알 수 있다. 예를 들어, n이 일정 수준보다 커지면(예를 들어, n > 15), 단어의 빈도수에 상관없이 응집도 점수가 항상 최대값이 되는 경우가 발생할 수 있다. 아래 표 1은 "그라파피자리아"를 검색 키워드로 주었을 때 온라인에서 수집된 소셜 리뷰를 대상으로 계산된 응집도 점수 예를 보여준다. 아래 표 1에서 freq는 리뷰에서 단어(word)의 빈도수, n은 단어의 길이, exp2는 수학식 2에 단어의 freq와 n 값을 대입한 수식이며, score는 exp2를 통해 계산된 응집도 점수를 나타낸다.
위 예에서 "그라파피자리아라는동구핫플레이스" 단어의 경우, 빈도수가 1임에도 불구하고 응집도 점수가 가장 높게 나타나며, 결과적으로 키워드로 추천된다. 이는 띄어쓰기가 잘 이루어지지 않은 입력 데이터에 산정식을 적용할 경우 문제가 발생할 수 있음을 보여준다. 문제는 인터넷으로부터 수집된 소셜 리뷰들을 살펴보면 띄어쓰기를 제대로 하지 않는 경우가 자주 발견된다는 점이다. 이는 키워드 추출의 정확도를 높이기 위한 산정식의 보완이 필요함을 보여준다.
본 발명에서는 문제 해결을 위해 파라미터 n을 다르게 정의한다. n의 산정에 있어, 글자 수를 나타내는 절대적인 값이 아닌, 단어 간의 관계를 의미하는 상대적인 크기로 정의한다. 이를 위해 먼저 주어진 단어 집합에 대해 문자열 포함 관계를 기반으로 트리를 구성한다.
도 1은 본 발명의 일실시예에 따른 표 1의 단어 집합에 대해 트리를 구성한 예를 나타내는 도면이다.
도시된 바와 같이, 트리에서 각각의 단어는 노드로 구성되며, 단어 A가 B에 포함될 경우 A는 B의 부모 노드가 된다. 트리 구성이 완료되면 각 단어에 대해 트리 상의 깊이(depth) 값을 결정할 수 있으며, 제안하는 방법에서는 해당 값을 n으로 이용한다. 도 1에서 각 노드의 깊이에 대해 옆에 숫자로 표기하였다.
하기의 표 2는 본 발명에서 제안하는 방법을 통해 계산된 n값과 응집도 점수를 보여주며, 해당 방법에서는 "그라파피자리아"가 가장 높은 점수를 얻어 키워드로 채택된다. 이는 띄어쓰기가 제대로 되어있지 않은 단어가 주어지더라도 키워드 추출의 정확도가 크게 영향을 받지 않음을 보여준다.
위 방법을 구현하기 위한 알고리즘은 크게 두 부분으로 구성될 수 있다. 첫째는, 단어 집합으로부터 각 단어에 대한 출현 빈도수를 계산하기 위한 알고리즘으로, 도 2는 자바스크립트로 구현된 코드의 일예에서와 같이, 입력 데이터로 주어진 wdset은 수집된 소셜 리뷰를 공백으로 분리한 토큰 집합에 해당하며, 위 함수는 wdset의 각 단어별로 출현 빈도를 계산한 배열인 list를 생성하여 결과로 반환한다. list의 각 요소는 아래 속성을 포함할 수 있다.
key: 단어 (리뷰에서 공백을 기준으로 분리된 토큰)
cnt: key와 동일한 단어의 출현 빈도수
freq: key가 포함된 (key로 시작하는) 단어군의 출현 빈도수
여기서, cnt는 key 단어와 동일한 단어의 출현 빈도수를 의미하며, freq의 경우 key와 동일한 단어 뿐만 아니라, key로 시작하며 key를 포함하는 단어군(key를 포함하는 단어로서 본 명세서 상에서는 이를 단어군이라 정의함)의 출현 빈도수를 의미힌다.
위 코드의 6번째 라인 if 문의 구현에서 볼 수 있듯이 getWordList() 함수는 주어진 단어와 정확히 일치하는 단어들의 출현 빈도수만 계산한다. 따라서 현재까지는 각 단어의 cnt와 freq 값이 동일하게 나타난다. 하기의 표 3은 표 2의 단어 집합에 대한 getWordList()의 결과값이다.
여기서 주의할 점은, 위 함수의 결과값이 C0:1에 해당하는 단어 카운트를 포함하지 않을 수 있다는 점이다. 예를 들어, "그라파"에 대한 P(xy|x)를 계산하려면 "그라"와 “그”에 대한 빈도수가 집계되어야 하나, wdset에서 해당 단어들이 나타나지 않을 수 있다. 따라서 C0:1의 빈도수는 위 알고리즘과 별도로 계산되어야 하며, 이는 wdset의 모든 단어에 대해 C0:1으로 시작하는지 체크하기 위한 별도의 스캔 작업을 포함할 수 있다.
두 번째 알고리즘은, 도 3에서와 같이 getWordList()에서 반환된 list 정보를 바탕으로 단어별 응집도 점수를 계산하는 부분을 포함하며, 크게 세 부분으로 구성될 수 있다.
[Step.1]은 주어진 list에 대해 key 길이를 기준으로 오름차순으로 정렬하며, 그 결과 길이가 짧은 단어가 list의 앞에 위치하게 된다. 이는 하기의 [Step.2]에서 길이가 짧은 단어를 포함한 부모 노드가 긴 단어를 포함한 자식 노드보다 우선해서 나오도록 강제함으로써 알고리즘의 효율성을 높이는데 기여한다. 정렬 이후, list내 단어별로 트리 구성에 필요한 아래의 정보를 추가한다.
id: 노드 아이디
pid: 부모 노드의 아이디
dep: 트리에서 깊이
[Step.2]는 list로부터 트리를 구성하고 freq 값을 계산한다. list의 첫 번째 요소는 가장 길이가 짧은 단어이며 트리의 루트 노드가 된다. 따라서 루트 노드부터 순차적으로 단어의 포함 관계를 검사하여 트리에서 단어 간의 부모/자식 관계를 설정한다. 예를 들어 i번째 단어에 대해, 자신 이후에 나오는 j번째 단어가 자신을 포함하면 if 조건이 참이 된다. 이 경우 j번째 단어의 pid에 자신의 id를 할당함으로써 부모/자식 관계를 설정하며, 동시에 j번째 단어 노드의 깊이 값은 자신의 깊이 값에 1을 더하면 된다. 그리고 j번째 단어의 cnt를 자신의 freq 값에 추가한다. 이로부터 freq는 자식 노드의 카운트 수를 모두 더한 값이 되며, 결과적으로 i번째 단어가 포함된 모든 단어의 출현 빈도수를 의미하게 된다. if 조건에서 포함 관계를 알아내기 위해 startsWith() 함수가 이용되었으며, 단어 A가 B에 포함될 경우 B.startsWith(A)는 true를 반환한다.
[Step.3]에서는 이전 단계에서 얻어진 freq 및 dep 값을 이용하여 응집도 점수를 계산한다. 해당 구현에서는 수학식 2가 이용되었으며, 지수승을 계산을 위해 자바스크립트의 Math.pow() 함수를 이용하였다. 표 3의 데이터에 대해 getScoredList()를 통해 최종적으로 계산된 freq, dep, score 값은 표 2와 동일하다. 해당 표에서는 dep 대신 n으로 표기되어 있으며, 이는 앞서 설명한 바와 같이 제안하는 방법이 n 값으로 dep를 이용한다는 점에 기인한다.
본 발명에서는 제안한 알고리즘을 검증하기 위해 도 4에서와 같이 온라인에서 수집된 실제 데이터를 바탕으로 키워드 추출의 정확도 및 효율성을 실험하였다. 실험 비교 대상으로는 현재 소셜 빅데이터의 키워드 추출을 위해 대중적으로 이용되고 있는 KAIST 한나눔 형태소 분석기와 서울대의 꼬꼬마 분석기를 선정하였다. 한나눔의 버전은 0.8.4이며, 꼬꼬마는 2.1 버전이 이용되었다. 실험은 Intel-core i5 CPU, 16G 메모리 상에서 윈도우 운영 체제를 기반으로 수행되었다.
먼저, 실험을 위해 온라인으로부터 실제 소셜 리뷰를 수집하였으며, 리뷰 수집을 위해 네이버가 제공하는 오픈 API를 이용하였다. 리뷰 수집 대상으로 울산 동구의 유명 레스토랑 10군데를 선정하였으며, 상호명 별로 수집된 소셜 리뷰를 각각의 입력 데이터 집합으로 구성하고 실험을 수행하였다.
수집된 리뷰 집합은 효율적인 형태소 분석을 위해 전처리 과정을 거치며, 해당 과정에서는 특수 기호를 제거하여 문자 및 숫자 중심의 단어만 남을 수 있도록 구성하였다. 이후 정제된 리뷰 집합을 대상으로 키워드 추출 과정이 수행되며, 한나눔의 WorkflowNounExtractor, 꼬꼬마의 KeywordExtractor 모듈을 키워드 추출기로 이용하였다. 이들 모듈은 기본적으로 사전을 이용하여 형태소 분석 단계를 수행하며, 이를 통해 얻어진 단어와 각 단어의 빈도수를 결과로 제공한다. 각각의 모듈은 모두 .jar 확장명을 지닌 Java Archive 파일 형태로 Eclipse 개발 환경에 포함될 수 있으며, 실행 모듈 역시 Java로 구현되었다. 이후 추출된 키워드들의 정확도를 비교하기 위해 각각의 형태소 분석기로부터 전달된 결과를 해시맵(HashMap)에 저장하고 정렬하였다. 해시맵의 키는 추출된 단어와 연결하였으며, 해당 단어의 빈도수를 값으로 구성하였다.
먼저 키워드 추출 실행속도와 관련하여, 세 방법을 비교한 결과를 하기의 표 4에서 제시하였다. 아래 표의 숫자는 밀리초(Millisecond) 단위로 표시되었으며, 10개 리뷰 집합에 대한 실행 속도의 평균값에 해당한다. 실험 결과, 실행 속도 차이가 너무 커 그래프로 표현하기 어려웠다. 예를 들어 리뷰수가 500개일 경우, 꼬꼬마는 1,200초, 한나눔은 10초, 제안 방법은 0.0039초가 소요되었다. 특히 형태소 분석 과정에서 동적 프로그래밍 기법을 쓰는 것으로 알려진 꼬꼬마의 경우 리뷰 수가 700개 이상 주어졌을 때, 메모리 에러가 발생하여 실행 속도 측정 자체가 불가능하였다.
각각의 방법에 대해 전체 실험 케이스에 대한 평균값을 비교할 경우, 꼬꼬마에 비해 한나눔이 75배 이상, 그리고 한나눔에 비해 본 발명의 제안 방법이 3,000배 이상 정도 빠른 것으로 조사되었다. 특히 본 발명의 제안 방법은 0.008초 내에 1000개의 리뷰에 대한 키워드 추출을 완료하였으며, 이는 실시간 처리가 가능한 수준임을 보여준다.
다음으로 키워드 추출의 정확도와 관련한 실험을 수행하였다. 위 실험과 동일한 10개의 리뷰 집합을 대상으로 분석기별로 추출된 키워드 수 대비 오류 수에 대한 비율을 계산하였으며, 10개 집합에 대한 꼬꼬마의 평균 오류율은 0.247, 한나눔은 0.213, 본 발명의 제안방법은 0.155로 나타났다. 이로부터 제안 방법의 키워드 추출 정확도가 꼬꼬마와 한나눔에 비해 각각 59%, 37% 정도 더욱 우수한 것으로 조사되었다.
하기의 표 5에서는 각 방법으로부터 "그라파피자리아" 상호명으로 수집된 리뷰 집합으로부터 추출된 상위 10개의 키워드를 나열하였다. 본 발명에서 제안하는 방법과 한나눔의 경우 추출된 키워드가 유사한 패턴을 보여주는 반면, 꼬꼬마의 경우 명사를 너무 세분화하여 오류가 증가하였음을 볼 수 있다.
위 실험을 통해 기존 형태소 분석기의 경우 고유명사 및 신조어 처리에 있어 명사를 너무 세분화하는 문제점이 파악되었으며, 꼬꼬마의 경우 그 문제점이 더욱 심각하게 나타났다. 이에 반해 본 발명에서 제안하는 방법의 경우 고유명사나 신조어 처리에는 강점을 지니나, 형용사 및 동사의 활용처리 기능이 없어 같은 의미를 지닌 형용사가 다른 형태로 여러번 제시되거나, 명사에 조사가 추가된 형태로 추천되는 문제점을 발견할 수 있었다.
제안 방법의 문제점은 단어별로 빈도수가 낮아지게 될 경우 더욱 심화될 수 있다. 그 이유는 응집도 점수 산정식은 통계적 기법으로, 산정에 필요한 모수가 적어질수록 결과의 정확도가 낮아진다는 점에 기인한다. 예를 들어, 표 3에서 "그라파"로 시작하는 단어의 수가 많을수록 응집도 점수를 통한 명사와 조사 경계가 명확히 분리되며, 그렇지 않을 경우 조사를 포함한 부정확한 단어가 반환될 수 있다.
따라서 제안하는 알고리즘에서 일정 수준의 정확도를 담보하기 위해서는 키워드 추천에 필요한 단어별 최소 빈도수에 대한 기준을 설정해야 한다. 이와 관련하여, 도 5의 그래프는 제안 방법에서 단어별 최소 빈도수 기준 조정에 따른 오류율의 추이를 보여준다.
실험 결과, 9개 이상의 빈도수를 가지는 단어만을 대상으로 키워드 추천을 수행할 경우 오류율은 2% 이하로 상당한 정확도를 제공함을 알 수 있다. 이에 반해, 빈도수 기준을 1로 낮추면, 즉 토큰으로 분리된 모든 단어를 대상으로 할 경우 에러율은 60% 이상으로 급격하게 높아진다. 결과적으로 제안하는 방법의 키워드 추천 정확도는 단어별 최소 빈도수 기준 값에 비례하며, 빈도수 기준을 5 이상으로 설정해야 기존 분석기에 비해 높은 정확도를 얻을 수 있다.
본 발명에서는 소셜 리뷰로부터 키워드 추출을 효과적으로 수행하기 위한 알고리즘을 제안하였다. 제안하는 방법은 단어의 빈도수를 기반으로 산정되는 응집도 점수를 이용한 통계적 방법에 해당하며, 별도의 사전이나 형태소 분석 과정 없이도 고유명사 및 신조어 등을 효과적으로 처리할 수 있다. 또한 실제 데이터 적용 시 발생할 수 있는 예외 사항들을 반영하여 알고리즘의 정확도를 높였다. 제안한 알고리즘의 검증을 위해 온라인에서 수집된 실제 소셜 리뷰들을 대상으로 실험을 수행하였으며, 그 결과 현재 대중적으로 이용되고 있는 한나눔 형태소 분석기에 비해 키워드 추출 속도는 평균 3,000배, 정확도는 평균 37% 정도 우수한 것으로 조사되었다. 특히, 본 발명 제안 방법은 1000개의 소셜 리뷰로부터 키워드 추출하는데 소요되는 시간이 0.008초 미만으로 실시간 처리가 가능한 수준으로 파악되었다.
도 6은 본 발명의 일실시예에 따른 응집도 점수를 기반으로 한 키워드 추출 과정을 나타내는 도면이고, 도 7은 단어별 빈도수 집합 S로부터 단어 그룹 G를 구하기 위한 알고리즘 getWordGroups을 나타내는 도면이며, 도 8은 G에 속한 각각의 단어 그룹 ui로부터 단어의 포함 관계(startsWith)를 기준으로 트리 Ti 생성의 일예를 나타내는 도면이고, 도 9는 ui = (txt, wj )로부터 T를 구하기 위한 알고리즘 getWordTree을 나타내는 도면이며, 도 10은 표 6의 결과값에 대한 트리 구조를 나타내는 도면이다.
도시된 바와 같이, 본 발명의 응집도 점수를 기반으로 한 키워드 추출 과정은, 먼저 소셜 리뷰 집합으로부터 단어별 출현 빈도수를 계산할 수 있다. 구체적으로, 주어진 리뷰 집합에서 공백을 중심으로 단어를 구분한 후, 같은 단어를 묶어 단어별 출현 빈도수를 계산할 수 있다. 이에 대한 정의와 예제는 아래와 같다.
[정의] 단어별 출현 빈도수의 집합 S = wi (0 ≤ i ≤ N, N은 단어 수)
여기서, wi = (txt, cnt) (txt는 단어, cnt는 빈도수)
[예제] S = (그라파: 33), (그라파가: 4), (그라파피자: 6), (그라파피자를: 2), (그라파피자리아: 25), (그라파피자리아에: 2), (화덕: 15), (화덕피자, 5), ...
이어서, 단어의 포함 관계를 기반으로 단어 그룹(G)을 생성할 수 있다. 구체적으로 S로부터 단어의 포함 관계(startsWith)를 기준으로 아래와 같이 단어 그룹(G)을 생성할 수 있다. 이에 대한 정의와 예제는 아래와 같다.
[정의] 단어 그룹: G = ui (0 ≤ i ≤ M ≤ N, M은 그룹 수)
여기서, ui = (txt, wj ) (txt는 대표단어, wj 는 그룹에 속한 wj = (txt, cnt)의 집합, 0 ≤ j ≤ N)
[예제] G = 그라파: (그라파: 33), (그라파가: 4), (그라파피자: 6), (그라파피자를: 2), (그라파피자리아: 25), (그라파피자리아에: 2), 화덕: (화덕: 15), (화덕피자: 5) ,...
여기서, S로부터 G를 구하기 위한 알고리즘 getWordGroups은 도 7에 예시된 바와 같다.
이어서, 생성된 단어 그룹에 대한 단어 트리를 구성할 수 있다. 구체적으로 단어 그룹(G)에 속한 각각의 단어 그룹 ui로부터 단어의 포함 관계(startsWith)를 기준으로 트리 Ti 생성을 할 수 있다. 하기의 예제에 대한 트리 Ti 구성예는 도 8에 예시된 바와 같다.
[예제] ui = 그라파: (그라파: 33), (그라파가: 4), (그라파피자: 6), (그라파피자를: 2), (그라파피자리아: 25), (그라파피자리아에: 2)에 대한 Ti 구성예
도 8에 예시된 트리에서는 단어별로 노드가 구성될 수 있다(root 노드만 예외). 각 노드 오른쪽 아래의 숫자는 트리의 깊이를 표시한다. 각 노드에서 괄호안의 숫자는 해당 단어가 트리 안에서 나타난 빈도수를 의미하며, 자식 노드의 빈도수를 합친 값이 될 수 있다. 예를 들어 "그라파" 노드의 경우 "그라파" 노드 자신의 빈도수 33과, 자식 노드의 "그라파가" 및 "그라파피자"의 빈도수 4와 35를 더한 값인 72로 설정될 수 있다. 즉, 루트 노드의 크기만 예외적으로 모든 노드의 빈도수를 합한 값으로 설정될 수 있다. ui = (txt, wj )로부터 T를 구하기 위한 알고리즘 getWordTree은 도 9에 예시된 바와 같다.
[예제] ui = 그라파: (그라파: 33), (그라파가: 4), (그라파피자: 6), (그라파피자를: 2), (그라파피자리아: 25), (그라파피자리아에: 2) 에 대한 위 알고리즘의 결과값은 하기의 표 6과 같다.
표 6의 테이블은 도 10에 도시된 트리 구조로 나타낼 수 있다.
이어서, 단어 트리를 기반으로 응집도 점수(Cohesion)를 이용하여 각 그룹에 대한 대표 단어와 빈도수 추출을 할 수 있다. 구체적으로, 응집도 점수의 기본 원리는 브랜칭 엔트로피(Branching Entropy) 기법과 마찬가지로 통계를 이용하여 단어의 경계를 파악하기 위한 기법에 해당한다. 즉, 통계를 이용한 단어 추출 기법에서는 단어 내부에서 불확실성, 즉 엔트로피가 줄어들고, 단어의 경계에서는 불확실성이 증가한다는 점을 이용할 수 있다. 예를 들어, 글자가 "natur"까지 등장했다면, 그 다음에 나올 수 있는 글자는 "nature"이거나 "natural" 두 가지 경우에 국한되므로 불확실성이 낮아진다. 이에 반해 "nature"까지 등장할 경우, 다음 글자에 대한 불확실성이 다시 높아지므로 "nature"를 단어의 경계로 설정할 수 있다.
본 발명에서 제안하는 방법에서는 응집도 점수를 이용하여 그룹 G의 각 요소에 대해 대표 단어를 추출할 수 있다. 예를 들어 위 "그라파" 그룹의 대표 단어로써 해당 그룹의 단어들로부터 고유명사인 "그라파피자리아"를 유도하기 위해 아래의 응집도 점수 식을 이용할 수 있다.
[정의] 단어 트리 T에서 i번째 노드 ti의 응집도 점수를 계산하기 위한 식은 하기의 수학식 3과 같다.
위 식에서 n은 T에서 ti의 깊이에 해당하며, cj는 root 노드부터 ti까지 연결된 경로(path)에서 j번째 깊이에 있는 단어의 freq 값을 나타낸다.
[예제] 도 10에 예시된 트리에서 주황색 굵은 선으로 표시된 path에 속한 5개 단어에 대한 응집도 점수를 하기의 표 7을 참조하여 구할 수 있다.
먼저, 수학식 3으로부터 응집도 점수를 계산하기 위해서는 먼저 부분문자열 x 이후 y가 나타날 조건부 확률인 P(xy|x) 값을 아래와 같이 계산할 수 있다.
P(그라파|root) = 72/144 = 0.5
P(그라파피자|그라파) = 35/72 ≒ 0.486
P(그라파피자리아|그라파피자) = 27/35 ≒ 0.771
위 확률로부터 수학식 3을 이용하여 "그라파피자리아"에 대한 응집도 점수를 계산하면,
f(그라파피자리아) = (P(그라파|root) × ... × P(그라파피자리아|그라파피자))1/5 = (0.5 × 0.486 × 0.771)0.2 ≒ 0.715
f(그라파)와 f(그라파피자) 값 역시 수학식 3을 통해 각각 0.707와 0.712로 계산되며, 비교 결과 "그라파피자리아"의 점수가 가장 높게 나타나므로, "그라파피자리아"를 해당 그룹의 대표 단어로 제공할 수 있다.
이어서, 추출된 대표 단어 집합으로부터 빈도수 기준으로 상위 X개의 단어를 키워드 추출 결과로 제공(X는 사용자가 정의한 상수)할 수 있다. 즉, 위 단계를 통해 단어 그룹 별로 대표 단어들을 추출할 수 있으며, 추출된 대표 단어 집합으로부터 빈도수 기준으로 상위 X개의 단어를 키워드 추출 결과로 제공(X는 상수로 사용자가 정의할 수 있음)할 수 있다.
전술한 바와 같이, 본 발명은 응집도 점수(Cohesion Score)를 활용한 키워드 추출 방법에 관한 것으로, 응집도 점수는 별도의 사전 없이 단어의 빈도수만을 이용하여 계산 가능하며, 여러 유사한 활용 형태의 단어 중 빈도수가 높게 나타나는 단어를 원형으로 채택할 확률이 높다. 따라서 응집도 점수를 이용할 경우, 사용자에 의해 리뷰에서 자주 언급된 단어의 형태와 가까운 키워드가 추천되는 경우가 많으며, 고유명사나 신조어 처리에 있어 사전을 기반으로 단어를 너무 세분화하여 오류를 발생시키는 기존 형태소 분석기의 문제점을 효과적으로 개선할 수 있다.
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.

Claims (7)

  1. 컴퓨팅 장치에 의해 수행되는 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법에 있어서,
    (a) 소셜 리뷰 집합으로부터 단어별 출현 빈도수를 계산하는 단계;
    (b) 단어의 포함 관계를 기반으로 단어 그룹(G)을 생성하는 단계;
    (c) 생성된 상기 단어 그룹(G)에 대한 단어 트리(T)를 구성하는 단계;
    (d) 상기 단어 트리(T)를 기반으로 응집도 점수(Cohesion Score)를 이용하여 상기 각 단어 그룹(G)에 대한 대표 단어와 빈도수를 추출하는 단계; 및
    (e) 추출된 상기 대표 단어 집합으로부터 상기 빈도수 기준으로 상위 X개(여기서, X는 사용자가 정의한 상수)의 단어를 키워드 추출 결과로 제공하는 단계를 포함하고,
    상기 단계(a)는,
    상기 소셜 리뷰 집합에서 공백을 중심으로 단어를 구분하는 단계; 및
    같은 단어를 묶어서 상기 단어별 출현 빈도수를 계산하는 단계를 포함하며,
    상기 단계(b)는,
    상기 단어별 출현 빈도수의 집합(S)으로부터 상기 단어의 포함 관계(startsWith)를 기준으로 상기 단어 그룹(G)를 생성하고,
    상기 단어별 출현 빈도수의 집합(S)은 wi (0 ≤ i ≤ N, N은 단어 수)이고,
    여기서, wi = (제1 txt, cnt) (제1 txt는 단어, cnt는 상기 제1 txt의 출현 빈도수)로 정의되며,
    상기 단어 그룹(G)은 ui (0 ≤ i ≤ M ≤ N, M은 그룹 수)이고,
    여기서, ui = (제2 txt, wj) (제2 txt는 상기 제1 txt의 단어 중 대표단어, wj는 상기 단어 그룹(G)에 속한 wj = (제1 txt, cnt)의 집합, 0 ≤ j ≤ N) 로 정의되며,
    상기 단계(c)에서,
    상기 단어 트리(T)는, 루트 노드를 제외하고 단어별로 노드가 구성되되, 상기 노드에는 상기 단어별 출현 빈도수 및 상기 단어 트리(T)에서의 깊이 값을 포함하고,
    상기 루트 노드는 상기 루트 노드를 제외한 모든 노드에 포함된 상기 단어별 출현 빈도수를 합한 값으로 설정되며,
    상기 단계(d)에서,
    상기 단어 트리(T)에서 i번째 노드 ti의 상기 응집도 점수를 계산하기 위한 식은 하기의 수학식에 의해 계산되고,

    여기서, n은 상기 단어 트리(T)에서 상기 ti의 깊이 값, cj는 상기 루트 노드부터 상기 ti까지 연결된 경로에서 j번째 깊이에 있는 단어의 freq 값으로, 이때 상기 freq 값은 상기 단어를 포함하는 단어군의 출현 빈도수로 정의되는, 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
KR1020210036766A 2021-03-22 2021-03-22 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법 KR102675245B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210036766A KR102675245B1 (ko) 2021-03-22 2021-03-22 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210036766A KR102675245B1 (ko) 2021-03-22 2021-03-22 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법

Publications (2)

Publication Number Publication Date
KR20220131725A KR20220131725A (ko) 2022-09-29
KR102675245B1 true KR102675245B1 (ko) 2024-06-17

Family

ID=83462131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210036766A KR102675245B1 (ko) 2021-03-22 2021-03-22 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법

Country Status (1)

Country Link
KR (1) KR102675245B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102599713B1 (ko) * 2023-06-14 2023-11-08 (주)유알피 문서 본문 내용을 기반으로 한 핵심 키워드 선정 시스템 및 그 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165572A (ja) 2006-12-28 2008-07-17 Fuji Xerox Co Ltd データ分類装置、データ分類プログラム
KR101668725B1 (ko) * 2015-03-18 2016-10-24 성균관대학교산학협력단 잠재 키워드 생성 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101353521B1 (ko) * 2012-05-10 2014-01-23 경북대학교 산학협력단 키워드 추출 방법 및 시스템, 그리고 대화 보조 장치
KR101624909B1 (ko) 2014-12-10 2016-05-27 주식회사 와이즈넛 정규화된 키워드 가중치에 기반한 연관 키워드 추출 방법
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
JP2008165572A (ja) 2006-12-28 2008-07-17 Fuji Xerox Co Ltd データ分類装置、データ分類プログラム
KR101668725B1 (ko) * 2015-03-18 2016-10-24 성균관대학교산학협력단 잠재 키워드 생성 방법 및 장치

Also Published As

Publication number Publication date
KR20220131725A (ko) 2022-09-29

Similar Documents

Publication Publication Date Title
US10437867B2 (en) Scenario generating apparatus and computer program therefor
KR101536520B1 (ko) 토픽을 추출하고, 추출된 토픽의 적합성을 평가하는 방법 및 서버
US10095685B2 (en) Phrase pair collecting apparatus and computer program therefor
Sharoff Open-source corpora: Using the net to fish for linguistic data
CN102576358B (zh) 单词对取得装置、单词对取得方法及其程序
CN105787025B (zh) 网络平台公共账号分类方法及装置
Gupta et al. Text summarization of Hindi documents using rule based approach
CN109255012B (zh) 机器阅读理解以及减少候选数据集规模的方法、装置
Sabuna et al. Summarizing Indonesian text automatically by using sentence scoring and decision tree
CN104361037B (zh) 微博分类方法及装置
CN109815401A (zh) 一种应用于Web人物搜索的人名消歧方法
CN107357777A (zh) 提取标签信息的方法和装置
Samonte et al. Sentiment and opinion analysis on Twitter about local airlines
KR102675245B1 (ko) 응집도 점수를 기반으로 한 소셜 빅데이터의 효율적인 키워드 추출방법
Al Mostakim et al. Bangla content categorization using text based supervised learning methods
CN107665442B (zh) 获取目标用户的方法及装置
Patel et al. Influence of Gujarati STEmmeR in supervised learning of web page categorization
Du et al. Identifying high-impact opioid products and key sellers in dark net marketplaces: An interpretable text analytics approach
Kurniawan et al. Optimization of sentiment analysis using naive Bayes with features selection chi-square and information gain for Accuracy Improvement
CN104063514B (zh) 垂直搜索方法
CN115048523A (zh) 文本分类方法、装置、设备以及存储介质
TWI534640B (zh) Chinese network information monitoring and analysis system and its method
Pramudita et al. Automatic Text Summarization of Madura Tourism Articles Using TF-IDF and K-Medoid Clustering
Caldeira et al. Classification of Public Administration Complaints
KR102691165B1 (ko) 소셜 빅데이터의 키워드 분석 정확도를 높이기 위한 복합 명사 추출방법

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