KR20220015129A - 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치 - Google Patents

대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치 Download PDF

Info

Publication number
KR20220015129A
KR20220015129A KR1020200095254A KR20200095254A KR20220015129A KR 20220015129 A KR20220015129 A KR 20220015129A KR 1020200095254 A KR1020200095254 A KR 1020200095254A KR 20200095254 A KR20200095254 A KR 20200095254A KR 20220015129 A KR20220015129 A KR 20220015129A
Authority
KR
South Korea
Prior art keywords
sentence
book
answer
word
data
Prior art date
Application number
KR1020200095254A
Other languages
English (en)
Other versions
KR102534131B1 (ko
Inventor
한근영
박지연
Original Assignee
예스이십사 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 예스이십사 주식회사 filed Critical 예스이십사 주식회사
Priority to KR1020200095254A priority Critical patent/KR102534131B1/ko
Publication of KR20220015129A publication Critical patent/KR20220015129A/ko
Application granted granted Critical
Publication of KR102534131B1 publication Critical patent/KR102534131B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/30
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치를 개시한다.
본 발명의 실시예에 따른 도서 추천 서비스 제공 방법은, 사용자 단말기로부터 사용자 입력 문장을 획득하고, 상기 사용자 입력 문장을 구분 처리하여 입력 단위 데이터를 생성하는 입력 처리 단계; 기 저장된 적어도 하나의 전자책 파일(EPUB 파일)에서 대화형 문장을 추출하고, 상기 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성하는 입력 분석 단계; 상기 입력 단위 데이터 및 상기 단어-유사어 매칭 데이터 간의 유사도를 기반으로 검색 답변 문장 데이터를 추출하여 적어도 하나의 후보 답변 문장을 생성하는 답변 생성 단계; 및 상기 적어도 하나의 후보 답변 문장 중 하나의 최종 답변 문장이 선택되면, 상기 최종 답변 문장에 대응되는 전자책 파일(EPUB 파일)에 대한 도서 추천 서비스 정보를 제공하는 답변 처리 단계를 포함할 수 있다.

Description

대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치{Method and Apparatus for Providing Book Recommendation Service Based on Interactive Form}
본 발명은 사용자가 입력하는 문구를 이용하여 대화 형식을 기반으로 도서 추천 서비스를 제공하는 방법 및 그를 위한 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근 들어, 컴퓨터, 전자, 통신 기술이 발전함에 따라 무선통신망(Wireless Network)을 이용한 다양한 무선통신 서비스가 제공되고 있다. 이에 따라, 무선통신망을 이용한 이동통신 시스템에서 제공하는 서비스는 음성 서비스뿐만 아니라, 써킷(Circuit) 데이터, 패킷(Packet) 데이터 등과 같은 데이터를 송신하는 멀티미디어 통신 서비스로 발전해 가고 있으며, 그에 따라, 인터넷 인프라의 급속 적인 발달과 함께 도서 구매 및 독서 환경 또한 점진적으로 변화되고 있다.
종래에는 독자가 오프라인 매체(서점)에 직접 사용자가 방문해서 도서를 구매하였지만 최근에는 온라인 매체를 통해 도서를 구매하거나, 전자책 형태의 콘텐츠를 온라인으로 구매하여 전자기기를 통해 도서 서비스를 제공받을 수 있다.
일반적으로, 독자에게 도서를 추천하기 위해서는 온라인 매체를 접속한 독자에게 독자의 성향을 분석하여 추천 도서를 제공할 수 있다. 하지만, 독자는 그 날의 기분 또는 주변 환경(날씨, 분위기 등)에 따라 추천 받고 싶은 도서의 종류가 달라질 수 있다.
이에, 독자의 현재 성향을 빠르게 파악하고, 실시간으로 입력되는 독자 상황과 관련된 글(문구)를 통해 도서를 추천하기 위한 서비스가 필요하다.
본 발명은 대화 형식에 의한 도서 추천 서비스를 위한 방법에 관한 것으로, 보다 상세하게는 사용자의 입력 문구와 유사한 문구를 전자책의 텍스트로부터 문장을 추출하여 사용자가 대화 형식으로 문장을 선택하고, 사용자의 의도와 유사한 전자책을 추천하고 전자책 및 종이책 구매까지 가능한 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치를 제공하는 데 주된 목적이 있다.
본 발명의 일 측면에 의하면, 상기 목적을 달성하기 위한 도서 추천 서비스 제공 방법은, 사용자 단말기로부터 사용자 입력 문장을 획득하고, 상기 사용자 입력 문장을 구분 처리하여 입력 단위 데이터를 생성하는 입력 처리 단계; 기 저장된 적어도 하나의 전자책 파일(EPUB 파일)에서 대화형 문장을 추출하고, 상기 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성하는 입력 분석 단계; 상기 입력 단위 데이터 및 상기 단어-유사어 매칭 데이터 간의 유사도를 기반으로 검색 답변 문장 데이터를 추출하여 적어도 하나의 후보 답변 문장을 생성하는 답변 생성 단계; 및 상기 적어도 하나의 후보 답변 문장 중 하나의 최종 답변 문장이 선택되면, 상기 최종 답변 문장에 대응되는 전자책 파일(EPUB 파일)에 대한 도서 추천 서비스 정보를 제공하는 답변 처리 단계를 포함할 수 있다.
또한, 본 발명의 다른 측면에 의하면, 상기 목적을 달성하기 위한 도서 추천 서비스 제공장치는, 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 하나 이상의 프로그램을 저장하는 메모리를 포함하며, 상기 프로세서는, 사용자 단말기로부터 사용자 입력 문장을 획득하고, 상기 사용자 입력 문장을 구분 처리하여 입력 단위 데이터를 생성하는 입력 처리 단계; 기 저장된 적어도 하나의 전자책 파일(EPUB 파일)에서 대화형 문장을 추출하고, 상기 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성하는 입력 분석 단계; 상기 입력 단위 데이터 및 상기 단어-유사어 매칭 데이터 간의 유사도를 기반으로 검색 답변 문장 데이터를 추출하여 적어도 하나의 후보 답변 문장을 생성하는 답변 생성 단계; 및 상기 적어도 하나의 후보 답변 문장 중 하나의 최종 답변 문장이 선택되면, 상기 최종 답변 문장에 대응되는 전자책 파일(EPUB 파일)에 대한 도서 추천 서비스 정보를 제공하는 답변 처리 단계를 수행할 수 있다.
이상에서 설명한 바와 같이, 본 발명은 문장 검색 기반 콘텐츠 추천과 문맥 기반 딥러닝 콘텐츠 추천 기술이 융합된 자연어 처리 챗봇을 이용하여 도서 추천 서비스를 제공할 수 있는 효과가 있다.
또한, 본 발명은 사용자의 한 줄 글에 대한 전자책을 추천할 뿐만 아니라 실 상품(전자책, 종이책 등) 구매까지 가능하게 하는 B2C 서비스를 제공할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 도서 추천 서비스 제공 시스템을 개략적으로 나타낸 블록 구성도이다.
도 2는 본 발명의 실시예에 따른 도서 추천 서비스 제공장치를 개략적으로 나타낸 블록 구성도이다.
도 3은 본 발명의 실시예에 따른 도서 추천 서비스 제공장치의 입력 분석부를 개략적으로 나타낸 블록 구성도이다.
도 4 내지 도 6은 본 발명의 실시예에 따른 도서 추천 서비스를 위한 입력 분석 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 도서 추천 서비스 제공 방법을 설명하기 위한 순서도이다.
도 8은 본 발명의 실시예에 따른 도서 추천 서비스를 제공하기 위한 사용자 단말기 화면을 나타낸 예시도이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다. 이하에서는 도면들을 참조하여 본 발명에서 제안하는 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치에 대해 자세하게 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 도서 추천 서비스 제공 시스템을 개략적으로 나타낸 블록 구성도이다.
본 실시예에 따른 도서 추천 서비스 제공 시스템(1)은 도서 추천 서비스 제공장치(10), 도서 추천 데이터베이스(12) 및 사용자 단말기(20)를 포함한다. 도 1의 도서 추천 서비스 제공 시스템(1)은 일 실시예에 따른 것으로서, 도 1에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 도서 추천 서비스 제공 시스템(1)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
도서 추천 서비스 제공장치(10)는 사용자 단말기(20)와 연동하여 사용자에게 도서 추천 서비스를 제공하는 장치를 의미한다.
도서 추천 서비스 제공장치(10)는 사용자 단말기(20)로부터 획득된 사용자 입력 문장과 유사한 전자책 파일에 대한 후보 답변 문장을 생성하고, 생성된 후보 답변 문장 중 최종 답변 문장이 선택되면, 최종 답변 문장에 대응하는 도서 추천 서비스 정보를 사용자 단말기(20)로 제공한다.
도서 추천 서비스 제공장치(10)는 도서 추천 서비스 데이터베이스(12)에 저장된 전체 전자책 파일에서 데이터를 불러와 전자책 파일을 대표하는 후보 답변 문장을 생성하여 사용자 단말기(20)로 제공하고, 사용자 입력 문장과 유사한 전자책 파일에 대한 도서 추천 서비스 정보를 불러와 사용자 단말기(20)로 제공한다.
도서 추천 서비스 제공장치(10)는 도서 추천 서비스 데이터베이스(12)와 연동하여 도서 추천 서비스를 제공하는 것으로 기재하고 있으나 반드시 이에 한정되는 것은 아니며, 도서 추천 서비스 제공장치(10)에 저장된 전자책 파일을 이용하여 도서 추천 서비스를 제공할 수도 있다. 도서 추천 서비스 제공장치(10)에서 후보 답변 문장을 생성하고, 선택된 최종 답변 문장에 대응하는 도서 추천 서비스 정보를 제공하는 동작에 대한 자세한 설명은 도 2 및 도 3에 기재하도록 한다.
도서 추천 서비스 데이터베이스(12)는 데이터베이스 관리 프로그램(DBMS)을 이용하여 컴퓨터 시스템의 저장공간(하드디스크 또는 메모리)에 구현된 일반적인 데이터구조를 의미하는 것으로, 데이터의 검색(추출), 삭제, 편집, 추가 등을 자유롭게 행할 수 있는 데이터 저장형태를 뜻하는 것으로, 오라클(Oracle), 인포믹스(Infomix), 사이베이스(Sybase), DB2와 같은 관계형 데이타베이스 관리 시스템(RDBMS)이나, 겜스톤(Gemston), 오리온(Orion), O2 등과 같은 객체 지향 데이타베이스 관리 시스템(OODBMS) 및 엑셀론(Excelon), 타미노(Tamino), 세카이주(Sekaiju) 등의 XML 전용 데이터베이스(XML Native Database)를 이용하여 본 발명의 일 실시예의 목적에 맞게 구현될 수 있고, 자신의 기능을 달성하기 위하여 적당한 필드(Field) 또는 엘리먼트들을 가지고 있다.
본 실시예에 따른 도서 추천 서비스 데이터베이스(12)는 도서 추천 서비스 제공을 위한 데이터 또는 정보(예: 전자책 파일, 도서 추천 서비스 정보 등)를 저장하고, 저장된 데이터 및 정보를 도서 추천 서비스 제공장치(10)로 제공할 수 있다. 도서 추천 서비스 데이터베이스(12)는 도서 추천 서비스 제공장치(10)와 별도의 데이터 저장장치인 것으로 기재하고 있으나 반드시 이에 한정되는 것은 아니며, 도서 추천 서비스 제공장치(10) 내의 도서 추천 서비스 저장부(미도시)와 같은 형태로 구현될 수도 있다.
사용자 단말기(20)는 프로세서(21), 디스플레이(24) 및 통신부(26)를 포함하고, 프로세서(21)에 의해 도서 추천 애플리케이션(22)이 구동될 수 있다.
프로세서(210)는 도서 추천 애플리케이션(22)에 대한 전반적인 동작을 제어하고, 사용자 입력 문장의 입력, 후보 답변 문장의 제공, 최종 답변 문장의 선택, 도서 추천 서비스 정보의 활용 등에 대한 동작을 수행한다.
프로세서(210)는 프로세서에 의해 실행되는 프로그램을 저장하는 메모리(미도시)와 연동한다. 메모리는 프로세서(210)에 의해 실행 가능한 적어도 하나의 명령어 또는 프로그램을 포함한다. 메모리는 도서 추천 서비스를 제공하기 위한 요구사항에 대한 명령어 또는 프로그램을 포함할 수 있다. 또한, 메모리는 도서 추천 서비스를 제공하기 위한 스크립트의 생성에 대한 명령어 또는 프로그램을 포함할 수 있다.
디스플레이(24)는 도서 추천 서비스를 제공하기 위한 대화형 채팅 화면을 출력할 수 있으며, 도서 추천 서비스와 관련된 정보(예: 사용자 입력 문장, 후보 답변 문장, 최종 답변 문장, 도서 추천 서비스 정보 등)를 표시하고, 사용자가 문장을 입력하거나 기 출력된 문장 또는 서비스 정보에 대한 조작을 위한 버튼(터치 영역)을 제공할 수 있다.
통신부(26)는 도서 추천 서비스 제공장치(10)와 통신을 수행하며, 도서 추천 서비스 정보와 관련된 다양한 데이터 또는 신호를 송수신할 수 있다.
도 2는 본 발명의 실시예에 따른 도서 추천 서비스 제공장치를 개략적으로 나타낸 블록 구성도이다.
본 실시예에 따른 도서 추천 서비스 제공장치(10)는 입력 처리부(210), 입력 분석부(220), 답변 생성부(230) 및 답변 처리부(240)를 포함한다. 도 2의 도서 추천 서비스 제공장치(10)는 일 실시예에 따른 것으로서, 도 2에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 도서 추천 서비스 제공장치(10)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
입력 처리부(210)는 사용자 단말기(20)로부터 사용자 입력 문장을 획득하고, 사용자 입력 문장을 구분 처리하여 입력 단위 데이터를 생성하는 동작을 수행한다.
입력 처리부(210)는 사용자 단말기(20)에 설치된 대화형 애플리케이션을 통해 입력된 사용자 입력 문장을 획득한다. 여기서, 사용자 입력 문장을 한 줄 문장인 것이 바람직하나 반드시 이에 한정되는 것은 아니다.
입력 처리부(210)는 사용자 입력 문장을 소정의 기준 단위로 토큰화하여 구분된 입력 단위 데이터를 생성한다. 여기서, 소정의 기준 단위는 문장, 단어, 형태소 등의 단위일 수 있다.
입력 분석부(220)는 기 저장된 적어도 하나의 전자책 파일(EPUB: electronic publication)에서 대화형 문장을 추출하고, 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성하는 동작을 수행한다.
입력 분석부(220)는 기 저장된 전체 전자책 파일 중 일부 적어도 하나의 전자책 파일을 선정하여 단어-유사어 매칭 데이터를 생성할 수 있다. 예를 들어, 입력 분석부(220)는 도서 추천 데이터베이스(12)에 기 저장된 전체 전자책 파일 중 입력 단위 데이터의 전체 또는 일부와 관련이 있는 것으로 판단된 적어도 하나의 전자책 파일을 선정하고, 선정된 적어도 하나의 전자책 파일 각각에 대한 대화형 문장을 추출하고, 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성한다.
입력 분석부(220)에 사용되는 전자책 파일은 표준화된 파일 형태로서, EPUB(electronic publication)인 것이 바람직하나 반드시 이에 한정되는 것은 아니다.
입력 분석부(220)는 검색 대상 대화형 문장 각각에 대해 문맥 기반 딥러닝 모델을 활용하여 문답형 데이터를 추출하는 동작을 추가로 수행할 수 있다. 입력 분석부(220)에 대한 자세한 설명은 도 3에 기재하도록 한다.
답변 생성부(230)는 입력 단위 데이터 및 단어-유사어 매칭 데이터 간의 유사도를 기반으로 검색 답변 문장 데이터를 추출하여 적어도 하나의 후보 답변 문장을 생성하는 동작을 수행한다.
답변 생성부(230)는 입력 단위 데이터에 포함된 단어와 단어-유사어 매칭 데이터에 포함된 단어-유사어 쌍과의 관계를 검색하여 유사도를 산출한다.
답변 생성부(230)는 단어-유사어 매칭 데이터에서 산출된 유사도가 높은 순으로 기 설정된 개수의 검색 답변 문장 데이터를 추출하여 적어도 하나의 제1 답변 문장을 생성한다. 여기서, 답변 생성부(230)는 적어도 하나의 제1 답변 문장을 적어도 하나의 후보 답변 문장으로 생성할 수 있다.
한편, 답변 생성부(230)는 입력 단위 데이터에 포함된 단어와 문답형 데이터 간의 유사도를 산출하여 문장 형식으로 제2 답변 문장을 추가로 생성할 수 있다.
제2 답변 문장이 생성된 경우, 답변 생성부(230)는 제1 답변 문장 및 제2 답변 문장을 조합하여 적어도 하나의 후보 답변 문장을 생성하여 사용자 단말기(20)로 제공되도록 한다.
답변 처리부(240)는 적어도 하나의 후보 답변 문장 중 하나의 최종 답변 문장이 선택되면, 최종 답변 문장에 대응되는 전자책 파일에 대한 도서 추천 서비스 정보를 사용자 단말기(20)로 제공하는 동작을 수행한다.
답변 처리부(240)는 사용자 단말기로부터 수신된 선택신호에 근거하여 선택된 최종 답변 문장을 확인하고, 최종 답변 문장에 대응되는 전자책 파일에 대한 전자책 정보 및 구매 정보를 포함하는 도서 추천 서비스 정보를 제공한다. 여기서, 전자책 정보는 전자책 미리보기 정보, 작품 정보, 저자 정보 등을 포함하고, 구매 정보는 전자책 구매정보, 종이책 구매정보 등을 포함할 수 있다.
도 3은 본 발명의 실시예에 따른 도서 추천 서비스 제공장치의 입력 분석부를 개략적으로 나타낸 블록 구성도이다.
본 실시예에 따른 도서 추천 서비스 제공장치(10)의 입력 분석부(220)는 전처리부(310), 문장 추출부(320) 및 문장 검색부(330)를 포함한다. 도 3의 입력 분석부(220)는 일 실시예에 따른 것으로서, 도 3에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 입력 분석부(220)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
입력 분석부(220)는 기 저장된 적어도 하나의 전자책 파일(EPUB: electronic publication)에서 대화형 문장을 추출하고, 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성하는 동작을 수행한다. 이하, 입력 분석부(220)에 포함된 구성요소 각각에 대해 설명하도록 한다.
전처리부(310)는 적어도 하나의 전자책 파일 각각에서 텍스트를 추출하고, 추출된 텍스트를 기반으로 대표 대화형 문장을 선정한다.
전처리부(310)는 적어도 하나의 전자책 파일 각각을 대표하는 2 개 이상의 절 또는 구를 포함하는 대표 대화형 문장을 선정한다.
전처리부(310)는 적어도 하나의 전자책 파일 각각에서 추출된 텍스트를 구성하는 단어들의 서브스트링 그래프(SubString Graph)를 생성하고, 단어들의 빈도수를 기반으로 그래프 랭킹(Graph Ranking) 알고리즘 학습을 통해 대표 대화형 문장을 선정할 수 있다.
본 실시예에 따른 전처리부(310)는 형태소 분석 알고리즘을 기반으로 적어도 하나의 전자책 파일 각각에서 텍스트를 추출하고, 임베딩(embedding) 알고리즘을 이용하여 추출된 텍스트를 벡터 데이터로 변환할 수 있다. 또한, 전처리부(310)는 키워드 추출 알고리즘을 활용하여 적어도 하나의 전자책 파일 각각을 대표하는 대표 대화형 문장을 선정할 수 있다.
전처리부(310)는 형태소 분석부(312), 벡터 변환부(314) 및 문장 선별부(316)를 포함할 수 있다.
형태소 분석부(312)는 형태소 분석 알고리즘을 기반으로 적어도 하나의 전자책 파일 각각에서 텍스트를 추출하는 동작을 수행한다.
[표 1]은 형태소 분석부(312)를 활용하여 '동해물과 백두산이'를 분석한 예시이다.
Figure pat00001
형태소 분석부(312)는 공백 외에도 "token": "동해", "token": "물"과 같이 단어를 분리하는 것을 확인할 수 있다.
형태소 분석부(312)는 사용자 사전(user_dictionary)를 추가하여 사용할 수 있으며, 등록된 사전의 단어는 우선순위를 가장 높게 하여 토큰화(tokenizer)할 수 있다. 예를 들어, 문장 "동해물과"에서는 "동해"가 가장 우선순위가 높아 "동해"가 먼저 추출되고 다시 "물" 그리고 "과" 가 추출되어 "동해"+"물"+"과" 같은 형태가 된다.
사용자 사전(user_dictionary)의 경로에 있는 사전 파일이나 기 설정된 사용자 사전 규칙(user_dictionary_rules)의 설정값에 단어를 나열하면, 해당 단어들을 우선적으로 추출한다.
형태소 분석부(312)는 옵션 설정을 통해 합성어의 저장 방식을 결정할 수 있다. 형태소 분석부(312)는 None 옵션이 설정된 경우 어근을 분리하지 않고 완성된 합성어만 추출하여 저장하고, Discard 옵션이 설정된 경우 합성어를 분리하여 각 어근만 추출하여 저장한다. 또한, 형태소 분석부(312)는 Mixed 옵션이 설정된 경우 어근과 합성어를 모두 추출하여 저장한다.
또한, 형태소 분석부(312)는 토큰 필터를 추가로 적용할 수 있다. 여기서, 토큰 필터는 원하지 않는 품사를 제외하거나 한자로 구성된 단어를 한글로 변경하여 저장할 수 있다.
벡터 변환부(314)는 임베딩(embedding) 알고리즘을 이용하여 추출된 텍스트를 벡터 데이터로 변환하는 동작을 수행한다.
벡터 변환부(314)의 임베딩(embedding) 알고리즘은 은닉층이 하나인 뉴럴 네트워크 구조일 수 있다.
벡터 변환부(314)는 입력층, 은닉층, 출력층, 두 개 가중치 행렬 W, W′ 를 포함하여 동작한 학습 결과를 출력한다. 입력층-은닉층, 은닉층-출력층을 잇는 가중치 행렬 W, W′ 의 모양이 서로 전치(transpose)한 것과 동일하다. 입력층-은닉층에서 가중치 W는 최초 입력으로 원-핫 벡터(one-hot vector)를 받는다. 1×V (V: 임베딩하려는 단어의 수) 크기의 원-핫 벡터의 각 요소와 은닉층의 N (N: 은닉층의 노드 개수)개 각 노드는 1 대 1 대응이 이뤄져야 하므로 가중치 행렬 W의 크기는 V×N 이 된다. 예를 들어, 도 4에 도시된 바와 같이, 학습 말뭉치에 단어가 1 만개 있고, 은닉층 노드를 300 개로 지정한다면, 가중치 행렬 W는 은닉층 가중치 행렬(Hidden Layer Weight Matrix)가 된다.
벡터 변환부(314)는 변환된 벡터를 이용하여 중심 단어로 주변 단어를 맞추거나, 주변 단어로 중심 단어를 더 맞추기 위해 가중치 행렬 W, W′을 업데이트하면서 학습을 수행한다.
벡터 변환부(314)는 [수학식 1]을 최대화하는 방향으로 학습을 수행한다.
Figure pat00002
[수학식 1]의 좌변은 중심 단어(c)가 주어졌을 때 주변 단어(o)가 나타날 확률이다. [수학식 1]의 우변에서, v는 입력층-은닉층을 잇는 가중치 행렬 W의 행벡터, u는 은닉층-출력층을 잇는 가중치 행렬 W′의 열벡터를 의미한다.
벡터 변환부(314)에서 우변 분자의 지수를 키우는 것은 중심 단어에 해당하는 벡터와 주변 단어에 해당하는 벡터의 내적값을 높이는 것이다. 중심 단어 벡터의 그래디언트(gradient)는 [수학식 2]를 이용하여 산출될 수 있다.
Figure pat00003
이렇게 구한 중심 단어 그래디언트의 반대 방향으로 중심 단어 벡터를 업데이트하며, 이는 [수학식 3]과 같이 정의될 수 있다.
Figure pat00004
문장 선별부(316)는 키워드 추출 알고리즘을 활용하여 적어도 하나의 전자책 파일 각각을 대표하는 대표 대화형 문장을 선정한다.
문장 선별부(316)는 한국어 데이터에 적용 가능한 키워드 추출 알고리즘을 활용하며, 키워드 추출 알고리즘은 한국어의 띄어쓰기 정보를 활용하여 두 어절의 양 끝에 걸친 서브스트링(SubString)을 단어로 판단하지 않는 방식을 사용한다.
예를 들어, 문장 선별부(316)는 ‘오늘아침은’의 서브스트링은 [오늘, 늘아, 아침, 침은, 오늘아, 늘아침, …]이고, ‘오늘 아침은'의 서브스트링은 [오늘, 아침, 침은, 아침은]으로 판단한다.
문장 선별부(316)는 서브스트링도 추출하기 위한 단어의 후보에 포함시키며, 띄어쓰기로 구분되는 '늘아'와 같은 서브스트링은 서브스트링 그래프(SubString Graph)에 추가하지 않는다. 만약, 띄어쓰기의 오류로 '늘아'와 같은 서브스트링이 서브스트링 그래프에 포함될 수는 있지만 빈도가 낮아 랭킹(ranking)이 매우 낮게 계산된다.
문장 선별부(316)는 L(좌측)/R(우측)과 같은 한국어 어절 구조의 특징을 이용하여 문장을 선별한다. 통상 어절의 좌측에 위치한 글자들이 의미를 지니는 단어이며, 우측에 위치한 글자는 조사 혹은 어미이다. 문장 선별부(316)는 어절 중 좌측 부분을 단어 사전으로 활용할 수 있다.
문장 선별부(316)는 키워드 추출(Keyword Extraction)을 기반으로 동작하며, 특히 비지도 한국어 키워드 추출(Unsupervised Korean Keyword Extraction)을 수행한다.
문장 선별부(316)에서의 키워드 추출은 서브스트링 그래프에서 랭킹이 높은 마디의 단어이며, 그 데이터에서 자주 사용되는 단어이다.
문장 선별부(316)는 단어의 L(좌측)/R(우측)에 위치하는 서브스트링은 단어일 것으로 예측하고, 나머지는 단어가 아닌 일반적인 서비스트링으로 예측하여 서브스트링 그래프에 포함시키지 않는다.
문장 선별부(316)는 다음과 같은 순서로 키워드 추출을 수행하여 대표 대화형 문장을 선정할 수 있다.
문장 선별부(316)는 서브스트링에 대한 빈도수 카운팅(Sub String Frequency Counting)을 수행하고, 빈도수를 계산하기 위한 서브스트링은 어절의 L(좌측)/R(우측)에 위치하는 것으로 판단한다.
문장 선별부(316)는 가능한 모든 서브스트링의 빈도수를 계산하고, 같은 위치이면서 빈도수가 같은 서브스트링은 제거한다.
이후, 문장 선별부(316)는 서브스트링 간의 링크를 생성하고, 어절 내의 L(좌측) 서브스트링과 R(우측) 서브스트링의 어절 간 링크를 구성한다.
이후, 문장 선별부(316)는 그래프 랭킹(Graph Ranking)을 학습하고, 후 처리를 진행한다.
문장 선별부(316)는 그래프 랭킹(Graph Ranking)에서 상위 랭크(Rank)에 해당하는 R(우측) 서브스트링은 조사나 어미일 가능성이 높은 것으로 예측하며, 상위 랭크 약 수 백여 개의 랭크 R 서브스트링을 접미사 세트(Suffix Set)로 선택한다.
이후, 문장 선별부(316)는 랭크를 기준으로 L(좌측) 서브스트링을 필터링한다. 문장 선별부(316)는 접미사 세트(Suffix Set)에 포함되어 있다면, 랭킹(Ranking)이 높은 순서대로 L(좌측) 서브스트링을 확인하고, 필터링의 첫 시작은 랭킹이 가장 높은 단어를 필터링 결과 세트(Filtered Set)에 추가한다.
문장 선별부(316)는 단어가 필터링 결과 세트에 포함되어 있는지 확인 후 추가할지 여부를 반복 수행하여 대표 대화형 문장을 선정한다.
문장 선별부(316)에서는 선택된 대표 대화형 문장들 중 불용어나 금칙어, 속어가 포함된 문장이거나, 지나치게 짧거나 긴 문장들은 제외하는 과정을 추가로 수행할 수 있다.
문장 추출부(320)는 적어도 하나의 전자책 파일 각각에 대한 대표 대화형 문장 중 소정의 개수의 대표 대화형 문장을 검색 대상 대화형 문장으로 추출한다.
문장 추출부(320)는 적어도 하나의 대표 대화형 문장 중 기 설정된 개수 또는 랜덤으로 설정된 개수의 검색 대상 대화형 문장을 추출할 수 있다.
문장 검색부(330)는 검색 대상 대화형 문장 각각에 대한 단어를 추출하여 벡터 데이터로 변환하고, 변환된 벡터 데이터를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성한다.
구체적으로, 문장 검색부(330)는 검색 대상 대화형 문장 각각에 대한 단어를 추출하고, 임베딩(embedding) 알고리즘을 이용하여 변환된 벡터 데이터를 이용하여 단어 별로 N(N은 1 이상의 자연수) 개의 유사어 데이터를 생성한다. 문장 검색부(330)는 단어와 유사어가 1 : N 비율로 매칭된 단어-유사어 매칭 데이터를 생성한다.
또한, 문장 검색부(330)는 검색 대상 대화형 문장 각각에 대해 문맥 기반 딥러닝 모델을 활용하여 문답형 데이터를 추출하는 동작을 추가로 수행할 수 있다.
문답형 데이터가 추출된 경우, 문장 검색부(330)는 유사어 데이터 및 문답형 데이터 각각을 구분하여 저장하고, 유사어 데이터 및 문답형 데이터 중 적어도 하나의 데이터가 적어도 하나의 후보 답변 문장이 생성하기 위한 검색 처리 동작에 활용될 수 있도록 한다.
문장 검색부(330)는 언어 모델 딥러닝 알고리즘을 기반으로 문답형 데이터를 추출할 수 있다.
문장 검색부(330)는 전자책 파일에서 텍스트 전체 내용을 활용하여 언어 모델 딥러닝 알고리즘을 학습하여 문맥 기반 딥러닝 모델을 생성한다.
언어 모델 딥러닝 알고리즘은 2개의 각각 다른 하이퍼 파라미터(Hyper parameter)를 가지는 모델로 정의될 수 있다. 문장 검색부(330)는 제1 모델(Base Model) 또는 제2 모델(Large Model)을 사용할 수 있다. 예를 들어, 제1 모델(Base Model)은 L=12, H=768, A=12, Total Parameters = 110M 로 정의 될 수 있고, 제2 모델(Large Model)은 L=24, H=1024, A=16, Total Parameters = 340M 로 정의될 수 있다(L: Transformer의 Layer의 수, H: Hidden Size, A: Self-Attention의 Head 수).
문장 검색부(330)는 추후 서비스를 통해 질문 또는 답변 데이터를 수집하면, 파인 튜닝(Fine-tuning)을 수행할 수 있다. 문장 검색부(330)는 전처리부(210)의 동작을 수행할 수도 있다. 즉, 문장 검색부(330)는 전처리부(210)의 동작을 대체하여 동작 가능하다.
이하, 언어 모델 딥러닝 알고리즘에 대해 설명하도록 한다.
언어 모델 딥러닝 알고리즘은 모든 레이어에서 양방향 성질을 잃지 않는 트랜스포머(Transformer) 기반의 언어 표현 모델(Language Representation Model)이다.
도 5는 트랜스포머 기반의 언어 모델의 구조를 나타낸다.
언어 모델에서, 포지셔널 인코딩(Positional Encoding)은 사인 함수(sinusoid function)을 이용한 [수학식 4]의 결과를 더해 네트워크가 토큰의 상대적 위치와 관련된 정보를 학습할 수 있게 한다.
Figure pat00005
pos는 토큰의 문장 순서이며, i는 임베딩 벡터 차원의 위치를 나타내며, dmodel은 포지셔널 인코딩 벡터(Positional Encoding Vector)의 차원(dimension)을 나타낸다. 즉, pos마다 다른 pos와 구분되는 포지셔널 인코딩(Positional Encoding) 값을 얻게 된다.
언어 모델에서, 인풋 임베딩(Input Embedding)은 주어진 단어에 대해 토큰 임베딩(Token Embedding), 세그먼트 임베딩(Segment Embedding) 및 포시션 임베딩(Position Embedding)을 합산한 결과를 입력값으로 사용한다.
언어 모델에서, 인코더(Encoder)는 N 개의 인코더 블록을 포함하며, 제1 모델(Base Model)의 경우 12 개의 블록, 제2 모델(Large Model)의 경우 24 개 블록으로 구성된다. 인코더(Encoder)는 이러한 입력 시퀀스(sequence) 전체의 의미를 N 번 만큼 반복적으로 구축한다.
인코더(Encoder)는 멀티-헤드 어텐션(Multi-Head Attention)을 사용하며, 서로 다른 가중치 행렬을 이용한 어텐션(Attention)을 h 번 계산한 다음 이를 서로 연결한 결과를 출력한다. 이러한 결과는 [수학식 5]와 같다.
Figure pat00006
Q(Query)는 디코더의 히든 스테이트(Decoder Hidden State), K(Key)는 인코더의 히든 스테이트(Encoder Hidden State), V(Value)는 K에 어텐션(Attention)을 부여 받은 정규 가중치(Normalized Weights)가 되며, 언어 모델은 디코더를 사용하지 않으며 Q, K, V의 초기값이 모두 동일하다. W는 가중치 행렬(Weight Matrix)를 의미하며 동일한 Q, K, V에 각각 다른 가중치 행렬 W를 곱한다.
예를 들어, 제1 모델(Base Model)은 각각의 토큰 벡터 768 차원을 헤드 수만큼인 12 등분하여 64 개씩 12 조각으로 차례대로 분리한다. 여기에 스케일드 닷-프로덕트 어텐션(Scaled Dot-Product Attention)을 적용하고, 다시 768 차원으로 합친다.
멀티-헤드 어텐션은 스케일드 닷-프로덕트 어텐션을 h번 계산한 결과이다. 스케일드 닷-프로덕트 어텐션은 입력값으로 Q, K, V 세 개를 입력 받는다. 언어 모델은 디코더를 사용하지 않으며, Q, K, V의 초기값이 모두 동일하다. 이처럼 동일한 토큰이 문장 내에 다른 토큰에 대한 셀프-어텐션 효과를 가진다. 입력값 Q, K, V에 대한 스케일드 닷-프로덕트 어텐션은 [수학식 6]와 같이 정의될 수 있다.
Figure pat00007
스케일드 닷-프로덕트 어텐션의 결과는 제로 패딩으로 입력된 토큰에 대해서는 항상 마스킹(Masking) 처리를 하며, 이 토큰에 대해서는 패널티(Penalty)를 부과해 어텐션(Attention) 점수를 받지 못하도록 구현할 수 있다.
마지막으로, 언어 모델에서는 포지션-와이즈 피드 포워드 네트워크(Position-wise Feed-Forward Network)를 통과하는 동작을 수행하며, 이러한 동작은 [수학식 7]과 같이 정의된다.
Figure pat00008
포지션-와이즈 피드 포워드 네트워크는 두 번의 선형 변환(linear transformation)과 활성화 함수(activation function) ReLU로 이루어져 있다.
x에 선형 변환(linear transformation)을 적용한 뒤, ReLU 함수를 거쳐 다시 한번 선형 변환(linear transformation)을 적용한다. 이때 각각의 포지션(position)마다 같은 변수(parameter) W, b를 사용하지만, 레이어(layer)가 달라지면 다른 변수(parameter)를 사용한다. 여기서, 선형 변환(linear transformation)은 [수학식 8]과 같고, ReLU 함수는 [수학식 9]와 같이 정의된다.
Figure pat00009
Figure pat00010
언어 모델 딥러닝 알고리즘은 양방향(Bidirectional)으로 학습을 수행하며, 마스트된 언어 모델(Masked Language Model)과 다음 문장 예측 모델(Next Sentence Prediction)을 사용한다. 이를 위해 인풋 임베딩에 분류 문제를 해결하기 위한 클래스(class)를 의미하는 [CLS]와 문장의 끝을 나타내는 식별자로 분리(seperator)를 의미하는 [SEP]을 추가한다.
마스트된 언어 모델(Masked Language Model)은 문장 내 랜덤한 단어를 마스킹(Masking)하고 이를 예측하도록 하는 방식이다. 전체 단어의 약 15 %를 마스킹(Masking)하며 이 중 80 %는 <MASK>로 처리하고 10 %는 랜덤한 단어, 나머지 10 %는 그대로 둔다.
다음 문장 예측 모델(Next Sentence Prediction)는 두 문장을 주고 두 번째 문장이 문장에서 첫 번째 문장의 바로 다음에 오는지 예측하는 방식이다. 두 문장이 실제로 이어지는지 여부는 50 % 비율로 참인 문장과 랜덤하게 추출되어 거짓인 문장의 비율로 구성되며, [CLS] 벡터의 이진 분류(Binary Classification) 결과를 맞추도록 학습한다.
문장 검색부(330)는 언어 모델 딥러닝 알고리즘을 기반으로 문장을 임베딩하여 벡터를 생성하고, 모델 생성 시 사용한 어휘(vocab)을 이용하여 토큰화(tokenizer)한다.
아래의 [표 2]는 임베딩된 벡터(Embedding Vector) 간의 코사인(Cosine) 거리를 측정한 예시이다.
Figure pat00011
도 6에 도시된 바와 같이, 문장 검색부(330)는 언어 모델 딥러닝 알고리즘을 활용하여 대화에 적합한 문장의 임베딩(Embedding)하여 구한 벡터로 대화문장 벡터행렬(Vector Matrix, 610)를 만들고, 사용자가 입력한 문장 역시 사용자 입력 문장벡터(Vector, 620)로 변환한다.
이후, 문장 검색부(330)는 대화문장 벡터행렬(610)과 사용자 입력 문장벡터(620)를 도트(dot) 연산 처리하여 대화에 적합한 문장(630)을 선정한다. 여기서, 대화에 적합한 문장(630)은 문답형 데이터인 것이 바람직하다.
도 7은 본 발명의 실시예에 따른 도서 추천 서비스 제공 방법을 설명하기 위한 순서도이다.
도서 추천 서비스 제공장치(10)는 사용자 단말기(20)로부터 사용자에 의해 작성된 사용자 입력 문장(입력 문구)을 획득한다(S710). 도서 추천 서비스 제공장치(10)는 획득된 사용자 입력 문장을 구분 처리하여 입력 단위 데이터를 생성한다.
도서 추천 서비스 제공장치(10)는 기 저장된 적어도 하나의 전자책 파일에서 대화형 문장을 추출하고, 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성한 후 입력 단위 데이터 및 단어-유사어 매칭 데이터 간의 유사도를 기반으로 검색 답변 문장 데이터를 추출하여 적어도 하나의 후보 답변 문장(유사 문구)을 생성하여 사용자 단말기(20)로 제공한다(S720).
도서 추천 서비스 제공장치(10)는 적어도 하나의 후보 답변 문장(유사 문구)에 대한 선택신호를 사용자 단말기(20)로부터 획득한다(S730).
도서 추천 서비스 제공장치(10)는 적어도 하나의 후보 답변 문장 중 하나의 최종 답변 문장이 선택되면, 최종 답변 문장에 대응되는 전자책 파일(추천 도서)을 선정한다(S740).
도서 추천 서비스 제공장치(10)는 최종 답변 문장에 대응되는 전자책 파일에 대한 도서 추천 서비스 정보를 사용자 단말기(20)로 제공한다(S750). 여기서, 도서 추천 서비스 정보는 전자책 정보 및 구매 정보를 포함할 수 있다. 전자책 정보는 전자책 미리보기 정보, 작품 정보, 저자 정보 등을 포함하고, 구매 정보는 전자책 구매정보, 종이책 구매정보 등을 포함할 수 있다.
도 7에서는 각 단계를 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 7에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 7은 시계열적인 순서로 한정되는 것은 아니다.
도 7에 기재된 본 실시예에 따른 도서 추천 서비스 제공 방법은 애플리케이션(또는 프로그램)으로 구현되고 단말장치(또는 컴퓨터)로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 도서 추천 서비스 제공 방법을 구현하기 위한 애플리케이션(또는 프로그램)이 기록되고 단말장치(또는 컴퓨터)가 읽을 수 있는 기록매체는 컴퓨팅 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치 또는 매체를 포함한다.
도 8은 본 발명의 실시예에 따른 도서 추천 서비스를 제공하기 위한 사용자 단말기 화면을 나타낸 예시도이다.
도 8은 본 발명의 실시예에 따른 도서 추천 서비스를 제공하기 위한 사용자 단말기(20)의 화면 및 조작 동작을 설명하기 위한 화면이며, 도 8을 참고하면, 사용자 단말기(20)는 도서 추천 서비스 제공장치(10)로부터 제공되는 도서 추천 서비스를 유저 인터페이스(UI: User Interface) 화면(이하, 단말기 화면으로 기재)을 통해 출력할 수 있다.
이하, 도서 추천 서비스 제공을 위한 단말기 화면에 대해 설명하도록 한다.
제1 화면(910)은 사용자의 조작을 통해 입력된 한 줄 쓰기 문장인 사용자 입력 문장을 나타낸다. 예를 들어, 사용자는 사용자 단말기(20)의 자판 입력을 통해 “일하기 싫다”를 사용자 입력 문장으로 입력할 수 있다.
제2 화면(920)는 도서 추천 서비스 제공장치(10)로부터 생성된 후보 답변 문장을 출력한 화면을 나타낸다.
도서 추천 서비스 제공장치(10)는 기 저장된 적어도 하나의 전자책 파일 각각을 대표할 수 있는 후보 답변 문장을 생성하고, 생성된 복수의 후보 답변 문장 중 소정의 개수의 후보 답변 문장을 사용자 단말기(20)로 제공하여 출력되도록 한다. 예를 들어, 사용자 단말기(20)는 “일하기 싫다”에 대응하는 후보 답변 문장으로 “일단 오늘은 나한테 잘합시다“, “하고 싶은대로 살아도 괜찮아”, “행복해지는 연습을 해요” 등을 출력할 수 있다.
제3 화면(930)은 사용자가 선택신호를 입력하여, 적어도 하나의 후보 답변 문장 중 선택된 최종 답변 문장에 대응하는 전자책을 추천하는 화면을 나타낸다.
제4 화면(940)은 추천된 전자책에 대한 도서 추천 서비스 정보를 출력한 화면을 나타낸다. 여기서, 도서 추천 서비스 정보는 전자책 정보 및 구매 정보를 포함할 수 있다. 전자책 정보는 전자책 미리보기 정보, 작품 정보, 저자 정보 등을 포함하고, 구매 정보는 전자책 구매정보, 종이책 구매정보 등을 포함할 수 있다.
이상의 설명은 본 발명의 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 실시예들은 본 발명의 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 도서 추천 서비스 제공장치 12: 도서 추천 데이터베이스
20: 사용자 단말기
210: 입력 처리부 220: 입력 분석부
230: 답변 생성부 240: 답변 처리부

Claims (12)

  1. 도서 추천 서비스 제공장치에서 대화 형식 기반의 도서 추천 서비스를 제공하는 방법에 있어서,
    사용자 단말기로부터 사용자 입력 문장을 획득하고, 상기 사용자 입력 문장을 구분 처리하여 입력 단위 데이터를 생성하는 입력 처리 단계;
    기 저장된 적어도 하나의 전자책 파일(EPUB 파일)에서 대화형 문장을 추출하고, 상기 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성하는 입력 분석 단계;
    상기 입력 단위 데이터 및 상기 단어-유사어 매칭 데이터 간의 유사도를 기반으로 검색 답변 문장 데이터를 추출하여 적어도 하나의 후보 답변 문장을 생성하는 답변 생성 단계; 및
    상기 적어도 하나의 후보 답변 문장 중 하나의 최종 답변 문장이 선택되면, 상기 최종 답변 문장에 대응되는 전자책 파일(EPUB 파일)에 대한 도서 추천 서비스 정보를 제공하는 답변 처리 단계
    를 포함하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  2. 제1항에 있어서,
    상기 입력 처리 단계는,
    상기 사용자 단말기에 설치된 대화형 애플리케이션을 통해 입력된 상기 사용자 입력 문장을 획득하고,
    문장, 단어 및 형태소 중 적어도 하나의 기준 단위로 토큰화하여 구분된 상기 입력 단위 데이터를 생성하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  3. 제1항에 있어서,
    상기 입력 분석 단계는,
    기 저장된 전체 전자책 파일 중 상기 입력 단위 데이터를 기반으로 상기 적어도 하나의 전자책 파일을 선정하고, 선정된 상기 적어도 하나의 전자책 파일 각각에 대한 상기 단어-유사어 매칭 데이터를 생성하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  4. 제1항에 있어서,
    상기 입력 분석 단계는,
    상기 적어도 하나의 전자책 파일 각각에서 텍스트를 추출하고, 추출된 텍스트를 기반으로 대표 대화형 문장을 선정하는 전처리 단계;
    상기 적어도 하나의 전자책 파일 각각에 대한 대표 대화형 문장 중 소정의 개수의 대표 대화형 문장을 검색 대상 대화형 문장으로 추출하는 문장 추출 단계;
    상기 검색 대상 대화형 문장 각각에 대한 단어를 추출하여 벡터 데이터로 변환하고, 변환된 벡터 데이터를 기반으로 생성된 상기 유사어를 이용하여 상기 단어-유사어 매칭 데이터를 생성하는 문장 검색 단계
    를 포함하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  5. 제4항에 있어서,
    상기 전처리 단계는,
    상기 적어도 하나의 전자책 파일 각각을 대표하는 2 개 이상의 절 또는 구를 포함하는 상기 대표 대화형 문장을 선정하되,
    상기 전처리 단계는,
    상기 텍스트를 구성하는 단어들의 서브스트링 그래프(SubString Graph)를 생성하고, 상기 단어들의 빈도수를 기반으로 그래프 랭킹(Graph Ranking) 알고리즘 학습을 통해 상기 대표 대화형 문장을 선정하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  6. 제4항에 있어서,
    상기 문장 추출 단계는,
    상기 적어도 하나의 상기 대표 대화형 문장 중 기 설정된 개수 또는 랜덤으로 설정된 개수의 검색 대상 대화형 문장을 추출하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  7. 제4항에 있어서,
    상기 문장 검색 단계는,
    상기 검색 대상 대화형 문장 각각에 대한 상기 단어를 추출하고, 임베딩(embedding) 알고리즘을 이용하여 변환된 벡터 데이터를 이용하여 상기 단어 별로 N(N은 1 이상의 자연수) 개의 유사어 데이터를 생성하고, 1 : N 비율로 매칭된 상기 단어-유사어 매칭 데이터를 생성하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  8. 제7항에 있어서,
    상기 문장 검색 단계는,
    상기 검색 대상 대화형 문장 각각에 대해 문맥 기반 딥러닝 모델을 활용하여 문답형 데이터를 추출하는 단계를 추가로 포함하며,
    상기 문장 검색 단계는, 유사어 데이터 및 문답형 데이터 각각을 구분하여 저장하고, 상기 유사어 데이터 및 상기 문답형 데이터 중 적어도 하나의 데이터가 상기 적어도 하나의 후보 답변 문장이 생성하기 위한 검색 처리에 활용되도록 하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  9. 제1항에 있어서,
    상기 답변 생성 단계는,
    상기 입력 단위 데이터에 포함된 단어와 상기 단어-유사어 매칭 데이터에 포함된 단어-유사어 쌍과의 관계를 검색하여 유사도를 산출하고, 유사도가 높은 순으로 기 설정된 개수의 상기 검색 답변 문장 데이터를 추출하여 상기 적어도 하나의 제1 답변 문장을 생성하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  10. 제9항에 있어서,
    상기 문장 검색 단계는,
    상기 검색 대상 대화형 문장 각각에 대해 문맥 기반 딥러닝 모델을 활용하여 문답형 데이터를 추출하는 단계를 추가로 포함하며,
    상기 답변 생성 단계는, 상기 입력 단위 데이터에 포함된 단어와 상기 문답형 데이터 간의 유사도를 산출하여 문장 형식으로 제2 답변 문장을 생성하되, 제1 답변 문장 및 제2 답변 문장을 조합하여 상기 적어도 하나의 후보 답변을 생성하여 사용자 단말기로 제공하는 것을 특징으로 하는 도서 추천 서비스 제공 방법.
  11. 제1항에 있어서,
    상기 답변 처리 단계는,
    상기 사용자 단말기로부터 수신된 선택신호에 근거하여 상기 최종 답변 문장을 선택하고, 상기 최종 답변 문장에 대응되는 전자책 파일(EPUB 파일)의 전자책 미리보기 정보, 작품 정보 및 저자 정보를 포함하는 전자책 정보와 전자책 구매정보 및 종이책 구매정보를 포함하는 구매 정보에 대한 상기 도서 추천 서비스 정보를 제공하는 것을 도서 추천 서비스 제공 방법.
  12. 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 하나 이상의 프로그램을 저장하는 메모리를 포함하는 도서 추천 서비스 제공장치에 있어서, 상기 프로세서는,
    사용자 단말기로부터 사용자 입력 문장을 획득하고, 상기 사용자 입력 문장을 구분 처리하여 입력 단위 데이터를 생성하는 입력 처리 단계;
    기 저장된 적어도 하나의 전자책 파일(EPUB 파일)에서 대화형 문장을 추출하고, 상기 대화형 문장에 포함된 단어를 기반으로 생성된 유사어를 이용하여 단어-유사어 매칭 데이터를 생성하는 입력 분석 단계;
    상기 입력 단위 데이터 및 상기 단어-유사어 매칭 데이터 간의 유사도를 기반으로 검색 답변 문장 데이터를 추출하여 적어도 하나의 후보 답변 문장을 생성하는 답변 생성 단계; 및
    상기 적어도 하나의 후보 답변 문장 중 하나의 최종 답변 문장이 선택되면, 상기 최종 답변 문장에 대응되는 전자책 파일(EPUB 파일)에 대한 도서 추천 서비스 정보를 제공하는 답변 처리 단계
    를 수행하는 것을 특징으로 하는 도서 추천 서비스 제공장치.
KR1020200095254A 2020-07-30 2020-07-30 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치 KR102534131B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200095254A KR102534131B1 (ko) 2020-07-30 2020-07-30 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200095254A KR102534131B1 (ko) 2020-07-30 2020-07-30 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치

Publications (2)

Publication Number Publication Date
KR20220015129A true KR20220015129A (ko) 2022-02-08
KR102534131B1 KR102534131B1 (ko) 2023-06-05

Family

ID=80252344

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200095254A KR102534131B1 (ko) 2020-07-30 2020-07-30 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치

Country Status (1)

Country Link
KR (1) KR102534131B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102649918B1 (ko) * 2023-06-05 2024-03-20 (주)복지이십사 대규모 언어 모델 기반 맞춤형 복지 정책 추천 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110045927A (ko) * 2009-10-28 2011-05-04 에스케이 텔레콤주식회사 전자도서컨텐츠 검색 서비스 시스템 및 전자도서컨텐츠 검색 서비스 방법
KR20150087474A (ko) * 2014-01-21 2015-07-30 순천향대학교 산학협력단 텍스트의 상황에 부합하는 이미지를 자동으로 생성하는 전자책 저작 시스템 및 방법
KR102085217B1 (ko) * 2019-10-14 2020-03-04 (주)디앤아이파비스 특허문서의 유사도 판단 방법, 장치 및 시스템
KR20200032873A (ko) * 2018-09-19 2020-03-27 계명대학교 산학협력단 도서 정보 기반의 챗봇 서비스를 위한 파싱 시스템 및 그 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110045927A (ko) * 2009-10-28 2011-05-04 에스케이 텔레콤주식회사 전자도서컨텐츠 검색 서비스 시스템 및 전자도서컨텐츠 검색 서비스 방법
KR20150087474A (ko) * 2014-01-21 2015-07-30 순천향대학교 산학협력단 텍스트의 상황에 부합하는 이미지를 자동으로 생성하는 전자책 저작 시스템 및 방법
KR20200032873A (ko) * 2018-09-19 2020-03-27 계명대학교 산학협력단 도서 정보 기반의 챗봇 서비스를 위한 파싱 시스템 및 그 제어 방법
KR102085217B1 (ko) * 2019-10-14 2020-03-04 (주)디앤아이파비스 특허문서의 유사도 판단 방법, 장치 및 시스템

Also Published As

Publication number Publication date
KR102534131B1 (ko) 2023-06-05

Similar Documents

Publication Publication Date Title
CN109885672B (zh) 一种面向在线教育的问答式智能检索系统及方法
CN109271505B (zh) 一种基于问题答案对的问答系统实现方法
CN110489538B (zh) 基于人工智能的语句应答方法、装置及电子设备
WO2018097091A1 (ja) モデル作成装置、テキスト検索装置、モデル作成方法、テキスト検索方法、データ構造、及びプログラム
CN112883732A (zh) 基于关联记忆网络的中文细粒度命名实体识别方法及装置
CN110929498B (zh) 一种短文本相似度的计算方法及装置、可读存储介质
KR102220894B1 (ko) 통계 데이터베이스의 데이터를 대화형으로 제공하는 질의 답변 시스템
Egger Topic modelling: modelling hidden semantic structures in textual data
CN112860896A (zh) 语料泛化方法及用于工业领域的人机对话情感分析方法
KR101333485B1 (ko) 온라인 사전을 이용한 개체명 사전 구축 방법 및 이를 실행하는 장치
Tapsai et al. Thai Natural Language Processing: Word Segmentation, Semantic Analysis, and Application
CN114611520A (zh) 一种文本摘要生成方法
CN114138969A (zh) 文本处理方法及装置
KR102534131B1 (ko) 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치
Barale et al. Automated refugee case analysis: An nlp pipeline for supporting legal practitioners
Dilawari et al. Neural attention model for abstractive text summarization using linguistic feature space
Alwaneen et al. Stacked dynamic memory-coattention network for answering why-questions in Arabic
CN114325384A (zh) 一种基于电机故障知识的众包采集系统及方法
Zouidine et al. A comparative study of pre-trained word embeddings for Arabic sentiment analysis
JP3758241B2 (ja) 音声情報検索装置
CN111159366A (zh) 一种基于正交主题表示的问答优化方法
Rojan et al. Natural Language Processing based Text Imputation for Malayalam Corpora
Wang A study of the tasks and models in machine reading comprehension
Carmona Finding Universal Dependency patterns in multilingual BERT’s self-attention mechanisms
Shen et al. MaRU: A Manga Retrieval and Understanding System Connecting Vision and Language

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right