KR101926669B1 - 텍스트 임베딩 모델을 이용한 객관식 빈칸 채우기 퀴즈 생성 장치 및 방법 - Google Patents

텍스트 임베딩 모델을 이용한 객관식 빈칸 채우기 퀴즈 생성 장치 및 방법 Download PDF

Info

Publication number
KR101926669B1
KR101926669B1 KR1020180086085A KR20180086085A KR101926669B1 KR 101926669 B1 KR101926669 B1 KR 101926669B1 KR 1020180086085 A KR1020180086085 A KR 1020180086085A KR 20180086085 A KR20180086085 A KR 20180086085A KR 101926669 B1 KR101926669 B1 KR 101926669B1
Authority
KR
South Korea
Prior art keywords
text
unit
quiz
layer
vector
Prior art date
Application number
KR1020180086085A
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 KR1020180086085A priority Critical patent/KR101926669B1/ko
Application granted granted Critical
Publication of KR101926669B1 publication Critical patent/KR101926669B1/ko

Links

Images

Classifications

    • G06F17/2795
    • 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
    • G06F17/2735
    • G06F17/3061

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

실시예들은 텍스트를 포함한 컨텐츠를 획득하는 단계; 상기 텍스트에 기초하여 텍스트 임베딩 모델을 모델링하는 단계; 및 상기 텍스트를 텍스트 임베딩 모델에 적용하여 정답지와 오답지를 보기로 갖는 객관식 빈칸 채우기 퀴즈를 생성하는 단계를 포함하되, 상기 텍스트 임베딩 모델은 제1 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제1 행렬; 상기 제1 텍스트 단위를 이루는 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제2 행렬; 및 상기 제2 텍스트 단위를 이루는 제3 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제3 행렬 중 하나 이상을 포함하는 것을 특징으로 하는 객관식 빈칸 퀴즈를 생성하는 방법 및 장치에 관한 것이다.

Description

