KR20240025272A - 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법 - Google Patents

자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법 Download PDF

Info

Publication number
KR20240025272A
KR20240025272A KR1020220103298A KR20220103298A KR20240025272A KR 20240025272 A KR20240025272 A KR 20240025272A KR 1020220103298 A KR1020220103298 A KR 1020220103298A KR 20220103298 A KR20220103298 A KR 20220103298A KR 20240025272 A KR20240025272 A KR 20240025272A
Authority
KR
South Korea
Prior art keywords
unstructured data
natural language
frequency
language processing
user
Prior art date
Application number
KR1020220103298A
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 KR1020220103298A priority Critical patent/KR20240025272A/ko
Publication of KR20240025272A publication Critical patent/KR20240025272A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Abstract

보다 효과적인 가상개인 비서 서비스를 구축하기 위해 별도 정형화 단계 없이 비정형 데이터를 기반으로 사용자 질의와 관련된 정보를 근사적으로 탐색하는 비정형 데이터 기반 근사 질의응답 시스템이 개시된다. 상기 시스템은, 비정형 데이터 셋(D)을 수집하는 수집부, 상기 수집된 비정형 데이터 셋(D)으로 공통 트리(T)를 생성하는 트리 생성부, 상기 공통 트리에서 선택되는 키워드(엔티티)의 빈발도(tf) 및 역빈도(idf)를 산출하는 선택부, 및 상기 엔티티 빈발도 및 역빈도를 이용하여 자연어인 사용자 질의(q)에 유관한 유망 문자열을 추출하고 근사 결과를 도출하는 추출부를 포함하는 것을 특징으로 한다.

Description

