KR102594011B1 - 문서 분류 장치 및 방법 - Google Patents

문서 분류 장치 및 방법 Download PDF

Info

Publication number
KR102594011B1
KR102594011B1 KR1020160105071A KR20160105071A KR102594011B1 KR 102594011 B1 KR102594011 B1 KR 102594011B1 KR 1020160105071 A KR1020160105071 A KR 1020160105071A KR 20160105071 A KR20160105071 A KR 20160105071A KR 102594011 B1 KR102594011 B1 KR 102594011B1
Authority
KR
South Korea
Prior art keywords
document
words
vector
frequency
distribution information
Prior art date
Application number
KR1020160105071A
Other languages
English (en)
Other versions
KR20180020552A (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 KR1020160105071A priority Critical patent/KR102594011B1/ko
Publication of KR20180020552A publication Critical patent/KR20180020552A/ko
Application granted granted Critical
Publication of KR102594011B1 publication Critical patent/KR102594011B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/189Automatic justification

Landscapes

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

Abstract

일 실시예에 따른 문서 분류 장치는 문서에 포함된 복수 개의 단어 각각이 상기 문서에서 출현된 빈도수를 반영하는 빈도수 벡터를 산출하는 빈도수 산출부와, 상기 복수 개의 단어 각각이 상기 문서에서 출현되는 순서를 반영하는 제1 분산 정보 벡터를 산출하는 제1 분산 정보 산출부와, 상기 복수 개의 단어 중에서 적어도 하나의 단어를 포함하는 단어의 집합을 상기 순서에 따라서 순차적으로 선정하고, 상기 선정된 단어의 집합 각각이 갖는 특징을 반영하는 제2 분산 정보 벡터를 산출하는 제2 분산 정보 산출부와, 상기 빈도수 벡터, 상기 제1 분산 정보 산출부 및 상기 제2 분산 정보 산출부를 결합하여 결합 벡터를 생성하고, 상기 결합 벡터를 기초로 상기 문서가 분류되는 카테고리가 기 정의된 복수 개의 카테고리 중에서 어느 카테고리인지를 추측하는 앙상블부를 포함한다.

Description

문서 분류 장치 및 방법{APPARATUS AND METHOD FOR CLASSIFYING DOCUMENT}
본 발명은 문서 분류 장치 및 방법에 관한 것이다. 보다 자세하게는 복수 개의 단어를 포함하는 문서에 대해서, 해당 문서에서 복수 개의 단어 각각이 출현하는 빈도수, 해당 문서에서 복수 개의 단어가 출현하는 순서 및 해당 문서에서 인접하는 단어와의 관계를 고려하여 해당 문서가 어떤 카테고리에 속하는지를 분류하는 장치 및 방법에 관한 것이다.
시장 조사 업체인 IDC(International Data Corporation)가 최근에 발표한 디지털 유니버스 보고서(Digital Universe Study)에 따르면, 2011년에 생성된 데이터의 양은 약 1.8 제타바이트(1.8 zettabytes = 1.8조 기가바이트)로 추정되며, 향후 10년간 그 규모는 50배를 초과할 것이고, 이 중에서 비정형적(unstructured) 또는 반정형적(semi-structured) 데이터가 약 90%에 달할 것으로 전망하고 있다. 이를 기초로 살펴보면, 의미 있는 대다수의 정보는 비정형/반정형적 데이터의 형태로 존재할 것으로 예상할 수 있다.
텍스트마이닝(Text Mining)은 이러한 비정형적 또는 반정형적 데이터를 포함하는, 비정형적/반정형적인 대규모의 문서에서 의미있는 정보를 추출하여 가공하는 기술을 의미한다.
텍스트마이닝은 세부적으로 자동문서분류, 문서클러스터링, 연관관계분석, 지능형 정보검색, 정보추천, 개념망 등의 기술을 포함할 수 있으며, 이러한 텍스트마이닝의 세부 기술들은 비정형석/반정형적인 문서의 표현 형태를 기초로 실행된다.
이 중에서 자동문서분류는 문서를 기 정의된 복수 개의 카테고리 중에서 어느 하나의 카테고리로 분류하는 기술이다. 자동문서분류의 기술에는 나이브 베이지안 분류기(Naive Bayesian Classifier), 서포트 벡터 머신(Support Vector Machine, SVM) 등이 있다. 그러나 이들은 문서에 포함된 단어의 빈도수, 문서에서 단어가 출현하는 순서 및 문서에서 출현하는 단어가 어떠한 단어와 인접하여 있는지 등을 동시에 종합적으로 고려하지 못한다는 한계를 갖는다.
대한민국 공개특허공보 10-2015-0000092, 2015.01.02.
본 발명의 해결하고자 하는 과제는, 문서에 포함된 단어의 빈도수, 문서에서 단어가 출현하는 순서 및 문서에서 출현하는 단어가 어떠한 단어와 인접하여 있는지 등을 동시에 종합적으로 고려하여 문서를 특정 카테고리로 분류하는 기술을 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되지 않는다.
일 실시예에 따른 문서 분류 장치는 문서에 포함된 복수 개의 단어 각각이 상기 문서에서 출현된 빈도수를 반영하는 빈도수 벡터를 산출하는 빈도수 산출부와, 상기 복수 개의 단어 각각이 상기 문서에서 출현되는 순서를 반영하는 제1 분산 정보 벡터를 산출하는 제1 분산 정보 산출부와, 상기 복수 개의 단어 중에서 적어도 하나의 단어를 포함하는 단어의 집합을 상기 순서에 따라서 순차적으로 선정하고, 상기 선정된 단어의 집합 각각이 갖는 특징을 반영하는 제2 분산 정보 벡터를 산출하는 제2 분산 정보 산출부와, 상기 빈도수 벡터, 상기 제1 분산 정보 산출부 및 상기 제2 분산 정보 산출부를 결합하여 결합 벡터를 생성하고, 상기 결합 벡터를 기초로 상기 문서가 분류되는 카테고리가 기 정의된 복수 개의 카테고리 중에서 어느 카테고리인지를 추측하는 앙상블부를 포함한다.
일 실시예에 따른 문서 분류 장치에 의하여 수행되는 문서 분류 방법은 상기 문서에 포함된 복수 개의 단어 각각이 상기 문서에서 출현된 빈도수를 반영하는 빈도수 벡터를 산출하는 단계와, 상기 복수 개의 단어 각각이 상기 문서에서 출현되는 순서를 기 설정된 알고리즘을 기초로 반영하는 제1 분산 정보 벡터를 산출하는 단계와, 상기 복수 개의 단어 중에서 적어도 하나의 단어를 포함하는 단어의 집합을 상기 순서에 따라서 순차적으로 선정하고, 상기 선정된 단어의 집합 각각이 갖는 특징을 반영하는 제2 분산 정보 벡터를 산출하는 단계와, 상기 빈도수 벡터, 상기 제1 분산 정보 산출부 및 상기 제2 분산 정보 산출부를 결합하여 결합 벡터를 생성하는 단계와, 상기 결합 벡터를 기초로 상기 문서가 분류되는 카테고리가 기 정의된 복수 개의 카테고리 중에서 어느 카테고리인지를 추측하는 단계를 포함한다.
일 실시예에 따르면 문서의 카테고리를 추측하여 분류함에 있어서, 문서에 포함된 복수 개의 단어가 해당 문서에서 출현되는 빈도수, 복수 개의 단어가 문서에서 출현되는 순서 및 복수 개의 단어 각각이 어떠한 단어와 인접하였는지를 종합적으로 고려할 수 있으며, 따라서 기존의 문서의 카테고리를 추측하는 알고리즘보다 높은 정확도를 가지고 문서의 카테고리를 추측하여 분류할 수 있다.
도 1은 일 실시예에 따른 문서 분류 장치의 구성을 도시한 도면이다.
도 2는 도 1에 도시된 변환부가 문서를 행렬로 변환한 것을 도시한 도면이다.
도 3은 도 1에 도시된 제1 분산 정보 산출부가 이용하는 알고리즘을 개념적으로 도시한 도면이다.
도 4a 및 4b는 도 1에 도시된 제2 분산 정보 산출부에 의하여 컨볼루션 신경망의 원리가 적용된 것을 도시한 도면이다.
도 5는 도 1에 도시된 앙상블부의 구성을 도시한 도면이다.
도 6은 일 실시예에 따른 문서 분류 방법에 포함된 각 단계를 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 일 실시예에 따른 문서 분류 장치의 구성을 도시한 도면이다.
도 1을 참조하면, 문서 분류 장치는 빈도수 산출부(130), 제1 분산 정보 산출부(150), 제2 분산 정보 산출부(170) 및 앙상블부(190)를 포함하며, 실시예에 따라서 변환부(110)를 더 포함할 수 있으나 이에 한정되는 것은 아니다.
먼저, 문서 분류 장치(100) 및 이에 포함되는 전술한 구성들은 이하에서 설명할 기능을 수행하도록 프로그램된 명령어를 저장하는 메모리 및 이러한 명령어를 수행하는 마이크로프로세서를 포함하는 연산 장치에 의하여 구현 가능하다.
변환부(110)는 문서에 포함된 복수 개의 단어 각각에 대하여, 각각의 단어에 상응하는 벡터를 생성한다. 벡터는 그에 상응하는 단어가 해당 문서에서 갖는 의미, 예컨대 단어가 문서에서 갖는 문맥적 의미 또는 해당 단어가 다른 단어와 상호 간에 갖는 관계적 의미를 정량화된 값으로 나타낼 수 있다. 여기서, 벡터는, 문서에 포함된 단어 중에서 실질적으로 의미를 갖는 단어에 한정하여 생성될 수 있다. 예컨대, 상대적으로 크게 의미가 없는 조사나 수량사 등에 대해서는 벡터가 생성되지 않을 수 있다. 아울러, 변환부(110)는 예컨대 word2vec으로 알려진 알고리즘을 이용하여 단어를 전술한 벡터로 변환할 수 있다.
변환부(110)는 위와 같이 생성된 벡터를 기초로 문서를 행렬로 변환한다. 예컨대, 변환부(110)는 word2vec을 이용하여 변환된 벡터를 복수 개의 단어마다 쌓음으로써 행렬로 변환할 수 있다. 이 때, 복수 개의 단어 각각은 행렬의 행과 열 중 어느 하나에 맵핑되고, 복수 개의 단어 각각이 해당 문서에서 갖는 의미는 행렬의 행과 열 중 나머지 하나에 맵핑된다. 도 2는 변환부(110)가 이와 같이 문서를 행렬로 변환하여 나타내는 것을 도시한 도면이다. 도 2를 참조하면, 행렬(111)의 행에는 n개의 단어가 맵핑되어 있고, 열에는 n개의 단어 각각이 가질 수 있는 k개의 의미가 맵핑되어 있다. 아울러, 행렬(111)은 구성요소로써 전술한 정량화된 값을 갖는다.
다시 도 1을 참조하면, 빈도수 산출부(130)는 문서에 포함된 복수 개의 단어 각각이 해당 문서에서 출현되는 횟수인 빈도수를 산출한다. 이 때, 빈도수 산출부(130)는 예컨대 bag-of-words(bow)로 알려진 알고리즘을 이용하여 빈도수를 산출할 수 있다. bag-of-words 알고리즘의 경우, 입력은 복수 개의 단어를 포함하는 문서이며, 출력은 복수 개의 단어 각각이 해당 문서에서 출현되는 빈도수이다. 이러한 bag-of-words는 이미 공지된 알고리즘이므로 이에 대한 설명은 생략하기로 한다.
아울러, 빈도수 산출부(130)는 변환부(110)가 생성한 행렬을 입력으로 하여 빈도수를 산출할 수도 있다. 예컨대, 도 2를 참조하면, 빈도수 산출부(130)는 n개의 단어가 맵핑되어 있는 행들을 서로 간에 합산한 뒤, 합산에 의하여 산출된 벡터(크기는 k)를 산출할 수 있다. 이와 같이 산출된 벡터의 경우, 그 구성요소들은 각각 복수 개의 단어의 빈도수를 나타낸다.
다시 도 1을 참조하면, 제1 분산 정보 산출부(150)는 제1 분산 정보 벡터를 산출한다. 제1 분산 정보 벡터는 문서에 포함된 복수 개의 단어 각각이 해당 문서에서 출현되는 순서를 반영한다. 즉, 제1 분산 정보 벡터는 복수 개의 단어 및 이들 단어가 입력되는 순서를 인코딩한다. 예컨대, 문서가 2개의 문장 "I like you" 및 "We are friends"를 포함하고 있는 경우, 제1 분산 정보 벡터는 2개의 문장에 포함된 각각의 단어 "I", "like", "you", "We", "are" 및 "friends" 및 이들 단어가 해당 문서에서 등장한 순서를 반영한다.
이러한 제1 분산 정보 벡터는 n개의 단어가 문서에서 출현한 순서에 따라서 순차적으로 입력될 때마다, 입력된 단어 및 직전에 업데이트된 제1 분산 정보 벡터를 파라미터로 하여 업데이트된다. 즉, 제1 분산 정보 벡터는 순환적으로 n번 업데이트된다. 아울러, 제1 분산 정보 벡터는 그 크기가 도 2에 도시된 행렬에서 열의 개수인 k일 수 있다.
이 때, 제1 분산 정보 벡터는 인공 신경망 분야에서 회로형 순환 유닛(Gated Recurrent Unit, GRU)을 구성하는 히든 유닛(hidden unit)일 수 있다. 도 3은 이러한 제1 분산 정보 벡터가 회로형 순환 유닛에서 히든 유닛으로서 산출되는 과정을 도시한 도면이다. 도 3을 참조하면, 입력은 n개의 단어이며 xi(i는 1과 n 사이의 정수)로써 표시된다. 출력 yi는 본 발명의 실시예에서는 활용하지 않으므로 이에 대한 설명은 생략한다. 히든 유닛은 Si(i는 0과 n 사이의 정수)로써 표시되는데, 이러한 히든 유닛은 제1 분산 정보 벡터이다. 최초의 히든 유닛은 S0이며, 이는 첫번 째 입력인 x1을 기초로 업데이트된다. 다음으로, S1은 두번 째 입력인 x2 및 직전에 업데이트된 S0를 기초로 업데이트된다. 같은 방식으로 n개의 입력을 기초로 히든 유닛은 n번 업데이트되며, 그에 따라 최종적으로 Sn이 도출된다. 여기서 도출된 Sn이 최종적으로 제1 분산 정보 벡터이다.
전술한 바와 같이 히든 유닛인 제1 분산 정보 벡터는 회로형 순환 유닛을 이용하여 산출된다. 이 때, 회로형 순환 유닛에는 리셋 게이트(reset gate) 및 업데이트 게이트(update gate)가 포함되는데, 히든 유닛은 이러한 리셋 게이트와 업데이트 게이트의 상호 작용의 영향을 받아서 도출된다. 제1 분산 정보 벡터는 이러한 히든 유닛이라는 점에서, 제1 분산 정보 벡터 또한 리셋 게이트와 업데이트 게이트의 상호 작용의 영향을 받아서 도출된다. 다만, 리셋 게이트와 업데이트 게이트는 도 3에 도시되지는 않았으며, 아울러 리셋 게이트와 업데이트 게이트의 상호 작용의 영향을 받아서 히든 유닛을 도출하는 구체적인 과정 그 자체는 인공신경망 분야에서 이미 공지된 기술이므로 이에 대한 자세한 설명은 생략하기로 한다.
다시 도 1을 참조하면, 제2 분산 정보 산출부(170)는 제2 분산 정보 벡터를 산출한다. 제2 분산 정보 벡터는 문서 상에서 서로 근접하게 배치된 단어로부터 추출 가능한 특징을 구성요소로 갖는다.
제2 분산 정보 산출부(170)에 대하여 보다 구체적으로 살펴보면, 제2 분산 정보 산출부(170)는 컨볼루션부와 샘플링부를 포함한다.
컨볼루션부는 문서에 포함된 복수 개의 단어 중에서 적어도 하나의 단어를 포함하는 단어의 집합을 선정한다. 이 때, 컨볼루션부는 복수 개의 단어가 해당 문서에서 출현하는 순서에 따라서 순차적으로 단어의 집합을 선정할 수 있다. 도 4a는 이를 도시한 도면이다. 도 4a를 참조하면, 단어의 집합(112a, 112b) 각각은 2개의 단어를 포함하도록 선정된다. 먼저, 단어의 집합(112a)이 선정된 후, 단어의 집합(112b)이 선정될 수 있다. 단어의 집합의 선정은 n개의 단어에 대해서 순차적으로 수행된다.
여기서, 적어도 하나의 단어를 포함하는 단어의 집합을 선정하는 구성, 즉 도 4a에 도시된 점선으로 표시된 부분(112a, 112b)은 커널(kernel)이라고 지칭될 수 있다. 커널은 컨볼루션 신경망에서 등장하는 개념이다. 도 4b는 일 실시예에서 커널의 특성 및 이러한 커널에 의하여 산출되는 값의 개수를 도시한 도면이다. 도 4b를 참조하면, 커널은 그 크기가 1 내지 5일 수 있으며, 각각의 개수는 k1 내지 k5일 수 있다. 이 때, k1 내지 k5의 값을 더하면 도 2에 도시된 행렬에서 열의 개수인 k와 동일할 수 있다. 단어의 개수가 n개인 경우, 각각의 커널에 의하여 산출되는 값의 개수는 n개 내지 n-4개일 수 있다.
샘플링부는 각각의 커널에 의하여 산출된 n개 내지 n-4개의 값 중에서 하나를 선택(샘플링)한다. 일 실시예에서는 컨볼루션 신경망에서 공지된 방법인 최대 샘플링(max sampling)을 이용하여 하나의 값을 선택한다. 샘플링부는 n개 내지 n-4개의 값 중에서 어느 하나를 선택하고 이를 k개의 커널에 대해서 반복한다. 그 결과, k개의 값이 도출된다. 샘플링부는 k개의 값을 구성요소로 갖는 벡터를 산출한다. 산출된 벡터는 그 크기가 k인 제2 분산 정보 벡터이다.
여기서, 컨볼루션 신경망을 구성하는 컨볼루션부 및 샘플링부가 제2 분산 정보 벡터를 산출하는 구체적인 과정 그 자체는 해당 분야에서 이미 공지된 기술이므로 이에 대한 자세한 설명은 생략하기로 한다.
제2 분산 정보 벡터는 문서에 포함된 복수 개의 단어 중 서로 근접하게 배치된 단어를 단어의 집합으로 묶고, 그로부터 추출 가능한 특징을 반영한다. 예컨대, 문서에 "안녕하십니까 홍길동 기자입니다"라는 문장이 있고, 커널의 크기가 3인 경우, 제2 분산 정보 벡터는 안녕하십니까라는 인삿말과 이름 및 직업을 나타내는 단어가 단어의 집합으로 묶여있음을 반영할 수 있는데, 이는 해당 문서가 '뉴스'와 관련된 것임을 나타낼 수 있다. 즉, 제2 분산 정보 벡터는 문서에 포함된 복수 개의 단어 중 서로 근접하게 배치되어 있는 단어를 조사하고 그로부터 의미있는 특징을 제공할 수 있다.
다시 도 1을 참조하면, 앙상블부(190)는 빈도수 벡터, 제1 분산 정보 벡터 및 제2 분산 정보 벡터를 결합하여 결합 벡터를 생성한다. 또한 앙상블부(190)는 결합 벡터를 기초로 해당 문서가 복수 개의 카테고리 중에서 어느 카테고리에 속하는지 여부를 추측한다.
이러한 앙상블부(190)는 비선형 함수 적용부(191), 회귀 분석 적용부(193) 및 추측부(195)를 포함할 수 있다. 도 5는 앙상블부(190)의 이러한 구성을 도시한 도면이다.
도 5를 참조하면, 비선형 함수 적용부(191)는 빈도수 벡터, 제1 분산 정보 벡터 및 제2 분산 정보 벡터를 결합하여 결합 벡터를 생성한다. 여기서, 빈도수 벡터, 제1 분산 정보 벡터 및 제2 분산 정보 벡터는 서로 크기가 동일(예컨대 크기가 k)할 수 있다.
비선형 함수 적용부(191)는 생성된 결합 백터에 비선형 함수를 적용한다. 비선형 함수는 예컨대 하이퍼블릭 탄젠트 함수일 수 있다. 결합 벡터는 비선형 함수의 적용에 의하여 비선형적인 문제를 해결하는데에 적합하도록 변형될 수 있다. 예컨대, 문서가 어느 카테고리에 속하는지를 결정함에 있어서, 비선형 함수를 적용한 결합 벡터를 이용하는 것이 비선형 함수를 적용하지 않은 결합 벡터를 이용하는 것보다 용이할 수 있다. 아래의 수학식 1은 결합 벡터에 비선형 함수를 적용한 것을 예시한 것이다.
Figure 112016080367511-pat00001
여기서, v는 빈도수 벡터이고, g는 제1 분산 정보 벡터이며, c는 제2 분산 정보 벡터이다. 아울러, Wo1, bo, ho는 신경망(neural net)의 파라미터이며, 이들 각각은 입력 값에 대한 선형 변환 행렬(Wo1), 선형변환 결과를 조정해주는 바이어스(bias)(bo), 비선형 함수가 적용된 결합 벡터(ho)를 의미한다.
회귀 분석 적용부(193)는 비선형 함수가 적용된 결합 벡터에 로지스틱 회귀 분석을 적용한다. 이를 통해 비선형 함수가 적용된 결합 벡터는, 해당 문서가 기 정의된 복수 개의 카테고리 각각에 속할 확률값을 구성요소로 갖게 된다.
추측부(195)는 회귀 분석 적용부(193)에 의하여 로지스틱 회귀 분석이 적용된, 비선형 함수가 적용된 결합 벡터를 기초로 해당 문서가 어느 카테고리에 속하는지를 추측한다. 예컨대, 추측부(195)는 해당 문서가 가장 높은 확률값을 갖는 카테고리에 속한다고 추측할 수 있다.
이상에서 살펴본 바와 같이, 일 실시예에 따르면 문서의 카테고리를 추측하여 분류함에 있어서, 문서에 포함된 복수 개의 단어가 해당 문서에서 출현되는 빈도수, 복수 개의 단어가 문서에서 출현되는 순서 및 복수 개의 단어 각각이 어떠한 단어와 인접하였는지를 종합적으로 고려할 수 있으며, 따라서 기존의 문서의 카테고리를 추측하는 알고리즘보다 높은 정확도를 가지고 문서의 카테고리를 추측하여 분류할 수 있다.
도 6은 일 실시예에 따른 문서 분류 방법의 각 단계를 도시한 도면이다. 도 6에 도시된 문서 분류 방법의 각 단계는 도 1에 도시된 문서 분류 장치에 의하여 실행 가능하다. 아울러, 실시예에 따라서 문서 분류 방법은 도시되지 않은 단계를 더 포함하거나 또는 도시된 단계를 포함하지 않고 수행될 수 있다.
도 6을 참조하면, 문서 분류 방법은 문서에 포함된 복수 개의 단어 각각이 상기 문서에서 출현된 빈도수를 반영하는 빈도수 벡터를 산출하는 단계(S110)와, 상기 복수 개의 단어 각각이 상기 문서에서 출현되는 순서를 기 설정된 알고리즘을 기초로 반영하는 제1 분산 정보 벡터를 산출하는 단계(S130)와, 상기 복수 개의 단어 중에서 적어도 하나의 단어를 포함하는 단어의 집합을 상기 순서에 따라서 순차적으로 선정하고, 상기 선정된 단어의 집합 각각이 갖는 특징을 반영하는 제2 분산 정보 벡터를 산출하는 단계(S150)와, 상기 빈도수 벡터, 상기 제1 분산 정보 산출부 및 상기 제2 분산 정보 산출부를 결합하여 결합 벡터를 생성하는 단계(S170)와, 상기 결합 벡터를 기초로 상기 문서가 분류되는 카테고리가 기 정의된 복수 개의 카테고리 중에서 어느 카테고리인지를 추측하는 단계(S190)를 포함한다.
여기서 문서 분류 방법에 포함된 전술한 각 단계(S110 내지 S190)는 도 1에 도시된 문서 분류 장치(100)를 설명한 내용과 실질적으로 동일하므로, 그 설명은 생략하기로 한다.
한편, 문서 분류 방법에 포함된 각 단계(S110 내지 S190)는 이를 수행하도록 프로그램된 컴퓨터 프로그램이 기록된 판독 가능한 기록매체 또는 이를 수행하도록 판독가능한 기록매체에 저장된 컴퓨터 프로그램으로 구현 가능하다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
일 실시예에 따르면, 대용량의 문서에 대하여 높은 정확도로 그 카테고리를 분류할 수 있다.
100: 문서 분류 장치
130: 빈도수 산출부
150: 제1 분산 정보 산출부
170: 제2 분산 정보 산출부
190: 앙상블부

Claims (6)

  1. 문서에 포함된 복수 개의 단어 각각이 상기 문서에서 출현된 빈도수를 반영하는 빈도수 벡터를 산출하는 빈도수 산출부와,
    상기 복수 개의 단어 각각이 상기 문서에서 출현되는 순서를 반영하는 제1 분산 정보 벡터를 산출하는 제1 분산 정보 산출부와,
    상기 복수 개의 단어 중에서 적어도 하나의 단어를 포함하는 단어의 집합을 상기 순서에 따라서 순차적으로 선정하고, 상기 선정된 단어의 집합 각각이 갖는 특징을 반영하는 제2 분산 정보 벡터를 산출하는 제2 분산 정보 산출부와,
    상기 빈도수 벡터, 상기 제1 분산 정보 벡터 및 상기 제2 분산 정보 벡터를 결합하여 결합 벡터를 생성하고, 상기 결합 벡터를 기초로 상기 문서가 분류되는 카테고리가 기 정의된 복수 개의 카테고리 중에서 어느 카테고리인지를 추측하는 앙상블부를 포함하는
    문서 분류 장치.
  2. 제 1 항에 있어서,
    상기 문서 분류 장치는,
    상기 복수 개의 단어 각각이 상기 문서에서 갖는 의미를 정량화된 값으로 산출하며, 상기 복수 개의 단어를 행렬의 행과 열 중에서 어느 하나에 맵핑하고 상기 복수 개의 단어 각각에 대한 의미를 상기 행과 열 중에서 나머지 하나에 맵핑함으로써 상기 문서를 상기 행렬로 변환하는 변환부를 더 포함하고,
    상기 빈도수 산출부는, 상기 행과 열 중에서 상기 복수 개의 단어가 맵핑된 것을 서로 간에 합산하여 상기 빈도수 벡터를 산출하며,
    상기 제1 분산 정보 산출부는, 상기 복수 개의 단어가 맵핑된 것이 상기 순서에 따라서 순차적으로 입력될 때마다 상기 제1 분산 정보 벡터를 업데이트시키되, 직전에 업데이트된 제1 분산 정보 벡터를 함께 고려하여 업데이트시키고,
    상기 제2 분산 정보 산출부는, 상기 복수 개의 단어가 맵핑된 것을 상기 순서에 따라서 순차적으로 적어도 하나 이상 선정하여 상기 단어의 집합을 생성하고, 상기 생성된 단어의 집합 각각이 갖는 특징을 반영하는 제2 분산 정보 벡터를 산출하는
    문서 분류 장치.
  3. 제 1 항에 있어서,
    상기 앙상블부는,
    상기 결합 벡터에 비선형 함수를 적용시키는 비선형 함수 적용부와,
    상기 비선형 함수가 적용된 결과에 로지스틱 회귀 분석을 적용하는 회귀 분석 적용부와,
    상기 로지스틱 회귀 분석이 적용된 결과를 기초로 상기 문서가 분류되는 카테고리를 추측하는 추측부를 포함하는
    문서 분류 장치.
  4. 제 3 항에 있어서,
    상기 비선형 함수는 하이퍼블릭 탄젠트 함수인
    문서 분류 장치.
  5. 문서 분류 장치에 의하여 수행되는 문서 분류 방법으로서,
    상기 문서에 포함된 복수 개의 단어 각각이 상기 문서에서 출현된 빈도수를 반영하는 빈도수 벡터를 산출하는 단계와,
    상기 복수 개의 단어 각각이 상기 문서에서 출현되는 순서를 반영하는 제1 분산 정보 벡터를 산출하는 단계와,
    상기 복수 개의 단어 중에서 적어도 하나의 단어를 포함하는 단어의 집합을 상기 순서에 따라서 순차적으로 선정하고, 상기 선정된 단어의 집합 각각이 갖는 특징을 반영하는 제2 분산 정보 벡터를 산출하는 단계와,
    상기 빈도수 벡터, 상기 제1 분산 정보 벡터 및 상기 제2 분산 정보 벡터를 결합하여 결합 벡터를 생성하는 단계와,
    상기 결합 벡터를 기초로 상기 문서가 분류되는 카테고리가 기 정의된 복수 개의 카테고리 중에서 어느 카테고리인지를 추측하는 단계를 포함하는
    문서 분류 방법.
  6. 문서에 포함된 복수 개의 단어 각각이 상기 문서에서 출현된 빈도수를 반영하는 빈도수 벡터를 산출하는 단계와,
    상기 복수 개의 단어 각각이 상기 문서에서 출현되는 순서를 반영하는 제1 분산 정보 벡터를 산출하는 단계와,
    상기 복수 개의 단어 중에서 적어도 하나의 단어를 포함하는 단어의 집합을 상기 순서에 따라서 순차적으로 선정하고, 상기 선정된 단어의 집합 각각이 갖는 특징을 반영하는 제2 분산 정보 벡터를 산출하는 단계와,
    상기 빈도수 벡터, 상기 제1 분산 정보 벡터 및 상기 제2 분산 정보 벡터를 결합하여 결합 벡터를 생성하는 단계와,
    상기 결합 벡터를 기초로 상기 문서가 분류되는 카테고리가 기 정의된 복수 개의 카테고리 중에서 어느 카테고리인지를 추측하는 단계를 수행하도록 프로그램된
    컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램.
KR1020160105071A 2016-08-18 2016-08-18 문서 분류 장치 및 방법 KR102594011B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160105071A KR102594011B1 (ko) 2016-08-18 2016-08-18 문서 분류 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160105071A KR102594011B1 (ko) 2016-08-18 2016-08-18 문서 분류 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180020552A KR20180020552A (ko) 2018-02-28
KR102594011B1 true KR102594011B1 (ko) 2023-10-24

Family

ID=61401443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160105071A KR102594011B1 (ko) 2016-08-18 2016-08-18 문서 분류 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102594011B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101494795B1 (ko) 2014-06-25 2015-02-23 서울시립대학교 산학협력단 문서를 매트릭스로 표현하는 방법
KR101585644B1 (ko) * 2015-02-03 2016-01-14 가천대학교 산학협력단 단어 연관성 분석을 이용한 문서 분류 장치, 방법 및 이를 위한 컴퓨터 프로그램
KR101623860B1 (ko) 2015-04-08 2016-05-24 서울시립대학교 산학협력단 문서 요소에 대한 유사도를 산출하는 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101562232B1 (ko) 2013-06-24 2015-10-23 서울시립대학교 산학협력단 자동문서분류시스템 성능개선을 위한 특징 정보 추상화 기법
KR101562279B1 (ko) * 2013-09-16 2015-10-30 고려대학교 산학협력단 사용자 의도 추론에 기반한 휴대용 단말 장치 및 이를 이용한 컨텐츠 추천 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101494795B1 (ko) 2014-06-25 2015-02-23 서울시립대학교 산학협력단 문서를 매트릭스로 표현하는 방법
KR101585644B1 (ko) * 2015-02-03 2016-01-14 가천대학교 산학협력단 단어 연관성 분석을 이용한 문서 분류 장치, 방법 및 이를 위한 컴퓨터 프로그램
KR101623860B1 (ko) 2015-04-08 2016-05-24 서울시립대학교 산학협력단 문서 요소에 대한 유사도를 산출하는 방법

Also Published As

Publication number Publication date
KR20180020552A (ko) 2018-02-28

Similar Documents

Publication Publication Date Title
US10977581B2 (en) Systems and methods for secondary knowledge utilization in machine learning
US20240152617A1 (en) Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning
Haque et al. Heterogeneous ensemble combination search using genetic algorithm for class imbalanced data classification
US10713783B2 (en) Neural network classification
JP6163461B2 (ja) クラス分類装置、方法、及びプログラム
CN109299279B (zh) 一种数据处理方法、设备、系统和介质
US20220383157A1 (en) Interpretable machine learning for data at scale
CN112651418B (zh) 数据分类方法、分类器训练方法及系统
Eichinski et al. A convolutional neural network bird species recognizer built from little data by iteratively training, detecting, and labeling
González et al. BDD-based optimization for the quadratic stable set problem
Roayaei On the binarization of Grey Wolf optimizer: a novel binary optimizer algorithm
US9378418B2 (en) Methods and system for classifying, processing, and/or generating automatic responses to mail items
Qadrini Handling Unbalanced Data With Smote Adaboost
Hadjadji et al. Multiple one-class classifier combination for multi-class classification
KR102594011B1 (ko) 문서 분류 장치 및 방법
US9792561B2 (en) Learning method, information conversion device, and recording medium
JP6927409B2 (ja) 情報処理装置、制御方法、及びプログラム
Zouggar et al. A new function for ensemble pruning
Damiran et al. Author Identification-An Experiment Based on Mongolian Literature Using Decision Trees
US11514311B2 (en) Automated data slicing based on an artificial neural network
KR102018788B1 (ko) 이미지 분류 시스템 및 방법
Ghosh et al. Understanding Machine Learning
Ismael et al. A new approach to arabic spam tweet detection in Twitter using machine learning algorithms
Rustamov Comparison of different models in predicting habitat suitability of rare species in Uzbekistan: 8 rare Tulipa species case-study
Bunse et al. Regularization-based methods for ordinal quantification

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