KR20160109302A - 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체 - Google Patents

지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체 Download PDF

Info

Publication number
KR20160109302A
KR20160109302A KR1020150033436A KR20150033436A KR20160109302A KR 20160109302 A KR20160109302 A KR 20160109302A KR 1020150033436 A KR1020150033436 A KR 1020150033436A KR 20150033436 A KR20150033436 A KR 20150033436A KR 20160109302 A KR20160109302 A KR 20160109302A
Authority
KR
South Korea
Prior art keywords
word
attribute
user query
knowledge
matching
Prior art date
Application number
KR1020150033436A
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 KR1020150033436A priority Critical patent/KR20160109302A/ko
Priority to US15/065,044 priority patent/US20160267139A1/en
Publication of KR20160109302A publication Critical patent/KR20160109302A/ko

Links

Images

Classifications

    • G06F17/30654
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • G06F17/20
    • G06F17/2705
    • G06F17/278
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)

Abstract

본 발명의 실시예는 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체에 관한 것으로서, 본 발명의 실시예에 따른 지식기반 서비스 시스템은 사용자로부터 사용자 질의를 수신하는 디스플레이 장치, 및 사용자 질의를 제공받아 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 사용자 질의의 답변을 디스플레이 장치로 제공하는 지식기반 서비스 서버를 포함할 수 있다.

Description