텍스트 임베딩 모델을 이용한 객관식 빈칸 채우기 퀴즈 생성 장치 및 방법{DEVICE AND METHOD FOR GENERATING MULTIPLE CHOISE GAP FILL QUIZZES USING TEXT EMBEDDING MODEL}
본 발명은 퀴즈 생성 기술에 관한 것으로서, 보다 상세하게는 단어, 문장, 및/또는 문서 간의 의미적 특성(semantic characteristics)을 고려한 텍스트 임베딩 모델을 이용하여 객관식 빈칸 채우기 퀴즈를 생성하는 장치에 관한 것이다.
문제에 대하여 미리 정해진 답을 입력하는 퀴즈는 다양한 장소 및 분야에서 널리 사용되고 있다. 예를 들어, 퀴즈 쇼 또는 퀴즈 대회, 나아가 특정 분야의 능력 평가 또는 교육 현장에서도 높은 수요를 나타낸다.
사람에 의해 퀴즈를 만드는 것은 많은 시간이 소모되고 노력이 필요하다. 따라서, 최근에는 자동으로 이러한 퀴즈를 생성해내는 시스템, 예를 들어 객관식 빈칸 채우기 퀴즈 생성 기술이 연구되고 있는 추세이다.
그러나, 종래의 객관식 빈칸 채우기 퀴즈 생성 기술들은 도메인에 종속적인 룰과 피쳐들을 사용하였다. 예컨대, 이러한 기술들은 기술을 위해 활용하는 텍스트의 도메인 및 종류에 최적화된, 사람이 직접 생성한 룰과 피쳐들을 이용하여 퀴즈를 생성하는 한계가 있다.
또한, 종래의 객관식 빈칸 채우기 퀴즈 생성 기술들은 문제, 정답, 오답 선택 과정에서 사람이 직접 만들어낸 룰과 피쳐들을 사용한다. 이러한 룰과 피쳐들은 텍스트의 구조적 특성을 고려하여 (예컨대, 문제 선택 과정에서는 문서에서의 문장 위치, 그리고 특정 단어들의 등장 빈도 등을, 또는 정답 선택 과정에서는 특정 품사 또는 등장 빈도 등을, 또는 오답지 선택 과정에서는 정답과 오답지 후보 주변에 얼마나 동일한 단어가 존재하는 지 등을 고려하여) 설정되 것이 일반적이다.
그러나, 사람이 실제로 퀴즈를 만들 때는 이러한 구조적 특성에는 잘 주목하지 않는다. 오답이 정답과 의미적으로 유사한지와 같은, 의미적 특성(semantic characterstics)을 고려하여 퀴즈를 생성한다.
결국, 종래의 객관식 빈칸 채우기 퀴즈 생성 기술들은 퀴즈를 생성하는데 중요한 요소인 텍스트의 의미적 특성(semantic characterstics)을 퀴즈 생성 시 활용하지 않는 한계가 있다.
특허등록공보 제10-1847345호
본 발명은 단어, 문장, 및/또는 문서 간의 의미적 특성(semantic characteristics)을 고려한 텍스트 임베딩 모델을 이용하여 객관식 빈칸 채우기 퀴즈를 생성하는 장치을 제공할 수 있다.
이 외에도, 객관식 빈칸 채우기 퀴즈를 생성하는 장치에 의해 수행되는 객관시 빈칸 채우기 퀴즈를 생성하는 방법 및 상기 방법이 기록된 컴퓨터 판독가능 기록 매체를 제공할 수 있다.
본 발명의 일 측면에 따른, 퀴즈 생성 시스템에 의해 수행되는 객관식 빈칸 채우기 퀴즈를 생성하는 방법은 텍스트를 포함한 컨텐츠를 획득하는 단계; 상기 텍스트에 기초하여 텍스트 임베딩 모델을 모델링하는 단계; 및 상기 텍스트를 텍스트 임베딩 모델에 적용하여 정답지와 오답지를 보기로 갖는 객관식 빈칸 채우기 퀴즈를 생성하는 단계를 포함할 수 있다. 여기서, 텍스트 임베딩 모델은 제1 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제1 행렬; 상기 제1 텍스트 단위를 이루는 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제2 행렬; 및 상기 제2 텍스트 단위를 이루는 제3 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제3 행렬 중 하나 이상을 포함한다.
일 실시예에서, 상기 텍스트 임베딩 모델은 제1 레이어 및 제2 레이어를 포함할 수 있다. 여기서, 제1 레이어는, 상기 제1 행렬 및 제2 행렬을 포함한 제1 서브 레이어; 및 상기 제1 서브 레이어에 의해 산출된 복수의 텍스트 벡터에 기초하여 상기 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제2 서브 레이어를 포함하고, 제2 레이어는 상기 제3 행렬을 포함할 수 있다.
일 실시예에서, 상기 제1 레이어에서 산출되는 상기 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터는 예측 텍스트에 대한 텍스트 벡터로서, 상기 예측 텍스트는 상기 컨텐츠 내에서 상기 제1 레이어에 입력된 제2 텍스트 단위의 텍스트의 다음 순서에 대응할 것으로 예측되는 텍스트일 수 있다.
일 실시예에서, 상기 텍스트 임베딩 모델은 상기 제1 레이어의 제2 서브 레이어가 상기 제2 레이어의 제1 서브 레이어에 포함되는 구조를 가질 수 있다.
일 실시예에서, 상기 제1 레이어에서 산출되는 상기 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터는 예측 텍스트에 대한 텍스트 벡터로서, 상기 예측 텍스트는 상기 컨텐츠 내에서 상기 제1 레이어에 입력된 제2 텍스트 단위의 텍스트의 다음 순서에 대응할 것으로 예측되는 텍스트일 수 있다.
일 실시예에서, 상기 제1 레이어의 제1 서브 레이어 또는 제2 레이어의 제1 서브 레이어는 입력되는 복수의 텍스트 벡터를 결합하도록(concatenate) 구성될 수 있다.
일 실시예에서, 상기 컨텐츠를 텍스트 임베딩 모델에 적용하여 퀴즈를 생성하는 단계는 임베딩 결과에 기초하여, 상기 제1 텍스트 단위의 텍스트와 가장 유사한 의미를 갖는 제2 텍스트 단위의 제1 텍스트를, 퀴즈의 문제 몸체로 선택하는 단계; 임베딩 결과에 기초하여, 상기 제1 텍스트와 가장 유사한 의미를 갖는 제3 텍스트 단위의 제2 텍스트를, 선택시 정답으로 판단되는 정답지로 선택하는 단계; 임베딩 결과에 기초하여, 상기 제2 텍스트와 가장 유사한 의미를 갖는 제3 텍스트 단위의 제3 텍스트를 선택시 오답으로 판단되는 오답지로 선택하는 단계; 및 상기 정답지를 빈칸으로 변환하여 빈칸 채우기 퀴즈의 문제를 생성하고, 상기 정답지 및 오답지에 기초하여 보기를 생성하여, 객관식 빈칸 채우기 퀴즈를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제1 텍스트는 제1 수량만큼 선택되고, 상기 제2 텍스트는 제2 수량만큼 선택되며, 상기 제3 텍스트는 제3 수량만큼 선택될 수 있다.
일 실시예에서, 상기 제3 텍스트를 선택하는 단계는 상기 제2 텍스트를 포함한 제1 텍스트와 위치와 상기 제3 텍스트를 포함한 제1 텍스트의 위치가 상이한지 여부를 확인하는 단계; 및 상기 확인 결과를 만족하는 제3 텍스트 단위의 텍스트를 상기 오답지로 선택하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제3 텍스트를 선택하는 단계는 품사를 나타내는 데이터를 포함한 품사 데이터베이스에 기초하여, 상기 제2 텍스트의 품사와 제3 텍스트의 품사가 동일한 품사인지 확인하는 단계; 텍스트를 미리 설정된 의미적 카테고리로 분류한 데이터를 포함한 의미 데이터베이스에 기초하여, 상기 제2 텍스트와 제3 텍스트가 동일한 의미적 카테고리에 포함되는지 확인하는 단계; 및 텍스트를 동의어 집합으로 분류한 데이터를 포함한 동의어 데이터베이스에 기초하여, 상기 제2 텍스트 및 제3 텍스트가 동일한 동의어 집합에 포함되지 않는지 여부를 확인하는 단계를 더 포함할 수 있다.
일 실시예에서, 키워드 데이터베이스에 포함된 키워드가 생성된 퀴즈의 문제 몸체에 등장한 빈도에 기초한 키워드 점수, 컨텐츠의 제목에 포함된 텍스트가 생성된 퀴즈의 문제 내에서 등장한 빈도에 기초한 타이틀 점수, 및 상기 컨텐츠 내에서 텍스트가 등장한 빈도에 기초한 중요도 점수 중 하나 이상을 사용하여 생성된 퀴즈에 대한 퀴즈 품질 점수를 산출하고, 소정 임계 점수 미만의 퀴즈 품질 점수를 갖는 퀴즈를 필터링하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 텍스트를 상기 텍스트 임베딩 모델에 적용하기 이전에, 상기 텍스트를 제1 텍스트 단위, 제2 텍스트 단위, 및 제3 텍스트 단위 중 하나 이상의 단위별로 추출하여 텍스트를 전처리하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 전처리하는 단계는 상기 제1 텍스트 단위의 텍스트를 토큰화하여 제2 텍스트 단위의 텍스트를 추출하는 단계; 및 상기 제2 텍스트 단위의 텍스트를 토큰화하여 상기 제3 텍스트 단위의 텍스트를 추출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 모델링하는 단계는 상기 전처리된 텍스트를 샘플로 사용하여 상기 텍스트 임베딩 모델을 모델링하는 단계를 포함할 수 있다.
일 실시예에서, 상기 모델링하는 단계는 제1 레이어에 입력된 텍스트 벡터에 기초한 입력 텍스트 벡터 세트와 제1 레이어에서 출력된 텍스트 벡터에 기초한 출력 텍스트 벡터 세트 사이의 차이가 최소화되도록 각 행렬에 포함된 파라미터를 업데이트하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 입력 텍스트 벡터 세트와 출력 텍스트 벡터의 차원은 동일한 것일 수 있다.
본 발명의 다른 일 측면에 따른 컴퓨터 판독가능 기록매체는 컴퓨터에 의해 판독가능하고 상기 컴퓨터에 의해 동작 가능한 프로그램 명령어를 저장한다. 여기서, 프로그램 명령어가 상기 컴퓨터의 프로세서에 의해 실행되는 경우 상기 프로세서가 전술한 객관식 빈칸 채우기 퀴즈를 생성하는 방법을 수행하게 할 수 있다.
본 발명의 또 다른 일 측면에 따른 객관식 빈칸 퀴즈를 생성하는 장치는 텍스트를 포함한 컨텐츠를 획득하는 데이터 획득부; 상기 텍스트에 기초하여 텍스트 임베딩 모델을 모델링하는 모델링부; 상기 텍스트를 텍스트 임베딩 모델에 적용하여 정답지와 오답지를 갖는 객관식 빈칸 채우기 퀴즈를 생성하는 퀴즈 생성부; 및 품사를 나타내는 태그 데이터에 관련된 품사 데이터베이스, 텍스를 의미에 기초하여 분류한 의미적 카테고리와 관련된 의미 데이터베이스, 텍스트를 동의어로 분류한 동의어 집합과 관련된 동의어 데이터베이스, 및 키워드 리스트와 관련된 키워드 데이터베이스 중 하나 이상을 저장하는 저장부를 포함할 수 있다.
본 발명의 일 측면에 따른 퀴즈 생성 장치는 텍스트 컨텐츠의 데이터를 텍스트 임베딩 모델에 적용하여 객관식 빈칸 채우기 퀴즈를 생성할 수 있다. 따라서, 자동으로 고품질의 객관식 빈칸 채우기 퀴즈를 대량 생성할 수 있어, 기존의 문제은행(question bank)와 같은 종래의 퀴즈 출제 방식들을 대체할 수 있다.
상기 텍스트 임베딩 모델은 텍스트의 의미적 특성에 기초하여 모델링된다. 따라서, 단어, 문장, 문서의 의미적인 특성은 고려하지 않고, 문법과 같은 구조적 특성에 기초하거나, 또는 사람의 판단(예컨대, 사람에 의해 설정된 룰)에 의존하는 종래의 퀴즈 생성 기술들의 한계를 극복할 수 있다.
또한, 상기 텍스트 임베딩 모델은 복수의 텍스트 단위를 갖는 입력된 텍스트로부터 (예컨대, 하나의) 텍스트 벡터를 산출할 수 있다. 이 과정에서 문서, 문장, 단어 간의 유기적 관계가 출력되는 텍스트 벡터에 표현할 수 있다. 이와 같이, 유기적 관계를 텍스트 벡터를 통해 표현 가능하므로, 상기 텍스트 임베딩 모델은 도메인에 의존적이지 않는다. 따라서, 다른 텍스트가 적용되는 경우 텍스트 임베딩 모델에 대한 임의의 변형이 요구되지 않는다. 즉, 다른 텍스트로의 전이성(transferability)이 우수하다. 그 결과, 상기 텍스트 임베딩 모델을 단순히 퀴즈 생성에 대해 활용하는 것을 넘어, 다양한 분야의 데이터 처리에 대하여 활용할 수 있다.
또한, 데이터베이스에 미리 저장된 키워드 목록에 포함된 키워드의 상기 생성된 퀴즈 내 빈도에 기초한 퀴즈의 키워드 점수, 상기 컨텐츠 타이틀에 포함된 텍스트의 상기 퀴즈 내 빈도에 기초한 퀴즈의 타이틀 점수, 및 특정 텍스트의 등장 횟수에 기초하여 상기 컨텐츠 내에서의 중요도를 나타내는 중요도 점수 중 하나 이상을 이용하여, 높을수록 고품질의 퀴즈에 대응하는, 퀴즈에 대한 품질 점수를 산출하고, 고품질의 퀴즈를 필터링을 통해 추출할 수 있다. 상기 키워드 등에 기초한 필터링 과정은 텍스트 임베딩 모델의 모델링 이후에 수행되므로, 퀴즈 생성 시 도메인에 대한 의존성은 최소화하면서, 퀴즈의 품질을 판단할 수 있다. 특히, 미리 저장된 키워드가 없는 경우에도 타이틀 등에 기초하여 퀴즈의 품질을 판단할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명 또는 종래 기술의 실시예의 기술적 해결책을 보다 명확하게 설명하기 위해, 실시예에 대한 설명에서 필요한 도면이 아래에서 간단히 소개된다. 아래의 도면들은 본 명세서의 실시예를 설명하기 목적일 뿐 한정의 목적이 아니라는 것으로 이해되어야 한다. 또한, 설명의 명료성을 위해 아래의 도면들에서 과장, 생략 등 다양한 변형이 적용된 일부 요소들이 도시될 수 있다.
도 1은, 본 발명의 일 실시예에 따른, 객관식 빈칸 채우기 퀴즈를 생성하는 장치의 블록도이다.
도 2는, 본 발명의 일 실시예에 따른, 텍스트 임베딩 모델을 개략적으로 도시한 구조도이다.
도 3은, 본 발명의 일 실시예에 따른, 객관식 빈칸 채우기 퀴즈를 생성하는 방법을 개략적으로 설명하기 위한 도면이다.
도 4는, 도 2의 방법에 따른 예시적인 실험예를 설명하기 위한 도면이다.
여기서 사용되는 전문 용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 "포함하는"의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분의 존재나 부가를 제외시키는 것은 아니다.
다르게 정의하지는 않았지만, 여기에 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 보통 사용되는 사전에 정의된 용어들은 관련기술문헌과 현재 개시된 내용에 부합하는 의미를 가지는 것으로 추가 해석되고, 정의되지 않는 한 이상적이거나 매우 공식적인 의미로 해석되지 않는다.
본 명세서에서, 객관식 빈칸 채우기 퀴즈는 (빈칸을 채우라는 지시를 포함한) 질문, 빈칸을 포함한 문제, 하나 이상의 선택지를 포함한 보기를 포함한다. 상기 보기는 빈칸에 입력되면 정답으로 판단되는 정답지, 및 빈칸에 입력되면 오답으로 판단되는 오답지를 포함한다.
본 명세서에서, 텍스트 단위는 텍스트를 분류하는 단위로서, 단어, 문장, 문단, 문서 등을 포함한다. 하나의 텍스트 단위가 다른 텍스트 단위로 이루어지는 경우, 상기 하나의 텍스트 단위는 상위 텍스트 단위로 지칭되며, 상기 상위 텍스트 단위를 이루는 텍스트 단위는 하위 텍스트 단위로 지칭된다.
본 명세서에서, 컨텐츠는 이미지, 동영상, 오디오, 링크(예컨대, 웹 링크 등) 및 이들의 조합으로 구현되어 사용자에게 제공 가능한 정보 또는 개별 정보 요소를 총칭하는 개념이다. 상기 “컨텐츠”의 유형은 일반적으로 이미지 미디어(예컨대, 사진 등), 텍스트 미디어(예컨대, 책, 문서 등), 동영상 미디어(예컨대, 동영상 등), 종합 미디어(예컨대, 웹툰, 만화 등) 등을 포함한다.
본 명세서에서, 텍스트 단위는 컨텐츠에 포함된 텍스트를 의미적으로 분류하는 단위를 나타낸다. 예를 들어, 텍스트 컨텐츠에 있어서 텍스트 단위는 단어, 문장, 문단, 섹션, 컨텐츠 전체를 포함한다.
본 명세서에서, 텍스트 단위인 문서는 하나 이상의 문장으로 구성된 텍스트 단위로서, 문장 보다 상위 텍스트 단위를 지칭할 뿐, 반드시 일반적인 문서를 지칭하는 문서 컨텐츠(documents contents)를 의도되지 않는다. 예를 들어, 하나 이상의 문장으로 구성된 문단, 하나 이상의 문단으로 구성된 섹션 등을 포함한 보고 문서에서, 본 명세서의 문서는 반드시 보고 문서 전체를 의도하는 것으로 해석되지 않으며, 섹션(또는 문단)을 의도할 수 있다. 즉, 본 명세서의 문서는 문단, 섹션, 문서 컨텐츠를 포함할 수 있다.
본 명세서에서, 텍스트 임베딩은 상기 텍스트에 대응하는 텍스트 단위로 텍스트를 수치화한 것을 나타낸다. 예를 들어, 문서 임베딩은 문서 단위의 텍스트를 수치화한 것을, 문장 임베딩은 문장 단위의 텍스트를 수치화한 것을, 단어 임베딩은 단어 단위의 텍스트를 수치화한 것을 나타낸다.
본 명세서에서, 고품질의 객관식 빈칸 채우기 퀴즈는, 정답으로 설정된 보기가 명백히 정답으로 해석되고, 오답으로 설정된 보기가 사용자의 오답 선택을 보다 높은 확률로 유발하는 퀴즈 등을 나타낸다.
설명의 명료성을 위해, 이하 제1 텍스트 단위는 문서, 제2 텍스트 단위는 상기 제1 텍스트 단위를 이루는 하위 텍스트 단위로서 문장, 및 제3 텍스트 단위는 상기 제2 텍스트 단위를 이루는 하위 텍스트 단위로서 단어로 지칭하여 서술된다.
이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.
도 1은, 본 발명의 일 실시예에 따른, 객관식 빈칸 채우기 퀴즈를 생성하는 장치의 블록도이다.
도 1을 참조하면, 객관식 빈칸 채우기 퀴즈를 생성하는 장치(이하, "퀴즈 생성 장치")(1)는 데이터 획득부(100), 모델링부(300), 퀴즈 생성부(400), 필터링부(500), 및 저장부(600)를 포함한다. 일부 실시예에서, 퀴즈 생성 장치(1)는 전처리부(200)를 더 포함할 수 있다.
퀴즈 생성 장치(1)는 컨텐츠의 텍스트를 문서 단위로 전처리하여 문서, 문장, 단어를 추출하고, 추출된 텍스트를 텍스트 임베딩 모델에 적용하여 문제로 사용 가능한 문장(즉, 문제 몸체)을 선택하고, 선택된 문장에서 정답으로 판단되는 정답지를 선택하며, 이어서 상기 정답지를 빈칸(gap)으로 치환하여 빈칸 채우기 퀴즈의 문제를 생성한다. 또한, 상기 정답지의 의미에 기초하여 퀴즈 사용자의 실수를 유발할 오답지를 선택하여 정답지와 오답지로 구성된 보기를 생성하여 객관식 빈칸 채우기 퀴즈를 생성한다. 상기 도 2의 퀴즈 생성 과정에 대해서는 아래의 도 4를 참조하여 보다 상세하게 서술한다.
다시 도 1을 참조하면, 실시예들에 따른 퀴즈 생성 장치(1)는 전적으로 하드웨어이거나, 전적으로 소프트웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 상품 유통 서버는 데이터 처리 능력이 구비된 하드웨어 및 이를 구동시키기 위한 운용 소프트웨어를 통칭할 수 있다. 본 명세서에서 "부(unit)", "시스템" 및 "장치" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 하드웨어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 또는 다른 프로세서(processor)를 포함하는 데이터 처리 기기일 수 있다. 또한, 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.
실시예들에 따른 퀴즈 생성 장치(1)를 구성하는 각각의 부(100, 200, 300, 400, 500, 600)는 이들이 구현된 컴퓨팅 장치에서 수행하는 동작에 따라 장치를 기능적으로 구분한 것일 뿐, 반드시 서로 분리된 별개의 소자를 의미하는 것이 아니다.
데이터 획득부(100)는 텍스트를 (즉, 텍스트 데이터를) 획득하는 수단으로서, 키보드, 스캐너 등을 포함한 입력 장치를 통해 텍스트를 입력 받거나, 또는 외부 시스템으로부터 텍스트를 수신하는 과정 등을 통해 텍스트를 획득할 수 있다.
일 실시예에서, 퀴즈 생성 장치(1)는 텍스트를 단위별로 분류하는 전처리부(200)를 포함할 수 있다. 예를 들어, 전처리부(200)는 데이터 획득부(100)에서 획득한 텍스트를 문서, 문장, 및 단어 단위 별로 추출하여 텍스트를 전처리할 수 있다.
예를 들어, 전처리부(200)는 문서 단위의 텍스트를 토큰화하여 문장 단위의 텍스트를 추출하고, 문장 단위의 텍스트를 토큰화하여 단어 단위의 텍스트를 추출하여, 단위별로 데이터 세트를 구축한다.
도 2는, 본 발명의 일 실시예에 따른, 텍스트 임베딩 모델(2)을 도시한 도면이다.
일 실시예에서, 모델링부(300)는 텍스트에 기초하여 텍스트 임베딩 모델(2)을 모델링한다. 상기 텍스트 임베딩 모델(2)은 텍스트 임베딩 모델(2)은 문서-문장 레이어(10) 및 문장-단어 레이어(20)를 포함한다. 상기 텍스트 임베딩 모델(2)은 3 종류의 행렬, 문서 단위의 텍스트에 대한 텍스트 벡터를 산출하는 문서 행렬(D); 문장 단위의 텍스트에 대한 텍스트 벡터를 산출하는 문장 행렬(S); 및 상기 단어 단위의 텍스트에 대한 텍스트 벡터를 산출하는 단어 행렬(W)을 포함한다.
문서-문장 레이어(10)에서는 문서 임베딩과 문장 임베딩이 학습되고, 문장-문서 레이어(20)에서는 문장 임베딩과 단어 임베딩이 학습된다. 문서-문장 레이어(10)에서는 문장이 문서를 구성하는 하나의 "단어"로 취급되어, 문서 임베딩이 문장 임베딩으로부터 학습된다.
문서-문장 레이어(10)에서는 입력된 문서에 대한 문서 임베딩과 입력된 문장에 대한 문장 임베딩이 연결되며, 문서-문장 레이어(10)에서 출력된 문장 임베딩은 입력된 문서 내에서 입력된 문장(또는 문장 집합)의 다음 문장을 (예컨대, (다음에 위치한 것과 같은) 다음 순서의 문장을) 예측한다.
문서-문장 레이어(10) 는 문서를 벡터화하는 문서 행렬(D), 및 문장을 벡터화하는 문장 행렬(S)을 포함하는 서브 레이어(11), 및 서브 레이어(11)에서 산출된 문서 벡터, 문장 벡터에 기초하여 입력된 문장들의 다음 문장을 예측하는 서브 레이어(15)를 포함한다. 여기서, 문장 행렬(S)의 한 행은 문장 벡터이고, 문서 행렬(D)의 한 행은 문서 벡터이다.
일 예에서, 문서-문장 레이어(10)는 1개의 문서 행렬(D) 및 3개의 문장행렬(S)을 포함할 수 있다. 그러나, 이에 제한되지 않으며, 문서-문장 레이어(10)는 문서 행렬(D)을 1개 이상, 및/또는 문장 행렬(S)을 1 ~ 2개 또는 4개 이상 포함할 수 있다.
서브 레이어(11)는 행렬을 통해 텍스트(즉, 문서 및 문장)를 벡터로 수치화한다. 즉, 서브 레이어(11)를 통해 텍스트는 임베딩된다. 도 2에 도시된 바와 같이, 문서 행렬(D)는 컨텐츠 내 t번째 문서를 벡터(dt)로 변환하며, 문장 행렬(Sa)은 상기 문서의 u-3번째 문장을 벡터(St, u-3)로 변환하고, 문장 행렬(Sa)은 상기 문서의 u-2번째 문장을 벡터(St, u-2)로 변환하며, 문장 행렬(Sb)은 상기 문서의 u-1 번째 문장을 벡터(St, u-1)로 변환한다.
서브 레이어(15)는 서브 레이어(11)에서 산출된 복수의 벡터에 기초하여 문장 단위의 텍스트에 대한 벡터를 산출한다.
일 실시예에서, 서브 레이어(15)는 서브 레이어(11)에서 산출된 복수의 벡터를 결합하도록(concatenate) 구성된다. 따라서, 문서 및 문장의 순서 정보가 유실되지 않는다.
서브 레이어(15)는 문서-문장 레이어(10)는 문장, 문서를 입력 받아, (입력된 문장의 다음에 위치하는 것으로 예측되는 문장과 같이) 입력된 문장의 다음 순서로 예측되는 문장에 대한 벡터를 출력한다. 도 2에 도시된 바와 같이, 서브 레이어(15)는 t번째 문서의 u-3, u-2, u-1 번째 문장에 대한 벡터를 입력받으면, 서브 레이어(15)는 입력된 문장 집합(즉, u-3번째 문장, u-2번째 문장 및 u-1번째 문장)의 다음 순서의 문장으로 예측되는 문장(즉, u번째 문장)에 대한 벡터(St, u)를 상기 결합(concatenate)을 통해 산출한다.
서브 레이어(15)에서 산출되는 예측 텍스트에 대한 벡터는 상위 단위의 텍스트에 대한 벡터와 하위 단위의 텍스트에 대한 벡터에 기초하기 때문에, 학습을 통한 모델링이 수행되면, 상기 예측 텍스트에 대한 벡터는 문서와 문장 간의 문맥(context)들에 포함되어 같이 학습된다. 즉, 해당 문서 안의 특정 길이의 모든 문장 시퀸스(sequence)에 포함되어 같이 학습된다.
그 결과, 서브 레이어(15)에서 출력되는 벡터는 해당 문서 안의 모든 문맥에 대한 정보를 포함할 수 있어, 다음 문장의 예측이 가능한 예측 텍스트에 대한 벡터로 기능할 수 있다.
문장-단어 레이어(20)는 단어를 벡터화하는 단어 행렬(W)을 포함하는 서브 레이어(21), 및 서브 레이어(21)에서 산출된 단어 벡터에 기초하여 입력된 단어의 다음 단어를 예측할 수 있는 서브 레이어(25)를 포함한다. 여기서, 단어 행렬(W)의 한 행은 단어 벡터이다.
전술한 바와 같이, 다음 단어의 예측을 위해서는 단어 보다 상위 단위의 텍스트에 대한 정보가 요구된다. 문장-단어 레이어(20)는 문서-문장 레이어(10)의 출력 벡터에 기초한 문장 벡터를 입력 받을 수 있다. 예를 들어, 문서-문장 레이어(10)의 출력 벡터가 문장-단어 레이어(20)의 서브 레이어(21)에 입력될 수도 있다.
일 실시예에서, 문서 임베딩, 문장 임베딩, 및 단어 임베딩이 함께 학습되도록, 문장-단어 레이어(20)의 서브 레이어(21)는 문서-문장 레이어(10)의 서브 레이어(15)를 포함한다. 즉, 도 2에 도시된 바와 같이, 텍스트 임베딩 모델(2)은 문서-문장 레이어(10)의 일부가 문장-단어 레이어(20)에 포함된 합동 모델(joint model) 형태의 구조를 가질 수 있다.
일 예에서, 문장-단어 레이어(20)는 3개의 행렬(W)을 포함할 수 있으나, 이에 제한되지 않고, 행렬(W)을 1 ~ 2개, 또는 4개 이상 포함할 수 있다. 그러나, 이에 제한되지 않으며, 문장-단어 레이어(20)는 단어 행렬(W)을 1 ~ 2개 또는 4개 이상 포함할 수 있다.
서브 레이어(21)는 행렬을 통해 텍스트(즉, 문서 및 문장)를 벡터로 수치화한다. 도 2에 도시된 바와 같이, 단어 행렬(Wa)은 상기 컨텐츠 내 t번째 문서의 u번째 문장 중에서 v-3번째 단어를 벡터(Wt, u, v-3)로 변환하고, 문장 행렬(Wb)은 상기 컨텐츠 내 t번째 문서의 u번째 문장 중에서 v-2번째 단어를 벡터(Wt, u, v-2)로 변환하며, 단어 행렬(Wc)은 상기 컨텐츠 내 t번째 문서의 u번째 문장 중에서 v-1 번째 단어를 벡터(W t, u, v-1)로 변환한다.
또한, 문장-단어 레이어(20)의 서브 레이어(21)는 문서-문장 레이어(10)으로부터 t번째 문서의 u번째 문장에 대한 벡터를 수신한다. 일 실시예에서, 전술한 바와 같이 문장-단어 레이어(20)의 서브 레이어(21)는 서브 레이어(15)를 포함하도록 구성되어, 문장-단어 레이어(20)는 포함된 서브 레이어(15)에 의해 단어 보다 상위 단위의 텍스트에 대한 정보를 수신한다.
서브 레이어(25)는 서브 레이어(21)에서 산출된 복수의 벡터에 기초하여 문장 단위의 텍스트에 대한 벡터를 산출한다. 일 실시예에서, 서브 레이어(25)는 서브 레이어(21)에서 산출된 복수의 벡터를 결합하도록(concatenate) 구성된다. 따라서, 문장 및 단어의 순서 정보가 유실되지 않는다. 일부 실시예에서, 문장-단어 레이어(20)에서의 결합 이전에, 서브 레이어(15)에서 출력된 벡터는 단어에 대한 벡터와 동일한 차원을 갖도록 변환될 수 있다.
문장-단어 레이어(20)는 문장, 단어를 입력 받아, (예컨대, 입력된 단어의 다음에 위치하는 것으로 예측되는 단어와 같은) 입력된 단어의 다음 순서로 예측되는 예측 단어에 대한 벡터를 출력한다. 도 2에 도시된 바와 같이, 서브 레이어(25)는 t번째 문서의 u번째 문장에 있어서 v-3, v-2, v-1 번째 단어에 대한 벡터를 입력받으면, 서브 레이어(25)는 입력된 단어들(즉, v-3번째 단어, v-2번째 단어 및 v-1번째 단어)의 다음 순서의 단어로 예측되는 단어(즉, v번째 단어)에 대한 벡터(Su, t, v)를 상기 결합(concatenate)을 통해 산출한다.
서브 레이어(25)에서 산출되는 예측 단어에 대한 벡터는 상위 단위의 텍스트에 대한 벡터와 하위 단위의 텍스트에 대한 벡터에 기초하기 때문에, 학습을 통한 모델링이 수행되면, 상기 예측 단어에 대한 벡터는 문장과 단어 간의 문맥(context)들에 포함되어 같이 학습된다. 즉, 해당 문장 안의 모든 단어 시퀸스(sequence)에 포함되어 같이 학습된다.
이와 같이, 문서-문장 레이어(10)에서 문서 임베딩과 문장 임베딩이 연결되어 다음 순서의 문장을 예측하고, 문장-단어 레이어(20)에서는 문장 임베딩과 단어 임베딩이 연결되어 다음 순서의 단어를 예측하게 한다.
예를 들어, 4개의 문장 "john ate an apple(s1)", "Cathy loves John very much(s2)", "Cathy hates dogs and cats(s3)", "John loves dogs but hates cats(s4)" 을 포함한 문서(d)가 텍스트 임베딩 모델(2)을 모델링하기 위해 샘플로 사용되는 경우, d와 s1, s2, s3에 대한 벡터를 결합하여 다음 문장(s4)를 예측한다.
또한, s4와 상기 s4에서의 단어 "John(w1)", "loves(w2)", "dogs(w3)"에 대한 벡터를 결합하여 다음 단어를 예측한다.
상기 예측 과정에서 발생하는 에러 결과는 문서 행렬(D), 문장 행렬(Sa, Sb, Sc) 및 단어 행렬(Wa, Wb, Wc)로 전파되어 행렬의 파라미터가 업데이트된다.
상기 예에서, 문서-문장 레이어(10)에서 상기 예의 (d, s1, s2, s3)를 결합한 결과를 다음 문장에 대한 예측 벡터로 산출하고, 실제 다음 문장(Rs4)에 대한 벡터를 결합한 결과와 동일 차원을 갖는 벡터로 변환한 벡터(예컨대, (Rs4, Rs4, Rs4, Rs4)) 간의 오차를 loss function을 사용해 산출하고, 상기 loss function에 의한 오차를 최소화하도록 행렬의 파라미터를 학습할 수 있다.
일 예에서, 상기 오차를 최소화하는 과정은 gradient descent optimization algorhtim을 사용하여 수행될 수 있으나, 이에 제한되지 않으며 다양한 최적화 알고리즘을 사용하여 수행될 수 있다.
퀴즈 생성부(400)는 이와 같이 모델링된 텍스트 임베딩 모델(2)에 컨텐츠를 적용하여 객관식 빈칸 퀴즈를 생성한다. 퀴즈 생성부(400)는 컨텐츠를 텍스트 임베딩 모델(2)에 적용하여 퀴즈의 문제로 사용 가능한 문장(즉, 문제 몸체)을 선택하고, 선택된 문장에서 정답으로 판단되는 정답지를 선택하며, 이어서 상기 정답지를 빈칸으로 치환하여 빈칸 채우기 퀴즈의 문제를 생성한다. 또한, 상기 정답지의 의미(예컨대, 정답지의 단어의 의미)에 기초하여 오답지로 사용 가능한 단어를 오답지로 선택하고, 객관식 빈칸 채우기 퀴즈를 생성한다. 퀴즈 생성부(400)에 의해 생성된 객관식 빈칸 채우기 퀴즈는 사용자가 정답지를 선택하면 퀴즈의 정답으로 판단되고, 반면 오답지를 선택하면 퀴즈의 오답으로 판단된다.
필터링부(500)는 생성된 객관식 빈칸 채우기 퀴즈 중에서 퀴즈의 품질이 낮은 퀴즈를 필터링한다.
퀴즈 생성부(400) 및 필터링부(500)에 대해서는 아래의 도 3을 참조하여 보다 상세하게 서술한다.
저장부(600)는 데이터베이스와 같은 데이터 집합을 저장한다. 본 명세서에서 데이터베이스는 대량의 정형, 비정형 또는 반정형 데이터의 집합을 의미하는 것으로서, 건축물 관련 정보, 실거래가 정보 등을 포함할 수 있다. 여기서, 정형 데이터는 고정된 필드에 저장된 데이터로서, 예컨대, 관계형 데이터베이스, 스프레드쉬트 등이 있다. 또한, 비정형 데이터는 고정된 필드에 저장되어 있지 않는 데이터로서, 예컨대, 텍스트 문서, 이미지, 동영상, 음성 데이터 등이 있다. 또한, 반정형 데이터는 고정된 필드에 저장되어 있지 않지만 메타데이터나 스키마를 포함하는 데이터로서, 예컨대, XML, HTML, 텍스트 등이 있다.
일 예에서, 저장부(600)는 DRAM, SRAM(static random access memory), ROM, EPROM(erasable programmable read only memory), 고체 상태 장치, 플래시 드라이브, CD-ROM, 썸 드라이브(thumb drives), 플로피 디스크, 테이프, 하드 디스크, 및/또는 다른 유형의 휘발성 또는 비휘발성 물리적 또는 유형(tangible)의 컴퓨터 판독가능 매체 등을 포함할 수 있다.
일 실시예에서, 저장부(600)는 품사를 나타내는 태그 데이터에 관련된 품사 데이터베이스, 텍스를 의미에 기초하여 분류한 의미적 카테고리와 관련된 의미 데이터베이스, 텍스트를 동의어로 분류한 동의어 집합과 관련된 동의어 데이터베이스, 및/또는 키워드 리스트와 관련된 키워드 데이터베이스 등을 저장한다.
품사 데이터베이스는 텍스트에 대응하는 품사를 나타내는 데이터를 포함한다. 일 예에서, 품사 데이터베이스는 텍스트에 대응하는 품사를 나타낸 태그 데이터를 포함한다. 다른 일 예에서, 품사 데이터베이스는 python nltk(natural language toolkit)에서 제공하는 pos tagging 함수와 같은, 해당 품사를 판단하는 함수 데이터를 포함한다.
의미 데이터베이스는 텍스트를 미리 설정된 의미적 카테고리로 분류한 데이터를 포함한다. 여기서, 의미적 카테고리는 단어의 의미에 연관된 특성(characterstic)에 기초하여 단어를 분류할 수 있는 카테고리를 나타낸다. 일 예에서, 의미 데이터베이스의 의미적 카테고리는 (noun.person, noun.phenomenon, verb.emotion 등과 같은) Wordnet에서 제공하는 lexicographer file의 이름(lexname) 45개의 의미적 카테고리일 수 있다.
동의어 데이터베이스는 텍스트를 동의어로 분류한 데이터를 포함한다. 일 텍스트와 다른 텍스트가 동의어인 경우, 동일한 동의어 집합에 포함된다. 일 예에서, 동의어 데이터베이스의 동의어 집합은 Wordnet에서 제공하는 Synset일 수 있다.
키워드 데이터베이스는 키워드 리스트를 포함한다. 상기 키워드 리스트는 미리 설정된 것으로서, 컨텐츠에 연관된 중요 단어를 키워드로 포함한다. 상기 키워드 데이터베이스는 컨텐츠 별로 (또는 컨텐츠 유형 별로) 하나 이상의 키워드 리스트를 포함할 수 있다.
전술한 다양한 데이터베이스는 외부 데이터베이스로부터 획득될 수도 있거나, 또는 (예컨대, 타이핑, 또는 사용자가 외부 저장 매체를 연결하는 것 등을 포함한) 사용자에 의한 입력에 의해 저장부(600)에 저장될 수 있다.
상기 퀴즈 생성 장치(1)가 다른 구성요소를 포함할 수도 있다는 것이 통상의 기술자에게 명백할 것이다. 예를 들어, 데이터 엔트리를 위한 입력 장치, 및 인쇄 또는 다른 데이터 표시를 위한 출력 장치를 포함하는, 본 명세서에 서술된 동작에 필요한 다른 하드웨어 요소를 포함할 수도 있다. 또한, 퀴즈 생성 장치(1)와 외부 장치(예를 들어, 사용자 단말, 또는 외부 데이터베이스 등) 사이를 연결하는 네트워크, 네트워크 인터페이스 및 프로토콜 등을 더 포함할 수 있다.
도 3은, 본 발명의 일 실시예에 따른, 객관식 빈칸 채우기 퀴즈를 생성하는 방법(이하, "퀴즈 생성 방법")을 개략적으로 설명하기 위한 도면이다.
퀴즈 생성 장치(1)는 텍스트를 포함한 컨텐츠를 획득한다(S100). 여기서, 컨텐츠의 텍스트는 복수의 텍스트 단위별로 추출 가능하다. 예를 들어, 컨텐츠의 텍스트는 문서, 문장, 단어 단위로 추출 가능할 수 있다.
모델링부(300)는 컨텐츠에 포함된 텍스트에 기초하여 상기 텍스트 임베딩 모델(2)을 모델링한다(S300).
일 실시예에서, 퀴즈 생성 장치(1)는 텍스트 임베딩 모델(2)을 모델링(S300)하기 이전에, 텍스트를 문서 단위, 문장 단위, 단어 단위로 추출하여 컨텐츠의 텍스트를 전처리할 수 있다(S200).
그 후, 퀴즈 생성부(400)는 컨텐츠를 모델링된 텍스트 임베딩 모델(2)에 적용하여 정답 및 오답을 포함한 선택지를 갖는 객관식 빈칸 채우기 퀴즈를 생성한다(S400).
실제 사람은 어떤 문서에 대한 빈칸 채우기 퀴즈를 생성할 때 어떤 문장이 해당 문서에서 가장 중요한지, 그리고 선택된 문장에서 어떤 단어가 가장 중요한지를 고려한다. 여기서, "중요"의 의미는 해당 문서 및 문장을 가장 잘 요약하는 (즉, 문서 및 문장이 나타내는 의미를 함축시켜 표현하는) 것을 의미한다. 따라서, 가장 중요한 문장(즉, 요약 문장)은 해당 문서(즉, 요약 대상)의 의미와 가장 비슷한 문장을 나타낸다.
퀴즈 생성부(400)는 해당 문서에서 가장 유사한 의미를 갖는 문장을 선택하여 퀴즈의 문제를 생성하기 위해 사용한다. 선택되는 문장은 해당 문서 내에 포함된 문장이다.
일 실시예에서, 퀴즈 생성부(400)는 컨텐츠가 텍스트 임베딩 모델(2)에 적용되어 산출된 텍스트 벡터에 기초하여 (즉, 임베딩 결과에 기초하여) 문서와 가장 유사한 의미를 갖는 문장(Ssimilar)을 퀴즈의 문제 몸체로 선택한다. 예를 들어, 문서(d)가 텍스트 임베딩 모델(2)에 적용되면, 행렬(D)에 의해 문서 임베딩을 나타내는 문서 벡터가 산출된다. 또한, 행렬(S)에 의해 문장 임베딩을 나타내는 문장 벡터가 산출되고, 행렬(W)에 의해 단어 임베딩을 나타내는 단어 벡터가 산출된다. 전술한 바와 같이, 텍스트 임베딩 모델(2)은 텍스트의 의미적 특성을 반영하도록 학습되었기 때문에, 벡터 사이의 거리가 가장 가까울수록 두 벡터에 대응하는 텍스트의 의미가 유사하다.
이러한 과정을 통해, 퀴즈 생성부(400)는 해당 문서에서 가장 중요한 문장을 (즉, (예컨대, 해당 문서의 의미를 가장 잘 요약하는 것과 같은) 해당 문서의 의미와 가장 유사한 의미를 갖는 문장을) 선택하여 퀴즈의 문제로 사용할 수 있다.
또한, 퀴즈 생성부(400)는 상기 문제로 사용되는 문장을 미리 설정된 수량(예컨대, kds 개)만큼 선택할 수 있다(S410).
그 후, 퀴즈 생성부(400)는 빈칸(gap)으로 치환될 정답지를 선택한다. 빈칸 채우기 퀴즈에 있어서 퀴즈 문제에서 중요한 키워드가 정답지로 (즉, 빈칸(gap)으로) 설정된다.
일 실시예에서, 퀴즈 생성부(400)는 컨텐츠가 텍스트 임베딩 모델(2)에 적용되어 산출된 텍스트 벡터에 기초하여 (즉, 임베딩 결과에 기초하여) 단계(S410)에서 선택된 문장과 가장 유사한 의미를 갖는 단어를 정답지로 선택한다. 퀴즈 생성부(400)는 상기 정답지를 미리 설정된 수량(예컨대, ksg 개)만큼 선택한다(S430). 선택된 문장 임베딩과 거리가 가까운 단어가 해당 문장을 잘 요약한 정답지인 것을 나타낸다.
일부 실시예에서, 정답지 선택 과정(S430)에서, 정답지는 의미의 유사성 이외에 추가적인 요소에 더 기초하여 선택될 수 있다. 예를 들어, 정답지는 명사와 수(cardinal)로 한정될 수 있다. 일반적으로 중요한 단어는 거의 대부분 명사이고, 또한 수도 연도 등 중요한 정보를 나타내는 경우가 많기 때문이다.
이어서, 퀴즈 생성부(400)는, 정답과 함께 보기를 구성하는, 오답지를 선택한다(S450). 일 실시예에서, 퀴즈 생성부(400)는 컨텐츠가 텍스트 임베딩 모델(2)에 적용되어 산출된 텍스트 벡터에 기초하여 (즉, 임베딩 결과에 기초하여) 단계(S430)에서 선택된 정답지와 가장 유사한 의미를 갖는 단어를 오답지로 선택한다. 퀴즈 생성부(400)는 오답지를 미리 설정된 수량(예컨대, kgt개)만큼 선택한다.
추가적으로, 퀴즈 생성부(400)는 오답지를 선택하는 과정에서 오답지의 품질을 개선하기 위해 추가적인 조건에 기초하여 오답지를 선택할 수 있다.
일 실시예에서, 퀴즈 생성부(400)는 아래의 조건 중 하나 이상을 포함한 오답지 선택 조건에 기초하여 오답지를 선택할 수 있다. 즉, 단계(S430)에서 선택된 정답지와 가장 유사한 의미를 갖는 소정 개수의 단어를 오답지 후보 단어로 선택하고, 오답지 선택 조건을 충족하는 오답지 후보 단어를 오답지로 선택한다.
제1 조건으로, 퀴즈 생성부(400)는 정답지를 포함한 문장의 위치와 오답지 후보 단어를 포함한 문장의 위치가 상이한지 여부를 확인한다. 퀴즈 생성부(400)는 정답지와 동일한 문장에 있지 않은 단어를 오답지로 선택한다. 오답지가 정답에 해당하는 정답지와 동일한 문장에 존재하는 경우, 상기 오답지는 명백한 오답일 것이 일반적이다. 따라서, 정답지와 동일한 문장의 단어가 오답지로 선택되면, 오답지로 기능할 수 없다. 결국, 정답지와 오답지 후보 단어는 같은 문장에 있지 않아야 한다.
일 예에서, 퀴즈 생성부(400)는 정답지를 포함한 문장의 위치를 검색하여 제1 조건의 충족 여부를 확인할 수 있다.
제2 조건으로, 퀴즈 생성부(400)는 품사 데이터베이스에 기초하여 정답지의 품사와 오답지 후보 단어의 품사가 동일한 품사인지 확인한다. 퀴즈 생성부(400)는 정답지의 품사와 동일한 품사의 단어를 오답지로 선택한다. 정답지와 품사가 다른 단어가 오답지로 선택되면, 오답지로 기능할 수 없을 확률이 높다. 즉, 정답지와 오답지 후보 단어는 동일한 품사여야 한다.
일 예에서, 퀴즈 생성부(400)는 python nltk에서 제공하는 post tagging 함수를 이용하여 정답지와 post tag가 동일한 단어를 오답지로 선택할 수 있다.
제3 조건으로, 퀴즈 생성부(400)는 의미 데이터베이스에 기초하여, 정답지와 오답지 후보 단어가 동일한 의미적 카테고리에 포함되는지 확인한다. 보다 넓은 텍스트 개념 측면에서 정답지와 동일한 의미적 카테고리에 포함된 단어가 오답지로 선택되어야, 사용자의 오답 유발을 보다 높은 확률로 보장할 수 있는, 고품질의 오답지로 기능한다. 즉, 정답지와 오답지 후보 단어는 동일한 의미적 카테고리에 포함된다.
일 예에서, 퀴즈 생성부(400)는 wordnet에서 제공하는 lexicographer file의 이름(lexname)이 동일한지 여부에 기초하여 정답지와 오답지 후보 단어가 동일한 의미적 카테고리에 포함되어 있는지 확인한 뒤, 포함된 오답지 후보 단어를 오답지로 선택한다.
제4 조건으로, 퀴즈 생성부(400)는 동의어 데이터베이스에 기초하여, 정답지와 오답지 후보 단어가 동일한 동의어 집합에 포함되지 않는지 확인한다. 여기서, 동의어란 단어의 모양은 다르지만 뜻이 동일 또는 유사한 단어를 나타낸다. 예를 들어, "아기"와 "유아", "구입"과 "구매", "가게"와 "상점" 등이 동의어 관계이다. 정답지와 동의어 관계인 단어는 명백한 오답이 아닐 수 있다. 즉, 정답지와 동의어 관계인 오답지를 갖는 객관식 퀴즈에서는, 정답으로 설정된 보기와 다른 보기가 정답으로 해석될 여지가 있어, 객관식 퀴즈의 품질이 높다고 볼 수 없다. 즉, 정답지와 오답지 후보 단어는 동의어 관계에 있지 않아야 한다.
일 예에서, 퀴즈 생성부(400)는 wordnet에서 제공하는 synset에 기초하여 정답지와 오답지 후보 단어가 동일한 동의어 집합에 포함되지 않는지 확인한 뒤, 동일한 동의어 집합에 포함되지 않은 오답지 후보 단어를 오답지로 선택한다.
전술한 단계들(S100 내지 S400)을 포함한 퀴즈 생성 방법은 (외부의 사전(dictionary), 미리 정의된 키워드 리스트와 같은) 텍스트 도메인에 종속된 조건에 기초하지 않아 다양한 텍스트에 대해 제한 없이 고품질의 퀴즈를 생성할 수 있다. 즉, 다른 텍스트로의 전이성이 뛰어나다.
추가적으로, 퀴즈 생성 방법은 (예컨대, 텍스트 임베딩 모델(2)에 적용된 문서의 핵심 내용과 관련된) 보다 고품질의 퀴즈를 사용자에게 제공할 수 있도록, 객관식 빈칸 채우기 퀴즈를 필터링하는 단계(S500)를 더 포함할 수 있다.
특정 컨텐츠의 경우 미리 정의된 키워드 리스트가 생성되는 퀴즈의 품질에 영향을 미칠 수 있다. 예를 들어, 교과서의 색인(index)과 같은 키워드 리스트가 있을 수 있다. 색인과 같은 키워드 리스트에 포함된 키워드는 정답지와 오답지의 좋은 후보로 사용될 수 있다. 또한, 일반적으로 퀴즈에 키워드 리스트에 포함된 키워가 많이 포함될수록 고품질의 퀴즈로 평가될 수 있다. 즉, 키워드 리스트를 통해 컨텐츠에 대한 특수성을 추가로 고려하여 사용자에게 보다 고품질의 퀴즈를 제공할 수 있다.
일 실시예에서, 필터링부(500)는 색인과 같은 키워드 리스트를 이용하여 품질이 나쁘다고 평가되는 퀴즈를 필터링하는 사후 필터링(post-filtering) 동작을 수행한다.
필터링부(500)는 생성된 퀴즈 내 키워드의 빈도에 기초한 퀴즈의 키워드 점수, 생성된 퀴즈 내 컨텐츠 타이틀에 포함된 텍스트의 빈도에 기초한 퀴즈의 타이틀 점수, 및 컨텐츠 내 텍스트의 빈도에 기초한 중요도 점수 중 하나 이상을 이용하여 퀴즈 품질 점수를 산출하고, 소정 임계 점수 미만의 퀴즈 품질 점수를 갖는 퀴즈를 필터링한다.
일 실시예에서, 필터링부(500)는 다음의 수학식에 의해 단계(S400)에서 생성된 퀴즈(q)에 대한 퀴즈 품질 점수를 산출한다. 퀴즈(q)는 문서(d)가 텍스트 임베딩 모델(2)에 적용되어 문제로 사용되는 문장(s), 정답 보기로 사용되는 정답지(g), 오답 보기로 사용되는 오답지(T)를 포함하므로, (d, s, g, T)로 표현될 수 있다.
Figure 112018073184523-pat00001
여기서, wkScoreKq(q)는 키워드 점수, wLScoreLq(q)는 타이틀 점수, 그리고 wTF-IDFTF-IDFq(q)는 중요도 점수를 나타낸다. wk, wL, wTF-IDF 는 각 요소들의 가중치를 나타낸다.
상기 키워드 점수는 다음의 수학식에 의해 산출된다.
Figure 112018073184523-pat00002
여기서, d는 문서 집합, s는 문장 집합, w는 단어 집합, K는 미리 정의된 키워드 집합, g는 정답지 집합, T는 오답지 집합, ws, wg, wT 는 각 요소들의 가중치를 나타낸다. 여기서, ws, + wg + wT = 1이다.
또한, ScoreKq 는 키워드 리스트 측면에서 퀴즈의 각 요소(즉, 문장, 정답지 그리고 오답지)의 품질을 나타내는 점수이다. ScoreKs(d, s)는 퀴즈의 문제(즉, 문장)에 대한 점수, ScoreKw(g)는 정답지에 대한 점수를 나타낸다.
그리고,
Figure 112018073184523-pat00003
는 오답지에 대한 점수를 나타낸다.
미리 정의된 키워드 리스트에 대한 문장 점수(ScoreKs) 및 단어 점수(ScoreKw)는 다음의 수학식에 의해 정의된다.
Figure 112018073184523-pat00004
Figure 112018073184523-pat00005
여기서, 문장 점수(ScoreKs)는 문서 d에 포함된 키워드의 개수와 문장 s에 포함된 키워드 개수의 비율로서, 문장 s가 문서 d에 포함된 키워드를 가지고 있는 비율을 나타낸다.
그리고 단어 점수(ScoreKw)는 단어 w가 키워드인지 아닌지를 불린(Boolean)으로 나타낸 것이다.
또한, 상기 타이틀 점수는 미리 정의된 키워드 리스트가 없을 경우 컨텐츠의 제목(예컨대, 문서 컨텐츠의 제목)에 기초하여 품질 산정에 사용되는 타이틀 점수를 산출한다. 컨텐츠의 제목은 컨텐츠의 핵심 내용을 나타내는 단어를 포함하기 때문이다. 상기 타이틀 점수는 다음의 수학식에 의해 산출된다.
Figure 112018073184523-pat00006
또한, ScoreLq 는 문서 컨텐츠의 제목 측면에서 퀴즈의 각 요소(즉, 문장, 정답지 그리고 오답지)의 품질을 나타내는 점수이다. ScoreLs(d, s)는 퀴즈의 문제(즉, 문장)에 대한 점수, ScoreLw(g)는 정답지에 대한 점수를 나타낸다.
그리고,
Figure 112018073184523-pat00007
는 오답지에 대한 점수를 나타낸다.
문서 컨텐츠의 제목에 대한 문장 점수(ScoreLs) 및 단어 점수(ScoreLw)는 다음의 수학식에 의해 정의된다.
Figure 112018073184523-pat00008
Figure 112018073184523-pat00009
여기서, 문장 점수(ScoreLs)는 문서 컨텐츠의 제목(title(d))에 포함된 단어가 문장 s에 포함된 비율을 나타내는 점수이다. 그리고 단어 점수(ScoreLw)는 단어 w가 문서 컨텐츠의 제목에 포함되었는지 아닌지를 불린(Boolean)으로 나타낸 것이다.
또한, 상기 중요도 점수(wTF-IDFTF-IDFq(q))는 키워드 리스트 내 키워드, 또는 문서 컨텐츠의 제목에 포함된 단어와 같은, 중요 단어의 중요도를 나타낸다. 예를 들어, 세계사 책 컨텐츠에서 "전쟁"이라는 단어와 "장미 전쟁"이란 단어는 모두 키워드이다. 그러나, 세계사 책에서 "전쟁"이 "장미 전쟁" 보다 더 흔하기 때문에, "장미 전쟁"이 더 중요 단어에 포함될 수 있다. 즉, 중요도 점수는 컨텐츠 내에서 특정 텍스트의 빈도(즉, 등장 횟수)에 기초하는, TF-IDF 점수의 일종이다. TF-IDF(Tern Frequency-Inverse Document Frequency) 점수란 정보 검색(information Retrieval)과 텍스트 마이닝(text miing) 등에서 사용되는 점수로서, 문서로 이루어진 문서 집합(즉, 문서 컨텐츠) 중 특정 문서 내에서 특정 단어의 중요도를 나타낸다. TF-IDF 점수는 다음의 수학식에 의해 정의된다.
Figure 112018073184523-pat00010
여기서, TF(d, w)는 문서(d) 내 단어(w)의 빈도를 나타내는 점수로서, n(d)는 문서(d)의 단어 개수, n(d, w)는 문서(d)에서 등장하는 단어(w)의 개수를 나타낸다. IDF(w)는 단어(w)가 다른 문서에 얼마나 등장하는 지를 나타내는 점수로서, n(w)는 단어(w)가 등장하는 문서의 개수이다. 즉, 문서 내 단어의 등장 빈도와 다른 문서 내 동일 단어의 등장 빈도를 모두 고려하여 단어의 중요도를 나타낸다.
일 실시예에서, 상기 퀴즈 품질 점수를 산출하기 위해 사용되는 중요도 점수는 다음의 수학식에 의해 산출된다.
Figure 112018073184523-pat00011
여기서, 문서 컨텐츠에 포함된 문서(d) 내에서 문장(s)의 중요도를 나타내는 문장 점수(TF-IDFs(d, s)) 및 단어 점수(TF-IDFw(d,s))는 다음의 수학식에 의해 정의된다.
Figure 112018073184523-pat00012
Figure 112018073184523-pat00013
이와 같이, 필터링부(500)는 키워드 측면, 컨텐츠의 제목 측면, 및/또는 퀴즈 내 단어의 중요도 측면을 모두 고려하여 퀴즈 품질 점수를 산출하고, 퀴즈 품질 점수(ScoreQuizf(q))가 소정 임계 점수에 도달하지 못한 퀴즈(q)는 필터링한다. 필터링된 퀴즈는 사용자에게 제공되지 않아, 사용자는 고품질의 퀴즈를 제공받을 수 있다.
도 5는, 도 3의 방법에 따른 예시적인 실험예를 설명하기 위한 도면이다. 상기 실험예에서는, 문서가 너무 길어져서 데이터 처리가 늦어지는 것을 방지하기 위해, 문서 단위를 섹션으로 설정하여 진행되었다.
예시적인 실험예에서, 데이터베이스 책("Database System Concetps 6th edition")과 생물학 책(Campbell Biology 9th edition)을 컨텐츠로 획득할 수 있다(S100). 상기 컨텐츠들에 포함된 텍스트는 도 5에 도시된 바와 같은 텍스트 관련 정보로 표현될 수 있다.
단계(S200)에서 문서 단위로 토큰화된 것을 다시 차례로 문장 단위, 단어 단위로 토큰화하여 데이터 셋을 구축한다. 마지막으로 각 텍스트의 색인에 있는 단어들을 추출하였다.
단계(S300)에서, 텍스트 임베딩 모델(2)이 전처리된 텍스트에 기초하여 모델링된다. 모델링 과정에서 발생한 에러는 단어 행렬, 문장 행렬, 문서 행렬로 전파되어 행렬의 파라미터들이 업데이트되고, 결국, 텍스트 임베딩 모델(2)이 학습된다.
상기 실험예에서, 해당 임베딩을 구현하기 위해 딥 러닝(Deep Learning) 라이브러리(library) Chainer를 이용하였으며, 벡터의 길이는 200, 단어 윈도우(window)를 5, 문장 윈도우를 3으로 하여 배치(batch)의 크기 1000으로 20번의 학습을 반복하였다. 한편, 텍스트 임베딩 모델(2)의 초기 값은 미리 학습된 단어 임베딩 모델(GloVe)을 사용하였다.
단게(S400)에서, 학습된 임베딩을 바탕으로 문서 당 상위 4개의 문장을 퀴즈 문제로 선택하였고(Sentence Selection), 문장당 상위 2개의 단어를 정답지로 선택하였다(Gap Selection). 각 정답지당 3개의 오답지를 생성하여 보기를 4개 가진 객관식 빈칸 채우기 퀴즈를 생성하였다(Distractor Selection). 여기서 상위란 상위 텍스트 단위의 텍스트 임베딩과 가장 의미가 유사한 k개의 다음 텍스트 단위의 임베딩을 나타낸다. 예를 들어, 상위 4개의 문장은 문서 임베딩과 가장 의미가 유사한 (즉, 벡터 간 거리가 가장 가까운) 4개의 문장 임베딩을 나타낸다. 또한, 상위 2개의 단어는 문장 임베딩과 가장 의미가 유사한 2개의 단어 임베딩을 나타낸다. 실험 결과, 데이터베이스 책에 대해서 7,263개, 생물학 책에 대해서 13,136개의 퀴즈가 생성되었다.
단계(S500)에서 임계 점수는 0.3으로, 가중치 값을 모두 1/3씩 설정한 결과, 데이터베이스 책에 대해서 2,564개, 937개의 퀴즈가 각각 생성된다.
추가적으로, 객관식 빈칸 채우기 퀴즈 생성 장치(1)는 일부 동작을 변형하여 객관식 빈칸 채우기 이외의 다양한 유형의 퀴즈를 생성할 수 있다.
예를 들어, 오답지 생성 과정을 제외한다면 주관식과 같은 객관식 유형 이외의 유형의 퀴즈를 생성할 수 있다. 이 경우, 사용자는 주관식 정답을 퀴즈 생성 장치(1)에 입력하고, 입력된 데이터와 정답 데이터를 비교하여 주관식 문제의 정답 여부가 확인될 수 있다.
나아가, 정답지가 빈칸으로 치환되는 과정을 제외하면, 컨텐츠(또는 문서)에서 임베딩 결과에 기초하여 핵심 문장 또는 단어를 추출하는 동작 등에 의해, 단답식 또는 약술형 퀴즈를 생성할 수도 있다.
이상에서 설명한 실시예들에 따른 객관식 빈칸 채우기 퀴즈를 생성하는 장치 및 방법에 의한 동작은 적어도 부분적으로 컴퓨터 프로그램으로 구현되어, 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 예를 들어, 프로그램 코드를 포함하는 컴퓨터-판독가능 매체로 구성되는 프로그램 제품과 함께 구현되고, 이는 기술된 임의의 또는 모든 단계, 동작, 또는 과정을 수행하기 위한 프로세서에 의해 실행될 수 있다.
상기 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.
이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.
본 발명은 4차 산업 기술 중 하나인 기계 학습에 의해 모델링된 텍스트 임베딩 모델을 이용하여 객관식 빈칸 채우기 퀴즈를 자동으로 생성할 수 있다. 특히, 모델링 과정에서 단어, 문장, 문서 임베딩을 동시에 학습하여 텍스트 임베딩 모델의 파라미터에 의미적 특성을 반영하게 할 수 있다.
대한민국의 높은 교육열로 인해 교육 산업의 시장 규모는 매우 큰 것이 현실이다. 본 발명은 교육 산업에서 다양한 방식으로 사용될 수 있으며, 특히 사람의 수고 없이 의미적 특성을 고려한 고품질의 빈칸 채우기 퀴즈를 자동으로 생성하여 높은 상업적 수익을 기대할 수 있는 사업 모델로 이용될 수도 있다. 또한, 객관식 유형 이외에 주관식 퀴즈, 단답식 퀴즈, 약술형 퀴즈를 생성하는데도 활용될 수 있다.
나아가, 퀴즈 생성에 한정되지 않고 다양한 분야에서도 이용될 수 있다. 예를 들어, 본 발명은 텍스트에서 의미를 기반으로 (즉, 임베딩 결과에 기초하여) 핵심을 추출할 수 있어, 대용량 데이터에서 핵심 의미만을 사용자에게 제공할 수 있다. 따라서, 텍스트의 요약이 필수적인, 페이지 요약 등의 여러 분야에 이용할 수 있다. 또는, 네트워크 상에서 송수신되는 텍스트들을 의미 요약을 통해 분석하여 물리적, 통신적 분야에서 보안의 위협을 미리 감지해 낼 수 도 있을 것이다.

