KR20130113000A - 언어 처리 장치 및 그 방법 - Google Patents

언어 처리 장치 및 그 방법 Download PDF

Info

Publication number
KR20130113000A
KR20130113000A KR1020120035200A KR20120035200A KR20130113000A KR 20130113000 A KR20130113000 A KR 20130113000A KR 1020120035200 A KR1020120035200 A KR 1020120035200A KR 20120035200 A KR20120035200 A KR 20120035200A KR 20130113000 A KR20130113000 A KR 20130113000A
Authority
KR
South Korea
Prior art keywords
language
document
analysis
language analysis
result
Prior art date
Application number
KR1020120035200A
Other languages
English (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 KR1020120035200A priority Critical patent/KR20130113000A/ko
Publication of KR20130113000A publication Critical patent/KR20130113000A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • 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
    • 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
    • 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/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Machine Translation (AREA)

Abstract

데이터를 분산하여 처리하는 언어 처리 장치 및 방법이 개시된다. 언어 처리 장치는, 입력받은 문서를 필터링하여 분석 대상 문서를 출력하는 전처리부와, 분석 대상 문서를 문장 단위로 분석하여 언어 분석 결과를 출력하는 언어 분석부 및 언어 분석 결과를 분산 데이터 기법을 사용하여 저장하는 결과 저장부를 포함한다. 따라서, 다수의 컴퓨터에 분산되어 입력되는 대용량의 문서를 동시에 처리할 수 있고, 이를 통하여 작업의 속도를 향상시킬 수 있다. 또한, 언어 분석 결과를 분산 데이터 저장 기법을 사용하여 저장함으로써, 다양한 응용 프로그램은 언어 분석 결과에 효과적으로 사용할 수 있다.

Description

언어 처리 장치 및 그 방법{APPARATUS FOR LANGUAGE PROCESSING AND METHOD THEREOF}
본 발명은 언어의 처리에 관한 것으로, 더욱 상세하게는 대용량의 문서에 포함된 텍스트를 처리할 수 있는 언어 처리 장치 및 방법에 관한 것이다.
인터넷과 각종 네트워크가 널리 보급되면서 웹 상에 각종 검색 엔진 및 정보 검색 사이트가 제공되고 있으며, 사용자들은 이를 이용하여 웹 상의 각종 문서에 존재하는 다양한 정보를 쉽고 빠르게 획득할 수 있게 되었다. 또한, 대화 시스템이나 기계 번역 시스템이 이미 실용화 단계에 있으며 음성인식과 합성기능을 갖춘 사용자 인터페이스에 대한 기술이 다양한 분야에 응용되고 있다.
언어는 목적으로 하는 시스템에 따라 서로 다른 방식으로 처리될 수 있으나, 일반적으로 형태소 분석, 구문 구조 분석, 의미 구조 분석 등과 같은 단계를 거쳐 처리되는 것이 일반적이다.
또한, 기존의 언어 분석기는 텍스트 데이터를 입력받아 형태소 분석, 개체명 인식, 얕은 파싱(Shallow Parsin) 등을 수행하여 사용자에게 유용한 정보를 제공할 수 있다.
그러나, 언어 분석기는 다양한 처리 또는 분석이 수행되어야 하기 때문에 처리 속도가 많이 소요되는 문제점이 있다. 또한, 최근과 같이 웹 사용자들이 실시간으로 폭발적인 양의 정보 데이터를 생산하는 경우 기존의 언어 분석기를 통하여 언어를 분석 또는 처리하는 것에는 한계점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 다수의 컴퓨터에 분산되어 입력되는 대용량의 문서를 동시에 처리할 수 있는 언어 처리 장치를 제공하는데 있다.
또한, 본 발명의 다른 목적은, 다양한 응용 프로그램이 언어 분석 결과에 효과적으로 접근하여 사용할 수 있도록 하는 언어 처리 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 언어 처리 장치는, 문서를 입력받고 입력받은 문서를 필터링하여 분석 대상 문서를 출력하는 전처리부와, 분석 대상 문서를 문장 단위로 분석하여 언어 분석 결과를 출력하는 언어 분석부 및 언어 분석 결과를 분산 데이터 기법을 사용하여 저장하는 결과 저장부를 포함한다.
여기에서, 전처리부는 데이터를 분산하여 처리하는 기법을 사용하여 입력된 문서를 필터링할 수 있다.
여기에서, 전처리부는 입력된 문서에 대하여 공백 확인, 스팸 필터링, 성인물 필터링, 중복 문서 필터링 중 적어도 하나를 수행하여 분석 대상 문서를 출력할 수 있다.
여기에서, 언어 분석부는 데이터를 분산하여 처리하는 기법을 사용하여 분석 대상 문서에 포함된 텍스트를 분석할 수 있다.
여기에서, 언어 분석부는 분석 대상 문서에 포함된 텍스트에 대하여 문장 단위로 분리, 형태소 분석, 개체명 인식, 복합 명사 인식, 의존 구문 분석, 관계 추출, 의미론적 역할 분류 중 적어도 하나를 수행하여 언어 분석 결과를 출력할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 언어 처리 방법은, 입력받은 문서를 필터링하여 분석 대상 문서를 출력하는 필터링을 통한 전처리 단계와, 분석 대상 문서에 포함된 텍스트를 문장 단위로 분석하여 언어 분석 결과를 출력하는 정보 추출을 위한 언어 분석 단계 및 언어 분석 결과를 분산 데이터 저장 기법을 사용하여 저장하는 언어 분석 결과 저장 단계를 포함한다.
상기와 같은 본 발명에 따른 언어 처리 장치 및 언어 처리 방법에 따르면, 다수의 컴퓨터에 분산되어 입력되는 대용량의 문서를 동시에 처리할 수 있고, 이를 통하여 작업의 속도를 향상시킬 수 있다.
또한, 언어 분석 결과를 분산 데이터 저장 기법을 사용하여 저장함으로써, 다양한 응용 프로그램이 언어 분석 결과에 효과적으로 접근할 수 있도록 하는 장점이 있다.
도 1은 본 발명의 실시예에 따른 언어 처리 장치를 나타내는 블록도이다.
도 2는 본 발명의 실시예에 따른 분산 처리 기법을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 언어 처리 방법을 설명하기 위한 흐름도이다.
도 4는 도 3에 도시된 필터링을 통한 전처리 단계를 보다 상세하게 설명하는 흐름도이다.
도 5는 도 3에 도시된 정보 추출을 위한 언어 분석 단계를 보다 상세하게 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시예에 따른 언어 분석 결과가 저장되는 구조를 설명하기 위한 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 언어 처리 장치를 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 언어 처리 장치(10)는 전처리부(100), 언어 분석부(200) 및 결과 저장부(300)를 포함한다.
이하, 본 발명의 설명에서 전처리부(100), 언어 분석부(200) 및 결과 저장부(300)는 서로 독립된 부분으로서 개시되지만 전처리부(100), 언어 분석부(200) 및 결과 저장부(300)는 하나의 단일한 형태, 하나의 물리적인 장치 또는 하나의 모듈로 구현될 수 있다. 이뿐만 아니라, 전처리부(100), 언어 분석부(200) 및 결과 저장부(300)는 각각 하나의 물리적인 장치 또는 집단이 아닌 복수의 물리적 장치 또는 집단으로 구현될 수 있다.
전처리부(100)는 텍스트로 이루어진 문서를 입력받고, 입력받은 문서에 다양한 필터링을 수행하여 분석 대상 문서를 출력할 수 있다. 전처리부(100)는 문서에 다양한 필터링을 수행함으로써 사용자에게 불필요한 문서를 미리 제거할 수 있다. 예컨대, 전처리부(100)는 의미 없는 광고성 문서, 성인 콘텐츠를 포함하는 문서, 중복되는 문서 등을 확인하여 제거할 수 있다. 즉, 전처리부(100)는 불필요한 문서를 제거하여 분석의 대상이 되는 분석 대상 문서의 양을 줄어주는 역할을 수행한다.
특히, 본 발명의 실시예에 따른 전처리부(100)는 데이터를 분산 처리하는 기법을 활용하여 문서를 필터링할 수 있다. 예컨대, 전처리부(100)는 MapReduce와 같은 분산 처리 기법을 활용할 수 있다. 여기서, MapReduce는 대용량의 데이터를 처리하는 분산/병렬 시스템을 효율적으로 지원할 수 있는 프로그래밍 모델을 의미하며, MapReduce를 사용하는 대표적인 프로그램으로 오프소스(open source)인 하둡(Hadoop)이 있다.
언어 분석부(200)는 전처리부(100)에 의해 필터링되어 출력된 분석 대상 문서에 포함된 텍스트를 분석하여 언어 분석 결과를 출력한다. 언어 분석부(200)는 텍스트를 입력받아 문장 단위로 분리, 형태소 분석, 개체명 인식, 복합 명사 인식, 의존 구문 분석, 관계 추출, 의미론적 역할 분류(Semantic Role Labeling) 등을 수행하여 사용자에게 유의미한 정보를 포함하는 언어 분석 결과를 추출하여 출력할 수 있다. 언어 분석부(200)는 대용량의 문서에 대한 다양한 분석을 수행하므로 처리 속도의 지연이 발생할 수 있으나, 본 발명의 실시예에 따른 언어 분석부(200)는 데이터를 분산 처리하는 기법을 활용하여 데이터의 처리 속도를 향상시킬 수 있다. 예컨대, 본 발명의 실시예에 따른 언어 처리부는 상술한 전처리부(100)와 마찬가지로 MapReduce와 같은 분산 처리 기법을 활용할 수 있다.
따라서, 본 발명의 실시예에 따른 언어 처리 장치(10)는 데이터를 분산 처리할 수 있는 전처리부(100)와 언어 분석부(200)를 구비하여 테라바이트(terabyte) 또는 페타바이트(petabyte) 급에 해당하는 데이터를 효율적으로 처리할 수 있다.
결과 저장부(300)는 언어 분석부(200)에 의해 출력된 언어 분석 결과를 저장할 수 있다. 결과 저장부(300)는 분산 데이터 저장 기법을 활용하여 대용량의 데이터를 효율적으로 저장할 수 있다. 예컨대, 결과 저장부(300)는 NoSQL를 사용하여 테라바이트 또는 페타바이트 급의 대용량 데이터를 여러 컴퓨터에 효율적으로 저장할 수 있다. 따라서, 결과 저장부(300)는 데이터를 저장할 수 있는 메모리와 분산 데이터 저장 기법을 수행하도록 하는 프로세서를 포함하여 구성될 수 있다. 여기서, NoSQL은 관계형 데이터베이스의 한계를 극복할 수 있는 수평적 확정성을 특징으로 하며, NoSQL을 사용하는 대표적인 프로그램으로 오픈소스인 HBase, MongoDB, Bigtable 등이 있다.
텍스트를 대상으로 하는 다양한 응용 프로그램(20)들은 결과 저장부(300)에 저장된 언어 분석 결과를 사용하여 다양한 서비스를 제공할 수 있다. 텍스트를 대상으로 하는 응용 프로그램(20)은 추론 시스템, 대화 시스템 또는 질의 응답 시스템 등에 활용될 수 있으며, 서비스를 제공하는 과정에서 언어 분석 결과를 사용할 수 있다. 예컨대, 추론 시스템, 대화 시스템 또는 질의 응답 시스템 등은 언어를 분석하는 과정을 수행하여야 하는데, 결과 저장부(300)에 저장되어 있는 언어 분석 결과를 사용함으로써 서비스를 제공하는 속도를 향상시킬 수 있다.
도 2는 본 발명의 실시예에 따른 분산 처리 기법을 설명하기 위한 개념도이다.
본 발명의 실시예에 따른 언어 처리 장치(10)는 전처리부(100) 및 언어 분석부(200)에서 분산 처리 기법을 사용할 수 있으며, 도 2는 언어 분석부(200)에서 수행되는 분산 처리 기법을 설명한다.
도 2를 참조하면, 다수의 분석 대상 문서가 다수의 컴퓨터에 분산되어 입력된다. 도 2에서 각 컴퓨터에 하나의 분석 대상 문서가 저장되어 있는 것으로 도시되나, 각 컴퓨터에는 적게는 몇 만개의 문서에서부터 많게는 몇 천만개의 문서가 저장되어 있을 수 있다.
다수의 컴퓨터들은 클러스터를 구성하고 있으며, 언어를 분석할 수 있는 자원을 구비할 수 있다. 또한, 각각의 컴퓨터는 저장하고 있는 분석 대상 문서에 대한 정보를 언어 분석 장치(10)에 알릴 수 있고, 언어 분석 장치(10)는 분석 대상 문서가 각각 어느 컴퓨터에 저장되어 분석되는지 알 수 있다.
예를 들어, 사용자가 지정한 문서가 문서2, 문서3, 문서4라고 가정하면 언어 분석 장치(10)는 문서2, 문서3, 문서4가 각각 컴퓨터2, 컴퓨터3, 컴퓨터4에 저장되어 있는 것을 알 수 있다. 언어 분석 장치(10)는 언어를 분석할 수 있는 자원(언어 분석기)을 컴퓨터2, 컴퓨터3, 컴퓨터4에 배포할 수 있다. 다만, 언어를 분석할 수 있는 자원을 배포하여 각각의 컴퓨터에 설치하기 위해서는 시간의 지연이 불가피하므로, 미리 각각의 컴퓨터에 언어를 분석할 수 있는 자원을 배포할 수 있다. 컴퓨터2, 컴퓨터3, 컴퓨터4에 배포된 언어를 분석할 수 있는 자원은 문서2, 문서3, 문서4를 각각 분석하여 언어 분석 결과를 출력할 수 있고 출력된 언어 분석 결과는 결과 저장부(300)에 저장될 수 있다.
또한, 도 2의 실시예에 따른 분산 처리 기법은 텍스트를 포함하는 문서를 필터링하는 전처리부(100)에도 동일하게 수행될 수 있다.
도 3은 본 발명의 실시예에 따른 언어 처리 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 본 발명의 실시예에 따른 언어 처리 방법은 입력받은 문서를 필터링하여 전처리하고, 전처리된 문서로부터 정보를 추출하기 위하여 분석 대상 문서에 포함된 언어를 분석할 수 있다. 또한, 언어를 분석한 결과를 저장할 수 있다.
본 발명의 실시예에 따른 언어 처리 방법은 하나의 물리적 장치 또는 집단이 아닌 복수의 물리적 장치 또는 집단으로 구현될 수 있으며, 본 발명의 실시예에 따른 언어 처리 방법에 포함된 각각의 단계는 하나의 물리적 장치,하나의 모듈 또는 소프트웨어에 의해 구현될 수 있다.
예컨대, 도 1 및 도 3을 참조하면, 필터링을 통한 전처리 단계(S200)는 전처리부(100)에 의해 수행될 수 있고, 정보 추출을 위한 언어 분석 단계(S300)는 언어 분석부(200)에 의해 수행될 수 있으며, 언어 분석 결과 저장 단계(S400)는 결과 저장부(300)에 의해 수행될 수 있다.
필터링을 통한 전처리 단계(S200)는 입력받은 문서에 대하여 필터링을 수행하여 분석 대상 문서를 출력할 수 있다. 입력된 문서에 대한 전처리 과정은 다양한 필터링 기법을 활용할 수 있으며, 전처리 과정를 통하여 분석 대상 문서의 양을 줄여줄 수 있다. 즉, 언어 처리 장치(10)는 입력된 문서를 전처리함으로써, 불필요한 정보를 미리 제거할 수 있다.
필터링을 통한 전처리 단계(S200)는 입력받은 문서로부터 의미 없는 광고성 문서, 성인 콘텐츠를 포함하는 문서, 중복되는 문서 등을 필터링하여 제거할 수 있다. 또한, 본 발명의 실시예에 따른 필터링을 통한 전처리 단계(S200)는 데이터를 분산 처리하는 기법을 활용하여 문서를 필터링할 수 있다. 예컨대, 필터링을 통한 전처리 단계(S200)는 MapReduce와 같은 분산 처리 기법을 활용할 수 있다.
정보 추출을 위한 언어 분석 단계(S300)는 분석 대상 문서에 포함된 텍스트를 분석하여 언어 분석 결과를 출력할 수 있다. 정보 추출을 위한 언어 분석 단계(S300)는 분석 대상 문서에 포함된 텍스트를 입력받아 문장 단위로 분리, 형태소 분석, 개체명 인식, 복합 명사 인식, 의존 구문 분석, 관계 추출, 의미론적 역할 분류(Semantic Role Labeling)을 수행하여 사용자에게 유의미한 정보를 포함하는 언어 분석 결과를 추출하여 출력할 수 있다. 또한, 본 발명의 실시예에 따른 정보 추출을 위한 언어 분석 단계(S300)는 MapReduce와 같은 분산 처리 기법을 활용할 수 있다.
언어 분석 결과 저장 단계(S400)는 언어 분석 결과를 저장할 수 있다. 언어 분석 결과 저장 단계(S400)는 분산 데이터 저장 기법을 활용하여 대용량의 데이터를 효율적으로 저장할 수 있다. 즉, 본 발명의 실시예에 따른 언어 분석 결과 저장 단계(S400)는 NoSQL을 사용하여 테라바이트 또는 페타바이트 급의 대용량 데이터를 여러 컴퓨터에 효율적으로 저장할 수 있다.
따라서, 본 발명의 실시예에 따른 언어 처리 방법은 텍스트를 대상으로 하는 응용 프로그램(20)들이 저장되어 있는 언어 분석 결과를 사용할 수 있도록 하고, 이를 통하여 텍스트를 대상으로 하는 응용 프로그램(20)을 이용하는 추론 시스템, 대화 시스템 또는 질의 응답 시스템 등이 효율적으로 서비스를 제공할 수 있도록 한다.
도 4는 도 3에 도시된 필터링을 통한 전처리 단계를 보다 상세하게 설명하는 흐름도이다.
도 4를 참조하면, 필터링을 통한 전처리 단계(S200)는 입력받은 문서에 대하여 공백 확인, 스팸 필터링, 성인물 필터링, 중복 문서 필터링 등을 수행하여 분석 대상 문서를 출력할 수 있다.
공백 확인은 입력받은 문서의 용량이 너무 적거나 빈 문서인 경우에 입력받은 문서를 제거할 수 있다(S210).
스팸 필터링은 입력받은 문서가 의미 없는 광고성 문서이거나 특정 단어의 반복으로만 이루어진 문서일 경우 입력받은 문서를 제거할 수 있다(S220).
성인물 필터링은 입력받은 문서가 성인 콘텐츠를 포함하고 있는지 확인하여 성인 콘텐츠를 포함하는 문서를 제거할 수 있다(S230).
중복 문서 필터링은 입력받은 문서를 비교하여 동일한 문서가 존재하는지 확인하여 여러 개의 동일한 문서가 입력된 경우 하나의 대표 문서를 남기고 나머지 중복되는 문서를 제거할 수 있다(S240).
따라서, 본 발명의 실시예에 따른 필터링을 통한 전처리 단계(S200)는 입력받은 문서에 대하여 다양한 필터링을 수행하여 사용자에게 불필요한 문서를 미리 제거한 분석 대상 문서를 출력할 수 있고(S250), 이를 통하여 분석 대상 문서의 양을 줄여줌으로써 데이터의 처리 속도를 향상시킬 수 있다. 또한, 사용자는 필터링의 횟수 또는 필터링의 종류 등을 미리 선택할 수 있다.
도 5는 도 3에 도시된 정보 추출을 위한 언어 분석 단계를 보다 상세하게 설명하기 위한 흐름도이다.
도 5를 참조하면, 정보 추출을 위한 언어 분석 단계(S300)는 문장 단위로 분리, 형태소 분석, 개체명 인식, 복합 명사 인식, 의존 구문 분석, 관계 추출, 의미론적 역할 분류(Semantic Role Labeling) 등을 수행할 수 있다.
분석 대상 문서가 입력되면, 분석 대상 문서에 포함된 텍스트를 문장 단위로 분리한다(S310). 텍스트를 문장 단위로 분리함으로써 언어 분석이 용이하게 실행될 수 있다.
텍스트를 문장으로 분석한 후에 형태소를 태깅함으로써, 문장 내의 각 형태소들의 품사(명사, 동사, 형용사 등)를 분류할 수 있다(S320).
형태소를 태깅한 후에 문장 내에 존재하는 인물, 기관, 장소, 제품, 국가, 가격, 시간 등을 특정한 하나의 개체로 인식할 수 있다(S330). 예컨대, "김철수는 1980년에 태어났다"라는 문장에 있어서, "김철수"는 인물의 개체명으로, "1980년"은 시간의 개체명으로 인식될 수 있다.
또한, 문장 내에 둘 이상의 단어로 이루어지는 복합 명사를 구별하여 인식할 수 있다(S340). 예컨대, "아테네 올림픽"은 하나의 복합 명사로 인식될 수 있다.
문장 내의 각 단어들이 서로에게 어떠한 의존 관계를 가지는지 분석할 수 있다(S350). 문장 내에 포함되어 있는 단어 중에는 다른 단어에 의존하는 경우가 있다. 예컨대, "천재 소년이 말했다"라는 문장에 있어서, "천재"라는 단어는 소년을 수식할 수 있다. 따라서, "천재"라는 단어는 "소년"이라는 단어에 의존하는 관계가 성립함을 알 수 있다.
또한, 하나의 문장에 두 개이상의 개체명이 존재하는 경우, 개체명 상호간에 관계가 형성되며 이러한 관계를 구별하여 인식할 수 있다(S360). 예컨대, "김철수는 1980년에 태어났다"라는 문장에 있어서, "김철수"와 "1980년"이라는 두 개의 개체명이 존재한다. 여기서, "김철수"와 "1980년"는 출생이라는 관계로 묶일 수 있다. 즉, 이를 다른 형식으로 표현하면, "출생(김철수, 1980년)"으로 표현할 수 있다.
또한, 하나의 문장을 구성하는 단어나 복합 명사가 의미론적으로 어떠한 역할을 수행하는지 분류하여 인식할 수 있다(S370). 예컨대, "철수는 영희에게 과자를 주었다"라는 문장에 있어서, 각각의 단어가 문장에서 하는 역할을 분류할 수 있으며, 이는 "행위(주다), 준 사람(철수), 받은 사람(영희)"와 같은 분석 결과를 출력할 수 있다.
따라서, 본 발명의 실시예에 따른 정보 추출을 위한 언어 분석 단계(S300)는 분석 대상 문서를 입력받아 다양한 분석을 수행한 언어 분석 결과를 출력할 수 있다(S380). 이렇게 출력된 언어 분석 결과는 메모리에 저장되어 텍스트를 대상으로 하는 다양한 서비스를 제공하는데 있어서 활용될 수 있다.
도 6은 본 발명의 실시예에 따른 언어 분석 결과가 저장되는 구조를 설명하기 위한 개념도이다.
도 6을 참조하면, 본 발명의 실시예에 따른 언어 분석 결과를 저장하는 결과 저장부(300)의 구조는 MapReduce(310), 클러스터 매니저(320), NoSQL(330), 인덱스 테이블(340) 및 언어 분석 결과 DB(350)를 포함한다.
결과 저장부(300)는 NoSQL과 같은 분산 데이터 저장 기법을 활용하여 언어 분석 결과를 저장할 수 있다. 또한, 결과 저장부(300)는 MapReduce와 같은 분산 데이터 처리 기법을 활용할 수 있으며, 다수의 컴퓨터에 나누어서 데이터를 저장하고, 저장된 데이터를 호출하기 위하여 클러스터 매니저를 사용할 수 있다. 즉, 결과 저장부(300)는 MapReduce(310), 클러스터 매니저(320), NoSQL(330)을 하부 구조로 할 수 있다. 여기서, 클러스터 매니저(320)의 대표적인 오픈소스 프로그램은 Zookeeper, Google의 Chubby 등이 있다.
또한, 결과 저장부(300)는 인덱스 테이블(340)을 이용하여 사용자가 데이터베이스에 저장되어 있는 정보를 효과적으로 접근하도록 할 수 있다. 인덱스 테이블(340)은 사용자가 데이터베이스에 저장되어 있는 정보를 효과적으로 접근할 수 있도록 하는 브릿지 역할을 수행할 수 있다. 예컨대, 사용자는 날짜에 기초하여 언어 분석 결과에 접근할 수 있고, 문서의 저자에 기초하여 언어 분석 결과에 접근할 수도 있다. 즉, 인덱스 테이블(340)은 사용자가 선택한 기준에 따라 정보들을 정렬할 수 있다. 따라서, 인덱스 테이블(340)에 기반하여 언어 분석 결과에 대한 정보를 포함하는 언어 분석 결과 DB를 구축할 수 있다.
상술한 본 발명의 실시예에 따른 언어 처리 장치 및 방법을 이용하여 다수의 컴퓨터에 분산되어 입력되는 대용량의 문서를 동시에 처리할 수 있고, 이를 통하여 작업의 속도를 향상시킬 수 있다. 즉, 언어 처리 장치는 각각의 컴퓨터에 입력되는 문서 및 각각의 컴퓨터가 분석하는 분석 대상 문서를 인식할 수 있고, 이를 통하여 언어를 처리하는 작업을 효과적으로 분배할 수 있다.
또한, 본 발명의 실시예에 따른 언어 처리 장치는 언어 분석 결과를 분산 데이터 저장 기법을 사용하여 저장함으로써, 다양한 응용 프로그램이 언어 분석 결과에 효과적으로 접근하여 사용할 수 있도록 한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 언어 처리 장치 20: 응용 프로그램
100: 전처리부 200: 언어 분석부
300: 결과 저장부 310: MapReduce
320: 클러스터 매니저 330: NoSQL
340: 인덱스 테이블 350: 언어 분석 결과 DB

Claims (1)

  1. 입력받은 문서를 필터링하여 분석 대상 문서를 출력하는 전처리부;
    상기 분석 대상 문서를 문장 단위로 분석하여 언어 분석 결과를 출력하는 언어 분석부; 및
    상기 언어 분석 결과를 분산 데이터 기법을 사용하여 저장하는 결과 저장부를 포함하는 언어 처리 장치.
KR1020120035200A 2012-04-05 2012-04-05 언어 처리 장치 및 그 방법 KR20130113000A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120035200A KR20130113000A (ko) 2012-04-05 2012-04-05 언어 처리 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120035200A KR20130113000A (ko) 2012-04-05 2012-04-05 언어 처리 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20130113000A true KR20130113000A (ko) 2013-10-15

Family

ID=49633710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120035200A KR20130113000A (ko) 2012-04-05 2012-04-05 언어 처리 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR20130113000A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050997A (ko) * 2014-10-31 2016-05-11 에스케이텔레콤 주식회사 사용자 언어환경을 고려한 데이터 분석 서비스 제공 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR20160060820A (ko) * 2014-11-20 2016-05-31 한국전자통신연구원 언어분석결과 업데이트 장치 및 방법
KR20170052266A (ko) * 2015-11-04 2017-05-12 에스케이텔레콤 주식회사 질의 및 데이터 경로 관리장치 및 컴퓨터 프로그램

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050997A (ko) * 2014-10-31 2016-05-11 에스케이텔레콤 주식회사 사용자 언어환경을 고려한 데이터 분석 서비스 제공 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR20160060820A (ko) * 2014-11-20 2016-05-31 한국전자통신연구원 언어분석결과 업데이트 장치 및 방법
KR20170052266A (ko) * 2015-11-04 2017-05-12 에스케이텔레콤 주식회사 질의 및 데이터 경로 관리장치 및 컴퓨터 프로그램

Similar Documents

Publication Publication Date Title
US10496928B2 (en) Non-factoid question-answering system and method
US10409911B2 (en) Systems and methods for text analytics processor
US11514235B2 (en) Information extraction from open-ended schema-less tables
Alwakid et al. Challenges in sentiment analysis for Arabic social networks
Shinde et al. Nlp based object oriented analysis and design from requirement specification
Solaimani et al. Spark-based political event coding
Priyadarshi et al. Towards the first Maithili part of speech tagger: Resource creation and system development
KR20140052328A (ko) Rdf 기반의 문장 온톨로지 생성 장치 및 방법
US11182545B1 (en) Machine learning on mixed data documents
Garcia et al. Fakerecogna: A new brazilian corpus for fake news detection
KR20130113000A (ko) 언어 처리 장치 및 그 방법
Rouces et al. Generating a gold standard for a Swedish sentiment lexicon
KR102206742B1 (ko) 자연언어 텍스트의 어휘 지식 그래프 표현 방법 및 장치
CN115392239A (zh) 一种知识抽取方法及应用其的智能客户系统
US20210073258A1 (en) Information processing apparatus and non-transitory computer readable medium
KR20070008994A (ko) 비구조 웹문서에서 도메인별 정보를 추출하기 위한 시스템및 그 방법
JP7227705B2 (ja) 自然言語処理装置、検索装置、自然言語処理方法、検索方法およびプログラム
Mesmia et al. Arabic named entity recognition process using transducer cascade and Arabic Wikipedia
JP7078244B2 (ja) データ処理装置、データ処理方法、データ処理システム及びプログラム
Castellanos et al. Global news sentiment analysis
CN111143559A (zh) 基于三元组的词云展示方法及装置
Zafar et al. Analyzing adverbs impact for sentiment analysis using hadoop
Chanakitkarnchok et al. Autonomous website categorization with pre-defined dictionary
Mathur Improving classification results using class imbalance solutions & evaluating the generalizability of rationale extraction techniques
NASRI et al. TOWARDS A FULLY CLOUD-BASED PLATFORM FOR ARABIC NLP

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
AMND Amendment