지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체{Knowledge Based Service System, Sever for Providing Knowledge Based Service, Method for Knowledge Based Service, and Computer Readable Recording Medium}
본 발명은 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체에 관한 것으로서, 더 상세하게는 가령 TV나 스마트폰 등을 통해 사용자가 답변을 위한 질의를 제공할 때, 해당 질의의 단어들에 대한 특성, 가령 연계성의 판단 결과에 근거하여 답변을 제공하는 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체에 관한 것이다.
자연어에 의한 질의(query)에서 대상의 속성을 질의하는 유형의 질의문은 많다. 예를 들어, "김*아씨 생일은?"이나 "63 빌딩의 높이는?" 등이다. '김*아'라고 하는 대상의 '생일'이라는 속성, '63 빌딩'이라는 대상의 '높이'라고 하는 속성을 묻고 있다. 이러한 질의문으로부터 대상 및 속성을 올바르게 추출할 수 있으면, 예컨대 인물명과 생일로 이루어진 DB로부터, '김*아'의 '생일'을 검색함으로써, '김*아'의 '생일'에 대한 질의에 회답할 수 있거나, 건물과 그 높이로 이루어진 DB로부터 63 빌딩의 높이 필드를 검색함으로써 '63 빌딩'의 '높이'에 대한 질의에 회답할 수 있다.
그런데, 이러한 종래 방식은 필드 검색 방식으로서, 대상에 해당되는 단어를 먼저 격자 형태의 2차원 검색 테이블에서 검색하고, 그 후에 다시 속성에 해당되는 단어를 검색하기 때문에 회답을 찾기에 많은 검색 시간이 소요되는 문제가 있다.
본 발명의 실시예는 가령 TV나 스마트폰 등을 통해 사용자가 답변을 위한 질의를 제공할 때, 해당 질의의 단어들에 대한 특성, 가령 연계성의 판단 결과에 근거하여 답변을 제공하는 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체를 제공함에 그 목적이 있다.
본 발명의 실시예에 따른 지식기반 서비스 시스템은 사용자로부터 사용자 질의를 수신하는 디스플레이 장치, 및 상기 사용자 질의를 제공받아 상기 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 상기 사용자 질의의 답변을 상기 디스플레이 장치로 제공하는 지식기반 서비스 서버를 포함한다.
또한 본 발명의 실시예에 따른 지식기반 서비스 서버는 사용자 질의에 대한 답변을 저장하는 저장부, 사용자 질의를 수신하는 통신 인터페이스부, 및 상기 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 상기 저장한 답변을 출력하는 지식기반 정보처리부를 포함한다.
상기 지식기반 정보처리부는, 상기 수신한 사용자 질의의 단어를 추출하는 단어 추출부, 및 상기 추출한 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 상기 개체명 단어 및 상기 속성 단어를 정합하는 단어 정합부를 포함할 수 있다.
상기 단어 추출부는 사용자 질의가 문장으로 수신될 때, 서술어와의 의존 관계에 있는 단어를 추출하는 의존 구조 분석 방법, 문장의 각 단어가 문장 내에서 어떠한 역할을 하는지를 분석하는 의미 구조 분석 방법, 단어의 품사를 확인하여 단어를 추출하는 품사 확인 방법 중 적어도 하나의 방법에 의해 상기 단어를 추출할 수 있다.
상기 저장부는, 상기 개체명에 대한 개체명 단어와 상기 속성에 대한 속성 단어를 더 저장하며, 상기 지식기반 정보처리부는, 상기 사용자 질의 내의 단어와 별개로(separately) 취득된 개체명 단어와 속성 단어의 정합 단어에 매칭되는 답변을 출력할 수 있다.
상기 저장부는, 동일 표기를 갖는 다른 의미의 개체명 단어를 저장하며, 상기 지식기반 정보처리부는, 상기 동일 표기된 단어에 대하여 링크 횟수가 많은 개체명 단어를 선택하여 이용할 수 있다.
상기 저장부, 단어를 벡터로 표현한 해석 벡터 방식에 의해 상기 속성 단어를 저장하며, 상기 지식기반 정보처리부는, 상기 사용자 질의 내의 단어와 벡터 거리가 근접한 단어를 상기 속성 단어로 선택하여 이용할 수 있다.
상기 사용자 질의의 단어는 상기 개체명 단어 및 상기 속성 단어와 서로 다른 언어일 수 있다.
상기 지식기반 정보처리부는, 상기 사용자 질의의 제1 단어가 개체명 단어로 판단되면, 제2 단어를 속성 단어로 자동 판단할 수 있다.
나아가, 본 발명의 실시예에 따른 지식기반 서비스제공방법은 사용자 질의를 수신하는 단계, 상기 수신한 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나를 판단하는 단계, 및 상기 판단한 결과에 근거하여, 기저장된 답변을 출력하는 단계를 포함한다.
상기 지식기반 서비스제공방법은 상기 수신한 사용자 질의 내의 단어를 추출하는 단계, 및 상기 추출한 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 상기 개체명 단어 및 상기 속성 단어를 정합하는 단계를 더 포함하며, 상기 답변을 출력하는 단계는, 상기 정합한 단어에 매칭되는 기저장된 답변을 출력할 수 있다.
상기 단어를 추출하는 단계는, 사용자 질의가 문장으로 수신될 때, 서술어와의 의존 관계에 있는 단어를 추출하는 의존 구조 분석 방법, 문장의 각 단어가 문장 내에서 어떠한 역할을 하는지를 분석하는 의미 구조 분석 방법, 단어의 품사를 확인하여 단어를 추출하는 품사 확인 방법 중 적어도 하나의 방법에 의해 상기 단어를 추출할 수 있다.
상기 지식기반 서비스제공방법은 상기 개체명에 대한 개체명 단어와 상기 속성에 대한 속성 단어를 저장하는 단계를 더 포함하며, 상기 답변을 출력하는 단계는, 상기 사용자 질의 내의 단어와 별개로 취득된 개체명 단어와 속성 단어의 정합 단어에 매칭되는 답변을 출력할 수 있다.
상기 지식기반 서비스제공방법은 동일 표기를 갖는 다른 의미의 개체명 단어를 저장하는 단계를 더 포함하며, 상기 답변을 출력하는 단계는, 상기 동일 표기된 단어에 대하여 링크 횟수가 많은 개체명 단어를 선택하여 이용할 수 있다.
상기 지식기반 서비스제공방법은 단어를 벡터로 표현한 해석 벡터 방식에 의해 상기 속성 단어를 저장하는 단계를 더 포함하며, 상기 답변을 출력하는 단계는, 상기 사용자 질의 내의 단어와 벡터 거리가 근접한 단어를 상기 속성 단어로 선택하여 이용할 수 있다.
상기 사용자 질의의 단어는 상기 개체명 단어 및 상기 속성 단어와 서로 다른 언어일 수 있다.
상기 판단하는 단계는, 상기 사용자 질의의 제1 단어가 개체명 단어로 판단되면, 제2 단어를 속성 단어로 자동 판단할 수 있다.
한편, 본 발명의 실시예에 따른 컴퓨터 판독가능 기록매체는 지식기반 서비스제공방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서, 상기 지식기반 서비스제공방법은, 사용자 질의를 수신하는 단계, 상기 수신한 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나를 판단하는 단계, 및 상기 판단한 결과에 근거하여, 기저장된 답변을 출력하는 단계를 실행한다.
도 1은 본 발명의 실시예에 따른 지식기반 서비스 시스템을 나타내는 도면,
도 2는 도 1의 지식기반 서비스제공장치의 세부 구조를 나타내는 도면,
도 3은 도 1의 지식기반 서비스제공장치의 다른 세부 구조를 나타내는 도면,
도 4는 단어를 해석 벡터로 표현한 방식을 설명하기 위한 도면,
도 5는 도 2의 지식기반 정보처리부의 세부 구조를 나타내는 예시도,
도 6은 도 2의 지식기반 정보처리부의 다른 세부 구조를 나타내는 예시도, 그리고
도 7은 본 발명의 실시예에 따른 지식기반 서비스제공방법을 나타내는 흐름도이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 지식기반 서비스 시스템을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 지식기반 서비스 시스템(90)은 사용자 장치(혹은 디스플레이 장치)(100), 통신망(110) 및 지식기반 서비스제공장치(혹은 지식기반 서비스 서버)(120)의 일부 또는 전부를 포함한다.
여기서, 일부 또는 전부를 포함한다는 것은 통신망(110)과 같은 일부 구성요소가 생략되어 사용자 장치(100)와 지식기반 서비스제공장치(120)가 다이렉트(ex. P2P) 통신을 수행할 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
사용자 장치(100)는 예를 들어 검색 기능이 가능한 DTV, 스마트폰, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 PC 및 웨어러블 장치 등의 디스플레이 장치를 포함할 수 있다. 이러한 사용자 장치(100)는 답변을 요청하는 사용자로부터 검색창이나 마이크로폰을 통해 텍스트나 음성 질의를 수신하며, 수신한 질의가 통신망(110)을 경유해 지식기반 서비스제공장치(120)에 제공되도록 한다. 이때 사용자 장치(100)는 텍스트 기반의 인식 결과를 지식기반 서비스제공장치(120)로 제공할 수 있다. 예를 들어, 질의로서 음성을 수신하는 경우, 사용자 장치(100)는 가령 마이크로폰과 같은 음성 수신부를 통해 음성 질의를 수신하고, *-Voice와 같은 발화 엔진 즉 프로그램을 이용해 수신한 음성 질의를 인식하여 인식 결과를 텍스트 기반으로 출력할 수 있다.
다만, 사용자 장치(100)에 비해 지식기반 서비스제공장치(120)가 좀더 월등한 성능의 엔진 즉 프로그램을 가질 수 있기 때문에 텍스트 기반의 인식 결과는 지식기반 서비스제공장치(120)에서 생성하는 것이 더욱 바람직할 수 있다. 다시 말해, 사용자 장치(100)는 마이크로폰을 통해 수신한 음성 신호만 전달하고, 지식기반 서비스제공장치(120)는 수신한 음성 신호를 기반으로 음성 인식 및 텍스트 기반의 인식 결과를 생성하는 것이다. 따라서, 본 발명의 실시예에서는 인식 결과가 어떻게 처리되는지에 대하여 특별히 한정하지는 않을 것이다.
본 발명의 실시예에 따라 사용자 장치(100)는 사용자로부터 다양한 형태의 질의를 수신할 수 있다. 여기서, 다양한 형태의 질의를 수신한다는 것은 간략하게는 단어와 문장을 의미하지만, 더 정확하게는 단어라 하더라도 하나의 단어를 수신하는 경우와 복수의 단어를 수신하는 경우, 또 문장의 형태로 수신하는 경우를 의미할 수 있다. 이때, 단어는 본 발명의 실시예에서 규정한 개체명에 해당되는 단어(이하, 개체명 단어)만으로 이루어지거나, 속성에 해당되는 단어(이하, 속성 단어)만으로 이루어질 수 있다. 또한 개체명 단어와 속성 단어의 결합일 수 있다. 문장의 경우에도 다양한 특성의 단어를 포함할 수 있으며, 복수의 단어인 경우와 비교해 볼 때, 완전한 문장을 이룬다는 점에서 차이가 있을 수 있다. 이는 이후에 좀더 자세히 살펴보겠지만, 질의에서 추출된 단어를 지식기반 DB에서 검색해 봄으로써 알 수 있다.
통상적으로 모든 단어, 예를 들어 '오*마'는 개체명이 될 수도 있고, 속성이 될 수도 있다. 이는 시스템 설계자가 지식기반 DB를 어떠한 방식으로 구축하느냐에 따라 결정될 수 있다. 다시 말해, 개체명 DB에 '오*마'를 포함시킨 경우에는 개체명 단어가 되는 것이고, 속성 DB에 포함시킨 경우에는 속성 단어가 되는 것이다. 이와 같이 지식기반 DB란 여러 개의 DB가 서로 (그물망처럼) 연결되어 동작하는 것으로서 종래 대비 검색 효율을 좀더 높인 것이다. 하나의 개체명 단어에 대하여 여러 개의 속성 단어가 연계되고, 또 그 각각의 속성 단어가 개체명이 될 때에는 다시 그 속성 단어에 여러 개의 속성 단어가 연계되는 이러한 형태를 이룰 수 있다. 이에 근거하여, 본 발명의 실시예에서는 개체명 단어 DB와 속성 단어 DB, 그리고 개체명과 속성 단어가 정합된 정합 단어 DB로 구분된다고 볼 수 있다. 물론 그 이외에도 개체명 단어와 개체명 단어가 정합된 DB, 속성 단어와 속성 단어가 결합된 DB 등을 더 포함할 수도 있을 것이다.
예를 들어, 사용자가 "US 대통령"이라 질의하면 '오*바'는 "US 대통령"에 종속되므로 속성이 될 수 있다. 반면 '오*마'라고 질의하면, '오*마'와 관련한 다양한 것들이 속성으로 연계되어 있을 수 있다. 예컨대 생일, 고향, 나이, 출신학교 등 다양한 것들이 속성이 될 수 있다. 이는 DB를 어떻게 구축하느냐에 따라 결정된다. 따라서, 사용자가 "오*마 생일"이라고 질의하면, 사용자 장치(100)는 두 단어의 특성, 즉 연계성을 먼저 판단할 수 있다. 다시 말해, 둘 때 개체명 단어인지 둘 다 속성 단어인지, 또는 어느 하나는 개체명 단어이고 다른 하나는 속성 단어인지를 파악한다. 그리고 판단 결과, 가령 '오*마'가 개체명 단어이고, '생일'이 속성 단어이면, '오*마'라는 개체명 단어와 '생일'이라는 속성 단어를 정합하고, 정합한 단어에 매칭되는 답변을 사용자 장치(100)는 수신할 수 있다. 즉 별도의 정합 단어 DB를 통해 추출된 답변이 사용자 장치(100)로 제공되는 것이다. 이의 과정에서, 가령 개체명 단어 DB나 속성 단어 DB와 같은 DB가 다른 언어를 기반으로 구축되는 경우에는 언어가 서로 다른 새로운 개체명 단어와 속성 단어를 DB로부터 추출하고, 추출한 단어를 정합하여 정합한 단어에 매칭되는 답변을 수신할 수도 있다. 이와 같이 사용자는 질의한 단어의 특성, 즉 연계성으로서 가령 개체명과 속성에 따라, 그리고 구축된 DB의 구축 방식에 따라 다양한 형태의 답변을 제공받을 수 있다. 여기서, 언어가 서로 다른 새로운 단어란 해석 벡터 방식으로 구축된 DB에서 가령 한글 기반의 '오*마'에 대하여 가장 근접한 의미를 갖는 'BarakO**ma'라는 단어를 제공하는 것이 그 좋은 예이다.
통신망(110)은 유무선 통신망을 모두 포함한다. 여기서 유선망은 케이블망이나 공중 전화망(PSTN)과 같은 인터넷망을 포함하는 것이고, 무선 통신망은 CDMA, WCDMA, GSM, EPC(Evolved Packet Core), LTE(Long Term Evolution), 와이브로 망 등을 포함하는 의미이다. 물론 본 발명의 실시예에 따른 통신망(110)은 이에 한정되는 것이 아니며, 향후 구현될 차세대 이동통신 시스템의 접속망으로서 가령 클라우드 컴퓨팅 환경하의 클라우드 컴퓨팅망 등에 사용될 수 있다. 가령, 통신망(110)이 유선 통신망인 경우 통신망(110) 내의 액세스포인트는 전화국의 교환국 등에 접속할 수 있지만, 무선 통신망인 경우에는 통신사에서 운용하는 SGSN 또는 GGSN(Gateway GPRS Support Node)에 접속하여 데이터를 처리하거나, BTS(Base Station Transmission), NodeB, e-NodeB 등의 다양한 중계기에 접속하여 데이터를 처리할 수 있다.
통신망(110)은 액세스포인트를 포함할 수 있다. 액세스포인트는 건물 내에 많이 설치되는 펨토(femto) 또는 피코(pico) 기지국과 같은 소형 기지국을 포함한다. 여기서, 펨토 또는 피코 기지국은 소형 기지국의 분류상 사용자 장치(100)를 최대 몇 대까지 접속할 수 있느냐에 따라 구분된다. 물론 액세스포인트는 사용자 장치(100)와 지그비 및 와이파이(Wi-Fi) 등의 근거리 통신을 수행하기 위한 근거리 통신 모듈을 포함한다. 액세스포인트는 무선통신을 위하여 TCP/IP 혹은 RTSP(Real-Time Streaming Protocol)를 이용할 수 있다. 여기서, 근거리 통신은 와이파이 이외에 블루투스, 지그비, 적외선(IrDA), UHF(Ultra High Frequency) 및 VHF(Very High Frequency)와 같은 RF(Radio Frequency) 및 초광대역 통신(UWB) 등의 다양한 규격으로 수행될 수 있다. 이에 따라 액세스포인트는 데이터 패킷의 위치를 추출하고, 추출된 위치에 대한 최상의 통신 경로를 지정하며, 지정된 통신 경로를 따라 데이터 패킷을 다음 장치, 예컨대 사용자 장치(100)로 전달할 수 있다. 액세스포인트는 일반적인 네트워크 환경에서 여러 회선을 공유할 수 있으며, 예컨대 라우터(router), 리피터(repeater) 및 중계기 등이 포함될 수 있다.
지식기반 서비스제공장치(120)는 서버를 포함하며, 지식기반 DB(KDB)를 포함하거나, 별도로 구비된 DB와 연계하여 동작(이하, 연동)할 수 있다. 이러한 지식기반 DB에 근거하여 지식기반 서비스제공장치(120)는 사용자가 제공한 질의에 대한 답변을 제공한다. 이를 위하여 지식기반 서비스제공장치(120)는 수신된 사용자 질의에 포함되는 단어(들)에 대하여 개체명 및 속성 중 적어도 하나를 판단한다. 다시 말해, 본 발명의 실시예에는 지식기반 DB 방식에 근거하여 가령 서로 물리적으로 이격된 장소에서 서로 연동하는 개체명 DB와 속성 DB를 통해 판단된 개체명 단어와 속성 단어를 서로 정합하고, 정합된 2개의 단어와 매칭되는 답변을 제공하는 것이다. 물론 본 발명의 실시예에서는 물리적으로 이격된 것에 특별히 한정하지는 않을 것이다.
좀더 살펴보면, 지식기반 서비스제공장치(120)는 수신된 질의의 단어들에 대하여 개체명과 속성을 먼저 구분할 수 있다. 예를 들어, 지식기반 서비스제공장치(120)가 "오*마 고향이 어디지?"라는 질의를 수신했다고 가정하자. 이의 경우, 지식기반 서비스제공장치(120)는 '오*마'와 '고향'이라는 2개의 단어를 추출하고, 추출한 단어의 개체명 및 속성을 구분하기 위하여 개체명 DB 및 속성 DB를 각각 검색하게 된다. 이를 통해, 지식기반 서비스제공장치(120)는 질의의 단어가 개체명 단어인지 속성 단어인지 판단하게 된다. 이후, 개체명 단어와 속성 단어가 정합된 정합 단어에 매칭되는 답변을 정합 단어 DB에서 찾는 것이다. 속성 단어는 앞서 언급한 대로 개체명 단어가 될 수도 있으므로, 만약 속성 단어 + 개체명 단어의 순으로 정합된다면 그 결과는 전혀 다른 답변이 될 수 있으므로, 본 발명의 실시에에서는 이러한 단어의 정합이 중요할 수 있다.
우리는 '오*마'와 '고향' 중 어느 것이 개체명에 해당되고, 속성에 해당되는지를 판단하라고 요청받는다면, '고향'은 '오*마'라는 개체의 속성임을 아주 쉽게 알 수 있을 것이다. 하지만, 지식기반 서비스제공장치(120)는 각각의 DB를 검색하기 전에는 이를 알 수가 없다. 예를 들어, 각각의 단어가 둘 다 개체인 경우도 있을 수 있고, 둘 다 속성인 경우도 있을 수 있기 때문이다. 따라서, 판단 결과에 따라 사용자에게 제공되는 결과는 전혀 다르게 된다. 이러한 점에서 지식기반 서비스제공장치(120)는 먼저 '오*마'에 대하여 개체명 DB를 검색하여 '오*마'가 개체명인 것을 판단하고, '고향'은 학습(learning)을 통해 속성 단어임을 자동으로 판단할 수 있다. 그러나, '고향'에 대하여도 개체명으로 판단되지 않는 이상, 속성 DB를 더 검색하는 것이 바람직하다. 예를 들어, 초기 몇 회에 걸쳐서는 '오*마'와 '고향'에 대하여 각각의 DB를 검색하여 개체명과 속성을 판단하게 된다. 이후 다시 동일한 질의가 입력되면 그 경험에 근거하여 '고향'은 속성 단어임을 자동으로 판단하는 것이다. 이것이 학습에 해당된다. 예를 들어, 사용자가 "TV가 언제 개발되었지?"라고 질의하면, 'TV', '언제', '개발'의 단어가 추출될 것이다. 따라서, 추출된 단어에서 '언제'는 개체명 및 속성 단어에서 배제될 수 있기 때문에 지식기반 DB의 검색이 필요할 수 있다.
이의 과정에서 지식기반 서비스제공장치(120)는 앞서 언급한 대로 추출된 단어와 다른 언어로 표현되는 개체명 단어와 속성 단어를 각각 취득하여 이를 정합해 답변을 제공할 수도 있다. 다시 말해, 한글 '오*마'에 대하여 개체명 DB를 검색한 경우, 해당 단어가 없을 때 해당 단어와 의미가 같은 단어를 추출하게 된다. 이를 위하여, 지식기반 DB는 단어를 해석 벡터로 표현하는 방식에 의해 저장된 단어를 추출한다. 예를 들어, 'BarakO***ma'를 추출할 수 있다. 또한 '생일'에 대하여는 속성 DB를 검색하여 'birthdate'라는 단어를 추출할 수 있다. 그리고 추출된 2개의 단어를 정합하여 정합된 단어들에 매칭되는 답변을 제공할 수 있다.
사용자에게 제공하는 답변은 지식기반 DB를 어떠한 방식으로 구축하느냐에 따라 많이 다를 수 있다. 예를 들어, 위키피디아(Wikipedia)의 문서들에 기반하여 단어들을 구축하는 경우에는 상기와 같은 형태로 동작이 이루어질 수 있다. 반면 한글 기반으로 DB가 구축되는 경우에는 사용자 질의의 단어에 대한 개체명과 속성, 더 정확하게는 적어도 하나를 판단하고, 판단 결과에 따라 서로 다른 지식기반 DB를 검색할 수 있을 것이다. 다시 말해 본 발명의 다른 실시예에 따라, 지식기반 DB는 개체명 단어와 개체명 단어로 정합된 단어의 검색 DB, 속성 단어와 속성 단어로 정합된 단어의 검색 DB 및 개체명 단어와 속성 단어로 정합된 단어의 검색 DB를 포함할 수 있기 때문에 답변은 다양한 형태로 제공될 수 있을 것이다.
상기와 같이 지식기반으로 DB를 구축하고, 구축된 DB를 이용하여 사용자 질의의 핵심 단어, 즉 개체명 단어를 지식 기반의 속성과 정합시키는 과정에 의해 질의 응답을 제공함으로써 질의 응답에 대한 효율성을 극대화시킬 수 있을 것이다. 즉 사용자의 의도에 알맞은 정보를 제공하는 것이다. 가령 적절치 않은 속성과 정합하거나 제대로 정합하지 못할 경우, 전혀 다른 답변을 내거나 답변을 제공하지 못하기 때문에 본 발명의 실시예는 이러한 문제의 해결에 도움이 될 수 있다.
도 2는 도 1의 지식기반 서비스제공장치의 세부 구조를 나타내는 도면으로, 지식기반 서비스 제공장치가 하드웨어적으로 구분되어 구성되는 것을 예시하였다.
설명의 편의상 도 2를 도 1과 함께 참조하면, 본 발명의 실시예에 따른 지식기반 서비스제공장치(120)는 통신 인터페이스부(200), 지식기반 정보처리부(210) 및 저장부(220)의 일부 또는 전부를 포함할 수 있다.
여기서, 일부 또는 전부를 포함한다는 것은 통신 인터페이스부(200)와 같은 일부 구성요소가 생략되거나, 저장부(220)와 같은 일부 구성 요소가 지식기반 정보처리부(210)와 같은 다른 구성요소에 통합되어 구성될 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
통신 인터페이스부(200)는 사용자 장치(100)로부터 사용자 질의를 수신한다. 이때 수신한 질의는 텍스트 기반의 인식 결과를 수신할 수 있지만, 음성 신호를 수신하는 경우에는 이를 텍스트 기반으로 인식하여 인식 결과를 생성할 수 있다. 또는 통신 인터페이스부(200)는 지식기반 정보처리부(210)로 음성 신호를 제공하여 인식 결과를 생성하도록 할 수도 있다. 나아가, 통신 인터페이스부(200)는 수신한 사용자 질의에 대한 답변을 지식기반 정보처리부(210)로부터 제공받아 사용자 장치(100)로 전송하게 된다.
지식기반 정보처리부(210)는 수신된 사용자 질의 내에 포함된 단어의 특성을 판단할 수 있다. 예를 들어, 단어의 특성으로서 해당 단어가 개체명에 해당되는 단어인지 속성에 해당되는 단어인지를 나타내는 단어의 연계성을 판단할 수 있다. 가령, "오*마"라는 질의가 있는 경우와 "오*마 생일이 언제지?"라는 사용자 질의가 있는 경우를 비교해 보자. 지식기반 정보처리부(210)는 "오*마"라는 질의가 있는 경우, 해당 단어가 개체명 단어인지 속성 단어인지 판단할 수 있다. 이를 위해, 개체명 DB와 속성 DB를 검색하고, 검색된 해당 DB에서 '오*마'에 매칭된 답변을 제공할 수 있다. 반면, "오*바 생일이 언제지?"라는 질의가 있는 경우, '오*마', '생일', '언제'라는 단어를 추출한다. 그리고 추출한 단어들에 대하여 개체명 단어와 속성 단어를 구분할 수 있지만, 이의 과정에서 단어의 품사를 추가로 판단하여, '언제'라는 단어는 배제시킬 수 있다. 그리고, '오*마'와 '생일'의 2개 단어에 대하여 개체명 단어인지 속성 단어인지를 판단한다. 이후 '오*마'가 개체명 단어이고, '생일'이 속성 단어인 것이 각 DB의 검색에 의해 판명되면, 다시 해당 단어들을 개체명 단어 + 속성 단어의 순으로 정합한다. 이의 과정에서 속성 단어 + 개체명 단어의 순으로 정합하는 것은 전혀 다른 답변을 제공할 수 있기 때문에 그 정합 순서가 중요할 수도 있다. 물론 이는 DB 구축 방식에 따라 동일 답변이 제공될 수도 있고 전혀 다른 답변이 제공될 수 있으므로 위의 내용에 특별히 한정하지는 않을 것이다. 그리고, 지식기반 정보처리부(210)는 정합된 단어와 매칭되는 답변을 정합 DB를 검색해 추출하여 사용자에게 제공하게 된다. 이를 위하여, 지식기반 정보처리부(210)는 저장부(220)와 연동할 수 있다.
저장부(220)는 물리적으로 또는 소프트웨어적으로 개체명 단어의 저장 영역, 속성 단어의 저장 영역 및 정합 단어의 저장 영역 등으로 구분될 수 있다. 이와 같이 지식기반 정보처리부(210)는 저장부(220)의 서로 다른 영역에 접근하여 원하는 결과를 도출할 수 있다. 즉 저장부(220)는 지식기반 정보처리부(210)의 요청에 따른, 가령 정합 단어에 매칭되는 결과를 출력하는 것이다.
도 3은 도 1의 지식기반 서비스제공장치의 다른 세부 구조를 나타내는 도면으로서, 지식기반 서비스 제공장치가 소프트웨어적으로 구성되는 것을 예시하여 나타내는 것이고, 도 4는 단어를 해석 벡터로 표현한 방식을 설명하기 위한 도면이다.
설명의 편의상 도 3을 도 1과 함께 참조하면, 본 발명의 다른 실시예에 따른 지식기반 서비스제공장치(120')는 단어 추출 모듈(300), 단어 정합 모듈(310)을 포함하며, 개체명 단어 DB(320), 속성 단어 DB(330) 및 정합 단어 DB(340)를 더 포함할 수 있다.
본 발명의 구체적인 설명에 앞서, 설명의 편의를 위해 하나의 단어가 제공되는 경우의 설명은 생략하도록 한다. 다시 말해, 사용자 질의로서 하나의 단어가 수신되는 경우, 단어 추출 모듈(300)는 단어 추출의 별도 과정 없이 해당 단어를 단어 정합 모듈(300)로 제공할 수 있다. 그러면, 각각의 모듈 즉 단어 개체명 정합 모듈(311) 및 단어 속성 정합 모듈(313)은 각 DB를 검색해 해당 단어가 개체명 단어인지 속성 단어인지를 판단한다. 그리고, 판단 결과에 따라 정합 단어 DB(340)를 검색하여 매칭되는 답변을 제공하는 것이다.
그러면, 복수의 단어가 사용자 질의로 수신된다는 가정 하에, 좀더 구체적으로 살펴보면 단어 추출 모듈(300)은 사용자의 질의에서 데이터 검색에 사용될 중요한 단어를 추출하는 모듈이다. 단어 추출 모듈(300)에서는 가령 사용자의 입력 문장에서 정합할 단어들을 추출하며, 추출된 단어들은 각 개체명 정합 모듈(311)과 속성 정합 모듈(313)에서 각각 DB 내 적절한 개체명과 속성으로 정합된다. 다시 말해, 단어 추출 모듈(300)은 사용자의 질의에서 속성과 정합시키기 위한 단어를 추출하는 모듈이다. 사용자의 입력이 단어 형태라면 그대로 정합시키면 되지만, 사용자가 자연어 형태로 질의를 입력할 경우, 정합할 단어를 추출하여야 한다. 이런 경우, 사용자가 입력한 문장의 의존구조 분석을 통하여 서술어와 의존 관계에 있는 단어들을 추출하거나 문장 내 고유명사와의 관계를 보는 등의 방법을 이용하여 핵심 단어들을 추출할 수 있다. 또한, 단어의 품사를 확인하여 동사에 해당하는 단어, 명사에 해당하는 단어를 추출하는 방법도 존재한다. 그러한 방법들을 조합하여 추출할 수도 있으며, 그 외에도 문장 내의 핵심 정보를 추출하는 다양한 방법을 이용할 수 있을 것이다.
의존 관계를 파악하기 위해 단어 추출 모듈(300)은 의존 구조 분석을 위한 구문 분석기를 포함할 수 있다. 구문 분석기를 분류하는 기준 중 하나는 바로 사용된 문법(Grammar)이다. 구문 분석기는 기본적으로 특정 문법에 따라 그 기능을 수행한다. 다만, 이러한 문법들은 각기 고유한 특징이 있으며, 언어들이 가진 특징에 따라 적용할 문법을 잘 고르는 것이 구문 분석의 중요한 첫걸음이라 할 수 있다. 구문 분석에 주로 적용되는 문법은 구구조 문법(phrase-structure grammar), 범주 문법(categorial grammar), 의존 문법(dependency grammar) 등이 될 수 있다.
구문 분석기의 문법을 구축할 때, 학습에 의한 자동적 방식인지 사람에 의한 수동적 방식인지도 구문 분석기를 분류하는 기준이 될 수 있다. 학습에 의한 자동적 방식은 정제된 대용량의 구문 분석 말뭉치가 필요하며, 확률이 비교적 적은 문법 규칙까지 포함하므로 문법 규칙의 수가 많은 경향이 있다. 사람이 직접 규칙을 만드는 방식은 많은 시간이 필요하며, 한국어 문법에 대한 높은 지식이 필요하다는 단점이 각각 있다.
한국어 구문 분석기는 구문 분석의 기본 단위에 따라서도 분류할 수 있다. 영어는 하나의 어절이 거의 하나의 형태소이기 때문에 큰 상관이 없지만, 한국어는 하나의 어절이 하나 이상의 형태소로 이루어져 있기 때문이다. 따라서 한국어 구문 분석기는 그 기본 단위가 형태소인지, 어절인지에 따라 구분할 수 있다. 전 세계적으로 기계에 의한 구문 분석이 가장 발전한 언어는 영어이다.
또한 단어 추출 모듈(300)은 의미 구조 분석 방법을 이용하여 문장의 각 단어가 문장 내에서 어떠한 역할을 하는지를 분석하고, 이를 이용하여 단어를 추출할 수 있다. 문장 내 핵심 정보인 동사와 행위자(agent), 피동작자(patient) 등을 이용할 수 있다.
나아가, 단어 추출 모듈(300)은 품사 확인 방법을 이용하여 단어를 추출할 수도 있다. 사용자가 입력하는 문장을 형태소 단위로 분리한 후, 각 형태소의 품사를 자동으로 추출할 수 있다. 문장 내 존재하는 동사와 명사, 고유명사 들을 분석하고, 해당 핵심 단어들을 추출할 수 있다.
단어 정합 모듈(310)은 추출된 단어를 적절한 개체명이나 속성으로 정합하는 모듈이다. 단어 정합 모듈(310)은 단어 개체명 정합 모듈(311)과 단어 속성 정합 모듈(313)을 포함한다. 단어 개체명 정합 모듈(311)은 개체명으로 정합할 단어를 적절한 개체명으로 정합하는 모듈이다. 단어 속성 정합 모듈(313)은 추출된 단어를 지식기반 DB 내의 적절한 속성으로 정합시키는 모듈이다.
좀더 살펴보면, 단어 정합 모듈(310)은 추출된 각 단어를 적절한 개체명에 정합시키고, 적절한 속성에 정합시키는 모듈이다. 단어 정합 모듈(310)에서는 해당 단어를 개체명에 정합시킬지, 속성에 정합시킬지 파악하여야 하는데, 이는 단어 개체명 정합 모듈(311)과 단어 속성 정합 모듈(313) 모두에 단어를 정합시켜 적절한 개체명과 속성을 모두 찾은 후, 정합 과정에서의 신뢰도를 측정하여 신뢰도가 일정 수준보다 높은 경우에만 정합하도록 할 수 있다.
단어 개체명 정합 모듈(311)은 사용자의 키워드 입력을 지식베이스 내의 적절한 개체명으로 매칭시켜주는 모듈이다. 예를 들어, 사용자가 "김*아의 고향이 어디지?"라고 질의를 하거나, "김*아, 고향"이라는 형태의 질의를 했을 때, 단어 추출 모듈(300)은 '김*아'와 '고향'을 추출하며, 단어 개체명 정합 모듈(311)은 '김*아'라는 단어와 지식기반 DB 내에 있는 kim-**a라는 개체명을 정합시켜준다. '고향'의 경우, 알맞은 개체명이 존재하지 않으면 정합하지 않으며, hometown 과 같은 개체명이 존재할 경우, 해당 개체명 또한 정합하여 출력한다. 그러나 이 경우에는 kim_**a 라는 개체명과 hometown 이라는 개체명이 지식기반 DB 상에서 연결되어 있지 않기 때문에, 질의에 알맞지 않은 정보를 출력하는 경우는 생기지 않는다. 단어 개체명 정합 모듈(311)이 적절한 개체명을 찾아 정합시키는 방법은 개체명 정합 모델(321)을 기반으로 정합한다. 이와 관련해서는 이후에 좀더 살펴보기로 한다.
단어 속성 정합 모듈(313)은 사용자의 키워드 입력을 의미상 적절한 속성으로 매칭시켜주는 모듈이다. 예를 들어, 사용자가 "김*아의 고향이 어디지?"라는 질의를 하거나 "김*아, 고향"이라는 형태의 질의를 했을 때, 단어 추출 모듈(300)은 '김*아'와 '고향'을 추출하며, 단어 속성 정합 모듈(313)은 '고향'이라는 단어와 지식기반 DB 내에 있는 'birthPlace'라는 의미상 가장 가까운 속성을 정합시켜 줄 수 있다. 단어 '김*아'의 경우 적정 신뢰도 이상의 신뢰도 값을 가지는 속성이 없기 때문에 정합되지 않을 수 있다. 이러한 속성 정합은 속성 정합 모델(331)을 기반으로 결정되며, 자세한 내용은 이후에 좀더 다루기로 한다.
개체명 단어 DB(320)는 단어 개체명 정합 모델(321), 단어 개체명 정합 훈련기(323) 및 단어 개체명 정합 DB(325)를 포함할 수 있다. 단어 개체명 정합 모델(321)은 단어 개체명 정합 모듈(311)에서 적절한 개체명을 정합시키는 데 사용되는 모델이다. 본 모델은 단어 개체명 정합 DB(325)를 기반으로 훈련한 모델이다. 개체명 정합 훈련기(323)는 개체명 정합 DB(325)를 기반으로 기계학습 방법이나 규칙 기반 방법을 이용하여 개체명 정합 모델(321)을 훈련한다. 단어 개체명 정합 DB(325)는 단어 개체명 정합 모델(321)을 훈련하기 위한 훈련 데이터로 위키피디아나 디비피디아에 근거한 지식기반 DB 등을 포함할 수 있다.
좀더 살펴보면, 단어 개체명 정합 모델(321)은 단어 개체명 정합 DB(325)를 기반으로, 단어 개체명 정합 훈련기(323)를 이용하여 훈련한 모델이다. 단어 개체명 정합 훈련기(323)는, 단어 개체명 정합 DB(325)를 기반으로 단어 개체명 정합 모델(321)을 생성한다. 단어 개체명 정합 훈련기(323)는 입력되는 단어를 적절한 개체명에 정합시키도록 하는 모델로서, 일차적으로는 단어 매칭을 통해 적절한 개체명을 찾는다. 예를 들어 사용자가 영어로 'O**ma'를 입력하거나 '*** cruise'를 입력할 경우 위키피디아의 개체명 중에 존재하는 'barak_o**ma', '***_cruise'의 단어 매칭을 통해 적절한 개체명을 정합한다. 그러나, 한국어인 '오*마', '* 크루즈'를 입력할 경우, 한글 단어를 발음 표기로 하여 매칭시킬 수 있다. 그러나, 'Kashmir'와 같은 단어의 경우, 'Kashmir'라는 지명도 존재하고, 'Kashmir'라는 노래 제목도 존재하여 여러 개체명으로 정합되는 경우가 생기는데, 이러한 경우, 유명한 개체명을 정합시키도록 한다. 해당 페이지가 더 유명한지를 측정하는 방법으로는, 해당 개체명의 위키피디아 페이지 내에 존재하는 외부 링크(link) 개수로서 평가한다. 유명한 페이지일수록 많은 사람들이 수정을 하기 때문에, 위키피디아 페이지 내의 링크 개수가 해당 개체명의 유명도를 측정할 수 있다. 위의 경우, 'Kashmir'라는 지명의 위키피디아 페이지 내에 링크 개수가 더 많기 때문에, 지명으로 정합시킨다. 단어 개체명 정합 DB(525)는 사용자 질의의 단어와 지식기반 DB의 개체명과 정합시키기 위한 훈련 데이터로, 자연어 DB(ex. 위키피디아) 등의 문장 형태의 데이터베이스 등을 포함한다.
속성 단어 DB(330)는 단어 속성 정합 모델(331), 단어 속성 정합 훈련기(333) 및 단어 속성 정합 DB(335)를 포함할 수 있다. 단어 속성 정합 모델(331)은 단어 속성 정합 모듈(313)에서 적절한 속성을 정합시키는 데 사용되는 모델이다. 본 모델은 단어 속성 정합 DB(335)를 기반으로 훈련한 모델이다. 단어 속성 정합 훈련기(333)는 단어 속성 정합 DB(335)를 기반으로 기계학습 방법이나 규칙 기반 방법을 이용하여 단어 속성 정합 모델을 훈련한다. 단어 속성 정합 DB(335)는 키워드 속성 정합 모델을 훈련하기 위한 훈련 데이터로 위키피디아와 같이 지식기반 DB가 되는 DB를 포함한다.
좀더 살펴보면, 속성 정합 모델(331)은 속성 정합 DB(335)를 기반으로, 속성 정합 훈련기(333)를 이용하여 훈련한 모델이다. 단어 속성 정합 훈련기(333)는 속성 정합 DB(335)를 기반으로 속성 정합 모델(331)을 생성한다. 단어 속성 정합 훈련기(333)는 입력되는 단어의 의미를 나타내는 벡터 형식으로 표시한다. 첫째로, 문장 형태의 DB를 기반으로 해석 벡터(interpretation vector)로 표현할 수 있다. 해석 벡터라 함은 단어를 벡터로 표현하는 방식인데, 각 벡터가 단어의 의미를 표현하는 것이라고 볼 수 있다. 도 4에서 보면, 2차원 평면상에 단어들을 벡터로 표현하였다. 도 4를 보면 'wife' 및 'spouse'와 같이 의미상 가까운 단어들은 벡터 상으로도 비슷한 형태를 띠고 있으며, 'religion' 및 'starring'과 같은 경우 다른 의미를 가지기 때문에 벡터 상에서도 거리가 멀다. 만일 사용자가 'film' 이라는 단어를 입력하면, 해당 단어 또한 벡터로 표현되며, 벡터 상으로 가장 가까운 'starring' 이라는 단어가 매칭될 것이다. 이와 같이 단어를 해석 벡터로 표현하는 방법은 도 4에서와 같다.
각 단어들이 해석 벡터로 표현될 때, 각 벡터의 차원은 가령 위키피디아의 문서들이며, 각 차원에 따른 값은 해당 문서와 입력된 단어 간의 tf/idf 점수로 정해질 수 있다. 더 자세한 설명은 <표 1> 및 <표 2>로 나타내었다.
Figure pat00001
Figure pat00002
<표 1>에서 볼 때, 가장 왼쪽 행은 벡터로 표현하고자 하는 단어들이고, 가장 위쪽의 열은 각각 위키피디아의 문서들을 의미한다. 예를 들어 'starring' 열의 'movie' 행인 7.15 값은 단어 'starring'이 위키피디아의 'movie' 문서와 가지는 tf/idf 값을 의미한다. 여기서, if/idf 값은 해당 단어가 해당 문서에 얼마나 중요한지를 나타내는 척도이며, 예를 들어 <표 2>에서 볼 때, 'apple'이라는 단어는 'fruit'이라는 문서 내에서 중요한 단어이기 때문에 tf/idf 값이 높지만, 'iron'이나 'the'의 경우는 중요하지 않은 단어이기 때문에 낮은 값을 가진다. 이러한 형태로 생성된 단어 벡터는 벡터간 유사도 측정을 통해 가장 근접한 속성을 찾아 정합한다. 그러나, 벡터간 유사도 값이 낮은 경우에는 정합하지 않는다.
둘째로, 문장 형태의 DB와 지식기반 DB가 동일한 정보를 공유한다면 또 다른 방법으로 모델을 훈련할 수 있다. 예를 들어, '김*아/출생지/한국'이라는 지식기반 데이터가 존재하고, '김*아는 한국 출신이다.'라는 문장이 DB에 존재한다면, '김*아'와 '한국'의 두 개체명이 동시에 존재하여, '출생지'라는 속성이 '출신이다'라는 문장과 동일한 의미를 가진다고 볼 수 있다. 이와 같이 트리플 형태의 데이터와 문장 형태의 데이터를 함께 이용하여 단어-속성 매칭 형태의 DB를 생성하여 정합에 모델로서 활용할 수 있다. 이와 관련해서는 문헌 "PATTY: A Taxonomy of Relational Patterns with Semantic Types"를 참조해 보아도 좋다.
마지막으로, 지식기반 DB의 속성 명칭이 라틴어, 혹은 상징적인 의미로 표시가 되어 있을 때 위와 같은 훈련 방법으로는 성능에 한계가 있을 수 있다. 예를 들어, '출신 학교'라는 속성이 'almaMater'라는 라틴어로 되어 있거나, 특정 도메인에만 통용되는 특수어일 경우가 있다. 또한, 위의 방법에서 훈련 데이터에 부족한 단어의 경우 성능이 낮게 나올 수 있다. 이를 위하여 추가로 단어-속성 간 정합 규칙(rule)을 추가하여 성능을 향상시킬 수 있다.
단어 속성 정합 훈련기(333)에서 사용하는 훈련 방법을 역으로 적용하면, 지식기반 DB로부터 추출한 데이터를 자연어 형태로 출력하는데 필요한 자연어 템플릿 등의 DB를 생성해 낼 수도 있다.
속성 정합 DB(335)는 사용자 질의의 단어와 지식기반 DB의 속성과 정합시키기 위한 훈련 데이터로, 자연어 DB(ex. 위키피디아) 등의 문장 형태의 DB와 트리플 형태의 DB(ex. dbpedia) 등을 포함할 수 있다.
도 5는 도 2의 지식기반 정보처리부의 세부 구조를 나타내는 예시도이다.
설명의 편의상 도 5를 도 2와 함께 참조하면, 본 발명의 실시예에 따른 지식기반 정보처리부(210)는 단어 추출부(500) 및 단어 정합부(510)를 포함한다.
도 5에 도시된 단어 추출부(500) 및 단어 정합부(510)는 도 3의 단어 추출 모듈(300) 및 단어 정합 모듈(310)과 크게 다르지 않다. 다만, 도 5의 단어 추출부(500) 및 단어 정합부(510)는 물리적으로 서로 분리되어 각각의 동작을 수행하기 위한 프로그램을 포함할 수 있다. 예컨대, 각 프로그램은 도 3의 단어 추출 모듈(300) 및 단어 정합 모듈(310)과 같은 프로그램으로서, 동일한 동작을 수행할 수 있을 것이다.
따라서, 도 5의 단어 추출부(500) 및 단어 정합부(510)와 관련해서는 도 3의 단어 추출 모듈(300) 및 단어 정합 모듈(310)의 내용들로 대신하고자 한다.
도 6은 도 2의 지식기반 정보처리부의 다른 세부 구조를 나타내는 예시도이다.
도 6에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 지식기반 정보처리부(210')는 제어부(600) 및 답변 실행부(610)를 포함할 수 있다.
제어부(600)는 도 1에 도시된 지식기반 서비스제공장치(120)의 전반적인 동작을 제어할 수 있다. 예를 들어, 제어부(600)는 CPU와 내부 메모리를 포함할 수 있다. 이를 통해 제어부(600)는 가령 지식기반 서비스제공장치(120)가 동작을 시작할 때, 답변 실행부(610)에 저장된 프로그램을 불러내어 내부 메모리에 저장한 후 이를 실행시켜 동작할 수 있다. 다시 말해, 사용자로부터 질의가 수신되면, 제어부(600)는 메모리에 저장된 프로그램을 실행시켜 도 3에 도시된 단어 추출 모듈(300) 및 단어 정합 모듈(310)과 같은 동작을 수행할 수 있다. 이의 경우, 답변 실행부(610)는 단순히 ROM이나 EPROM 및 EEPROM의 역할을 수행한다고 볼 수 있다. 여기서, EPROM은 출고시 제공되는 프로그램 내용을 소거해 다시 프로그램할 수 있는 읽기용 기억장치이며, EEPROM은 기억된 내용을 높은 전압으로 지우는 것으로 EPROM의 범주에 포함되지만, 자외선으로 지우는 UVEPROM과 구별된다.
반면, 지식기반 서비스제공장치(120)가 동작을 시작할 때, 제어부(600)가 답변 실행부(610)에 저장된 프로그램을 위에서와 같이 별도의 내부 메모리에 저장하지 않는 경우, 제어부(600)는 사용자 질의가 수신될 때, 답변 실행부(610)를 동작시켜 제공된 질의에 대한 답변을 얻을 수 있다. 다시 말해, 답변 실행부(610)는 제어부(600)의 제어에 따라 동작하며, 가령 내부의 프로그램을 실행시켜 질의에 대한 답변을 추출하여 제어부(600)에 제공할 수 있다. 이를 위하여, 답변 실행부(610)의 경우에도 도 3에서와 같은 단어 추출 모듈(300) 및 단어 정합 모듈(310)과 같은 동작을 수행할 수 있을 것이다.
도 7은 본 발명의 실시예에 따른 지식기반 서비스제공방법을 나타내는 흐름도이다.
설명의 편의상 도 7을 도 1과 함께 참조하면, 본 발명의 실시예에 따른 지식기반 서비스제공장치(120)는 사용자 질의를 수신한다(S700). 이때 사용자 질의는 텍스트 기반의 인식 결과를 수신할 수 있다.
이어 지식기반 서비스제공장치(120)는 사용자 질의의 단어(들)에 대한 연계성을 판단하며, 예컨대 단어에 대한 개체명 및 속성 중 적어도 하나가 판단될 수 있다(S710). 다시 말해, 사용자 질의의 단어에 대한 특성으로서 연계성이 분석될 수 있다. 예를 들어, 앞서 언급한 대로 사용자는 다양한 형태의 질의를 제공할 수 있다. 간단하게는 단어만을 제공할 때, 1개 이상의 단어를 제공할 수 있고, 문장으로도 제공할 수 있다. 예를 들어, 사용자는 단어로서 '오*마' 또는 '오*마 생일' 과 같은 식으로 질의할 수 있다. 또는 '오*마 생일이 언제지?'와 같이 문장으로 제공될 수 있다. 이때, 하나의 단어는 개체명 단어일 수 있고, 속성 단어일 수 있으며, 복수의 단어는 개체명 단어가 복수 개이거나, 속성 단어가 복수 개일 수 있다.
따라서, 지식기반 서비스제공장치(120)는 질의의 단어에 대한 특성 즉 개체명과 속성 적어도 하나를 판단하거나, 가령 복수의 단어인 경우 연계성을 판단하기 위해 지식기반 DB를 검색할 수 있다. 다시 말해, 개체명 DB에 특정 단어가 있으면 개체명 단어로 판단하고, 속성 DB에 특정 단어가 있으며 속성 단어로 판단하는 것이다. 이의 과정에서 매칭되는 단어가 없을 경우, 그에 가장 근접한 단어를 추출하여 제공할 수 있다. 이와 관련해서는 앞서 충분히 설명하였으므로 더 이상의 설명은 생략한다.
또한 지식기반 서비스제공장치(120)는 판단 결과에 근거해 기저장된 답변을 출력한다(S720). 예를 들어, 사용자 질의를 분석한 결과, 개체명 단어와 속성 단어가 결합되었다면, 해당 정합 단어에 매칭된 답변을 제공하는 것이다. 이와 관련해서 다양한 방식으로 답변이 제공될 수 있음을 앞서 충분히 설명하였으므로 더 이상의 설명은 생략하도록 한다.
한편, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 비일시적 저장매체(non-transitory computer readable media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다.
여기서 비일시적 판독 가능 기록매체란, 레지스터, 캐시(cache), 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리 카드, ROM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
100: 사용자 장치 110: 통신망
120, 120': 지식기반 서비스제공장치 200: 통신 인터페이스부
210, 210': 지식기반 정보처리부 220: 저장부
300: 단어 추출 모듈 310: 단어 정합 모듈
320: 개체명 단어 DB 330: 속성 단어 DB
500: 단어 추출부 510: 단어 정합부
600: 제어부 610: 답변 실행부

Claims (18)

  1. 사용자로부터 사용자 질의를 수신하는 디스플레이 장치; 및
    상기 사용자 질의를 제공받아 상기 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 상기 사용자 질의의 답변을 상기 디스플레이 장치로 제공하는 지식기반 서비스 서버;를
    포함하는 지식기반 서비스 시스템.
  2. 사용자 질의에 대한 답변을 저장하는 저장부;
    사용자 질의를 수신하는 통신 인터페이스부; 및
    상기 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 상기 저장한 답변을 출력하는 지식기반 정보처리부;를
    포함하는 지식기반 서비스 서버.
  3. 제2항에 있어서,
    상기 지식기반 정보처리부는,
    상기 수신한 사용자 질의의 단어를 추출하는 단어 추출부; 및
    상기 추출한 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 상기 개체명 단어 및 상기 속성 단어를 정합하는 단어 정합부;를
    포함하는 지식기반 서비스 서버.
  4. 제3항에 있어서,
    상기 단어 추출부는 사용자 질의가 문장으로 수신될 때, 서술어와의 의존 관계에 있는 단어를 추출하는 의존 구조 분석 방법, 문장의 각 단어가 문장 내에서 어떠한 역할을 하는지를 분석하는 의미 구조 분석 방법, 단어의 품사를 확인하여 단어를 추출하는 품사 확인 방법 중 적어도 하나의 방법에 의해 상기 단어를 추출하는 것을 특징으로 하는 지식기반 서비스 서버.
  5. 제3항에 있어서,
    상기 저장부는, 상기 개체명에 대한 개체명 단어와 상기 속성에 대한 속성 단어를 더 저장하며,
    상기 지식기반 정보처리부는, 상기 사용자 질의 내의 단어와 별개로(separately) 취득된 개체명 단어와 속성 단어의 정합 단어에 매칭되는 답변을 출력하는 것을 지식기반 서비스 서버.
  6. 제3항에 있어서,
    상기 저장부는, 동일 표기를 갖는 다른 의미의 개체명 단어를 저장하며,
    상기 지식기반 정보처리부는,
    상기 동일 표기된 단어에 대하여 링크 횟수가 많은 개체명 단어를 선택하여 이용하는 것을 특징으로 하는 지식기반 서비스 서버.
  7. 제3항에 있어서,
    상기 저장부, 단어를 벡터로 표현한 해석 벡터 방식에 의해 상기 속성 단어를 저장하며,
    상기 지식기반 정보처리부는, 상기 사용자 질의 내의 단어와 벡터 거리가 근접한 단어를 상기 속성 단어로 선택하여 이용하는 것을 특징으로 하는 지식기반 서비스 서버.
  8. 제3항에 있어서,
    상기 사용자 질의의 단어는 상기 개체명 단어 및 상기 속성 단어와 서로 다른 언어인 것을 특징으로 하는 지식기반 서비스 서버.
  9. 제3항에 있어서,
    상기 지식기반 정보처리부는,
    상기 사용자 질의의 제1 단어가 개체명 단어로 판단되면, 제2 단어를 속성 단어로 자동 판단하는 것을 특징으로 하는 지식기반 서비스 서버.
  10. 사용자 질의를 수신하는 단계; 및
    상기 수신한 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나를 판단하는 단계; 및
    상기 판단한 결과에 근거하여, 기저장된 답변을 출력하는 단계;를
    포함하는 지식기반 서비스제공방법.
  11. 제10항에 있어서,
    상기 수신한 사용자 질의 내의 단어를 추출하는 단계; 및
    상기 추출한 단어에 대한 개체명 및 속성 중 적어도 하나의 판단 결과에 근거하여 상기 개체명 단어 및 상기 속성 단어를 정합하는 단계;를 더 포함하며,
    상기 답변을 출력하는 단계는,
    상기 정합한 단어에 매칭되는 기저장된 답변을 출력하는 것을 특징으로 하는 지식기반 서비스제공방법.
  12. 제11항에 있어서,
    상기 단어를 추출하는 단계는,
    사용자 질의가 문장으로 수신될 때, 서술어와의 의존 관계에 있는 단어를 추출하는 의존 구조 분석 방법, 문장의 각 단어가 문장 내에서 어떠한 역할을 하는지를 분석하는 의미 구조 분석 방법, 단어의 품사를 확인하여 단어를 추출하는 품사 확인 방법 중 적어도 하나의 방법에 의해 상기 단어를 추출하는 것을 특징으로 하는 지식기반 서비스제공방법.
  13. 제11항에 있어서,
    상기 개체명에 대한 개체명 단어와 상기 속성에 대한 속성 단어를 저장하는 단계를 더 포함하며,
    상기 답변을 출력하는 단계는,
    상기 사용자 질의 내의 단어와 별개로(separately) 취득된 개체명 단어와 속성 단어의 정합 단어에 매칭되는 답변을 출력하는 것을 지식기반 서비스제공방법.
  14. 제11항에 있어서,
    동일 표기를 갖는 다른 의미의 개체명 단어를 저장하는 단계;를 더 포함하며,
    상기 답변을 출력하는 단계는,
    상기 동일 표기된 단어에 대하여 링크 횟수가 많은 개체명 단어를 선택하여 이용하는 것을 특징으로 하는 지식기반 서비스제공방법.
  15. 제11항에 있어서,
    단어를 벡터로 표현한 해석 벡터 방식에 의해 상기 속성 단어를 저장하는 단계;를 더 포함하며,
    상기 답변을 출력하는 단계는,
    상기 사용자 질의 내의 단어와 벡터 거리가 근접한 단어를 상기 속성 단어로 선택하여 이용하는 것을 특징으로 하는 지식기반 서비스제공방법.
  16. 제11항에 있어서,
    상기 사용자 질의의 단어는 상기 개체명 단어 및 상기 속성 단어와 서로 다른 언어인 것을 특징으로 하는 지식기반 서비스제공방법.
  17. 제11항에 있어서,
    상기 판단하는 단계는,
    상기 사용자 질의의 제1 단어가 개체명 단어로 판단되면, 제2 단어를 속성 단어로 자동 판단하는 것을 특징으로 하는 지식기반 서비스제공방법.
  18. 지식기반 서비스제공방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 지식기반 서비스제공방법은,
    사용자 질의를 수신하는 단계;
    상기 수신한 사용자 질의 내의 단어에 대한 개체명 및 속성 중 적어도 하나를 판단하는 단계; 및
    상기 판단한 결과에 근거하여, 기저장된 답변을 출력하는 단계;를
    실행하는 컴퓨터 판독가능 기록매체.
KR1020150033436A 2015-03-10 2015-03-10 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체 KR20160109302A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150033436A KR20160109302A (ko) 2015-03-10 2015-03-10 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체
US15/065,044 US20160267139A1 (en) 2015-03-10 2016-03-09 Knowledge based service system, server for providing knowledge based service, method for knowledge based service, and non-transitory computer readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150033436A KR20160109302A (ko) 2015-03-10 2015-03-10 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체

Publications (1)

Publication Number Publication Date
KR20160109302A true KR20160109302A (ko) 2016-09-21

Family

ID=56887678

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150033436A KR20160109302A (ko) 2015-03-10 2015-03-10 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체

Country Status (2)

Country Link
US (1) US20160267139A1 (ko)
KR (1) KR20160109302A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190115721A (ko) * 2018-04-03 2019-10-14 주식회사 케이티 질의어를 처리하는 장치, 방법 및 컴퓨터 프로그램
KR20210086530A (ko) 2019-12-30 2021-07-08 (주)호모미미쿠스 양자 알고리즘을 이용한 지식기반 데이터 처리 시스템 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694942A (zh) * 2020-05-29 2020-09-22 平安科技(深圳)有限公司 问答方法、装置、设备及计算机可读存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144964A (en) * 1998-01-22 2000-11-07 Microsoft Corporation Methods and apparatus for tuning a match between entities having attributes
US6611825B1 (en) * 1999-06-09 2003-08-26 The Boeing Company Method and system for text mining using multidimensional subspaces
US6701305B1 (en) * 1999-06-09 2004-03-02 The Boeing Company Methods, apparatus and computer program products for information retrieval and document classification utilizing a multidimensional subspace
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
US6560597B1 (en) * 2000-03-21 2003-05-06 International Business Machines Corporation Concept decomposition using clustering
GB2368929B (en) * 2000-10-06 2004-12-01 Andrew Mather An improved system for storing and retrieving data
US20040030780A1 (en) * 2002-08-08 2004-02-12 International Business Machines Corporation Automatic search responsive to an invalid request
US8234279B2 (en) * 2005-10-11 2012-07-31 The Boeing Company Streaming text data mining method and apparatus using multidimensional subspaces
US8255376B2 (en) * 2006-04-19 2012-08-28 Google Inc. Augmenting queries with synonyms from synonyms map
US8594996B2 (en) * 2007-10-17 2013-11-26 Evri Inc. NLP-based entity recognition and disambiguation
US20090112794A1 (en) * 2007-10-31 2009-04-30 Richard Dean Dettinger Aliased keys for federated database queries
US9632994B2 (en) * 2011-03-11 2017-04-25 Microsoft Technology Licensing, Llc Graphical user interface that supports document annotation
US8719692B2 (en) * 2011-03-11 2014-05-06 Microsoft Corporation Validation, rejection, and modification of automatically generated document annotations
US9626348B2 (en) * 2011-03-11 2017-04-18 Microsoft Technology Licensing, Llc Aggregating document annotations
US20120239667A1 (en) * 2011-03-15 2012-09-20 Microsoft Corporation Keyword extraction from uniform resource locators (urls)
US9858609B2 (en) * 2012-06-27 2018-01-02 Rakuten, Inc. Information processing apparatus, information processing method, and information processing program
US9852379B2 (en) * 2014-03-07 2017-12-26 Educational Testing Service Systems and methods for constructed response scoring using metaphor detection

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190115721A (ko) * 2018-04-03 2019-10-14 주식회사 케이티 질의어를 처리하는 장치, 방법 및 컴퓨터 프로그램
KR20210086530A (ko) 2019-12-30 2021-07-08 (주)호모미미쿠스 양자 알고리즘을 이용한 지식기반 데이터 처리 시스템 및 방법

Also Published As

Publication number Publication date
US20160267139A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
US10956464B2 (en) Natural language question answering method and apparatus
CN108287858B (zh) 自然语言的语义提取方法及装置
US20180329918A1 (en) Translating Natural Language Utterances to Keyword Search Queries
US20190279523A1 (en) Display apparatus and method for question and answer
US9075793B2 (en) System and method of providing autocomplete recommended word which interoperate with plurality of languages
US10783885B2 (en) Image display device, method for driving the same, and computer readable recording medium
KR101723862B1 (ko) 텍스트를 포함하는 문서 분류 및 분석 방법 및 이를 수행하는 문서 분류 및 분석 장치
KR20180078318A (ko) 선행사의 결정방법 및 장치
US20160321541A1 (en) Information processing method and apparatus
JP2020027649A (ja) エンティティ関係データ生成方法、装置、機器、及び記憶媒体
JP2020191075A (ja) Web APIおよび関連エンドポイントの推薦
KR20160008480A (ko) 명칭을 강인하게 태깅하는 방법 및 시스템
CN107526812A (zh) 一种搜索方法、装置及电子设备
CN103678684A (zh) 一种基于导航信息检索的中文分词方法
CN111090771B (zh) 歌曲搜索方法、装置及计算机存储介质
US11699034B2 (en) Hybrid artificial intelligence system for semi-automatic patent infringement analysis
US20160071511A1 (en) Method and apparatus of smart text reader for converting web page through text-to-speech
WO2020077825A1 (zh) 论坛社区应用管理方法、装置、设备及可读存储介质
KR101696499B1 (ko) 한국어 키워드 검색문 해석 장치 및 방법
KR20220084915A (ko) 클라우드 기반 문법 교정 서비스 제공 시스템
CN112527977B (zh) 概念抽取方法、装置、电子设备及存储介质
CN109992651B (zh) 一种问题目标特征自动识别和抽取方法
KR20160109302A (ko) 지식기반 서비스 시스템, 지식기반 서비스 서버, 지식기반 서비스제공방법 및 컴퓨터 판독가능 기록매체
US9104755B2 (en) Ontology enhancement method and system
CN110986972A (zh) 一种用于车载导航的信息处理方法及其装置

Legal Events

Date Code Title Description
N231 Notification of change of applicant