Claims (18)

  1. 퀴즈 생성 시스템에 의해 수행되는, 객관식 빈칸 채우기 퀴즈를 생성하는 방법으로서,
    텍스트를 포함한 컨텐츠를 획득하는 단계;
    상기 텍스트에 기초하여 텍스트 임베딩 모델을 모델링하는 단계; 및
    상기 텍스트를 텍스트 임베딩 모델에 적용하여 정답지와 오답지를 보기로 갖는 객관식 빈칸 채우기 퀴즈를 생성하는 단계를 포함하되,
    상기 텍스트 임베딩 모델은 제1 레이어 및 제2 레이어를 포함하고,
    상기 제1 레이어는, 제1 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제1 행렬; 및 상기 제1 텍스트 단위를 이루는 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제2 행렬을 포함한 제1-1 서브 레이어; 및 상기 제1-1 서브 레이어에 의해 산출된 복수의 텍스트 벡터에 기초하여 상기 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제1-2 서브 레이어를 포함하며,
    상기 제2 레이어는, 상기 제2 텍스트 단위를 이루는 제3 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제3 행렬을 포함한 제2-1 서브 레이어; 및 상기 제2-1 서브 레이어에 의해 산출된 복수의 텍스트 벡터에 기초하여 상기 제3 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제2-2 서브 레이어를 포함하고,
    상기 텍스트 임베딩 모델은, 상기 제1 레이어의 제1-2 서브 레이어가 상기 제2 레이어의 제2-1 서브 레이어에 포함되는 구조를 갖는 것을 특징으로 하는 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 제1 레이어에서 산출되는 상기 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터는 예측 텍스트에 대한 텍스트 벡터로서,
    상기 제1 레이어의 예측 텍스트는 상기 컨텐츠 내에서 상기 제1 레이어에 입력된 제2 텍스트 단위의 텍스트의 다음 순서에 대응할 것으로 예측되는 텍스트인 것을 특징으로 하는 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 제2 레이어에서 산출되는 상기 제3 텍스트 단위의 텍스트에 대한 텍스트 벡터는 예측 텍스트에 대한 텍스트 벡터로서,
    상기 제2 레이어의 예측 텍스트는 상기 컨텐츠 내에서 상기 제2 레이어에 입력된 제3 텍스트 단위의 텍스트의 다음 순서에 대응할 것으로 예측되는 텍스트인 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 제1 레이어의 제1-2 서브 레이어 또는 제2 레이어의 제2-2서브 레이어는 입력되는 복수의 텍스트 벡터를 결합하도록(concatenate) 구성되는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 컨텐츠를 텍스트 임베딩 모델에 적용하여 퀴즈를 생성하는 단계는,
    임베딩 결과에 기초하여, 상기 제1 텍스트 단위의 텍스트와 가장 유사한 의미를 갖는 제2 텍스트 단위의 제1 텍스트를, 퀴즈의 문제 몸체로 선택하는 단계;
    임베딩 결과에 기초하여, 상기 제1 텍스트와 가장 유사한 의미를 갖는 제3 텍스트 단위의 제2 텍스트를, 선택시 정답으로 판단되는 정답지로 선택하는 단계;
    임베딩 결과에 기초하여, 상기 제2 텍스트와 가장 유사한 의미를 갖는 제3 텍스트 단위의 제3 텍스트를 선택시 오답으로 판단되는 오답지로 선택하는 단계; 및
    상기 정답지를 빈칸으로 변환하여 빈칸 채우기 퀴즈의 문제를 생성하고, 상기 정답지 및 오답지에 기초하여 보기를 생성하여, 객관식 빈칸 채우기 퀴즈를 생성하는 단계를 포함하는 방법.
  8. 제7항에 있어서,
    상기 제1 텍스트는 제1 수량만큼 선택되고, 상기 제2 텍스트는 제2 수량만큼 선택되며, 상기 제3 텍스트는 제3 수량만큼 선택되는 것을 특징으로 하는 방법.
  9. 제7항에 있어서, 상기 제3 텍스트를 선택하는 단계는,
    상기 제2 텍스트를 포함한 제1 텍스트와 위치와 상기 제3 텍스트를 포함한 제1 텍스트의 위치가 상이한지 여부를 확인하는 단계; 및
    상기 확인 결과를 만족하는 제3 텍스트 단위의 텍스트를 상기 오답지로 선택하는 단계를 포함하는 방법.
  10. 제9항에 있어서, 상기 제3 텍스트를 선택하는 단계는,
    품사를 나타내는 데이터를 포함한 품사 데이터베이스에 기초하여, 상기 제2 텍스트의 품사와 제3 텍스트의 품사가 동일한 품사인지 확인하는 단계;
    텍스트를 미리 설정된 의미적 카테고리로 분류한 데이터를 포함한 의미 데이터베이스에 기초하여, 상기 제2 텍스트와 제3 텍스트가 동일한 의미적 카테고리에 포함되는지 확인하는 단계; 및
    텍스트를 동의어 집합으로 분류한 데이터를 포함한 동의어 데이터베이스에 기초하여, 상기 제2 텍스트 및 제3 텍스트가 동일한 동의어 집합에 포함되지 않는지 여부를 확인하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서,
    키워드 데이터베이스에 포함된 키워드가 생성된 퀴즈의 문제 몸체에 등장한 빈도에 기초한 키워드 점수, 컨텐츠의 제목에 포함된 텍스트가 생성된 퀴즈의 문제 내에서 등장한 빈도에 기초한 타이틀 점수, 및 상기 컨텐츠 내에서 텍스트가 등장한 빈도에 기초한 중요도 점수 중 하나 이상을 사용하여 생성된 퀴즈에 대한 퀴즈 품질 점수를 산출하고, 소정 임계 점수 미만의 퀴즈 품질 점수를 갖는 퀴즈를 필터링하는 단계를 더 포함하는 방법.
  12. 제1항에 있어서,
    상기 텍스트를 상기 텍스트 임베딩 모델에 적용하기 이전에,
    상기 텍스트를 제1 텍스트 단위, 제2 텍스트 단위, 및 제3 텍스트 단위 중 하나 이상의 단위별로 추출하여 텍스트를 전처리하는 단계를 더 포함하는 방법.
  13. 제12항에 있어서, 상기 전처리하는 단계는,
    상기 제1 텍스트 단위의 텍스트를 토큰화하여 제2 텍스트 단위의 텍스트를 추출하는 단계; 및
    상기 제2 텍스트 단위의 텍스트를 토큰화하여 상기 제3 텍스트 단위의 텍스트를 추출하는 단계를 포함하는 방법.
  14. 제12항에 있어서,
    상기 전처리된 텍스트를 샘플로 사용하여 상기 텍스트 임베딩 모델을 모델링하는 단계를 더 포함하는 방법.
  15. 제1항에 있어서, 상기 모델링하는 단계는,
    제1 레이어에 입력된 텍스트 벡터에 기초한 입력 텍스트 벡터 세트와 제1 레이어에서 출력된 텍스트 벡터에 기초한 출력 텍스트 벡터 세트 사이의 차이가 최소화되도록 각 행렬에 포함된 파라미터를 업데이트하는 단계를 포함하는 방법.
  16. 제15항에 있어서,
    상기 입력 텍스트 벡터 세트와 출력 텍스트 벡터의 차원은 동일한 것을 특징으로 하는 방법.
  17. 컴퓨터에 의해 판독가능하고, 상기 컴퓨터에 의해 동작 가능한 프로그램 명령어를 저장하는 컴퓨터 판독가능 기록매체로서, 상기 프로그램 명령어가 상기 컴퓨터의 프로세서에 의해 실행되는 경우 상기 프로세서가 제1항, 제3항, 제5항 내지 제16항 중 어느 하나의 항에 따른 방법을 수행하게 하는 컴퓨터 판독가능 기록매체
  18. 객관식 빈칸 퀴즈를 생성하는 장치로서,
    텍스트를 포함한 컨텐츠를 획득하는 데이터 획득부;
    상기 텍스트에 기초하여 텍스트 임베딩 모델을 모델링하는 모델링부;
    상기 텍스트를 텍스트 임베딩 모델에 적용하여 정답지와 오답지를 갖는 객관식 빈칸 채우기 퀴즈를 생성하는 퀴즈 생성부; 및
    품사를 나타내는 태그 데이터에 관련된 품사 데이터베이스, 텍스를 의미에 기초하여 분류한 의미적 카테고리와 관련된 의미 데이터베이스, 텍스트를 동의어로 분류한 동의어 집합과 관련된 동의어 데이터베이스, 및 키워드 리스트와 관련된 키워드 데이터베이스 중 하나 이상을 저장하는 저장부를 포함하되,
    상기 텍스트 임베딩 모델은 제1 레이어 및 제2 레이어를 포함하고,
    상기 제1 레이어는, 제1 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제1 행렬; 및 상기 제1 텍스트 단위를 이루는 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제2 행렬을 포함한 제1-1 서브 레이어; 및 상기 제1-1 서브 레이어에 의해 산출된 복수의 텍스트 벡터에 기초하여 상기 제2 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제1-2 서브 레이어를 포함하고,
    상기 제2 레이어는, 상기 제2 텍스트 단위를 이루는 제3 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제3 행렬을 포함한 제2-1 서브 레이어; 및 상기 제2-1 서브 레이어에 의해 산출된 복수의 텍스트 벡터에 기초하여 상기 제3 텍스트 단위의 텍스트에 대한 텍스트 벡터를 산출하는 제2-2 서브 레이어를 포함하고,
    상기 텍스트 임베딩 모델은, 상기 제1 레이어의 제1-2 서브 레이어가 상기 제2 레이어의 제2-1 서브 레이어에 포함되는 구조를 갖는 것을 특징으로 하는 장치.
