KR101860472B1 - Apparatus and method of generation and classification for text classifier based on open directory project - Google Patents

Apparatus and method of generation and classification for text classifier based on open directory project Download PDF

Info

Publication number
KR101860472B1
KR101860472B1 KR1020160062645A KR20160062645A KR101860472B1 KR 101860472 B1 KR101860472 B1 KR 101860472B1 KR 1020160062645 A KR1020160062645 A KR 1020160062645A KR 20160062645 A KR20160062645 A KR 20160062645A KR 101860472 B1 KR101860472 B1 KR 101860472B1
Authority
KR
South Korea
Prior art keywords
phrase
category
score
word
text
Prior art date
Application number
KR1020160062645A
Other languages
Korean (ko)
Other versions
KR20170131893A (en
Inventor
이상근
신해용
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020160062645A priority Critical patent/KR101860472B1/en
Publication of KR20170131893A publication Critical patent/KR20170131893A/en
Application granted granted Critical
Publication of KR101860472B1 publication Critical patent/KR101860472B1/en

Links

Images

Classifications

    • G06F17/30598
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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
    • G06F16/367Ontology
    • G06F17/2247
    • G06F17/30327
    • G06F17/30734
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents

Abstract

본 발명은 텍스트 분류 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라, 분류 대상 텍스트로부터 단어를 추출하고, 추출된 단어로부터 분류 대상 텍스트의 어구를 추출하며, 추출된 단어, 추출된 어구 및 텍스트 분류 모델에 기초하여, 분류 대상 텍스트에 대응하는 카테고리를 분류한다. 그리고 텍스트 분류 모델은 오픈 디렉터리 프로젝트에 기초하여 생성된다.The present invention includes a processor for executing a program and a memory in which a text classification program is stored. At this time, according to the execution of the program, the processor extracts a word from the classification target text, extracts a phrase of the classification target text from the extracted word, and based on the extracted word, the extracted word and the text classification model, The category corresponding to the category is classified. And a text classification model is generated based on an open directory project.

Description

오픈 디렉터리 프로젝트 기반의 텍스트 분류기, 및 텍스트 분류기의 생성 및 분류 방법{APPARATUS AND METHOD OF GENERATION AND CLASSIFICATION FOR TEXT CLASSIFIER BASED ON OPEN DIRECTORY PROJECT}FIELD OF THE INVENTION [0001] The present invention relates to a method and apparatus for generating and classifying a text classifier and a text classifier based on an open directory project,

본 발명은 오픈 디렉터리 프로젝트 기반의 텍스트 분류기, 및 텍스트 분류기의 생성 및 분류 방법에 관한 것이다.The present invention relates to a text classifier based on an open directory project, and a method for generating and classifying a text classifier.

오픈 디렉터리 프로젝트(open directory project)는 일종의 웹 상의 텍스트 데이터베이스이다. 오픈 디렉터리 프로젝트는 웹 상의 390만 개 이상의 웹 문서 등의 텍스트를 계층적 온톨로지(hierarchical ontology)를 이용하여 카테고리(category)로 세분화하고, 트리(tree) 자료 구조(data structure)를 이용하여 분류한 것이다. The open directory project is a kind of text database on the web. The Open Directory project has classified texts, such as more than 3.9 million Web documents on the Web, into categories using hierarchical ontology and classifying them using a tree data structure .

오픈 디렉터리 프로젝트의 카테고리에 기반하여 신규 텍스트의 카테고리를 분류하기 위한 종래기술은 나이브 베이즈(Naive Bays), k-근접 이웃 방법(k-Nearest Neighbor), 서포트 벡터 머신(Support Vector Machine) 등 기계 학습 알고리즘(machine learning algorithm) 기반 기존 텍스트 분류(text classification) 기법을 활용하는 것이다. 그러나 이러한 종래 기술을 이용하는 경우, 오픈 디렉터리 프로젝트의 카테고리가 증가함에 따라, 텍스트 분류기를 생성할 때 목표(target)가 되는 카테고리에 포함된 학습 데이터가 부족하고, 이 학습 데이터를 이용하여 학습된 텍스트 분류기의 분류 정확도가 낮아진다는 문제점이 있다.Conventional techniques for classifying categories of new text based on categories of Open Directory projects include machine learning such as Naive Bays, k-Nearest Neighbor, Support Vector Machine, And utilize existing text classification techniques based on an algorithm (machine learning algorithm). However, in the case of using this conventional technology, as the category of the open directory project increases, the learning data contained in the category that becomes the target becomes insufficient when the text classifier is created, There is a problem that the classification accuracy of the second embodiment is lowered.

이와 관련되어, 한국 등록특허공보 제10-1580152호(발명의 명칭: "조상 후손 카테고리를 활용한 오픈 디렉터리 프로젝트 기반 텍스트 분류 방법 및 장치")는 오픈 디렉토리 프로젝트에 포함된 오픈 디렉터리 프로젝트에 포함된 부모 및 자손 데이터뿐만 아니라 조상 및 후손 데이터를 이용하여 신규 텍스트의 카테고리를 분류하는 방법 및 장치를 개시하고 있다. In this connection, Korean Patent Registration No. 10-1580152 entitled " Open Directory Project-Based Text Classification Method and Apparatus Utilizing Ancestral Descendant Categories " And a method and apparatus for classifying categories of new text using ancestor and descendant data as well as descendant data.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 단어 및 어구를 이용하여, 텍스트의 카테고리를 분류하는 오픈 디렉터리 프로젝트 기반의 텍스트 분류기 및 텍스트 분류기의 생성 및 분류 방법을 제공한다. SUMMARY OF THE INVENTION The present invention provides a method of generating and classifying a text classifier and a text classifier based on an open directory project for classifying text categories using words and phrases.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 오픈 디렉터리 프로젝트 기반의 텍스트 분류기는 텍스트 분류 프로그램이 저장된 메모리 및 프로그램을 실행하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라, 분류 대상 텍스트로부터 단어를 추출하고, 추출된 단어로부터 분류 대상 텍스트의 어구를 추출하며, 추출된 단어, 추출된 어구 및 텍스트 분류 모델에 기초하여, 분류 대상 텍스트에 대응하는 카테고리를 분류한다. 그리고 텍스트 분류 모델은 오픈 디렉터리 프로젝트에 기초하여 생성된다.As a technical means for achieving the above technical object, an open directory project based text classifier according to the first aspect of the present invention includes a processor for executing a program and a memory in which a text classification program is stored. At this time, according to the execution of the program, the processor extracts a word from the classification target text, extracts a phrase of the classification target text from the extracted word, and based on the extracted word, the extracted word and the text classification model, The category corresponding to the category is classified. And a text classification model is generated based on an open directory project.

또한, 본 발명의 제 2 측면에 따른 오픈 디렉터리 프로젝트 기반의 텍스트 분류기의 텍스트 분류 방법은 분류 대상 텍스트로부터 단어를 추출하는 단계; 추출된 단어로부터 분류 대상 텍스트에 대응하는 어구를 추출하는 단계; 및 추출된 단어, 추출된 어구 및 텍스트 분류 모델에 기초하여, 분류 대상 텍스트에 대응하는 카테고리를 분류하는 단계를 포함한다. 이때, 텍스트 분류 모델은 오픈 디렉터리 프로젝트에 기초하여 생성된다. According to a second aspect of the present invention, there is provided a method of classifying text in an open directory project based text classifier, comprising: extracting words from a text to be classified; Extracting a word corresponding to the classification target text from the extracted word; And classifying the category corresponding to the classification target text based on the extracted word, the extracted phrase and the text classification model. At this time, the text classification model is generated based on the open directory project.

그리고 본 발명의 제 3 측면에 따른 오픈 디렉터리 프로젝트 기반의 텍스트 분류기의 텍스트 분류 모델 생성 방법은 오픈 디렉터리 프로젝트의 각 카테고리로부터 단어를 추출하는 단계; 추출된 단어에 기초하여, 상기 각 카테고리로부터 어구를 추출하는 단계; 추출된 단어 및 상기 추출된 어구에 기초하여, 각 카테고리에 대응하는 단어 및 어구 빈도 벡터를 생성하는 단계; 및 각 카테고리에 대응하는 단어 및 어구 빈도 벡터에 기초하여, 텍스트 분류 모델을 생성하는 단계를 포함한다. 이때, 각 카테고리에 대응하는 단어 및 어구는 각 카테고리에 저장된 문서 집합으로부터 추출된다.According to a third aspect of the present invention, there is provided a method of generating a text classification model of an open directory project based text classifier, comprising: extracting words from each category of an open directory project; Extracting a phrase from each of the categories based on the extracted word; Generating a word and a phrase frequency vector corresponding to each category based on the extracted word and the extracted phrase; And generating a text classification model based on the word and phrase frequency vectors corresponding to each category. At this time, words and phrases corresponding to each category are extracted from the document set stored in each category.

본 발명은 오픈 디렉터리 프로젝트의 각 카테고리 문서로부터 추출된 단어 및 어구에 기초하여, 텍스트 분류기를 생성한다. 그러므로 본 발명은 기존 단어만으로 텍스트 분류기를 학습할 때 보다 분류 정확도가 향상될 수 있다.The present invention creates a text classifier based on words and phrases extracted from each category document of an open directory project. Therefore, the present invention can improve classification accuracy compared to learning a text classifier using only existing words.

도 1은 오픈 디렉터리 프로젝트의 구조에 대한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 텍스트 분류기의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 텍스트 분류기의 텍스트 분류 모델의 생성 과정에 대한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 어구 추출의 예시도이다.
도 5는 본 발명의 일 실시예에 따른 텍스트 분류기의 텍스트 분류 모듈의 블록도이다.
도 6은 본 발명의 일 실시예에 따른 텍스트 분류기의 텍스트 분류 방법의 순서도이다.
도 7은 본 발명의 일 실시예에 따른 텍스트 분류기의 텍스트 분류 모델 생성 방법의 순서도이다.
Figure 1 is an exemplary diagram of the structure of an Open Directory project.
2 is a block diagram of a text classifier according to an embodiment of the present invention.
3 is a block diagram illustrating a process of generating a text classification model of a text classifier according to an exemplary embodiment of the present invention.
FIG. 4 is an illustration of a phrase extraction according to an embodiment of the present invention. FIG.
5 is a block diagram of a text classifier module of a text classifier according to an embodiment of the present invention.
6 is a flowchart of a text classification method of a text classifier according to an embodiment of the present invention.
7 is a flowchart of a method of generating a text classification model of a text classifier according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when a part is referred to as "including " an element, it does not exclude other elements unless specifically stated otherwise.

다음은 도 1을 참조하여, 오픈 디렉터리 프로젝트를 설명한다.The following describes an open directory project with reference to FIG.

도 1은 오픈 디렉터리 프로젝트의 구조에 대한 예시도이다.Figure 1 is an exemplary diagram of the structure of an Open Directory project.

오픈 디렉터리 프로젝트는 카테고리를 노드(node)로 가지는 트리 구조로 표현될 수 있다. 트리 구조는 그래프(graph) 구조의 일종으로 순환 구조가 없고, 서로 다른 두 노드를 잇는 길이 하나뿐인 자료 구조이다.An open directory project can be represented as a tree structure with categories as nodes. Tree structure is a kind of graph structure. There is no circulation structure, and there is only one data structure connecting two different nodes.

하나 이상의 노드를 포함하는 트리 구조는 하나의 최상위 노드와 하나 이상의 최하위 노드를 가질 수 있다. 최상위 노드는 루트 노드(root node)라고도 하며, 최하위 노드는 리프 노드(leaf node)라고 한다. 도 1에서 최상위 노드는 카테고리 C1이 되고, 최하위 노드는 C4, C5, C6 및 C7이다.A tree structure containing one or more nodes may have one top node and one or more bottom nodes. The top node is also called the root node, and the bottom node is called the leaf node. In FIG. 1, the top node is the category C 1 , and the bottom node is C 4 , C 5 , C 6, and C 7 .

트리 구조에서 임의 노드의 부모 노드(parent node)는 임의 노드와 상위에 연결된 노드를 의미한다. 만약, 임의 노드가 최상위 노드인 경우에는 부모 노드가 없을 수 있다. 최상위 노드가 아닌 임의 노드는 하나의 부모 노드를 가진다. 자식 노드(child node)는 임의 노드와 하위에 연결된 노드를 의미한다. 만약, 임의 노드가 최하위 노드인 경우에는 자식 노드가 없을 수 있다. 최하위 노드가 아닌 임의 노드는 하나 이상의 자식 노드를 가진다. 예를 들어, 도1의 카테고리 C2의 부모 노드는 카테고리 C1이며, 자식 노드는 카테고리 C4와 카테고리 C5이다.In a tree structure, a parent node of an arbitrary node means an arbitrary node and a node connected to an upper node. If an arbitrary node is a top node, there may be no parent node. An arbitrary node that is not a top node has one parent node. A child node means an arbitrary node and a node connected to the child node. If an arbitrary node is the lowest node, there may be no child node. An arbitrary node that is not the lowest node has one or more child nodes. For example, the parent node of category C 2 in FIG. 1 is category C 1 , and the child nodes are category C 4 and category C 5 .

다음은 도 2 내지 도 5를 참조하여, 본 발명의 일 실시예에 따른 오픈 디렉터리 프로젝트(200) 기반 텍스트 분류기(100)를 설명한다.2 to 5, an open directory project 200 based text classifier 100 according to an embodiment of the present invention will be described.

도 2는 본 발명의 일 실시예에 따른 텍스트 분류기(100)의 블록도이다.2 is a block diagram of a text classifier 100 according to an embodiment of the present invention.

오픈 디렉터리 프로젝트(200) 기반 텍스트 분류기(100)는 기생성된 분류 모델에 기초하여, 분류 대상 텍스트의 오픈 디렉터리 프로젝트(200) 상의 카테고리를 분류한다. 이때, 텍스트 분류기(100)는 메모리 및 프로세서(120)를 포함한다.The open directory project 200-based text classifier 100 classifies categories on the open directory project 200 of the classification target text based on the generated classification models. At this time, the text classifier 100 includes a memory and a processor 120.

메모리(110)는 텍스트 분류 프로그램이 저장된다. 이때, 메모리(110)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치를 통칭하는 것이다.The memory 110 stores a text classification program. At this time, the memory 110 collectively refers to a non-volatile storage device that keeps stored information even when no power is supplied, and a volatile storage device that requires power to maintain stored information.

프로세서(120)는 텍스트 분류 프로그램의 실행에 따라, 분류 대상 텍스트로 단어 및 어구를 추출한다. 그리고 프로세서(120)는 추출된 단어 및 어구와 미리 생성된 텍스트 분류 모델(250)에 기초하여, 분류 대상 텍스트에 대응하는 카테고리를 분류한다. 이때, 텍스트 분류 모델(250)은 프로세서(120)가 오픈 디렉터리 프로젝트(200)에 기초하여 미리 생성된 것이다.The processor 120 extracts words and phrases from the classification target text according to the execution of the text classification program. Then, the processor 120 classifies the category corresponding to the classification target text based on the extracted words and phrases and the previously generated text classification model 250. At this time, the text classification model 250 is generated in advance based on the open directory project 200 by the processor 120.

이때, 프로세서(120)는 오프라인 작업 및 온라인 작업으로 구분하여 수행할 수 있다. 이때, 오프라인 작업은 프로세서(120)가 텍스트 분류 모델(250)을 생성하는 것을 의미할 수 있다. 또한, 온라인 작업은 프로세서(120)가 오프라인 작업을 통하여, 생성된 텍스트 분류 모델(250)에 기초하여, 신규 텍스트의 카테고리를 분류하는 것을 의미할 수 있다.At this time, the processor 120 can be divided into offline work and online work. At this time, the offline operation may mean that the processor 120 generates the text classification model 250. In addition, the online operation may mean that the processor 120 classifies the category of the new text based on the generated text classification model 250 through an offline operation.

텍스트 분류 모델(250) 생성 과정은 도 3을 참조하여 자세히 설명한다.The process of generating the text classification model 250 will be described in detail with reference to FIG.

도 3은 본 발명의 일 실시예에 따른 텍스트 분류기(100)의 텍스트 분류 모델(250)의 생성 과정에 대한 블록도이다.3 is a block diagram of a process of generating a text classification model 250 of the text classifier 100 according to an embodiment of the present invention.

프로세서(120)는 텍스트 분류 프로그램에 포함된 텍스트 분류 모델(250) 생성 모듈(220)을 실행하여, 오픈 디렉터리 프로젝트(200)의 기 분류된 카테고리에 포함된 웹 페이지(210)를 이용하여 텍스트 분류 모델(250)을 생성할 수 있다. 이때, 텍스트 분류 모델(250) 생성 모듈(220)은 단어 추출 모듈(221), 어구 추출 모듈(222), 어구 선택 모듈(223) 및 분류 모델링 모듈(224)을 포함할 수 있다.The processor 120 executes the text classification model 250 generation module 220 included in the text classification program to classify the text classification using the web page 210 included in the pre- Model 250 may be generated. At this time, the text classification model 250 generation module 220 may include a word extraction module 221, a phrase extraction module 222, a phrase selection module 223, and a classification modeling module 224.

이때, 도 3은 오픈 디렉터리 프로젝트(200)에 웹 페이지(210)를 이용하여, 텍스트 분류 모델(250)을 생성하는 것으로 도시되어 있다. 그러나 텍스트 분류 모델은 오픈 디렉터리 프로젝트(200)에 포함된 웹 페이지(210)뿐만 아니라 뉴스 기사, 논문 및 서적과 같은 모든 종류의 텍스트 및 문서를 포함할 수 있다.3 illustrates the creation of the text classification model 250 using the web page 210 in the open directory project 200. However, the text classification model may include all kinds of text and documents, such as news articles, articles and books, as well as web pages 210 included in the open directory project 200.

구체적으로 프로세서(120)는 오픈 디렉터리 프로젝트(200)에 포함된 복수의 카테고리 중 분류 모델링을 위한 하나의 카테고리를 선택할 수 있다. 그리고 프로세서(120)는 단어 추출 모듈(221)을 통하여, 선택된 카테고리에 속한 웹 페이지(210)에 대하여, 단어를 추출할 수 있다.Specifically, the processor 120 may select one category for classification modeling among a plurality of categories included in the open directory project 200. [ Then, the processor 120 can extract words for the web page 210 belonging to the selected category through the word extraction module 221.

이때, 프로세서(120)는 형태소 분석기(260)(morphological analyzer)를 이용하여 문서로부터 단어를 추출할 수 있다. 즉, 프로세서(120)는 문장을 형태소 분석기(260)로 전송할 수 있다. 그리고 형태소 분석기(260)를 통하여, 문장으로부터 단어가 추출되면, 프로세서(120)는 추출된 단어를 다시 단어 추출 모듈(221)을 통하여, 단어 집합(230)으로 생성할 수 있다.At this time, the processor 120 may extract a word from a document using a morphological analyzer 260 (morphological analyzer). That is, the processor 120 may transmit the sentence to the morpheme analyzer 260. When a word is extracted from the sentence through the morpheme analyzer 260, the processor 120 can generate the extracted word as a word set 230 through the word extraction module 221 again.

또한, 추출된 단어의 집합은 백-오브-워드(bag-of-words) 자료구조(data structure)로 저장될 수 있다. 백-오브-워드는 특정 원소 및 원소의 개수를 저장할 수 있는 자료구조이다. 그러므로 프로세서(120)는 백-오브 워드 자료구조를 통하여, 특정 텍스트에 포함된 단어를 단어와 해당 단어의 개수로 저장할 수 있다.In addition, the set of extracted words can be stored as a bag-of-words data structure. A back-of-word is a data structure that can store the number of specific elements and elements. Therefore, the processor 120 can store a word included in a specific text as a word and a corresponding number of words through a back-of-word data structure.

프로세서(120)는 어구 추출 모듈(222)을 이용하여, 문장에 대하여 어구를 추출할 수 있다. 이때, 프로세서(120)는 단어 추출 모듈(221)을 통하여 추출된 단어 및 형태소 분석기(260)를 사용할 수 있다.The processor 120 may extract a phrase for the sentence using the phrase extraction module 222. [ At this time, the processor 120 may use the extracted word and morpheme analyzer 260 through the word extraction module 221.

도 4는 본 발명의 일 실시예에 따른 어구 추출의 예시도이다.FIG. 4 is an illustration of a phrase extraction according to an embodiment of the present invention. FIG.

프로세서(120)는 형태소 분석기(260)를 이용하여, 특정 문장(300)에 대한 구문 분석을 수행할 수 있다(S300). 이때, 구문 분석은 문장의 문법을 분석하여, 문장을 파싱(parsing)하고 트리(tree) 구조로 변환하는 것이다. The processor 120 may perform parsing of the specific sentence 300 using the morpheme analyzer 260 (S300). In this case, parsing analyzes sentence grammar, parses the sentence, and converts it into a tree structure.

도 4를 참조하면, 프로세서(120)는 문장(S)에 대한 구문 분석을 수행하여, 구문 트리를 생성할 수 있다. 이때, 구문 트리는 문법에 따라, 명사구(NP), 동사구(VP), 전치사구(PP), 명사(NNP), 동사(VB) 및 한정사(DT) 등을 포함할 수 있다.Referring to FIG. 4, the processor 120 may perform a parsing on the sentence S to generate a syntax tree. At this time, the syntax tree may include a NP, a verb phrase, a PP, a noun (NNP), a verb (VB), and a quantifier (DT) according to a grammar.

이때, 명사구, 동사구 및 전치사구와 같은 어구는 다른 형태소로 분리될 수 있다. 그러므로 구문 트리에서 명사구, 동사구 및 전치사 구는 비단말 노드(non-terminal node)가 될 수 있다. 또한, 단일 명사, 동사 및 한정사와 같은 단어는 다른 형태소로 분리될 수 없다. 그러므로 구문 트리에서 단일 명사, 동사 및 한정사는 단말 노드(terminal node)가 될 수 있다.At this time, phrases such as noun phrases, verbal phrases and prepositional phrases can be separated into other morphemes. Thus, in a syntax tree, noun phrases, verb phrases and prepositional phrases can be non-terminal nodes. In addition, words such as single nouns, verbs, and quantifiers can not be separated into other morphemes. Thus, in a syntax tree, a single noun, verb, and qualifier can be terminal nodes.

프로세서(120)는 문장의 구문 트리를 생성한 이후, 어구 추출 모듈(222)을 통해, 구문으로부터 후보 어구를 추출할 수 있다(S310). 예를 들어, 프로세서(120)는 구문 트리에 포함된 명사구, 동사구 및 전치사 구를 후보 어구를 추출할 수 있다. 즉, 프로세서(120)는 도 4의 구문 트리로부터 "Steve Jobs", "Helped create a Silicon Valley", " create a Silicon Valley" 및 "a Silicon Valley"을 후보 어구로 추출할 수 있다.After generating the phrase tree of the sentence, the processor 120 may extract the candidate phrase from the phrase through the phrase extraction module 222 (S310). For example, the processor 120 may extract candidate phrases such as a noun phrase, a verb phrase, and a preposition phrase included in the phrase tree. That is, the processor 120 can extract "Steve Jobs", "Helped create a Silicon Valley", "create a Silicon Valley", and "a Silicon Valley" from the syntax tree of FIG.

그리고 프로세서(120)는 어구 선택 모듈(223)을 통하여, 휴리스틱 규칙에 기초하여, 후보 어구 중 어구를 선택할 수 있다. 이때, 휴리스틱 규칙은 복수의 단어 중 스탑워드(stopword) 및 특정 품사의 단어를 제거하는 규칙, 후보 어구에 포함된 단어에 대한 스태밍(stemming)을 적용하는 규칙 및 후보 어구가 미리 정해진 개서의 단어 이상의 서로 상이한 단어를 포함하는 규칙 중 어느 하나 이상이 될 수 있다. 이때, 미리 정해진 개수는 4가 될 수 있다.Then, the processor 120 can select a candidate phrase among the candidate phrases, based on the heuristic rule, through the phrase selection module 223. In this case, the heuristic rule includes a rule for removing a stop word and a word of a specific part of a plurality of words, a rule for applying stemming to a word included in a candidate phrase, and a rule for applying a word Or a rule including words different from each other. At this time, the predetermined number may be four.

예를 들어, 특정 품사는 한정사, 전치사, 소유격 어미 및 종속 접속사를 포함할 수 있다. 또한, 스탑워드는 "a", "an" 및 "the"과 같은 관사 또는 "is", "at" 및 "which"와 같이 문장에 자주 발생할 수 있는 단어가 될 수 있으나, 이에 한정된 것은 아니다. 스태밍은 문장에서 추출된 단어에 포함된 접사 등을 제거하여, 어간을 추출하는 것이다. 예를 들어, "cats", "catlike" 및 "catty"에 대하여, 프로세서(120)는 어간인 "cat"을 추출할 수 있다.For example, a particular part of speech can include qualifiers, prepositions, possessive endings, and dependent conjunctions. In addition, the stop word may be a word such as "a", "an" and "the", or a word frequently occurring in a sentence such as "is", "at" and "which". Stamming is the extraction of the stem by removing the affix or the like contained in the word extracted from the sentence. For example, for "cats", "catlike" and "catty", the processor 120 may extract the stem "cat".

다시 도 4를 참조하면, 프로세서(120)는 문서로부터 "Steve Jobs", "a Silicon valley" 및 "mercurial visionary"를 추출할 수 있다. 그리고 프로세서(120)는 어구 집합(240)에 어구 선택 모듈(223)을 통하여, 선택된 어구를 저장할 수 있다.Referring again to FIG. 4, the processor 120 may extract "Steve Jobs "," a Silicon valley "and" mercurial visionary " The processor 120 may then store the selected phrase in the phrase set 240, via the phrase selection module 223.

또한, 프로세서(120)는 어구 선택 모듈(223)을 통하여, 어구 집합(240)에 저장된 어구 중 텍스트 분류 모델(250)의 성능을 개선할 수 있는 미리 정해진 개수의 어구를 선택할 수 있다.The processor 120 may also select a predetermined number of phrases to improve the performance of the in-text text classification model 250 stored in the phrase set 240, via the phrase selection module 223.

예를 들어, 프로세서(120)는 어구 집합(240)에 포함된 복수에 어구에 대한 카이 점수(chi-score)를 산출할 수 있다. 그리고 프로세서(120)는 산출된 카이 점수가 높은 어구를 선택할 수 있다. 이때, 카이 점수는 수학식 1 및 수학식 2를 통하여, 산출할 수 있다.For example, the processor 120 may calculate a chi-score for a plurality of phrases included in the phrase set 240. Then, the processor 120 can select a phrase having a high calculated Kai score. At this time, the Kai score can be calculated through Equations (1) and (2).

Figure 112016049010364-pat00001
Figure 112016049010364-pat00001

Figure 112016049010364-pat00002
Figure 112016049010364-pat00002

수학식 1은 해당 어구(p)와 오픈 디렉터리 프로젝트(200)의 특정 카테고리(c i )의 카이 점수를 산출하는 식이다. 이때, 수학식 1에서 A는 특정 카테고리에 포함되며, 해당 어구를 포함하는 문서의 개수이다. B는 특정 카테고리에 포함되지 않으며, 해당 어구를 포함하는 문서의 개수이다. 그리고 C는 특정 카테고리에 포함되며, 해당 어구를 포함하지 않는 문서의 개수이고, D는 특정 카테고리에 포함되지 않으며, 해당 어구를 포함하지 않은 문서의 개수이다. N은 오픈 디렉터리 프로젝트(200)에 포함된 문서 개수의 총합이다.Equation (1) is an expression for calculating a Kai score of a specific category ( c i ) of the phrase ( p ) and the open directory project (200). At this time, A in Equation (1) is included in a specific category and is the number of documents including the corresponding phrase. B is not included in a specific category, and is the number of documents including the phrase. And C is the number of documents included in a specific category and not including the corresponding phrase, and D is the number of documents not included in the specific category and not including the corresponding phrase. N is the sum of the number of documents included in the open directory project (200).

또한, 수학식 2는 오픈 디렉터리 프로젝트(200)의 모든 카테고리에 대하여 산출된 카이 점수 중 가장 높은 값을 가지는 카테고리의 카이 점수를 해당 어구의 카이 점수로 산출하는 식이다. 그러므로 프로세서(120)는 수학식 2에 기초하여, 어구 집합(240)에 포함된 어구의 카이 점수를 산출할 수 있다. 그리고 프로세서(120)는 어구의 점수를 산출한 다음 전체 어구 집합(240)에서 미리 정해진 개수의 어구를 선택할 수 있다.Equation (2) is a formula for calculating the Kai score of the category having the highest value among the Kai scores calculated for all categories of the open directory project 200, using the Kai score of the corresponding phrase. Therefore, the processor 120 can calculate a Kai score of a phrase included in the phrase set 240 based on Equation (2). The processor 120 may then calculate a score of a phrase and then select a predetermined number of phrases from the entire phrase set 240. [

한편, 프로세서(120)는 텍스트 분류기 생성 모듈(220)의 분류 모델링 모듈(224)을 통해, 각 카테고리에서 추출된 단어 집합(230) 및 어구 집합(240)을 이용하여, 단어 및 어구 발생 빈도 벡터를 생성할 수 있다. 예를 들어, 오픈 디렉터리 프로젝트(200)에서 추출된 단어가 w 1, w 2w 3이고, 추출된 어구가 p 1p 2이라면, 프로세서(120)는 "<w 1 개수, w 2 개수, w 3 개수, p 1 개수, p 2 개수>" 형태로 단어 및 어구 발생 빈도 벡터를 생성할 수 있다. 만약 임의의 카테고리에 w 1가 2개, w 3가 3개, p 1이 1개가 추출되었다면, 단어 및 어구 발생 빈도 벡터는 "<2, 0, 3, 1, 0>"이 될 수 있다.The processor 120 uses the word set 230 and the phrase set 240 extracted from each category through the classification modeling module 224 of the text classifier generation module 220 to generate the word and phrase occurrence frequency vector Lt; / RTI &gt; For example, if the extracted words in the open directory project 200 are w 1 , w 2, and w 3 and the extracted phrases are p 1 and p 2 , the processor 120 determines " w 1 number, w 2 number , w 3 number, p 1 number, p 2 number>". If w 1 , w 3 and p 1 are extracted in any category, then the word and word occurrence frequency vector can be "<2, 0, 3, 1, 0>".

프로세서(120)는 각 카테고리로부터 추출된 단어 및 어구 발생 빈도 벡터를 학습 데이터(train data)로 이용하여, 오픈 디렉터리 프로젝트(200) 기반 텍스트 분류 모델(250)을 생성할 수 있다. 이때, 프로세서(120)는 나이브 베이즈(Naive Bayes), K-근접이웃(k Nearest Neighbor), 서포트 벡터 머신(Support Vector Machine), 센트로이드 분류 장치(centroid classifier) 등의 기계학습(machine learning) 기반의 분류 알고리즘(classification algorithm)을 이용하여 텍스트 분류 모델(250)를 생성할 수 있으나, 이에 한정되지 않는다. The processor 120 may generate the text classification model 250 based on the open directory project 200 by using the word and the phrase occurrence frequency vector extracted from each category as training data. At this time, the processor 120 may perform machine learning such as Naive Bayes, K Nearest Neighbor, Support Vector Machine, centroid classifier, Based classification algorithm may be used to generate the text classification model 250, but the present invention is not limited thereto.

프로세서(120)는 도 5와 같이, 텍스트 분류 모델(250)이 생성되면, 생성된 텍스트 분류 모델(250)을 이용하여, 신규 문서 또는 신규 텍스트의 카테고리를 분류할 수 있다.5, when the text classification model 250 is generated, the processor 120 can classify categories of a new document or new text using the generated text classification model 250. [

도 5는 본 발명의 일 실시예에 따른 텍스트 분류기(100)의 텍스트 분류 모듈 (410)의 블록도이다.5 is a block diagram of a text classification module 410 of a text classifier 100 according to an embodiment of the present invention.

구체적으로 프로세서(120)는 신규 텍스트가 입력되면, 단어 추출 모듈(411)을 통하여, 단어를 추출할 수 있다. 그리고 프로세서(120)는 어구 추출 모듈(412)을 통하여, 신규 텍스트로부터 추출된 단어로부터 어구를 추출할 수 있다. 이때, 단어 추출 모듈(411) 및 단어 및 어구 추출 모듈(412)의 어구 추출 과정은 앞에서 텍스트 분류기 생성 모듈(220)에서의 단어 및 어구 추출 과정과 동일할 수 있다. 단, 프로세서(120)는 신규 텍스트에 대한 형태소 분석 없이 구문 분석만을 통하여, 어구를 추출할 수 있다. Specifically, when the new text is inputted, the processor 120 can extract the word through the word extraction module 411. [ Then, the processor 120 can extract a word from the word extracted from the new text through the word extracting module 412. At this time, the process of extracting the words of the word extraction module 411 and the word and phrase extraction module 412 may be the same as the process of extracting words and phrases in the text classifier generation module 220. However, the processor 120 can extract the phrase through parsing only without morpheme analysis on the new text.

즉, 프로세서(120)는 신규 텍스트에 포함된 화이트 스페이스를 이용한 구문 분석을 수행하여, 복수의 토큰(token)을 추출할 수 있다. 그리고 프로세서(120)는 복수의 토큰을 이용한 단어열을 생성할 수 있다. 프로세서(120)는 생성된 단어열 중 텍스트 분류 모델(250)의 어구 집합(240)에 포함된 단어열을 어구로 추출할 수 있다. That is, the processor 120 may perform a syntax analysis using white space included in the new text to extract a plurality of tokens. The processor 120 may generate a word string using a plurality of tokens. The processor 120 may extract a word string included in the phrase set 240 of the text classification model 250 among the generated word strings.

프로세서(120)는 벡터 생성 모듈(413)을 통하여, 신규 텍스트로부터 추출된 단어 및 어구를 이용하여, 단어 및 어구 발생 빈도 벡터를 생성할 수 있다. 이를 위하여, 프로세서(120)는 신규 텍스트로부터 추출된 단어에 대하여, 앞에서 설명한 휴리스틱 규칙에 기초하여, n개를 선택하여 조합할 수 있다. 그리고 프로세서(120)는 조합된 단어열을 신규 텍스트의 후보 어구로 사용할 수 있다. Processor 120 may generate word and phrase occurrence frequency vectors using words and phrases extracted from the new text through vector generation module 413. [ For this purpose, the processor 120 can select and combine n words, based on the heuristic rules described above, on the words extracted from the new text. The processor 120 may then use the combined word sequence as a candidate for new text.

예를 들어, n이 3이고, 신규 텍스트로부터 3개의 단어 "steve", "jobs" 및 "helped"를 추출하였다면, 프로세서(120)는 추출된 단어를 통하여, "steve jobs", "jobs helped", "steve jobs helped"를 후보 어구를 추출할 수 있다. For example, if n is 3 and three words "steve", "jobs", and "helped" are extracted from the new text, the processor 120 determines whether "steve jobs" , and "steve jobs helped".

프로세서(120)는 이렇게 추출된 단어 및 어구를 이용하여, 단어 및 어구 발생 빈도 벡터를 생성할 수 있다. 그리고 프로세서(120)는 분류 모듈(414)을 통하여, 생성된 단어 및 어구 발생 빈도 벡터에 대하여, 텍스트 분류 모델(250)을 적용하여 신규 텍스트의 카테고리를 분류할 수 있다. The processor 120 may generate words and phrases occurrence frequency vectors using the words and phrases thus extracted. The processor 120 may classify the category of the new text by applying the text classification model 250 to the generated word and phrase occurrence frequency vector through the classification module 414. [

이때, 프로세서(120)는 분류 모듈(414)을 통하여, 텍스트 분류 모델(250)에 저장된 각 카테고리의 단어 및 어구 발생 빈도 벡터와 신규 텍스트를 통하여, 추출된 단어 및 어구 발생 빈도 벡터의 유사도를 산출할 수 있다. 예를 들어, 유사도는 자카드 계수(jaccard coefficient), 스피어만 상관계수(Spearman’s correlation coefficient), 유클리드 거리(Euclidean distance), 코사인(cosine) 유사도 등이 될 수 있으며, 이에 한정된 것은 아니다.At this time, the processor 120 calculates the similarity between the extracted word and the occurrence frequency vector of the word through the classification module 414, using the word and the word occurrence frequency vector of each category stored in the text classification model 250 and the new text can do. For example, the similarity may be a Jacquard coefficient, a Spearman's correlation coefficient, an Euclidean distance, a cosine similarity, and the like, but is not limited thereto.

프로세서(120)는 각 카테고리의 단어 및 어구 발생 빈도 벡터와의 유사도를 산출한 이후, 유사도가 가장 큰 카테고리 및 해당 카테고리의 유사도를 신규 텍스트의 카테고리 및 점수를 분류 결과(420)으로 산출할 수 있다.After calculating the degree of similarity between the word and the occurrence frequency vector of each category, the processor 120 may calculate the category and score of the new text as the classification result 420, .

다음은 도 6을 참조하여, 본 발명의 일 실시예에 따른 오픈 디렉터리 프로젝트(200) 기반의 텍스트 분류기(100)의 텍스트 분류 방법을 설명한다.Next, a text classification method of the text classifier 100 based on the open directory project 200 according to an embodiment of the present invention will be described with reference to FIG.

도 6은 본 발명의 일 실시예에 따른 텍스트 분류기(100)의 텍스트 분류 방법의 순서도이다.6 is a flowchart of a text classification method of the text classifier 100 according to an embodiment of the present invention.

텍스트 분류기(100)는 분류 대상 텍스트로부터 단어를 추출한다(S500).The text classifier 100 extracts words from the classification target text (S500).

텍스트 분류기(100)는 단어를 추출한 이후, 추출된 단어로부터 분류 대상 텍스트에 대응하는 어구를 추출한다(S510).After extracting the words, the text classifier 100 extracts phrases corresponding to the classification target text from the extracted words (S510).

텍스트 분류기(100)는 추출된 단어, 추출된 어구 및 텍스트 분류 모델(250)에 기초하여, 분류 대상 텍스트에 대응하는 카테고리를 분류한다. 이때, 텍스트 분류기(100)는 텍스트 분류 모델(250)은 오픈 디렉터리 프로젝트(200)에 기초하여 생성된 것이다.The text classifier 100 classifies the category corresponding to the classification target text based on the extracted word, the extracted word and the text classification model 250. At this time, the text classifier 100 is generated based on the open directory project 200 in the text classification model 250.

다음은 도 7을 참조하여, 본 발명의 일 실시예에 따른 오픈 디렉터리 프로젝트(200) 기반의 텍스트 분류기(100)의 텍스트 분류 모델(250) 생성 방법을 설명한다.Next, a method of generating the text classification model 250 of the text classifier 100 based on the open directory project 200 according to an embodiment of the present invention will be described with reference to FIG.

도 7은 본 발명의 일 실시예에 따른 텍스트 분류기(100)의 텍스트 분류 모델(250) 생성 방법의 순서도이다.7 is a flowchart of a method of generating a text classification model 250 of the text classifier 100 according to an embodiment of the present invention.

텍스트 분류기(100)는 오픈 디렉터리 프로젝트(200)의 각 카테고리로부터 단어를 추출한다(S600).The text classifier 100 extracts words from each category of the open directory project 200 (S600).

텍스트 분류기(100)는 추출된 단어에 기초하여, 각 카테고리로부터 어구를 추출한다(S610).The text classifier 100 extracts a phrase from each category based on the extracted word (S610).

텍스트 분류기(100)는 추출된 단어 및 추출된 어구에 기초하여, 각 카테고리에 대응하는 단어 및 어구 빈도 벡터를 생성한다(S620). 이때, 각 카테고리에 대응하는 단어 및 어구는 각 카테고리에 저장된 문서 집합으로부터 추출되는 것이다.The text classifier 100 generates a word and a phrase frequency vector corresponding to each category based on the extracted word and the extracted phrase (S620). At this time, words and phrases corresponding to each category are extracted from the document set stored in each category.

구체적으로 텍스트 분류기(100)는 각 카테고리에 저장된 문서 집합으로부터 구문분석에 기초하여, 후보 어구 집합(240)을 추출할 수 있다. 그리고 텍스트 분류기(100)는 후보 어구 집합(240)에 포함된 후보 어구에 대한 휴리스틱 규칙에 기초하여, 각 카테고리에 대응하는 어구를 추출할 수 있다. Specifically, the text classifier 100 may extract the candidate phrase sets 240 based on parsing from a set of documents stored in each category. Then, the text classifier 100 can extract the phrases corresponding to the respective categories based on the heuristic rules for the candidate phrases included in the candidate phrase set 240.

이때, 휴리스틱 규칙은 후보 어구에 포함된 복수의 단어 중 스탑워드 및 특정 품사의 단어를 제거하는 규칙, 후보 어구에 포함된 단어에 대한 스태밍을 적용하는 규칙 및 후보 어구가 미리 정해진 개수의 단어 이상의 서로 상이한 단어를 포함하는 규칙 중 어느 하나 이상이 될 수 있다. 특정 품사는 한정사, 전치사, 소유격 어미 및 종속 접속사를 포함할 수 있다.In this case, the heuristic rule includes rules for removing a stop word and a word of a specific part of a plurality of words included in a candidate phrase, rules for applying a word to a word included in the candidate word, and a rule that a candidate word has a predetermined number of words or more Or rules containing words that are different from each other. Certain parts of speech may include qualifiers, prepositions, possessive endings, and dependent conjunctions.

텍스트 분류기(100)는 각 카테고리에 대응하는 단어 및 어구 빈도 벡터에 기초하여, 텍스트 분류 모델(250)을 생성한다(S630).The text classifier 100 generates the text classification model 250 based on the word and the phrase frequency vector corresponding to each category (S630).

본 발명의 일 실시예에 따른 오픈 디렉터리 프로젝트(200) 기반의 텍스트 분류기(100), 및 텍스트 분류기(100)의 생성 및 분류 방법은 오픈 디렉터리 프로젝트(200)의 각 카테고리 문서로부터 추출된 단어 및 어구에 기초하여, 텍스트 분류기(100)를 생성한다. 그러므로 텍스트 분류기(100), 및 텍스트 분류기(100)의 생성 및 분류 방법은 기존 단어만으로 텍스트 분류기(100)를 학습할 때 보다 분류 정확도가 향상될 수 있다.The method for generating and classifying the text classifier 100 and the text classifier 100 based on the open directory project 200 according to an embodiment of the present invention is similar to that of the open directory project 200, , The text classifier 100 is generated. Therefore, the method of generating and classifying the text classifier 100 and the text classifier 100 can be improved in classification accuracy compared to learning the text classifier 100 using only existing words.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 컴퓨터 판독 가능한 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능한 기록 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능한 기록 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.One embodiment of the invention may also be embodied in the form of a computer-readable medium having instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. The computer-readable medium also includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data .

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.While the methods and systems of the present invention have been described in connection with specific embodiments, some or all of those elements or operations may be implemented using a computer system having a general purpose hardware architecture.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

100: 오픈 디렉터리 프로젝트 기반의 텍스트 분류기
110: 메모리
120: 프로세서
100: Open Directory project-based text classifier
110: Memory
120: Processor

Claims (13)

오픈 디렉터리 프로젝트 기반의 텍스트 분류기에 있어서,
텍스트 분류 프로그램이 저장된 메모리 및
상기 프로그램을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 프로그램의 실행에 따라, 분류 대상 텍스트로부터 단어를 추출하고, 상기 추출된 단어로부터 상기 분류 대상 텍스트의 어구를 추출하며,
상기 추출된 단어, 상기 추출된 어구 및 텍스트 분류 모델에 기초하여, 상기 분류 대상 텍스트에 대응하는 카테고리를 분류하고,
상기 텍스트 분류 모델은
상기 텍스트 분류 모델은 오픈 디렉터리 프로젝트에 기초하여 생성된 것이며,
상기 프로세서는
카이-점수(chi-score)에 기초하여, 상기 추출된 어구에 대한 점수를 산출하고,
상기 산출된 점수에 기초하여, 미리 정해진 개수의 어구를 선택하고,
상기 선택된 어구에 대하여, 상기 카테고리에 대응하는 단어 및 어구 빈도 벡터를 생성하고,
상기 단어 및 어구 빈도 벡터에 기초하여 상기 텍스트 분류 모델을 생성하며,
상기 프로세서는
하기 수학식을 이용하여, 상기 어구에 대한 각 카테고리의 점수를 산출하고 상기 산출된 각 카테고리의 점수 중 최대값을 상기 어구에 대한 점수로 산출하는 것인, 텍스트 분류기.
[수학식]
Figure 112017058461590-pat00011

p: 상기 점수를 산출하는 어구
ci: 오픈 디렉터리 프로젝트의 i 번째 카테고리
A: 상기 i 번째 카테고리에 포함되며, 상기 점수를 산출하는 어구를 포함하는 문서의 개수
B: 상기 i 번째 카테고리에 포함되지 않으며, 상기 점수를 산출하는 어구를 포함하는 문서의 개수
C: 상기 i 번째 카테고리에 포함되며, 상기 점수를 산출하는 어구를 포함하지 않는 문서의 개수
D: 상기 i 번째 카테고리에 포함되지 않으며, 상기 점수를 산출하는 어구를 포함하지 않는 문서의 개수
N: 오픈 디렉터리 프로젝트에 포함된 문서 개수의 총합
In an open directory project-based text classifier,
The memory in which the text classification program is stored
And a processor for executing the program,
The processor extracts a word from the text to be classified according to the execution of the program, extracts a phrase of the text to be classified from the extracted word,
Classifying the category corresponding to the classification target text based on the extracted word, the extracted phrase and the text classification model,
The text classification model
The text classification model is generated based on an open directory project,
The processor
Calculating a score for the extracted phrase based on a chi-score,
Selects a predetermined number of phrases based on the calculated score,
Generating a word and a phrase frequency vector corresponding to the category for the selected phrase,
Generating the text classification model based on the word and phrase frequency vectors,
The processor
Wherein a score of each category for the phrase is calculated using the following equation and a maximum value among scores of the calculated categories is calculated as a score for the phrase.
[Mathematical Expression]
Figure 112017058461590-pat00011

p: a phrase to calculate the score
ci: i-th category of open directory project
A: the number of documents included in the i-th category and including a phrase for calculating the score
B: the number of documents that are not included in the i-th category and which include a phrase that calculates the score
C: the number of documents included in the i-th category and not including the phrase for calculating the score
D: the number of documents not included in the i-th category and not including the phrase for calculating the score
N: Total number of documents included in the Open Directory project
제 1 항에 있어서,
상기 프로세서는 상기 오픈 디렉터리 프로젝트의 각 카테고리로부터 단어 및 어구를 추출하고, 상기 추출된 어구에 대해 상기 점수를 산출하며,
상기 각 카테고리에 대응하는 단어 및 어구는 상기 각 카테고리에 저장된 문서 집합으로부터 추출되는 것인, 텍스트 분류기.
The method according to claim 1,
The processor extracts words and phrases from each category of the open directory project, calculates the score for the extracted phrase,
Wherein words and phrases corresponding to the respective categories are extracted from a set of documents stored in each of the categories.
제 2 항에 있어서,
상기 프로세서는 상기 각 카테고리에 저장된 문서 집합으로부터 구문분석에 기초하여, 후보 어구 집합을 추출하고, 상기 후보 어구 집합에 포함된 후보 어구에 대한 휴리스틱 규칙에 기초하여, 상기 각 카테고리에 대응하는 어구를 추출하는 것인, 텍스트 분류기.
3. The method of claim 2,
Wherein the processor extracts a candidate phrase set based on a parsing from a document set stored in each of the categories and extracts a phrase corresponding to each category based on a heuristic rule for a candidate phrase included in the candidate phrase set A text sorter.
제 3 항에 있어서,
상기 휴리스틱 규칙은,
상기 후보 어구에 포함된 복수의 단어 중 스탑워드(stopword) 및 특정 품사의 단어를 제거하는 규칙, 상기 후보 어구에 포함된 단어에 대한 스태밍(stemming)을 적용하는 규칙 및 상기 후보 어구가 미리 정해진 개수의 단어 이상의 서로 상이한 단어를 포함하는 규칙 중 어느 하나 이상이되,
상기 특정 품사는 한정사, 전치사, 소유격 어미 및 종속 접속사를 포함하는, 텍스트 분류기.
The method of claim 3,
The heuristic rule includes:
A rule for removing a stop word and a word of a specific part of speech from a plurality of words included in the candidate word, a rule for applying stemming to a word included in the candidate word, A rule including a number of words different from each other,
Wherein the specific part-of-speech includes a determinant, a preposition, a possessive ending, and a dependent conjunction.
삭제delete 삭제delete 삭제delete 오픈 디렉터리 프로젝트 기반의 텍스트 분류기의 텍스트 분류 방법에 있어서,
분류 대상 텍스트로부터 단어를 추출하는 단계;
상기 추출된 단어로부터 상기 분류 대상 텍스트에 대응하는 어구를 추출하는 단계; 및
상기 추출된 단어, 상기 추출된 어구 및 텍스트 분류 모델에 기초하여, 상기 분류 대상 텍스트에 대응하는 카테고리를 분류하는 단계를 포함하되,
상기 텍스트 분류 모델은 오픈 디렉터리 프로젝트에 기초하여 생성된 것이며, 상기 카테고리에 대응하는 단어 및 어구 빈도 벡터에 기초하여 생성된 것이고,
상기 단어 및 어구 빈도 벡터는, 미리 정해진 개수만큼 선택된 어구에 대해 생성된 것이며,
상기 선택된 어구는, 상기 추출된 어구에 대해 카이-점수(chi-score)에 기초하여 산출된 점수에 기초하여 선택된 것이며,
상기 산출된 점수는, 하기 수학식을 이용하여 산출된 상기 어구에 대한 각 카테고리의 점수 중 최대값인 것인, 텍스트 분류기의 텍스트 분류 방법.
[수학식]
Figure 112017058461590-pat00012

p: 상기 점수를 산출하는 어구
ci: 오픈 디렉터리 프로젝트의 i 번째 카테고리
A: 상기 i 번째 카테고리에 포함되며, 상기 점수를 산출하는 어구를 포함하는 문서의 개수
B: 상기 i 번째 카테고리에 포함되지 않으며, 상기 점수를 산출하는 어구를 포함하는 문서의 개수
C: 상기 i 번째 카테고리에 포함되며, 상기 점수를 산출하는 어구를 포함하지 않는 문서의 개수
D: 상기 i 번째 카테고리에 포함되지 않으며, 상기 점수를 산출하는 어구를 포함하지 않는 문서의 개수
N: 오픈 디렉터리 프로젝트에 포함된 문서 개수의 총합
A text classification method of an open directory project-based text classifier,
Extracting a word from the classification target text;
Extracting a phrase corresponding to the classification target text from the extracted word; And
Classifying a category corresponding to the classification target text based on the extracted word, the extracted phrase, and a text classification model,
Wherein the text classification model is generated based on an open directory project and is generated based on a word and a phrase frequency vector corresponding to the category,
The word and phrase frequency vector is generated for a predetermined number of phrases,
Wherein the selected phrase is selected based on a score calculated based on a chi-score with respect to the extracted phrase,
Wherein the calculated score is a maximum value among scores of each category for the phrase calculated using the following equation.
[Mathematical Expression]
Figure 112017058461590-pat00012

p: a phrase to calculate the score
ci: i-th category of open directory project
A: the number of documents included in the i-th category and including a phrase for calculating the score
B: the number of documents that are not included in the i-th category and which include a phrase that calculates the score
C: the number of documents included in the i-th category and not including the phrase for calculating the score
D: the number of documents not included in the i-th category and not including the phrase for calculating the score
N: Total number of documents included in the Open Directory project
오픈 디렉터리 프로젝트 기반의 텍스트 분류기의 텍스트 분류 모델 생성 방법에 있어서,
오픈 디렉터리 프로젝트의 각 카테고리로부터 단어를 추출하는 단계;
상기 추출된 단어에 기초하여, 상기 각 카테고리로부터 어구를 추출하는 단계;
카이-점수(chi-score)에 기초하여 상기 추출된 어구에 대해 점수를 산출하는 단계;
상기 산출된 점수에 기초하여, 미리 정해진 개수의 어구를 선택하는 단계;
상기 선택된 어구에 기초하여, 상기 각 카테고리에 대응하는 단어 및 어구 빈도 벡터를 생성하는 단계; 및
상기 각 카테고리에 대응하는 단어 및 어구 빈도 벡터에 기초하여, 상기 텍스트 분류 모델을 생성하는 단계를 포함하되,
상기 점수를 산출하는 단계는, 하기 수학식을 이용하여, 상기 어구에 대한 각 카테고리의 점수를 산출하고 상기 산출된 각 카테고리의 점수 중 최대값을 상기 어구에 대한 점수로 산출하고,
상기 각 카테고리에 대응하는 단어 및 어구는 상기 각 카테고리에 저장된 문서 집합으로부터 추출되는 것인, 텍스트 분류기의 텍스트 분류 모델 생성 방법.
[수학식]
Figure 112017058461590-pat00013

p: 상기 점수를 산출하는 어구
ci: 오픈 디렉터리 프로젝트의 i 번째 카테고리
A: 상기 i 번째 카테고리에 포함되며, 상기 점수를 산출하는 어구를 포함하는 문서의 개수
B: 상기 i 번째 카테고리에 포함되지 않으며, 상기 점수를 산출하는 어구를 포함하는 문서의 개수
C: 상기 i 번째 카테고리에 포함되며, 상기 점수를 산출하는 어구를 포함하지 않는 문서의 개수
D: 상기 i 번째 카테고리에 포함되지 않으며, 상기 점수를 산출하는 어구를 포함하지 않는 문서의 개수
N: 오픈 디렉터리 프로젝트에 포함된 문서 개수의 총합
A method for generating a text classification model of an open directory project based text classifier,
Extracting words from each category of the open directory project;
Extracting a phrase from each of the categories based on the extracted word;
Calculating a score for the extracted phrase based on a chi-score;
Selecting a predetermined number of phrases based on the calculated score;
Generating a word and a phrase frequency vector corresponding to each of the categories based on the selected phrase; And
And generating the text classification model based on a word and a phrase frequency vector corresponding to each of the categories,
The step of calculating the score may include calculating a score of each category for the phrase using the following expression and calculating a maximum value among the scores of the calculated category as a score for the phrase,
Wherein the words and phrases corresponding to the respective categories are extracted from a set of documents stored in the respective categories.
[Mathematical Expression]
Figure 112017058461590-pat00013

p: a phrase to calculate the score
ci: i-th category of open directory project
A: the number of documents included in the i-th category and including a phrase for calculating the score
B: the number of documents that are not included in the i-th category and which include a phrase that calculates the score
C: the number of documents included in the i-th category and not including the phrase for calculating the score
D: the number of documents not included in the i-th category and not including the phrase for calculating the score
N: Total number of documents included in the Open Directory project
제 9 항에 있어서,
상기 추출된 단어에 기초하여, 상기 각 카테고리로부터 어구를 추출하는 단계는,
상기 각 카테고리에 저장된 문서 집합으로부터 구문분석에 기초하여, 후보 어구 집합을 추출하고, 상기 후보 어구 집합에 포함된 후보 어구에 대한 휴리스틱 규칙에 기초하여, 상기 각 카테고리에 대응하는 어구를 추출하는 것인, 텍스트 분류기의 텍스트 분류 모델 생성 방법.
10. The method of claim 9,
Extracting a phrase from each of the categories based on the extracted word,
Extracting a candidate phrase set based on the parsing from the document set stored in each of the categories and extracting a phrase corresponding to each of the categories based on heuristic rules for candidate phrases included in the candidate phrase set , A method of generating a text classification model of a text classifier.
제 10 항에 있어서,
상기 휴리스틱 규칙은, 상기 후보 어구에 포함된 복수의 단어 중 스탑워드(stopword) 및 특정 품사의 단어를 제거하는 규칙, 상기 후보 어구에 포함된 단어에 대한 스태밍(stemming)을 적용하는 규칙 및 상기 후보 어구가 미리 정해진 개수의 단어 이상의 서로 상이한 단어를 포함하는 규칙 중 어느 하나 이상이고,
상기 특정 품사는 한정사, 전치사, 소유격 어미 및 종속 접속사를 포함하는, 텍스트 분류기의 텍스트 분류 모델 생성 방법.
11. The method of claim 10,
Wherein the heuristic rule includes a rule for removing a stop word and a word of a specific part of a plurality of words included in the candidate word, a rule for applying stemming to words included in the candidate word, Wherein the candidate word is one or more of a rule including words different from each other by a predetermined number of words or more,
Wherein the specific part-of-speech includes a determinant, a preposition, a possessive ending, and a dependent conjunction.
제 8 항에 기재된 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.9. A computer-readable recording medium recording a program for performing the method of claim 8 on a computer. 제 9 항 내지 제 11 항 중 어느 한 항에 기재된 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium recording a program for performing the method according to any one of claims 9 to 11 on a computer.
KR1020160062645A 2016-05-23 2016-05-23 Apparatus and method of generation and classification for text classifier based on open directory project KR101860472B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160062645A KR101860472B1 (en) 2016-05-23 2016-05-23 Apparatus and method of generation and classification for text classifier based on open directory project

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160062645A KR101860472B1 (en) 2016-05-23 2016-05-23 Apparatus and method of generation and classification for text classifier based on open directory project

Publications (2)

Publication Number Publication Date
KR20170131893A KR20170131893A (en) 2017-12-01
KR101860472B1 true KR101860472B1 (en) 2018-05-23

Family

ID=60921720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160062645A KR101860472B1 (en) 2016-05-23 2016-05-23 Apparatus and method of generation and classification for text classifier based on open directory project

Country Status (1)

Country Link
KR (1) KR101860472B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200131736A (en) 2019-05-14 2020-11-24 고려대학교 산학협력단 Method and server for text classification using multi-task learning
US11328125B2 (en) 2019-05-14 2022-05-10 Korea University Research And Business Foundation Method and server for text classification using multi-task learning

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102418871B1 (en) * 2019-11-11 2022-07-07 한림대학교 산학협력단 Apparatus, method and program for extracting research category of research literature using category feature lexicon each research category

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223781A (en) * 2008-03-18 2009-10-01 Nec Corp Information recommendation device, information recommendation system, information recommendation method, program and recording medium
KR101580152B1 (en) * 2013-12-09 2016-01-04 고려대학교 산학협력단 Method and apparatus for text classifier based on open directory project utilizing ancestor descendant categories

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223781A (en) * 2008-03-18 2009-10-01 Nec Corp Information recommendation device, information recommendation system, information recommendation method, program and recording medium
KR101580152B1 (en) * 2013-12-09 2016-01-04 고려대학교 산학협력단 Method and apparatus for text classifier based on open directory project utilizing ancestor descendant categories

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200131736A (en) 2019-05-14 2020-11-24 고려대학교 산학협력단 Method and server for text classification using multi-task learning
US11328125B2 (en) 2019-05-14 2022-05-10 Korea University Research And Business Foundation Method and server for text classification using multi-task learning

Also Published As

Publication number Publication date
KR20170131893A (en) 2017-12-01

Similar Documents

Publication Publication Date Title
JP6618735B2 (en) Question answering system training apparatus and computer program therefor
JP5825676B2 (en) Non-factoid question answering system and computer program
JP5710581B2 (en) Question answering apparatus, method, and program
JP6955963B2 (en) Search device, similarity calculation method, and program
JP2011118689A (en) Retrieval method and system
Posadas-Duran et al. Complete syntactic n-grams as style markers for authorship attribution
KR101860472B1 (en) Apparatus and method of generation and classification for text classifier based on open directory project
Ali et al. Genetic approach for Arabic part of speech tagging
JP4325370B2 (en) Document-related vocabulary acquisition device and program
Nogueira dos Santos et al. Portuguese part-of-speech tagging using entropy guided transformation learning
Reddy et al. Obtaining description for simple images using surface realization techniques and natural language processing
Conrado et al. Exploration of a rich feature set for automatic term extraction
US20110106849A1 (en) New case generation device, new case generation method, and new case generation program
Gupta A Survey of Word-sense Disambiguation Effective Techniques and Methods for Indian Languages.
JP2017068742A (en) Relevant document retrieval device, model creation device, method and program therefor
Castillo et al. Using sentence semantic similarity based on WordNet in recognizing textual entailment
Chun et al. Unsupervised event extraction from biomedical literature using co-occurrence information and basic patterns
Che et al. Using word sense disambiguation for semantic role labeling
KR20070118154A (en) Information processing device and method, and program recording medium
Frank et al. Evaluating models of syntactic category acquisition without using a gold standard
Malandrakis et al. Affective language model adaptation via corpus selection
Xie et al. Focusing attention network for answer ranking
Stehouwer Statistical language models for alternative sequence selection
Chitra et al. Genetic algorithm based feature selection for paraphrase recognition
Kharlamov et al. Text understanding as interpretation of predicative structure strings of main text’s sentences as result of pragmatic analysis (combination of linguistic and statistic approaches)

Legal Events

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