자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법{An approximate answer extraction System and Method based on unstructured data for natural language processing}
본 발명은 AI(Artificial Intelligence) 기반 대화형 업무지원 기술에 관한 것으로서, 더 상세하게는 자연어 처리를 위한 비정형 데이터를 기반으로 근사 질의응답을 구현하는 시스템 및 방법에 대한 것이다.
최근 4차 산업혁명이 시작됨에 따라 초연결, 초지능을 특징으로 하는 AI(Artificial Intelligence), 빅데이터 및 클라우드 컴퓨팅 등 첨단 ICT(Information Technology Communication) 기술이 기존 전력산업에 융합되어 전력서비스 전반에 걸쳐 혁신적인 변화가 진행되고 있다.
인공지능 비서, 질문에 답변하는 챗봇 등 사람의 자연어를 이해하고 이에 대해 답변을 제공하는 지능형 질의응답(question answering, QA) 서비스가 사회 각 분야에 급속히 확산하고 있다.
이러한 흐름에 따라 최근 AI 기반 대화형 업무지원 시스템(가상개인비서 서비스)이 개발되고 있다. 가상 개인 비서 서비스는 사용자 입장에서 주변 업무 환경과 맥락 등을 고려하여 사용자의 요구사항에 대한 적절한 지식·정보를 제공해주는 서비스를 의미한다.
가상 개인 비서 서비스는 사용자로부터 입력된 질문, 요구사항에 대해 적절한 결과 제공을 위해 AI 기술을 기반으로 한 자연어 처리 기술(natural language processing, NLP)을 활용한다. NLP는 AI의 한 분야로서 머신러닝을 사용하여 텍스트와 데이터를 처리하고 해석 및 인식하는 기술이다. NLP를 활용한 서비스는 구조화되지 않은 텍스트 기반 데이터로부터 유용한 정보를 얻기 위해 사용된다.
이러한 NLP를 활용한 가상개인비서 서비스를 제공하기 위해 사전에 활용할 데이터를 준비하고, 사용자의 발화를 분석하고 질문의도를 파악하여 알맞은 답변을 하도록 질문과 의도, 답변이 상호매칭되도록 대화모델을 생성한다. 이러한 대화모델에 대해 AI 기술을 활용하여 학습하고 평가할 수 있도록 한다.
이 같은 과정을 통해 다양한 업무지원 및 지식을 제공하기 위해, 일상생활 정보, 일반 상식을 비롯해 다양한 도메인에 지식이 담긴 훈련 목적 QA(question answering 데이터가 필요하다. QA 데이터는 데이터 준비 또는 수집, 자료 분석, 사전 정제 단계를 거쳐 유형을 질문과 답변을 작성하는 단계 및 결과 검수 단계를 거쳐 구축된다.
다양한 지식이 학습된 가상개인비서 서비스가 업무 환경에 도입되는 경우, 업무와 관련된 질문뿐만 아니라 다양한 의도에 따른 적절한 답변을 기대할 수 있다. 무엇보다 즉각적으로 결과를 확인할 수 있어 업무 효율성 증진을 기대할 수 있다.
도 1은 가상 개인 비서 동작 구조의 예를 보인다. 엔드 유저는 챗툴(chat tool)을 통해 가상 개인 비서에 질의(Ask question)하면, 가상 개인 비서(Virtual Personal Assistant)에서 개체 인텐트 추출기 훈련 NLP 모델, 매칭 응답 다이알로그를 통해 질의에 대한 응답(answer)을 생성한다.
한편, 다양한 지식이 학습된 가상 개인 비서 서비스를 통해 사용자들에게 손쉬운 정보 전달의 장점이 있다. 반면에, 사용자 질의를 이해하고 적절한 결과를 제공하기 위한 자연어 대화모델 학습 준비과정에 매우 오랜 시간과 비용이 요구된다.
다양한 정보 제공을 위한 도메인별 QA(Question Answer) 셋 구축 및 자연어 처리 모델에 학습하고, 이를 토대로 사용자에게 서비스를 제공함이 가상 개인 비서 서비스 운영에서 지향하는 목표이지만 이를 위한 시간 및 비용 측면에서의 한계가 존재한다.
보다 구체적으로 상기 언급된 바와 같이 방대한 업무 문서를 바탕으로 학습용 QA 데이터 구축 및 학습에 오랜 시간이 소모되며, 도메인에 특화된 전문지식 및 정보를 담기 위해서 각 분야 전문가에 의한 QA 작성 및 점검과정이 필요하다.
도메인 전문가 또는 담당자가 관련 정보를 이해한 후, 직접 지식을 정제하는 수작업이 요구되는 만큼 비용이 많이 드는 작업이기 때문이다. 아울러 실제 자연어 데이터에 포함되는 노이즈, 생략 등으로 인한 데이터 변이가 심하기 때문에 정제하는 단계 또한 매우 중요하며 시간적 비용이 발생하게 된다.
이러한 QA 데이터 구축 및 학습에 소요되는 오랜 시간과 비용을 이유로 가상 개인 비서 서비스 제공 시점에 학습된 데이터 범주 외의 정보를 질의할 경우 사전에 학습되지 않은 정보를 질의하게 된다. 따라서, 자연어 처리 모델이 질문을 오 이해(misunderstanding)하는 경우가 발생하며, 이로 인해 오답 제공 또는 결과 제공이 어려워지는 문제가 발생하게 된다. 전력업무를 비롯해 다양한 도메인에 대한 이해도를 가지고 QA 데이터 셋 구축하는데 시간적 비용 한계가 존재하기 때문이다.
아울러 중·장기적 서비스 운영 관점에서 지식 정보의 생성·정정, 트렌드 변화에 따라 기구축된 지식 정보들을 적절히 분석하고 필요에 따라 재학습을 수행해야 한다. 재학습은 시간적 비용이 많이 소모되는 작업이기 때문이므로 주기적으로 변경되는 정보와 그러지 않은 정보를 분류한 후, 성격에 맞춰 서비스 제공 방법을 설계해야 한다.
이러한 서비스의 제공에 있어서, 코드에 출현하는 문자열과 연관된 근사 매칭을 판정하기 위해 “근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템(등록번호 : 10-1564385, 등록일자: 2015년10월23일)”가 제안되었다.
해당 발명은 레코드에 출현하는 문자열과 연관된 근사 매칭을 판정하기 위한 아카이브를 관리하는 방법을 개발하였다. 보다 구체적으로 레코드에 출현하는 문자열에 대응하는 일련의 문자열 표현을 판정하기 위해 레코드를 처리하고 각각의 인접 표현에 기반하여 문자열 사이에서 잠재적 근사 매칭을 각각 나타내는 엔트리를 아카이브 내에 저장한다.
또한, 해당 발명은 문자열과 연관된 근사 매칭을 수행한다는 점에서 본 발명에서 제시하는 처리 과정과 일부 비슷하나, 제안하는 발명과는 다음과 같은 차별성을 두고 있다.
첫째, 본 발명은 자연어 처리 모델을 통해 사전에 학습된 질문 혹은 지식에 대한 사용자 질의 시, 응답 속도 및 결과 신뢰성 측면에서 충분함을 강조하나 학습되지 않은 도메인, 지식에 대해서는 적절한 결과 제공이 어려운 문제를 해결하고자 함이 목적이다.
둘째, 이러한 문제를 해결하기 위한 가장 단순한 방법은 보다 다양한 도메인에 대한 학습을 시키면 되나, 비정형 데이터를 정형화하는 과정에 많은 소요시간과 비용이 발생되며 데이터 성격에 따라 빈번히 변경되는 경우가 존재할 경우에 대한 고려가 필요하다.
셋째, 상기 언급한 문제들을 해결하기 위해 본 발명에서는 비정형 데이터 자체를 기반으로 사용자 입력 질의에 대한 질의응답하는 방법을 제시하였으며, 이에 대한 구체적인 해결방법을 제시하였다. 보다 구체적으로 비정형 데이터를 하나의 구조를 통해 통합적으로 관리하는 모델을 제안 및 개발하였으며, 이를 기반으로 불필요한 정보를 전지하고 유사 정보를 탐색하여 그 결과를 바탕으로 질의응답을 하는 방법을 제시하였다.
마지막으로, 기존 NLP 처리 모델과 제안하는 방법을 적절히 결합하여 서로의 단점을 상호 보완해주는 하이브리드 처리가 가능함을 제시하였다.
데이터 간 유사도 검색을 수행하는데 있어 차원이 높아질수록 처리 성능이 떨어지는 문제를 해결하기 위해 “고차원 데이터의 유사도 검색을 위한 데이터 분할방법 (등록번호 : 10-1116663, 등록일자: 2012년02월08일)”가 제안되었다.
문제 해결을 위해 해당 발명은 데이터 주성분 분석(PCA:Principal Component Analysis)을 통하여 주성분 벡터를 산출 후 주성분 벡터의 중심점을 계산한다. 그 후 주성분 벡터의 중심점을 기준으로 비중첩 분할기법을 적용하여 유사도 검색 시 발생하는 오류를 최소화한다.
해당 발명은 고차원 데이터를 대상으로 차원 축소시킨 후 유사도 검색을 수행한다는 점에서 본 발명에서 제시하는 처리 과정과 일부 비슷하나, 제안하는 발명과는 다음과 같은 차별성을 두고 있다.
첫째, 본 발명에서는 비정형 데이터 자체를 기반으로 사용자 입력질의에 대한 질의응답 하는 방법을 제시하였으며, 이에 대한 구체적인 해결방법을 제시하였다. 보다 구체적으로 비정형 데이터를 하나의 구조를 통해 통합적으로 관리하는 모델을 제안 및 개발 하였다.
둘째, 연관성 없는 불필요한 데이터 즉 결과 도출에 유망하지 않는 부분들을 탐색 범위에서 제거하고, 유망할 것으로 추정된 정보들을 대상으로 탐색 수행하는 방법을 제시한다.
셋째, 유망한 문자열 집합과 사용자 질의 집합 간의 유사정도를 근사 측정하고 그 결과를 사용자에게 제공한다. 마지막으로, 기존 NLP 처리 모델과 제안하는 방법을 적절히 결합하여 서로의 단점을 상호 보완해주는 하이브리드 처리가 가능함을 제시하였다.
자연어 질의를 처리함에 있어 귀납적 추론 기반의 질의응답 시스템에서는, 확률적으로 가장 높은 정답후보를 정답으로 추론하기 때문에 정답에 대한 높은 신뢰성을 보장하지 못한다. 이러한 문제를 해결하기 위해 “하이브리드 추론 기반의 자연어 질의응답 시스템 및 그 방법(공개번호 : 10-2018-0004960)” 가 제안되었다.
해당 발명은 귀납적 추론 방법뿐만 아니라 연역적 추론 방법 및 귀추적 추론 방법을 모두 이용한 정답 추론 과정을 기반으로 최적의 정답을 검출하고, 검출된 정답을 한 번 더 검증하여 오답의 확률을 줄일 수 있는 하이브리드 추론 기반의 자연어 질의응답 시스템 및 그 방법을 제공하는데 있다.
정답추론 과정을 기반으로 신뢰도가 높은 정답을 제시하고자 함이 목적인 종래 방법은 본 발명에서 제시한 애플리케이션 환경 즉, 가상개인비서 서비스에서 달성해야 하는 궁극적인 목적과 방향이 비슷하지만 제안하는 발명과는 다음과 같은 차별성을 두고 있다.
첫째, 본 발명은 자연어 처리 모델을 통해 사전에 학습된 질문 혹은 지식에 대한 사용자 질의 시, 응답 속도 및 결과 신뢰성 측면에서 충분함을 강조하나 학습되지 않은 도메인, 지식에 대해서는 적절한 결과 제공이 어려운 문제를 해결하고자 함이 목적이다.
둘째, 이러한 문제를 해결하기 위한 가장 단순한 방법은 보다 다양한 도메인에 대한 학습을 시키면 되나, 비정형 데이터를 정형화하는 과정에 많은 소요시간과 비용이 발생되며 데이터 성격에 따라 빈번히 변경되는 경우가 존재할 경우에 대한 고려가 필요하다.
셋째, 상기 언급한 문제들을 해결하기 위해 본 발명에서는 비정형 데이터 자체를 기반으로 사용자 입력질의에 대한 질의응답 하는 방법을 제시하였으며, 이에 대한 구체적인 해결방법을 제시하였다.
보다 구체적으로 비정형 데이터를 하나의 구조를 통해 통합적으로 관리하는 모델을 제안 및 개발하였으며, 이를 기반으로 불필요한 정보를 전지하고 유사 정보를 탐색하여 그 결과를 바탕으로 질의응답을 하는 방법을 제시하였다.
마지막으로, 기존 NLP 처리 모델과 제안하는 방법을 적절히 결합하여 서로의 단점을 상호 보완해주는 하이브리드 처리가 가능함을 제시하였다.
이해를 위해 결론적으로 정리하면, NLP 기술이 지속적으로 발전하고 있음에도 불구하고, 노이즈로 인한 데이터 정제와 다양한 학습 데이터 구축의 어려움, 잘못된 모델 설계 등 시간적, 기술적 한계를 이유로 사용자 질의에 결과를 제공해주지 못하거나 잘못된 결과를 제공하는 경우가 존재한다.
따라서, 결과 신뢰성 및 품질은 서비스 지속운영에도 영향을 미치게 되는 문제이므로 이를 높이기 위한 노력이 필요하다.
이와 관련하여 오픈소스 자연어 처리 모델인 RASA NLU(Natural Language Understanding)를 활용해 약 1,000건의 QA 데이터 셋을 학습시킨 결과, 현서비스 중인 가상 개인 비서 서비스를 활용해 기본 대화를 비롯하여 학습된 QA에 대한 질의에 대해 자연어 처리 결과가 준수하게 나오고 있으며 이를 활용해 약 30건의 업무에 대한 지식 제공 중이다.
그러나 중·장기적 서비스 운영 관점을 고려했을 때, 지식 정보의 생성·정정, 트렌드·정책 변화 등에 따라 기학습에 활용된 QA 데이터 셋을 주기적으로 수정 및 관리해야 한다. 또한, 새로운 도메인 분야에 대한 수요·질의가 발생하는 경우 이를 반영하여 자연어 처리 모델을 재구축·재학습해야 된다.
모델 재구축은 시간적 비용이 많이 소모되는 작업이며, 이를 위한 학습용 QA 데이터 셋 구축을 위해서는 인력, 비용, 시간 등 고려해야 할 변수가 많다. 따라서 주기적으로 변경되는 정보와 그러지 않은 정보를 분류하고 각기 성격에 맞춰 서비스 제공 방법을 설계해야 한다.
1. 대한민국 등록특허번호 제10-1564385호(등록일자: 2015년10월23일)
본 발명은 위 배경기술에 따른 문제점을 해결하기 위해, 보다 효과적인 가상개인 비서 서비스를 구축하기 위해, 별도 정형화 단계 없이 비정형 데이터를 활용한 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 입력된 사용자 질의 셋에 대하여 비정형 데이터를 기반으로 정보 유사성 처리 과정을 통해 사용자 질의에 근사한 정보 셋을 선택 및/또는 추천할 수 있는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법을 제공하는데 다른 목적이 있다.
또한, 본 발명은 기존 딥러닝 기반 자연어 처리 기술과 결합이 가능한 하이브리드 방식으로 서비스 제공이 가능한 비정형 데이터 기반 근사 질의응답 시스템 및 방법을 제공하는데 또다른 목적이 있다.
본 발명은 위에서 제시된 과제를 달성하기 위해, 보다 효과적인 가상개인 비서 서비스를 구축하기 위해 별도 정형화 단계 없이 비정형 데이터를 기반으로 사용자 질의와 관련된 정보를 근사적으로 탐색하는 비정형 데이터 기반 근사 질의응답 시스템을 제공한다.
상기 시스템은,
비정형 데이터 셋(D)을 수집하는 수집부;
상기 수집된 비정형 데이터 셋(D)으로 공통 트리(T)를 생성하는 트리 생성부;
상기 공통 트리에서 선택되는 키워드(엔티티)의 빈발도(tf) 및 역빈도(idf)를 산출하는 선택부; 및
상기 엔티티 빈발도 및 역빈도를 이용하여 자연어인 사용자 질의(q)에 유관한 유망 문자열을 추출하고 근사 결과를 도출하는 추출부;를 포함하는 것을 특징으로 한다.
또한, 상기 트리 생성부는 상기 비정형 데이터 셋을 -gram을 활용해 하나의 문자열을 개의 연속된 부분 문자열로 분할하고 n개의 상기 연속된 부분 문자열을 서로 연결하여 다수의 문서를 구성하는 대량의 문자열 집합을 하나의 상기 공통 트리(T)로 구축하는 것을 특징으로 한다.
또한, 대량의 상기 문자열 집합은 각기 식별자(ID)가 부여되는 것을 특징으로 한다.
또한, 하나의 상기 공통 트리(T)는 다양한 문서에서 발생되는 중복 문자를 하나의 노드 정보로 압축하여 표현하는 것을 특징으로 한다.
또한, 상기 공통 트리(T)는 (여기서, , 방향성 에지 집합 E는 이고, LV는 노드이고, LE는 에지 레이블 함수이다)으로 정의되는 것을 특징으로 한다.
또한, 상기 빈발도(tf) 및 상기 역빈도(idf)는 상기 키워드별 가중치가 계산되어 각 테이블로 나누어 관리되며, 상기 빈발도(tf)는 상기 키워드가 하나의 문서내에서 등장하는지를 나타나는 비율이고, 상기 역빈도(idf)는 상기 키워드가 문서 집합 전체에서 공통적으로 나타나는 값인 것을 특징으로 한다.
또한, 상기 추출부(250)는 상기 사용자 질의(q)에 대한 유사 질의셋()을 생성하고, 상기 유사 질의셋()을 사용자 입력 질의셋()으로 정의하는 것을 특징으로 한다.
또한, 상기 사용자 입력 질의셋()으로부터 유망함의 정도에 해당하는 상기 유망 문자열를 탐색하며, 상기 유망함의 정도는 상기 빈발도(tf), 상기 역빈도(idf), 및 도메인 용어를 기반으로 구축된 엔티티 리스트인 유사 엔티티 리스트(wd)를 활용하여 측정되는 것을 특징으로 한다.
또한, 상기 사용자 입력 질의셋()으로부터 분할된 단어(w)가 상기 유사 엔티티 리스트(wd)에 존재하면 상기 분할된 단어(w)를 n개의 상기 연속된 문자열로 분할하고, 해시 테이블(ht)를 참조하여 시작 노드(v)를 탐색하고, 상기 시작 노드(v)의 빈발도가 미리 설정되는 제 1 임계치와 비교하여, 상기 비교결과에 따라 해당 문서로의 탐색 확장을 중단하거나 상기 해당 문서와 연관된 노드를 탐색하고 상기 탐색된 노드를 상기 사용자의 질의 셋(q*)과 연관성 있는 데이터 셋(p*)에 저장하는 것을 특징으로 한다.
또한, 상기 사용자 입력 질의셋()으로부터 분할된 단어(w)가 상기 유사 엔티티 리스트(wd)에 존재하지 않으면, 임의 문서에서 상기 분할된 단어(w)의 빈발도와 역빈도의 곱을 미리 설정되는 제 2 임계치와 비교하여, 상기 비교 결과에 따라 상기 사용자 질의(q)를 상기 단어(w)로 분할거나 상기 분할된 단어(w)를 n개의 상기 연속된 문자열로 분할하는 것을 특징으로 한다.
또한, 상기 근사 결과는 최근접 이웃 탐색을 이용하여 사용자의 질의 셋(q*)과 연관성 있는 데이터 셋(p*)에 속한 가장 근접한 이웃()을 탐색하여 산출되는 것을 특징으로 한다.
또한, 상기 최근접 이웃 탐색은 상기 사용자의 질의 셋(q*) 및 상기 연관성 있는 데이터 셋(p*)을 하나의 매트리스(C*)로 통합하고, 상기 통합된 매트리스(C*)를 대상으로 민해싱(min-hashing)을 통해 시그네처 매트릭스를 획득하고, 상기 시그네처 매트릭스를 기반으로 버켓 해싱을 수행하여 유사도 측정 후보쌍을 구축하는 것을 특징으로 한다.
또한, 상기 시스템은, 상기 근사 결과를 그래픽, 음성, 및 문자의 조합으로 출력하는 표시부;를 포함하는 것을 특징으로 한다.
또한, 상기 시스템은, 상기 수집된 비정형 데이터 셋(D)을 저장하는 데이터베이스;를 포함하는 것을 특징으로 한다.
또한, 상기 자연어인 사용자 질의(q)는 통신 단말기를 통하여 생성되는 것을 특징으로 한다.
다른 한편으로, 본 발명의 다른 일실시예는, (a) 수집부가 비정형 데이터 셋(D)을 수집하는 단계; (b) 트리 생성부가 상기 수집된 비정형 데이터 셋(D)으로 공통 트리(T)를 생성하는 단계; (c) 선택부가 상기 공통 트리에서 선택되는 키워드(엔티티)의 빈발도(tf) 및 역빈도(idf)를 산출하는 단계; 및 (d) 추출부가 상기 엔티티 빈발도 및 역빈도를 이용하여 자연어인 사용자 질의(q)에 유관한 유망 문자열을 추출하고 근사 결과를 도출하는 단계;를 포함하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 방법을 제공한다.
본 발명에 따르면, 입력된 사용자 질의 셋에 대하여 비정형 데이터를 기반으로 정보 유사성 처리 과정을 통해 사용자 질의에 근사한 정보 셋을 선택 및/또는 추천하는 솔루션을 제공할 수 있다.
또한, 본 발명의 다른 효과로서는 다양한 문서에서 발생된 문자열들을 하나의 트리 구조로 통합 표현할 수 있다는 점을 들 수 있다.
또한, 본 발명의 다른 효과로서는 해당 구조로 사전 구축함으로써 연관된 데이터 간 접근성과 공간적 집약성을 높였으며, 이에 따라 사용자 질의와 연관된 정보를 마이닝하기 위해 모든 문자열을 매번 순차 탐색해야 하는 비용적 문제를 개선하였다는 점을 들 수 있다.
또한, 본 발명의 또 다른 효과로서는 서비스 성격상 빠른 처리속도를 보장해야 하기 때문에 확률에 기반하여 불필요한 문서, 문자열을 전지(pruning)하여 탐색 범위를 절감시킬 수 있다는 점을 들 수 있다.
또한, 본 발명의 또 다른 효과로서는 절감된 탐색 대상을 기반으로 근사 최근접 이웃 탐색 방법을 수행하여 사용자 질의에 유사한 문자열 셋을 고속으로 얻을 수 있다는 점을 들 수 있다.
또한, 본 발명의 또 다른 효과로서는 사용자 질의에 대한 항상 최적의 결과 제공을 보장하지는 못하지만 확률 상 사용자가 참고할 만한 연관성이 있는 정보를 신속 제공이 가능하다는 점을 들 수 있다.
또한, 본 발명의 또 다른 효과로서는 자연어 처리 모델과 결합한 하이브리드 형태로서 학습된 결과와 함께 참고할 수 있는 정보를 추가 전달할 수 있다는 점을 들 수 있다.
도 1은 일반적인 가상 개인 비서 동작 구조의 예를 보인 것이다.
도 2는 본 발명의 일실시예에 따른 비정형 데이터 기반 근사 질의응답 시스템의 구성 블럭도이다.
도 3은 본 발명의 일실시예에 따른 비정형 데이터 기반 근사 질의응답의 전반적 동작 구조를 보여주는 개념도이다.
도 4는 본 발명의 일실시예에 따른 비정형 데이터를 기반으로 근사적인 질의응답 과정을 보여주는 흐름도이다.
도 5는 본 발명의 일실시예에 따른 각 문서를 구성하는 문자열 데이터의 예이다.
도 6은 도 5에 도시된 문자열 데이터를 기반으로 문자열 데이터 셋을 공통 트리(common tree) 구조로 표현한 예이다.
도 7은 도 6에 도시된 공통 트리를 구축하는 과정을 보여주는 흐름도이다.
도 8은 본 발명의 일실시예에 따른 사용자 입력 질의와 관련된 문자열 집합 선정 과정을 보여주는 흐름도이다.
도 9는 본 발명의 일실시예에 따른 연관 문서의 개념도이다.
도 10은 본 발명의 일실시예에 따른 문자열 정보를 탐색하는 개념도이다.
도 11은 본 발명의 일실시예에 따른 LSH(Locality-sensitive hashing) 알고리즘을 활용한 문자열쌍간 유사정도 측정 과정을 보여주는 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
제 1, 제 2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하 첨부된 도면을 참조하여 본 발명의 일시예에 따른 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법을 상세하게 설명하기로 한다.
우선 일부 용어를 정의하면 다음과 같다.
*RPA(Robotic Process Automation)는 사용자가 PC(Personal computer)에서 수행하는 반복적이고, 표준화 가능하며, 규칙에 기반한 일을 SW(Software) 로봇이 자동으로 수행할 수 있도록 프로세스를 자동화하는 기술로서, 업무 효율화를 목적으로 도입하는 사례가 증가하고 있다.
*RPA 솔루션은 간편하게 업무 자동화 프로그램을 개발하기 위한 기능을 제공하는 것에 초점이 맞춰져 있어, 업무 자동화 프로그램을 운영·유지보수하기 충분한 기능을 제공하지 않는다. RPA 기반 업무환경을 운영하기 위해서는 RPA 프로그램이 제대로 동작하는지에 대한 지속적인 모니터링 환경과 개선된 기능을 테스트 하고 신속하게 배포해야 한다.
*종래 RPA 기술은 정형 데이터를 활용하고 업무 규칙이 정해진 단순 업무에만 적용할 수 있기 때문에, 적용 가능한 업무 범위가 매우 한정적이다. 이러한 이유로 복잡하고 다양한 업무로 RPA 적용 범위를 확장하기 위해 AI(Artificial Intelligence) 기술을 활용하여 RPA 기능을 고도화하는 다양한 시도가 이뤄지고 있다. 이에 대한 구체적인 예로 RPA와 연동할 수 있는 챗봇, NLP(Natural Language Processing) 기술 등이 존재한다.
*챗봇은 채팅과 로봇의 합성어로, AI 기술을 기반으로 한 커뮤니케이션 서비스 제공을 목표로 한다. 대화형 챗봇은 NLP, 패턴인식, 텍스트마이닝 등 기술이 주로 사용되며, 최근 컴퓨팅 파워와 AI 기술의 성숙으로 인해 활발히 연구되고 있다. 대화형 챗봇은 사용자가 체감할 수 있는 AI 서비스로 전 산업분야에서 활용·확산되고 있다.
*NLP(자연어 처리)는 컴퓨터와 인간이 소통하는데 필요한 기술로 AI 핵심 기술 중 하나이다. 구성 기술로는 자연어 이해와 자연어 생성이 있으며, 자연어 이해는 자연어 형태 문장을 이해하는 기술이고, 자연어 생성은 자연어 문장을 생성하는 기술을 의미한다. NLP 기술은 챗봇, 기계 번역(e.g 구글 번역기), 정보검색, 텍스트 마이닝 등 다양한 분야에서 활용되고 있다.
본 발명의 일실시예에서는 별도 정형화 단계 없이, 비정형 데이터를 기반으로 사용자 질의와 관련된 정보를 근사적으로 탐색하는 관점에서의 접근방법이 제시된다.
도 2는 본 발명의 일실시예에 따른 비정형 데이터 기반 근사 질의응답 시스템(200)의 구성 블럭도이다. 도 2를 참조하면, 근사 질의응답 시스템(200)은, 자연어 질의를 수행하는 통신 단말기(201), 통신망(202), 비정형 데이터 셋을 수집하는 수집부(210), 수집된 비정형 데이터 셋을 저장하는 데이터베이스(220), 수집된 비정형 데이터 셋으로 공통 트리를 생성하는 트리 생성부(230), 공통 트리에서 엔티티의 빈발도 및 역빈도를 산출하는 선택부(240), 엔티티 빈발도 및 역빈도를 이용하여 유망 문자열을 추출하고 근사 결과를 도출하는 추출부(250), 근사 결과를 출력하는 표시부(260) 등을 포함하여 구성될 수 있다.
통신 단말기(201)는 PC(Personal computer), 휴대폰(mobile phone), 스마트폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 노트 패드 등이 될 수 있다.
수집부(210)는 비정형 데이터 셋을 수집하는 기능을 수행한다. 이를 수집부(210)는 통신망(202)과 연결될 수 있다.
통신망(202)은 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(120)의 일 예에는 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5GPP(5rd Generation Partnership Project) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), Wibro(Wireless Broadband), WiFi(Wireless Fidelity), HSDPA(High Speed Downlink Packet Access), 블루투스(Bluetooth) 네트워크, NFC(Near Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
또한, 수집부(210)는 통신 모뎀, 마이크로프로세서, 메모리, 마이크, 키보드, USB(Universal Serial Bus) 통신 포트 등을 포함하여 구성될 수 있다. 즉, 음성 데이터, 문자 데이터 등을 수집할 수 있으며, 메모리 스틱 등을 통해 데이터를 입력받을 수도 있다.
메모리는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD(Secure Digital) 또는 XD(eXtreme Digital) 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read Only Memory), PROM(Programmable Read Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 인터넷(internet)상에서 저장 기능을 수행하는 웹 스토리지(web storage), 클라우드 서버와 관련되어 동작할 수도 있다.
데이터베이스(220)는 수집부(210)를 통해 수집되는 비정형 데이터 셋을 데이터베이스화하여 저장하는 기능을 수행한다. 물론, 데이터베이스(220)는 자체내로 구성될 수도 있고, 별도의 데이터베이스 서버로 구성될 수도 있다.
트리 생성부(230)는 비정형 데이터 셋을 기반으로 문자열 공통 트리(common tree)를 생성하는 기능을 수행한다.
선택부(240)는 공통 트리에서 엔티티를 산출하고, 산출된 엔티티를 이용하여 엔티티의 빈발도 및 역빈도를 산출한다.
추출부(250)는 엔티티 빈발도 및 역빈도를 이용하여 사용자 질의에 유관한 유망 문자열을 추출하고 근사 결과를 도출하는 기능을 수행한다. 부연하면, 다수의 문서를 구성하는 문자열 집합 중 사용자 질의에 유관한 문자열 집합을 추출하고, 이 중 가장 유사도가 높은 문자열을 근사적으로 탐색하는 근사 최근접 이웃 탐색을 실행한다. 근사 최근접 이웃이란 질의에 내재된 특정 키워드와 연관된 정보 셋을 의미한다.
근사 최근접 이웃 탐색은 조금 정확하지 않더라도 빠르게 최근접 이웃을 탐색하는 기술로서 본 발명의 일실시예에서는 해시 특성을 이용한 LSH(locality sensitive hashing) 기법을 활용하여 근사 최근접 이웃 탐색을 수행한다.
표시부(260)는 근사 결과를 출력하는 기능을 수행한다. 물론, 표시부(260)는 설정 화면, 입력 화면, 정보 처리 화면 등을 출력할 수 있다. 이를 위해 표시부(260)는 사운드 시스템, 디스플레이 등을 포함할 수 있다. 디스플레이는 LCD(Liquid Crystal Display), LED(Light Emitting Diode) 디스플레이, PDP(Plasma Display Panel), OLED(Organic LED) 디스플레이, 터치 스크린, CRT(Cathode Ray Tube), 플렉시블 디스플레이, 마이크로 LED, 미니 LED 등이 될 수 있다. 터치 스크린의 경우, 입력 수단으로도 사용될 수 있다.
따라서, 표시부(260)는 처리 결과를 그래픽, 음성, 및 문자의 조합으로 출력할 수 있다.
도 3은 본 발명의 일실시예에 따른 비정형 데이터 기반 근사 질의응답의 전반적 동작 구조를 보여주는 개념도이다. 도 3을 참조하면, 주어진 비정형 데이터 셋(D)을 기반으로 n-gram 문자열 트리(T)를 생성하고, 단어에 대한 tf(term frequency: 단어의 빈도)와 idf(inverse document frequency: 역문서 빈도)를 측정한다(단계 S310,S320).
n-gram은 문자열에서 n개의 연속된 요소를 추출하는 방식이다. 만약 "Hello"라는 문자열을 문자(글자) 단위 2-gram으로 추출하면 He, el, ll, lo가 된다. 즉, 문자열의 처음부터 문자열의 끝까지 한 글자씩 이동하면서 2글자를 추출한다.
또한, tf와 idf는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다
이후, 주어진 사용자의 질의 셋(q*)과 연관성 있는 데이터 셋(p*)를 n-gram 문자열 트리(T)에서 선택 및 추출한다(단계 S340). 여기서,
Figure pat00013
Figure pat00014
의 최대 차원을 의미한다. 상기 언급한 예시 'Hello'를 2-gram
Figure pat00015
로 구축할 경우,
Figure pat00016
은 4가 될 수 있다.
마지막으로 질의 셋(q*)을 기준으로 데이터 셋(p*)내 근사 최근접 이웃들을 탐색하고 이를 원본 문자열로 복원한다(단계 S340). 여기서,
Figure pat00017
은 최종 선정된 근사 이웃 집합을 의미한다.
Figure pat00018
로부터 탐색에 유망한 문자열 집합을 추출하고, 추출된 탐색 대상 문자열 집합에 대한 차원을
Figure pat00019
로 정의하며, 최악의 경우
Figure pat00020
Figure pat00021
이 동일할 수 있다. 각 단계에 대한 보다 자세한 처리 방법은 후술하기로 한다.
도 4는 본 발명의 일실시예에 따른 비정형 데이터를 기반으로 근사적인 질의응답 과정을 보여주는 흐름도이다. 도 4를 참조하면, 비정형 데이터 셋(D)을 수집하고 이를 이용하여 공통 트리(T)를 구축한다(단계 S410,S411).
n-gram은 n개의 연결된 문자열 또는 토큰을 의미하며, n은 범위가 작은 상수로 지정되며, 정보 유사도 검색, 자연어처리, 기계학습 등 다양한 범위에서 활용되고 있다.
본 발명에서는 이러한 n-gram을 활용해 하나의 문자열을 n개의 연속된 부분 문자열로 분할하고 이를 서로 연결하는 방법을 반복하여 다수의 문서를 구성하는 대량의 문자열 집합을 하나의 공통 트리(common tree)(T)로 구축한다.
즉 common tree는 n개의 연속된 문자열 간 연결 관계를 표현한 트리를 의미한다. 이를 통해 각 문서를 구성하는 문자열 집합들을 효과적으로 통합 표현하고 관리할 수 있다.
구축된 common tree
Figure pat00022
Figure pat00023
, 방향성 에지 집합
Figure pat00024
그리고 노드와 에지 레이블(label) 함수(LV와 LE)로 구성된 트리 구조이다. v는 노드이고, V는 노드 집합이다.
주어진 비정형 데이터 집합
Figure pat00025
(여기서 d는 각 데이터를 나타낸다)에 속한 각각의 문자열의 집합을
Figure pat00026
라고 했을 때, 임의의 노드
Figure pat00027
는 임의의 문서
Figure pat00028
에 속한 임의의 문자열
Figure pat00029
에 대해 크기가 n인 시퀀스 윈도우가 순차적으로 분할해 나가고 분할된 문자열을 노드로 구축한 것이다.
T에 속한 각 노드를 제외한 모든 노드들은 최소 1개 이상의 자식 노드를 지니고 있으며, 방향성 에지
Figure pat00030
를 활용해 연결 관계를 논리적으로 표현한다.
Figure pat00031
에 대한 부모 노드의 집합을 N+(v)로, 자식 노드의 집합은 N-(v)로 표현하며 v와 연결된 모든 노드 집합은
Figure pat00032
로 표현한다.
Lv
Figure pat00033
에 대한 메타 정보들을 가져오는 함수이며, v의 n-gram 정보와 해시값을 지니고 있다. 해시값은 n개의 v에 할당된 연속된 문자열을 대상으로 임의의 해시함수를 사용하여 생성하며, 모든 노드에 대해 해시값을 생성하고 이를 해시 테이블로 구축 및 관리한다. 해시 값을 별도로 저장하는 이유는 추후 탐색속도 향상을 위해 모든
Figure pat00034
에 대한 해시 테이블(ht)을 구축한다.
Le
Figure pat00035
에 대한 메타 정보를 가져오는 함수이며, 시작 노드와 도착 노드 간 관계의 정보인 문서 및 문자열 ID(IDentifier)를 저장한다. e에 식별자를 별도로 저장하는 이유는 부모 노드에서 자식 노드로 탐색을 확장할 때 식별자가 동일한 에지에 연결된 자식 노드로 탐색함이 목적이다.
노드
Figure pat00036
는 전체 노드 집합
Figure pat00037
를 구성하는 하나의 노드를 의미하며,
Figure pat00038
는 노드의 속성값을 가져오는 함수이다. 에지
Figure pat00039
도 마찬가지로 전체 에지 집합
Figure pat00040
를 구성하는 하나의 에지를 의미한다. 본 발명에서는 노드
Figure pat00041
와 에지
Figure pat00042
각각에 대한 속성 값 참조가 필요하나, 모든 노드, 모든 에지 집합에 대한 속성값 집합을 참조하지 않아도 된다.
임의의 노드
Figure pat00043
가 주어졌을 때 원래 문자열로 복원(restoration)해나가는 탐색 방법은 식별자가 동일한 에지를 따라 N+(v)를 대상으로 후위순회(post-order) 탐색을, N-(v)를 대상으로 방향으로 전위순회(pre-order) 탐색을 수행하고 그 결과를 결합하여 복원한다.
공통 트리가 구축되면, 엔티티(즉 키워드)를 추출하고, 이 엔티티에 대한 빈발도 및 역빈도를 산출한다(단계 S413,S415).
T를 구축함과 동시에 각 문서 내 빈발하게 등장하는 키워드들을 추출한 후 빈발도(tf)와 역빈도(idf)의 계산을 수행하여 키워드 별 가중치를 계산하고 테이블 tf와 idf로 각각 나누어 관리한다. tf(term frequency)는 특정한 단어(키워드)가 문서내에 얼마나 자주 등장하는지를 나타내는 비율을, idf(inverse document frequency)는 한 단어가 문서 집합 전체에서 얼마나 공통적으로 나타나는지를 나타내는 값을 갖는다. tf-idf는 어떤 단어(키워드)가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치를 나타내며 이는 특정 문서에서만 빈발하게 등장하는 단어는 해당 문서의 핵심단어라는 뜻이다.
따라서 모든 문서 전반적으로 등장하는 단어는 중요성이 떨어진다는 특성을 나타내는 통계적 수치이며, 0으로 수렴할수록 중요하지 않은 정보로 분류된다. 구축된 tf와 idf 테이블은 사용자 질의를 기반으로 연관성 있는 문자열 집합 탐색 시, 탐색 공간 축소를 위한 전지(pruning) 과정에 활용된다.
이후, 빈발도(tf)와 역빈도(idf)를 이용하여 유망 문자열을 추출한다(단계 S417).
한편, 사용자가 자연어 질의하면 추출부(250)는 자연어 질의를 토큰화하고, 자연서 질의에서 엔티티를 추출한다(단계 S420,S421).
이후 추출부(250)는 추출된 엔티티를 이용하여 사용자의 의도를 분석하고 분류하여 결과를 맵핑하고 도출한다(단계 S423,S425). 부연하면, AI모델을 통해 사전에 학습하고, 이를 기반으로 결과를 제공하는 자연어 처리 과정에 대한 부분이다.
상기 단계들을 거쳐 선택된 문자열 집합 (p*)과 사용자 질의 집합(q*)간의 유사정도를 근사 측정하고 사용자 질의 집합(q*)과 가장 근접한 이웃으로 추려진 문자열들을 도출하여 최종적으로 사용자에게 도출 결과를 제공한다(단계 S419).
기존 NLP 처리 모델과 본 발명의 일실시예세서 제안하는 방법을 적절히 결합하여 서로의 단점을 상호 보완해주는 하이브리드 처리 방법으로 결합할 수 있다. 따라서, 사용자 질의와 마이닝된 그 결과를 별도로 축적하고 분석하여 향후 QA 데이터 자동 생성을 위한 NQG(natural query generator) 기술에 접목 및 활용할 수 있다.
도 5는 본 발명의 일실시예에 따른 각 문서를 구성하는 문자열 데이터(500)의 예이다. 도 5를 참조하면, 문자열 데이터(500)는 ID와 문서(document)로 구성된다. 문서를 이루는 각 파일(510,520,530)은 다시 ID와 문자열(string)으로 구성된다. 부연하면, 문서를 구성하는 각 문자열 집합을 보이며, 그 중 문자들의 집합에 각기 식별자를 부여하였음을 보인다.
도 6은 도 5에 도시된 문자열 데이터를 기반으로 문자열 데이터 셋을 공통 트리(common tree) 구조로 표현한 예이다. 도 6을 참조하면, n-gram(n=2)을 활용해 문자열 셋을 연속된 부분 문자열로 분할하고 이를 하나의 common tree로 구축 및 표현한 예를 보인 것이다.
v15는 v16과 v19을 N-(v15)로 보유하고 있으며,
Figure pat00044
Figure pat00045
는 각기
Figure pat00046
,
Figure pat00047
와 같이 서로 다른 그룹에 속해있다. d1에 존재하면서 v15을 포함하는 본래 문자열 s0으로 복원하기 위해 동일 식별자인
Figure pat00048
를 갖는 에지를 탐색하면서 단말 노드를 만날 때까지 전위순회를 수행하고, 마찬가지로 루트 노드를 만날 때까지 부모 노드 방향으로 후위순회를 수행하여 원래 문자열로 복원할 수 있다.
공통 트리(common tree)(T)는 다양한 문서에서 발생된 중복 문자들을 하나의 노드 정보로 압축하여 표현이 가능하므로 공간 효율적이다. 또한, 문자열간 구조적 연관성을 표현한 자료구조로 사전 구축함으로써 연관된 데이터간 접근성과 공간적 집약성을 높였으며, 이에 따라 사용자 질의와 연관된 정보를 탐색하기 위해 모든 문서, 모든 문자열을 매번 순차 탐색(full sequential search)해야 하는 비용적 문제를 개선하였다.
이를 통한 탐색을 수행하게 될 경우, 기존의 방법에 비해 탐색 공간이 감소하고 접근성을 높여 보다 효율적인 알고리즘 수행이 가능하다. 이 구조는 트라이 구조(trie)와 비슷해 보이나, 중복 발생하는 노드를 재활용하여 사용함으로 보다 공간적 비용을 절약할 수 있다. 또한, 에지를 통해 본래 소속된 그룹 정보를 별도로 저장하므로 본래 문자열이 위치를 포함한 정보 손실없이 복구가 가능하다는 점에 차이가 있다.
도 7은 도 6에 도시된 공통 트리를 구축하는 과정을 보여주는 흐름도이다. 도 7을 참조하면, 트리 생성부(230)는 문자열 데이터(S)가 존재하는지를 판단한다(단계 S710).
단계 S710에서 판단 결과, 문자열 데이터(S)가 존재하지 않으면, 생성 및 구축된 공통 트리(T)를 구축하고 사용자에게 제공한다(단계 S711).
이와 달리, 단계 S710에서, 문자열 데이터(S)가 존재하는 것으로 판단되면, n개의 연속된 문자열로 분할하고, n개의 연속된 문자열이 존재하는지를 확인한다(단계 S720,S730).
단계 S730에서, 판단 결과, n개의 연속된 문자열이 존재하면 해시 테이블(ht)에 해당 문자열이 존재하는지를 확인한다(단계 S740).
단계 S740에서, 판단 결과, 해시 테이블(ht)에 해당 문자열이 존재하면, 해시 테이블(ht)을 통해 관련 노드를 탐색하고, 탐색된 노드를 전후 노드와 연결관계를 구축하고, 공통 트리(T)를 업데이트한다(단계 S750,S760,S770).
이와 달리, 단계 S740에서, 해시 테이블(ht)에 해당 문자열이 존재하지 않으면, 노드 생성후 ht에 정보를 업데이트하고, 단계 S760으로 진행한다(단계 S741).
도 8은 본 발명의 일실시예에 따른 사용자 입력 질의와 관련된 문자열 집합 선정 과정을 보여주는 흐름도이다. 일반적으로 사용자 질의(q)는 가상 개인 비서 서비스에 입력한 사용자의 질의를 나타낸다. 이를 n-gram으로 분할한 결과를 순차적으로 탐색할 수 있도록 연결 리스트로 표현할 수 있다.
아울러 특정 객체 또는 의미를 지칭할 때 동의어, 유의어 또는 약어가 존재할 수 있으며, 보다 포괄적인 탐색을 위해 사용자 질의(q)에 대한 유사 질의 셋
Figure pat00049
을 생성하고, 이를 사용자 입력 질의 셋
Figure pat00050
으로 정의한다.
주어진 사용자 입력 질의 셋(q*)과 가장 연관성있는 정보 탐색을 위한 가장 단순한 방법으로는 두 집합q*와 S간 규칙 기반 완전 탐색을 수행하여 각 문자열 쌍(pair) 간 유사 정도를 비교하고, 가장 적절한 집합을 결과로 제공받을 수 있다.
그러나 복잡도가 매우 높은 고차원 데이터 간 유사도 측정을 위한 완전 탐색에는 오랜 시간이 소요되며, 질의가 동시 다발적으로 입력되는 가상 개인 비서 서비스 환경에서 적절하게 활용하기 어렵다.
아울러 사용자 입력 질의 셋(q*)과 관련된 근사 이웃 정보 집합 탐색을 수행 시 탐색 범위가 광범위 할수록 더 많은 수행시간을 필요하게 된다. 근사 탐색은 오차를 일부분 허용하면서 메모리나 시간상의 제약을 만족시키는 방법이나, 탐색 범위가 광범위할 경우 여전히 시간상 제약 조건이 발생한다. 반면에 수행속도 향상을 위해 오차를 광범위하게 허용하게 되면 결과의 질적 측면이 감소된다.
이러한 문제를 해결하기 위해 사용자 입력 질의 셋(q*)과 연관성이 없는 불필요한 데이터 즉 결과 도출에 유망하지 않는 부분들을 탐색 범위에서 제거하고, 유망할 것으로 추정된 정보들을 대상으로 탐색 수행하도록 한다.
유망함의 정도는 사용자 입력 질의 셋(q*)에 내재된 키워드들이 중요시 되는 문서에서 해당 키워드가 포함하는 문자열일수록 관련도가 높다고 판단한다. 이를 측정하는 방법으로 기구축 및 정의된 tf, idf 테이블과 유사 엔티티 리스트(wd)를 활용한다.
유사 엔티티 리스트(wd)는 도메인 용어를 기반으로 구축된 엔티티 리스트이며 엔티티의 포괄적인 표현을 얻기 위해 동의어, 유의어 검색을 위해 활용한다. 이는 서비스를 제공 대상에서 사용되는 용어 및 비정형 데이터 셋(D)에서 사용된 단어들의 집합을 의미하며 관사, 전치사, 접속사, 부사 등과 같은 불용어를 사전에 정의하고 필터링하는 등 사용자 정의 규칙 기반으로 구축한다.
도 8을 참조하면, 추출부(250)는 입력된 질의 셋이 있는지를 확인한다(단계 S810).
단계 S810에서, 판단결과, 입력된 질의 셋이 존재하지 않으면, 구축된 사용자 입력 질의 셋(p*)을 반환한다(단계 S811).
이와 달리, 단계 S810에서, 판단결과, 입력된 질의 셋이 존재하면, 질의를 단어 단위로 분할한다(단계 S820).
이후, 분할된 단어(w)가 유사 엔티티 리스트(wd)에 존재하는 지를 확인한다(단계 S830).
단계 S830에서, 분할된 단어(w)가 유사 엔티티 리스트(wd)에 존재하지 않으면, 임의 문서에서 분할된 단어(w)의 빈발도 x 역빈도가 미리 설정된 임계치의 이상인지를 확인한다(단계 S831).
단계 S831에서, 확인 결과, 분할된 단어(w)의 빈발도 x 역빈도가 미리 설정된 임계치의 이상이면 분할된 단어(w)를 n개의 연속된 문자열로 분할하고, 해시 테이블(ht)를 참조하여 시작 노드(v)를 탐색한다(단계 S850).
이와 달리, 단계 S831에서, 확인 결과, 분할된 단어(w)의 빈발도 x 역빈도가 미리 설정된 임계치보다 작으면, 단계 S810 내지 S830이 다시 진행된다.
한편, 단계 S830에서, 분할된 단어(w)가 유사 엔티티 리스트(wd)에 존재하면, 단계 S840으로 진행한다.
시작 노드(v)가 탐색되면, 연관 문서내 시작 노드(v)의 빈발도가 미리 설정되는 임계치 이상인지를 확인한다(단계 S870).
단계 S870에서, 확인 결과, 시작 노드(v)의 빈발도가 미리 설정되는 임계치보다 작으면, 해당 문서로의 탐색 확장을 중단한다.
이와 달리, 단계 S870에서, 확인 결과, 시작 노드(v)의 빈발도가 미리 설정되는 임계치이상이면, 해당 문서와 연관된 노드를 탐색하고, 탐색된 노드들을 사용자의 질의 셋(q*)과 연관성 있는 데이터 셋(p*)에 저장하고, 단계 S830 내지 S890이 다시 진행된다(단계 S890).
부연하면, 우선 모든
Figure pat00051
를 대상으로 불용어가 제거된 단어 집합으로 분할하고, 단어(w)와 관련된 시작 노드(v)를 T에서 찾은 후 연관된 문서에서의 빈발함의 정도를 측정한다.
여기서 연관된 문서 또는 문자열 식별자 정보는 v와 연결된 에지의 레이블 (
Figure pat00052
)를 통해 확인 및 참조가 가능하며, 연관 문서에서 단어(w)의 빈발도는 기구축한 빈발도(tf)를 참조한다.
만약 연관된 임의의 문서에서 시작 노드(v)가 빈발하다고 판단되면 해당 문서로의 탐색을 확장한다. 탐색 과정은 상기 언급하였듯이 시작 노드(v)를 기준으로 연관된 문서의 문자열 대상으로 후위탐색 및 전위탐색을 수행하고 사용자의 질의 셋(q*)과 연관성 있는 데이터 셋(p*)에 저장한다.
반면, 단어(w)가 유사 엔티티 리스트(wd)에 존재하지 않은 경우, 빈발도(tf)와 역빈도(idf)를 참조하여 가 빈발하면서 중요시 여겨지는 문서(
Figure pat00053
)를 찾은 후, 이와 관련된 노드(v)를 T에서 탐색한다. 그리고 노드(v)를 기준으로 비정형 데이터(d)와 관련된 문서로의 탐색을 확장하고 그 결과를 사용자의 질의 셋(q*)과 연관성 있는 데이터 셋(p*)에 저장한다. 여기서 시작 노드란, 임의의 단어를 구성하는 문자열을
Figure pat00054
으로 분할하고 이를 각각 노드로 생성했을 때, 해당 문자열을 구성하는 처음
Figure pat00055
개의 연속된 문자열 정보를 지닌 노드를 의미하며
Figure pat00056
로도 확인한다.
도 9는 본 발명의 일실시예에 따른 연관 문서의 개념도이다. 도 9를 참조하면, 측정된 단어(lq)의 빈발도의 값(g)에 따라 연관된 문서 및 문자열 정보를 탐색하는 개념도이다.
도 10은 본 발명의 일실시예에 따른 문자열 정보를 탐색하는 개념도이다. 도 10을 참조하면, 해당 예는 사용자에 의해 빈발도 임계값이 0.2로 입력된 상황을 가정한다.
Figure pat00057
Figure pat00058
에 출현하는 빈발도가 0.19,
Figure pat00059
에 출현하는 빈발도가 0.3이며,
Figure pat00060
가 d2내에서 영향력이 없는 키워드이기 때문에 d2에 있는 문자열에 대한 탐색을 확장하지 않아도 됨을 사전에 판단하고 전지하여 탐색 공간을 축소시킬 수 있으며,
Figure pat00061
에 대한 탐색을 확장해 나갈 수 있음을 판단할 수 있다.
도 11은 본 발명의 일실시예에 따른 LSH(Locality-sensitive hashing) 알고리즘을 활용한 문자열쌍간 유사정도 측정 과정을 보여주는 흐름도이다. 도 11을 참조하면, 상기 단계를 거쳐 선택된 연관성있는 데이터셋(p*)과 사용자 입력 질의셋(q*) 간의 유사정도를 근사 측정하고 사용자 질의 집합(q*)과 가장 근접한 이웃으로 추려진 문자열들을 최종적으로 사용자에게 제공한다.
최근접 이웃 탐색이란 질의(
Figure pat00062
)가 주어졌을 때 연관성있는 데이터셋(p*)에 속한 가장 근접한 이웃(
Figure pat00063
)을 탐색하는 것이며, 근사 최근접 이웃 탐색은 조금 정확하지 않더라도 빠르게 가장 근접한 이웃(p')에 근사한 아이템을 탐색한다.
우선 상기 유망한 문자열셋 선정 단계를 거쳐 추출된 데이터셋(p*)이 서로 중복되지 않는 m개의 노드 집합(n개의 연속된 문자열셋)으로 구성되어 있음을 가정했을 때, p*
Figure pat00064
차원 크기의 매트리스(C*)로 구성되며, 임의의
Figure pat00065
는 m차원 벡터로 표현된다(단계 S1110)
문자열쌍간 유사도 측정을 수행하기 위해 자카드 유사도(jaccard similarity)를 활용한 유사도 계산 과정이 필요하지만 차원이 증가할수록 계산 수행에 오랜 시간이 소요되며, 데이터의 양이 많을수록 계산 대상이 많아지므로 유의미한 성능을 얻지 못하는 경우가 발생한다.
보다 구체적으로 집합 간 유사도는 두 집합간 합집합과 교집합 연산을 통해 계산할 수 있으며, 데이터 차원이 높을수록 데이터의 양이 많을수록 합집합 및 교집합 연산 처리에 오랜 시간을 요구한다. 다음 수식은 임의의 집합(
Figure pat00066
)와 (
Figure pat00067
)간 유사도(sim)를 계산하는 수식이다.
Figure pat00068
상기 단계를 통해 유망한 문자열 집합 선정을 목적으로 한 상기 단계를 통해 비교 대상의 수를 감축하였으나, 문자열 집합 p*와 q*의 차원이 여전히 높은 문제가 존재한다. 따라서 이러한 문제를 해결하기 위해 집합 간 유사도는 유지하면서 차원을 축소하고 연관된 아이템들을 하나의 버켓에 저장되도록 한 후 근사 측정하는 LSH(Locality-sensitive hashing) 기술을 활용한다.
LSH는 민해싱(min-hashing)을 활용해 가장 근접한 이웃 쌍을 빠르게 근사 탐색할 수 있는 알고리즘이다. 민해싱(min-hashing) 알고리즘은 고차원의 데이터 를 대상으로 차원을 줄이고, 줄어든 차원의 정보만으로도 본래 데이터 집합 간 유사도 결과와 거의 비슷하면서 이를 신속하게 측정하기 위한 방법이다.
반면, 차원을 축소하였음에도 불구하고 유사도 비교 대상의 샘플의 수가 많아지는 경우 여전히 오랜 수행시간을 요구한다.
LSH는 이러한 문제를 해결하기 위해 minhashing 결과인 signature 매트리스를 활용해 유사한 signature 값들을 하나의 버켓으로 클러스터링하고 클러스터링된 결과 간 유사도를 측정한다. 즉, 빅 데이터 분석 및 처리 시, 차원축소를 통한 계산 시간과 로드를 줄여주고 유사한 정보들을 클러스터링하여 비교 샘플의 수를 축소하기 위한 기술이다.
n-gram의 집합으로 구성된 모든
Figure pat00069
집합의 최대 차원 m임을 가정했을 때,
Figure pat00070
· m크기의 shingles 매트리스(C*)로 구축한다. 여기서 shingles는 상기 언급한 n-gram을 통해 생성된 n개의 연속된 문자열을 의미한다. 싱글즈( shingles) 매트리스를 대상으로 임의의 해시함수를 활용해 각 열의 값을 랜덤하게 섞은 후 그 중 가장 작은 값을 선택하는 과정을 여러 번 반복하여 m,w차원 데이터의 차원을 축소시킨다. 여기서 minhashing 연산을 통해 선택된 값을 고유값인 시그네처(signature)로 지칭하며, 최종적으로 p*와 q*을 대상으로 한 minhashing의 결과로 축소된 차원의 signature 매트리스를 얻는다(단계 S1130).
minhashing의 결과로 q* 및 p*의 차원을 축소하였으나 유사도가 높은 쌍을 찾기 위한 비교 대상이 많을수록 비교 횟수가 기하급수적으로 증가하게 된다. LSH를 수행하는 주된 목적은 signature들을 대상으로 해싱했을 때, 비슷한 아이템들은 동일한 버켓에 그룹핑된다는 점에 있다(단계 S1130).
여기서 그룹핑은 해시 충돌(hash collision) 원리를 이용하며, 해싱했을 때 유사 아이템은 동일한 버켓에 속할 확률이 증가한다는 속성을 이용한다. 동일한 버켓에 소속된 아이템들을 근사 이웃 집합으로 판단할 수 있다. 유사하지 않은 쌍들은 동일한 버켓에 절대 소속되지 않기 때문이다.
아래 수식은 임의의 컬럼(c)에 대한 minhashing 값인 signature를 구하는 수식이다.
Figure pat00071
아래 수식은 minhashing 속성으로서 각 c1,c2의 signature가 동일한 확률과 c1,c2이 유사한 확률이 서로 같음을 의미한다.
Figure pat00072
따라서 C*을 대상으로 minhashing을 활용해 차원을 축소한 후, 축소된 차원의 벡터를 여러개 밴드로 분할한 후, 각각의 밴드를 대상으로 버켓 해싱을 통한 유사 쌍을 그룹핑함으로써 유사 문자열 셋을 근사 탐색할 수 있다. 여기서 밴드간 버켓 해싱을 통해 그룹핑이 되는 경우, 두 전체 문자열 간 유사하다고 간주한다(단계 S1140,S1150,S1160,S1170).
부연하면, p*,q*간 유사한 문자열 셋을 근사 탐색하고 가장 유사성이 높은 결과를 추출하는 순서도를 보인다.
본 발명에서는 대화 중심으로 사용자와 봇 간의 일상 대화를 통해 지속적 친밀감을 쌓기 위해 사용되는 것이 목적이 아닌 도메인이 정해진 특정 업무 지원을 위한 가상개인비서 서비스 제공을 목적으로 고려하기 때문에 입력된 사용자 질의 문자열 내 업무와 직·간접적으로 연관된 키워드들이 포함되어 있을 확률이 높다.
이와 관련하여 약 1년 간 가상개인비서 서비스를 운영하면서 입력된 사용자 질의 셋을 관찰한 결과, 대다수 질의는 키워드 1~2개를 포함한 간략한 형태의 질의로 입력되었으며, 처리 엔진이 의도 분류 및 엔티티를 파악하기 어려운 복잡한 질의는 입력되지 않았다. 이는 상기 언급했던 것과 같이 업무 수행함에 있어 업무 내용이나 행동방침, 규정 등에 대한 정보 전달이 서비스 개발 및 활용의 주된 목적이기 때문이다.
따라서 입력된 사용자 질의 셋에 대하여 비정형 데이터를 기반으로 정보 유사성 처리 과정을 통해 사용자 질의에 근사한 정보 셋 선택 및 추천하는 본 발명을 통해 사용자에게 항상 최적의 답을 제공하진 못하지만 그 대안을 제공함으로서의 가능성이 충분히 존재한다.
또한, 여기에 개시된 실시형태들과 관련하여 설명된 방법 또는 알고리즘의 단계들은, 마이크로프로세서, 프로세서, CPU(Central Processing Unit) 등과 같은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 (명령) 코드, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 매체에 기록되는 프로그램 (명령) 코드는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프 등과 같은 자기 매체(magnetic media), CD-ROM, DVD, 블루레이 등과 같은 광기록 매체(optical media) 및 롬(ROM: Read Only Memory), 램(RAM: Random Access Memory), 플래시 메모리 등과 같은 프로그램 (명령) 코드를 저장하고 수행하도록 특별히 구성된 반도체 기억 소자가 포함될 수 있다.
여기서, 프로그램 (명령) 코드의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
200: 근사 질의응답 시스템
201: 통신 단말기
202: 통신망
210: 수집부
220: 데이터베이스
230: 트리 생성부
240: 선택부
250: 추출부
260: 표시부

Claims (16)

  1. 비정형 데이터 셋(D)을 수집하는 수집부(210);
    상기 수집된 비정형 데이터 셋(D)으로 공통 트리(T)를 생성하는 트리 생성부(230);
    상기 공통 트리에서 선택되는 키워드(엔티티)의 빈발도(tf) 및 역빈도(idf)를 산출하는 선택부(240); 및
    상기 엔티티 빈발도 및 역빈도를 이용하여 자연어인 사용자 질의(q)에 유관한 유망 문자열을 추출하고 근사 결과를 도출하는 추출부(250);
    를 포함하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  2. 제 1 항에 있어서,
    상기 트리 생성부(230)는 상기 비정형 데이터 셋을 -gram을 활용해 하나의 문자열을 개의 연속된 부분 문자열로 분할하고 n개의 상기 연속된 부분 문자열을 서로 연결하여 다수의 문서를 구성하는 대량의 문자열 집합을 하나의 상기 공통 트리(T)로 구축하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  3. 제 2 항에 있어서,
    대량의 상기 문자열 집합은 각기 식별자(ID)가 부여되는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  4. 제 2 항에 있어서,
    하나의 상기 공통 트리(T)는 다양한 문서에서 발생되는 중복 문자를 하나의 노드 정보로 압축하여 표현하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  5. 제 2 항에 있어서,
    상기 공통 트리(T)는 (여기서, , 방향성 에지 집합 E는 이고, LV는 노드이고, LE는 에지 레이블 함수이다)으로 정의되는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  6. 제 2 항에 있어서,
    상기 빈발도(tf) 및 상기 역빈도(idf)는 상기 키워드별 가중치가 계산되어 각 테이블로 나누어 관리되며, 상기 빈발도(tf)는 상기 키워드가 하나의 문서내에서 등장하는지를 나타나는 비율이고, 상기 역빈도(idf)는 상기 키워드가 문서 집합 전체에서 공통적으로 나타나는 값인 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  7. 제 2 항에 있어서,
    상기 추출부(250)는 상기 사용자 질의(q)에 대한 유사 질의셋()을 생성하고, 상기 유사 질의셋()을 사용자 입력 질의셋()으로 정의하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  8. 제 7 항에 있어서,
    상기 사용자 입력 질의셋()으로부터 유망함의 정도에 해당하는 상기 유망 문자열를 탐색하며, 상기 유망함의 정도는 상기 빈발도(tf), 상기 역빈도(idf), 및 도메인 용어를 기반으로 구축된 엔티티 리스트인 유사 엔티티 리스트(wd)를 활용하여 측정되는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  9. 제 8 항에 있어서,
    상기 사용자 입력 질의셋()으로부터 분할된 단어(w)가 상기 유사 엔티티 리스트(wd)에 존재하면 상기 분할된 단어(w)를 n개의 상기 연속된 문자열로 분할하고, 해시 테이블(ht)를 참조하여 시작 노드(v)를 탐색하고, 상기 시작 노드(v)의 빈발도가 미리 설정되는 제 1 임계치와 비교하여, 상기 비교결과에 따라 해당 문서로의 탐색 확장을 중단하거나 상기 해당 문서와 연관된 노드를 탐색하고 상기 탐색된 노드를 상기 사용자의 질의 셋(q*)과 연관성 있는 데이터 셋(p*)에 저장하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  10. 제 9 항에 있어서,
    상기 사용자 입력 질의셋()으로부터 분할된 단어(w)가 상기 유사 엔티티 리스트(wd)에 존재하지 않으면, 임의 문서에서 상기 분할된 단어(w)의 빈발도와 역빈도의 곱을 미리 설정되는 제 2 임계치와 비교하여, 상기 비교 결과에 따라 상기 사용자 질의(q)를 상기 단어(w)로 분할거나 상기 분할된 단어(w)를 n개의 상기 연속된 문자열로 분할하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  11. 제 1 항에 있어서,
    상기 근사 결과는 최근접 이웃 탐색을 이용하여 사용자의 질의 셋(q*)과 연관성 있는 데이터 셋(p*)에 속한 가장 근접한 이웃()을 탐색하여 산출되는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  12. 제 11 항에 있어서,
    상기 최근접 이웃 탐색은 상기 사용자의 질의 셋(q*) 및 상기 연관성 있는 데이터 셋(p*)을 하나의 매트리스(C*)로 통합하고, 상기 통합된 매트리스(C*)를 대상으로 민해싱(min-hashing)을 통해 시그네처 매트릭스를 획득하고, 상기 시그네처 매트릭스를 기반으로 버켓 해싱를 수행하여 유사도 측정 후보쌍을 구축하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  13. 제 1 항에 있어서,
    상기 근사 결과를 그래픽, 음성, 및 문자의 조합으로 출력하는 표시부(260);를 포함하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  14. 제 1 항에 있어서,
    상기 수집된 비정형 데이터 셋(D)을 저장하는 데이터베이스(220);를 포함하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  15. 제 1 항에 있어서,
    상기 자연어인 사용자 질의(q)는 통신 단말기(201)를 통하여 생성되는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템.
  16. (a) 수집부(210)가 비정형 데이터 셋(D)을 수집하는 단계;
    (b) 트리 생성부(230)가 상기 수집된 비정형 데이터 셋(D)으로 공통 트리(T)를 생성하는 단계;
    (c) 선택부(240)가 상기 공통 트리에서 선택되는 키워드(엔티티)의 빈발도(tf) 및 역빈도(idf)를 산출하는 단계; 및
    (d) 추출부(250)가 상기 엔티티 빈발도 및 역빈도를 이용하여 자연어인 사용자 질의(q)에 유관한 유망 문자열을 추출하고 근사 결과를 도출하는 단계;
    를 포함하는 것을 특징으로 하는 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 방법.
KR1020220103298A 2022-08-18 2022-08-18 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법 KR20240025272A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220103298A KR20240025272A (ko) 2022-08-18 2022-08-18 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220103298A KR20240025272A (ko) 2022-08-18 2022-08-18 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20240025272A true KR20240025272A (ko) 2024-02-27

Family

ID=90058890

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220103298A KR20240025272A (ko) 2022-08-18 2022-08-18 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20240025272A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564385B1 (ko) 2008-01-16 2015-10-29 아브 이니티오 테크놀로지 엘엘시 근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564385B1 (ko) 2008-01-16 2015-10-29 아브 이니티오 테크놀로지 엘엘시 근사 문자열 매칭을 위한 아카이브를 관리하는 방법 및 시스템

Similar Documents

Publication Publication Date Title
US10963794B2 (en) Concept analysis operations utilizing accelerators
US10089576B2 (en) Representation learning using multi-task deep neural networks
EP3671526B1 (en) Dependency graph based natural language processing
US20080263038A1 (en) Method and system for finding a focus of a document
CN110276080B (zh) 一种语义处理方法和系统
US20220129448A1 (en) Intelligent dialogue method and apparatus, and storage medium
Bagnall et al. A tale of two toolkits, report the third: on the usage and performance of HIVE-COTE v1. 0
US20220114340A1 (en) System and method for an automatic search and comparison tool
CN116775847A (zh) 一种基于知识图谱和大语言模型的问答方法和系统
JP2018005690A (ja) 情報処理装置及びプログラム
Niu et al. Scaling inference for markov logic via dual decomposition
Santos et al. A sketch-based index for correlated dataset search
CN112597285A (zh) 一种基于知识图谱的人机交互方法及系统
Lee et al. A hierarchical document clustering approach with frequent itemsets
Sunuwar et al. Comparative Analysis of Relational and Graph Databases for Data Provenance: Performance, Queries, and Security Considerations
CN116860991A (zh) 面向api推荐的基于知识图谱驱动路径优化的意图澄清方法
CN116400910A (zh) 一种基于api替换的代码性能优化方法
Kumar et al. Efficient structuring of data in big data
Liao et al. A vlHMM approach to context-aware search
KR20240025272A (ko) 자연어 처리를 위한 비정형 데이터 기반 근사 질의응답 시스템 및 방법
CN113779981A (zh) 一种基于指针网络和知识图谱的推荐方法及装置
Padhi et al. FlashProfile: Interactive Synthesis of Syntactic Profiles.
Lin et al. A knowledge base completion model based on path feature learning
CN115827829B (zh) 一种基于本体的搜索意图优化方法及系统
Yarovyi et al. Dictionary data structure for a text analysis task using cross-references