KR1020180086085A 2018-07-24 2018-07-24 텍스트 임베딩 모델을 이용한 객관식 빈칸 채우기 퀴즈 생성 장치 및 방법 KR101926669B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180086085A KR101926669B1 (ko) 2018-07-24 2018-07-24 텍스트 임베딩 모델을 이용한 객관식 빈칸 채우기 퀴즈 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180086085A KR101926669B1 (ko) 2018-07-24 2018-07-24 텍스트 임베딩 모델을 이용한 객관식 빈칸 채우기 퀴즈 생성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101926669B1 true KR101926669B1 (ko) 2018-12-07

Family

ID=64669703

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180086085A KR101926669B1 (ko) 2018-07-24 2018-07-24 텍스트 임베딩 모델을 이용한 객관식 빈칸 채우기 퀴즈 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101926669B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200125235A (ko) * 2019-04-26 2020-11-04 주식회사 엔씨소프트 퀴즈 생성 장치 및 퀴즈 생성 방법
KR102318072B1 (ko) * 2020-09-18 2021-10-27 주식회사 렉스퍼 딥러닝 기반의 어휘 문제 자동 생성 방법

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
L. Becker et al., Mind the Gap: Learning to Choose Gaps for Question Generation, NACACL 논문집, pp.742-751, (2012)
M. Agarwal & P. Mannem, Automatic Gap-fill Question Generation from Text Books, Proc. of the 6th Workshop on IUNLP, pp.56-64 (2011.06.24.)*
R. Mitkov and L. Ha, Computer-Aided Generation of Multiple-Choice Tests, HLT-NAACL 03 workshop 논문집, Vol.2 pp.17-22 (2003)
Y. Kim, Convolutional Neural Networks for Sentence Classification, Proc. of EMNLP (2014.)*
박정혁 외, 스마트 워치를 위한 기계학습 프레임워크 모바일 응용

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200125235A (ko) * 2019-04-26 2020-11-04 주식회사 엔씨소프트 퀴즈 생성 장치 및 퀴즈 생성 방법
KR102242392B1 (ko) * 2019-04-26 2021-04-20 주식회사 엔씨소프트 퀴즈 생성 장치 및 퀴즈 생성 방법
KR102318072B1 (ko) * 2020-09-18 2021-10-27 주식회사 렉스퍼 딥러닝 기반의 어휘 문제 자동 생성 방법
WO2022060061A1 (ko) * 2020-09-18 2022-03-24 주식회사 렉스퍼 딥러닝 기반의 단어 의미 명확화 모델을 이용한 어휘 문제 자동 생성 방법, 그 컴퓨터 프로그램 및 그 서버 장치

Similar Documents

Publication Publication Date Title
US11397762B2 (en) Automatically generating natural language responses to users' questions
Gefen et al. A guide to text analysis with latent semantic analysis in R with annotated code: Studying online reviews and the stack exchange community
KR101136007B1 (ko) 문서 감성 분석 시스템 및 그 방법
JP6466952B2 (ja) 文章生成システム
JP4576397B2 (ja) 評価情報抽出装置、評価情報抽出方法およびそのプログラム
US10503830B2 (en) Natural language processing with adaptable rules based on user inputs
KR20160026892A (ko) 논팩토이드형 질의 응답 시스템 및 방법
CN108319583B (zh) 从中文语料库提取知识的方法与系统
US9632998B2 (en) Claim polarity identification
JP7297458B2 (ja) 対話コンテンツ作成支援方法
Riza et al. Question generator system of sentence completion in TOEFL using NLP and k-nearest neighbor
Das et al. Sentiment analysis of movie reviews using POS tags and term frequencies
CN115757819A (zh) 裁判文书中引用法条信息获取方法及装置
KR101333485B1 (ko) 온라인 사전을 이용한 개체명 사전 구축 방법 및 이를 실행하는 장치
WO2014000764A1 (en) A system and method for automatic generation of a reference utility
KR101926669B1 (ko) 텍스트 임베딩 모델을 이용한 객관식 빈칸 채우기 퀴즈 생성 장치 및 방법
JP5678774B2 (ja) テキストデータの冗長性を解析する情報解析装置
Chifu et al. A system for detecting professional skills from resumes written in natural language
Al-Ayyoub et al. Framework for Affective News Analysis of Arabic News: 2014 Gaza Attacks Case Study.
Antić Python Natural Language Processing Cookbook: Over 50 recipes to understand, analyze, and generate text for implementing language processing tasks
WO2016203231A1 (en) A method and system for processing data using an augmented natural language processing engine
Lee Natural Language Processing: A Textbook with Python Implementation
Shekhar et al. Computational linguistic retrieval framework using negative bootstrapping for retrieving transliteration variants
Lai et al. An unsupervised approach to discover media frames
CN113326348A (zh) 一种博客质量评估方法及工具

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant