KR20220118579A - 인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법 - Google Patents

인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법 Download PDF

Info

Publication number
KR20220118579A
KR20220118579A KR1020210021828A KR20210021828A KR20220118579A KR 20220118579 A KR20220118579 A KR 20220118579A KR 1020210021828 A KR1020210021828 A KR 1020210021828A KR 20210021828 A KR20210021828 A KR 20210021828A KR 20220118579 A KR20220118579 A KR 20220118579A
Authority
KR
South Korea
Prior art keywords
formula
text
solution result
solution
database
Prior art date
Application number
KR1020210021828A
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 KR1020210021828A priority Critical patent/KR20220118579A/ko
Priority to PCT/KR2022/002463 priority patent/WO2022177372A1/ko
Publication of KR20220118579A publication Critical patent/KR20220118579A/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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • 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
    • 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
    • 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/3322Query formulation using system suggestions
    • 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
    • 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/3346Query execution using probabilistic model
    • 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/335Filtering based on additional data, e.g. user or group profiles
    • 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/35Clustering; Classification
    • 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/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/111Mathematical or scientific formatting; Subscripts; Superscripts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B7/00Electrically-operated teaching apparatus or devices working with questions and answers
    • G09B7/02Electrically-operated teaching apparatus or devices working with questions and answers of the type wherein the student is expected to construct an answer to the question which is presented or wherein the machine gives an answer to the question presented by a student
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/55Education

Abstract

본 문서에 개시되는 인공지능 튜터링 시스템의 동작 방법은, 사용자 장치로부터 이미지를 획득하는 동작, OCR을 이용하여 상기 이미지에 포함된 문제의 텍스트 및 수식을 추출하는 동작, 수식 풀이 모듈의 알고리즘을 이용하여 상기 텍스트 및 상기 수식에 대한 제1 풀이 결과를 생성하는 동작, 데이터 베이스로부터 상기 텍스트 및 상기 수식에 대한 제2 풀이 결과를 검색하는 동작, 및 상기 제1 풀이 결과 상기 제2 풀이 결과의 신뢰도에 기반하여 상기 제1 풀이 결과 및 상기 제2 풀이 결과 중 적어도 하나를 제공하는 동작을 포함할 수 있다.

Description

인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법{SYSTEM FOR PROVIDING TUTORING SERVICE USING ARTIFICIAL INTELLIGENCE AND METHOD THEREOF}
본 문서에서 제공되는 다양한 실시예들은 인공지능(artificial intelligence, AI)을 이용하여 튜터링(tutoring) 서비스를 제공하기 위한 기술에 관한 것이다.
AI 기술의 발달로 튜터링 서비스는 학습자에게 수학 문제에 대한 해답을 제공할 수 있다. 예를 들어, 학습자는 스마트폰과 같은 사용자 장치를 이용하여 원하는 수학 문제를 업로드하고, 애플리케이션을 통해 구현되는 튜터링 서비스는 업로드 된 수학 문제에 대한 해답과 풀이 과정을 제공할 수 있다.
튜터링 서비스가 수학 문제에 대한 풀이 결과를 제공하는 방법은 크게 두 가지로 분류될 수 있다. 첫 번째는 계산기와 같이 수식을 자동으로 풀이하는 수식 풀이 방식이다. 해당 방식의 경우 단순한 수식의 풀이는 제공할 수 있으나 수식이 아닌 글자나 문장으로 구성된 문제를 인식하여 풀이할 수 없다는 한계를 가지고 있다. 두 번째는 학습자가 업로드 한 문제의 풀이 결과를 데이터 베이스에 기 저장된 자료로부터 검색하는 풀이 검색 방식이다. 예를 들어, 튜터링 서비스는 선생님이 직접 풀이 결과를 작성한 데이터를 데이터 베이스에 수집하고, 학습자가 질문한 문제와 동일 또는 유사한 문제를 데이터 베이스로부터 검색하여 풀이 결과를 제공할 수 있다. 이 경우, 학습자가 원하는 수준의 검색 결과를 제공하기 위하여 충분한 양의 데이터를 확보해야 하며 모든 문제에 대하여 데이터 베이스를 확보하는 것은 현실적으로 불가능에 가깝다. 특히 텍스트가 포함된 문제의 경우 각 국가의 언어에 맞는 검색 결과를 추가적으로 확보해야 하므로 많은 시간과 비용의 투입이 불가피하다.
또한, 학습자가 수학 문제를 이미지로 촬영하여 업로드할 경우, OCR(optical character recognition)을 이용하여 이미지에 포함된 수식이나 텍스트를 인식해야 하며 이 과정에서 오인식이 발생할 수 있다.
본 문서에 개시되는 다양한 실시예들은 상술한 문제점을 해결하기 위한 인공지능 튜터링 시스템 및 그에 관한 방법을 제공하고자 한다.
본 문서에 개시되는 일 실시예에 따른 인공지능 튜터링 시스템의 동작 방법은, 사용자 장치로부터 이미지를 획득하는 동작, OCR을 이용하여 상기 이미지에 포함된 문제의 텍스트 및 수식을 추출하는 동작, 수식 풀이 모듈의 알고리즘을 이용하여 상기 텍스트 및 상기 수식에 대한 제1 풀이 결과를 생성하는 동작, 데이터 베이스로부터 상기 텍스트 및 상기 수식에 대한 제2 풀이 결과를 검색하는 동작, 및 상기 제1 풀이 결과 상기 제2 풀이 결과의 신뢰도에 기반하여 상기 제1 풀이 결과 및 상기 제2 풀이 결과 중 적어도 하나를 제공하는 동작을 포함할 수 있다.
본 문서에 개시되는 일 실시예에 따른 인공지능 튜터링 시스템은, 사용자 장치로부터 이미지를 획득하고, OCR을 이용하여 상기 이미지 내에 포함된 문제의 텍스트 및 수식을 추출하고, 수식 풀이 모듈의 알고리즘을 이용하여 상기 텍스트 및 상기 수식에 대한 제1 풀이 결과를 생성하고, 데이터 베이스로부터 상기 텍스트 및 상기 수식에 대한 제2 풀이 결과를 검색하고, 및 상기 제1 풀이 결과 상기 제2 풀이 결과의 신뢰도에 기반하여 상기 제1 풀이 결과 및 상기 제2 풀이 결과 중 적어도 하나를 제공하는 서버를 포함할 수 있다.
본 문서에 개시되는 실시예들에 따르면, 인공지능 튜터링 시스템은 수식 풀이 방식과 풀이 검색 방식 각각의 단점을 상호 보완할 수 있는 통합 솔루션을 제공할 수 있다.
또한, 본 문서에 개시되는 실시예들에 따르면, 인공지능 튜터링 시스템은 검색 성공률을 극대화하고 타 국가의 언어 실정에도 부합하는 튜터링 서비스를 제공할 수 있다.
또한, 본 문서에 개시되는 실시예들에 따르면, 인공지능 튜터링 시스템은 학습자가 업로드한 문제에 대한 오인식을 줄이고, 텍스트가 포함된 문제를 보다 정확하게 인식할 수 있다.
또한, 본 문서에 개시되는 실시예들에 따르면, 인공지능 튜터링 시스템은 학습자가 원하는 문제의 유형을 파악하고 그와 관련된 학습 컨텐츠를 제공함으로써 사용자의 학습 능력 증진에 기여할 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 다양한 실시예들에 따른 인공지능 튜터링 시스템의 블록도를 도시한다.
도 2a 내지 도 2b는 다양한 실시예들에 따라 문제의 풀이 결과를 제공하는 화면을 도시한다.
도 3은 다양한 실시예들에 따라 수식을 편집할 수 있는 사용자 인터페이스를 도시한다.
도 4a 내지 도 4d는 다양한 실시예들에 따라 최적의 풀이 결과를 제공하기 위한 동작을 설명한다.
도 5a 내지 도 5d는 다양한 실시예들에 따라 구문 트리를 이용하여 수식을 풀이하는 동작을 설명한다.
도 6은 다양한 실시예들에 따라 문제의 유사도를 측정하는 동작을 설명한다.
도 7a 내지 도 7b는 다양한 실시예들에 따라 키워드에 기반하여 텍스트를 분석하는 동작을 설명한다.
도 8은 다양한 실시예들에 따라 자연어를 수식으로 변환하는 동작을 설명한다.
도 9는 다양한 실시예들에 따라 문제 유형을 분류하는 동작을 설명한다.
도 10은 다양한 실시예들에 따라 학습 컨텐츠를 제공하는 동작을 설명한다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.
본 문서에서 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나",“A 또는 B 중 적어도 하나”, "A, B 또는 C", "A, B 및 C 중 적어도 하나” 및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 설명되는 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
본 문서에서 사용되는 용어 "모듈", 또는 “...부”는 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine) 의해 읽을 수 있는 저장 매체(storage medium)(예: 메모리)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램 또는 애플리케이션)로서 구현될 수 있다. 예를 들면, 기기의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
도 1은 다양한 실시예들에 따른 인공지능 튜터링 시스템의 블록도를 도시한다. 도 1을 참조하면, 인공지능 튜터링 시스템(10)은 서버(100), 사용자 장치(20), 및 컨텐츠 제공 장치(30)를 포함할 수 있다.
사용자 장치(20)는 학습자에 의하여 사용되는 전자 장치를 포함할 수 있다. 사용자 장치(20)는 스마트폰, 태블릿, 또는 웨어러블 장치와 같은 휴대용 장치뿐만 아니라 랩탑(laptop) 컴퓨터나 데스크탑(desktop) 컴퓨터와 같은 다른 컴퓨팅 장치로 구현될 수 있다. 사용자 장치(20)는 서버(100)로부터 제공되는 튜터링 서비스를 효율적으로 제공받기 위하여 서버(100)와 연동 가능한 튜터링 애플리케이션(application, App)(25)을 저장할 수 있다. 학습자는 튜터링 App(25)을 실행하고, 실행된 튜터링 App(25)을 통해 원하는 수학 문제를 서버(100)로 전송(또는 업로드)할 수 있다. 수학 문제가 업로드 되는 방식은 다양할 수 있다. 예를 들어, 학습자는 사용자 장치(20)에 내장된 카메라를 통해 수학 문제가 포함된 이미지를 촬영하고, 촬영된 이미지를 서버(100)에 업로드할 수 있다. 다른 예를 들어, 학습자는 튜터링 App(25)으로부터 제공되는 사용자 인터페이스를 통해 수식을 직접 입력 또는 편집할 수 있다.
서버(100)는 학습자가 질문한 수학 문제에 대한 튜터링 서비스를 제공하는 인공지능 튜터링 시스템(10)의 일 구성일 수 있다. 서버(100)는 서버(100)에 포함되는 모듈들 및 데이터 베이스(data base, DB)를 이용하여 업로드된 수학 문제에 대한 풀이 결과를 도출하고, 풀이 결과와 학습 컨텐츠를 사용자 장치(20)에게 전송할 수 있다. 본 문서에서, '풀이 결과'는 수학 문제에 대한 정답뿐만 아니라 정답을 도출하기 위하여 요구되는 풀이 과정 및 그에 대한 해설까지 포함할 수 있다.
서버(100)는 튜터링 서비스를 제공하기 위하여 AI 튜터 모듈(110), OCR 모듈(120), 키워드 분석 모듈(130), 수식 풀이 모듈(140), 풀이 검색 모듈(150), 컨텐츠 검색 모듈(160), 자연어 처리 모듈(170), 유형 분류 모듈(180), 문제 풀이 DB(190), 및 컨텐츠 DB(195)를 포함할 수 있다. 설명의 편의를 위하여 도 1은 하나의 서버(100)에 포함된 복수의 모듈들 및 DB를 도시하지만, 다른 실시예들에 따르면 서버(100)에 포함되는 각각의 모듈들 및 DB는 개별적인 개체(entity)를 구성할 수 있다. 다른 예를 들어, 서버(100)에 포함된 각각의 모듈들은 튜터링 서비스를 제공하기 위하여 프로세서에 의하여 실행되는 인스트럭션들(instructions)일 수 있다. 이 경우, 각 모듈들은 알고리즘, API(application programming interface), 프로그램, 또는 애플리케이션으로 참조될 수 있다.
AI 튜터 모듈(110)은 튜터링 App(25)과 함께 사용자 장치(20)와 서버(100) 간 매개체 역할을 할 수 있다. 예를 들어, AI 튜터 모듈(110)은 사용자 장치(20)로부터 수학 문제에 대한 정보(예: 이미지 또는 수식 데이터)를 수신하고, 해당 수학 문제에 대한 풀이 결과뿐만 아니라 학습 컨텐츠도 통합적으로 제공할 수 있다. AI 튜터 모듈(110)은 수식 풀이 모듈(140)에 의하여 산출된 제1 풀이 결과와 풀이 검색 모듈(150)에 의하여 검색된 제2 풀이 결과 중 적어도 하나를 학습자에게 제공할 수 있다. 제1 풀이 결과는 수식 풀이 방식에 의한 풀이 결과로, 제2 풀이 결과는 풀이 검색 방식에 의한 풀이 결과로 이해될 수 있다. 수식 풀이 방식 및 풀이 검색 방식은 상황에 따라 장단점을 가지고 있으므로, 실시예에서 AI 튜터 모듈(110)은 제1 풀이 결과와 제2 풀이 결과의 신뢰도에 기반하여 하나의 풀이 결과를 우선적으로 학습자에게 제공할 수 있다. 실시예에서, AI 튜터 모듈(110)은 학습자가 튜터링 App(25)을 통해 수식을 직접 입력하거나 편집할 수 있도록 사용자 인터페이스를 제공할 수 있다.
OCR 모듈(120)은 OCR을 이용하여 사용자 장치(20)로부터 수신된 이미지에 포함된 수학 문제의 수식 또는 텍스트를 추출할 수 있다. 예를 들어, OCR 모듈(120)은 AI 튜터 모듈(110)로부터 이미지의 URL(uniform resource locator)를 수신하고, 수신된 URL을 이용하여 이미지에서 수식 또는 텍스트를 추출할 수 있다.
키워드 분석 모듈(130)은 OCR 모듈(120)에 의하여 추출된 텍스트 중 키워드를 분석 및 처리할 수 있다. 키워드는 수학 문제에서 자주 사용되거나 특정 문제 유형을 나타낼 수 있는 용어일 수 있다. 키워드는 수식 풀이 모듈(140)의 수식 풀이 방식의 정확도를 향상시키거나 OCR 모듈(120)에 의하여 오인식된 텍스트를 수정하기 위하여 이용될 수 있다. 키워드는 학년에 따라서 분류되어 문제 풀이 DB(190)에 저장될 수 있다.
수식 풀이 모듈(140)은 OCR 모듈(120)에 의하여 인식된 수학 문제에 대한 풀이 결과(예: 제1 풀이 결과)를 수식 풀이 방식 알고리즘을 이용하여 산출할 수 있다. 실시 예에서, 수식 풀이 모듈(140)은 인식된 수학 문제를 구문 트리(syntax tree)로 변환하고, 변환된 트리 내에서 해당 수학 문제의 풀이를 위하여 적합한 풀이 전략을 선택한 뒤, 선택된 풀이 전략을 단계별로 이용함으로써 풀이 결과를 산출할 수 있다. 수식 풀이 모듈(140)에 의하여 산출된 풀이 결과는 수식 렌더러(renderer)를 통해 제공될 수 있다.
풀이 검색 모듈(150)은 OCR 모듈(120)에 의하여 인식된 수학 문제와 동일하거나 유사한 문제에 대한 풀이 결과(예: 제2 풀이 결과)를 문제 풀이 DB(190)로부터 검색할 수 있다. 풀이 결과는 컨텐츠 제공 장치(30)로부터 제공될 수 있다. 컨텐츠 제공 장치(30)는 선생님, 강사, 학습 교재, 또는 학원에 의하여 이용되는 장치를 의미할 수 있다. 검색하려는 문제와 문제 풀이 DB(190)에 저장된 문제 간 유사도를 편집 거리를 이용하여 판단하는 방식은 특정 단어에 가중치를 두는 스코어링(scoring) 방식을 적용하는데 한계를 가지므로, 풀이 검색 모듈(150)은 BM25 메트릭(metric)과 같은 스코어링 방식을 포함하는 ElasticSearch 검색 엔진을 이용함으로써 검색 결과의 품질 향상 및 검색 속도의 개선과 같은 성능 향상을 도모할 수 있다. 예를 들어, 풀이 검색 모듈(150)이 ElasticSearch 검색 엔진을 이용할 경우 Solr7 검색 엔진 대비 안전성, 호환성, 및 중요도(popularity) 측면에서 높은 성능을 확보할 수 있다.
컨텐츠 검색 모듈(160)은 학습자가 질문한 수학 문제와 관련된 학습 컨텐츠를 컨텐츠 DB(195)로부터 검색할 수 있다. 학습 컨텐츠는 학습자의 학습 능력을 증진시키기 위하여 인공지능 튜터링 시스템(10)으로부터 제공되는 다양한 형태의 컨텐츠를 포함할 수 있다. 예를 들어, 학습 컨텐츠는 학습자가 질문한 수학 문제와 관련된 개념, 동일하거나 유사한 유형의 문제, 태깅, 개념서 내용, 또는 동영상 강의를 포함할 수 있다. 학습 컨텐츠는 컨텐츠 제공 장치(30)에 의하여 제공될 수 있다.
자연어 처리 모듈(170)은 OCR 모듈(120)에 의하여 인식된 텍스트를 데이터셋(dataset) 기반의 자연어 처리 파서(parser)를 이용하여 분석하고 분석 결과에 기반하여 텍스트를 수식으로 변환함으로써, 수식 풀이 모듈(140)이 텍스트가 포함된 수학 문제 또한 풀이할 수 있도록 유도할 수 있다. 데이터셋은 문장을 포함하는 수학 문제에 대한 데이터 집합(set)을 의미할 수 있다. 예를 들어, 자연어 처리 모듈(170)은 데이터셋에서 문장 형태에 대해 문맥 무관 문법을 정의하고, 이에 해당하는 자연어 처리 파서를 구현할 수 있다.
유형 분류 모듈(180)은 검색해야 될 문제 또는 검색된 문제에 대한 문제 유형을 분류할 수 있다. 문제 유형은 교육적인 의미를 가지는 메타 데이터에 기반하여 분류될 수 있다. 예를 들어, 메타 데이터는 학년, 학기, 각 학기에 포함되는 챕터(chapter), 또는 각 챕터에 포함되는 섹션(section)을 나타낼 수 있다. 예를 들어, 유형 분류 모듈(180)은 수많은 문제들의 문제 유형을 파악할 수 있도록 태깅(tagging)을 통해 문제 유형을 학습할 수 있다. 문제 풀이 모듈 DB(190)에 저장되지 않은 새로운 문제가 수신되면, 유형 분류 모듈(180)은 K-NN(K-Nearest Neighbor) 알고리즘이나 딥 러닝(deep learning) 알고리즘을 통해 새로운 문제의 문제 유형을 결정할 수 있다.
도 2a 내지 도 2b는 다양한 실시예들에 따라 문제의 풀이 결과를 제공하는 화면을 도시한다. 도 2a 내지 도 2b에 도시된 화면은 사용자 장치(20)의 디스플레이를 통해 출력될 수 있다. 또한, 도 2a 내지 도 2b에 도시된 화면은 튜터링 App(25)의 실행 화면 중 일부일 수 있다.
도 2a를 참조하면, 동작 201에서 사용자 장치(20)는 카메라의 영상 촬영을 통해 수학 문제(예: x2 + 2x - 3 = 0)를 포함하는 이미지를 획득할 수 있다. 사용자 장치(20)는 획득된 이미지를 서버(100)에 업로드하고, 서버(100)는 수학 문제에 대한 풀이 결과를 사용자 장치(20)에게 제공할 수 있다. 동작 202에서, 사용자 장치(20)는 인식된 수학 문제에 대한 정답(예: x = 1, -3)을 표시할 수 있다. 사용자 장치(20)는 수학 문제에 대한 정답뿐만 아니라 풀이 과정 및 해설을 더 표시할 수 있다. 예를 들어 도 2b를 참조하면, 동작 203에서 사용자 장치(20)는 수학 문제에서 정답이 도출될 때까지 요구되는 풀이 과정을 표시할 수 있다. 또한, 사용자 장치(20)는 동작 204 또는 205와 같이 각 풀이 과정에 대한 해설을 표시할 수 있다.
도 3은 다양한 실시예들에 따라 수식을 편집할 수 있는 사용자 인터페이스를 도시한다.
도 3을 참조하면, 사용자 장치(20)는 이미지를 획득하는 방법 외에도 수식을 입력 또는 편집할 수 있는 사용자 인터페이스(300)를 통해 사용자가 학습하기 원하는 수학 문제의 수식을 확인할 수 있다. 사용자 인터페이스(300)는 사용자가 입력한 결과를 보여주는 출력 필드(310)와 사용자가 숫자, 미지수, 또는 연산자를 입력할 수 있는 입력 필드(320)를 포함할 수 있다. 입력 필드(320)는 키보드 또는 계산기의 자판과 같은 레이아웃을 가질 수 있다. 사용자 장치(20)는 수식을 웹 브라우저에 표현하기 위하여 자바 스크립트(Java script)와 같은 오픈 소스를 이용할 수 있다.
도 4a 내지 도 4d는 다양한 실시예들에 따라 최적의 풀이 결과를 제공하기 위한 동작을 설명한다.
도 4a를 참조하면, 동작 410에서 인공지능 튜터링 시스템(10)은 수학 문제를 포함하는 이미지를 획득할 수 있다. 이미지에 포함된 수학 문제는 수식 및/또는 텍스트를 포함할 수 있다. 동작 420에서, 인공지능 튜터링 시스템(10)은 OCR을 이용하여 이미지에 포함된 텍스트 및 수식을 추출할 수 있다.
동작 430에서, 인공지능 튜터링 시스템(10)은 추출된 수식 및 텍스트와 수식 풀이 모듈의 알고리즘을 이용하여 제1 풀이 결과를 생성할 수 있다. 동작 440에서, 인공지능 튜터링 시스템(10)은 추출된 수식 및 텍스트를 이용하여 데이터 베이스(예: 문제 풀이 DB(190))로부터 제2 풀이 결과를 검색할 수 있다.
동작 450에서, 인공지능 튜터링 시스템(10)은 제1 풀이 결과 및 제2 풀이 결과의 신뢰도를 판단할 수 있다. 동작 460에서, 인공지능 튜터링 시스템(10)은 판단 결과에 기반하여 제1 풀이 결과 및 제2 풀이 결과 중 하나를 선택하여 제공할 수 있다. 실시예에 따르면, 인공지능 튜터링 시스템(10)은 제1 풀이 결과 및 제2 풀이 결과를 모두 제공할 수 있다. 이 경우, 인공지능 튜터링 시스템(10)은 신뢰도가 높은 풀이 결과를 화면의 상단 또는 좌측에 배치할 수 있다.
신뢰도는 수식 풀이 방식과 풀이 검색 방식 중 주어진 수학 문제를 풀이하기에 더 적합한 방식이 어떠한 것인가를 나타낼 수 있다. 수학 문제에 수식만 포함되면 숫자가 조금만 바뀌어도 데이터 베이스로부터 해당 문제를 검색하는데 추가적 시간이 소요되므로, 이 경우에는 수식 풀이 방식이 풀이 검색 방식보다 효율적이고 풀이의 정확도가 높을 수 있다. 예를 들어 도 2a에서 주어진 수학 문제(x2 + 2x - 3 = 0)는 수식 풀이 방식을 통해 연산이 가능하므로 인공지능 튜터링 시스템(10)은 수식 풀이 모듈(140)에 의한 풀이 결과를 우선적으로 제공할 수 있다.
반면에 수학 문제에 자연어가 일정 단어 이상 포함되거나 수학 문제를 풀기 위하여 필요한 연산이 학습자에게 도움이 되지 않다면, 수식 풀이 방식에 따른 풀이 결과의 정확도가 떨어지거나 학습자의 만족도를 낮출 수 있다. 실시예들에 따른 인공지능 튜터링 시스템(10)은 학습자의 학년, 문제 유형, 문제에 포함된 자연어(또는 텍스트)의 개수나 자연어가 나타내는 의미, 및 풀이 검색 방식에 따른 검색의 일치율 중 적어도 하나에 기반하여 제1 풀이 결과와 제2 풀이 결과의 신뢰도를 판단할 수 있다.
예를 들어 도 4b의 수학 문제(401)는 수식(1/x + 1/y + 1/z)을 연산함으로써 풀이 결과를 제공하면 되는 것이므로 인공지능 튜터링 시스템(10)은 수식 풀이 모듈(140)에 의한 풀이 결과(402)를 우선적으로 제공할 수 있지만, 도 4c의 수학 문제(403)를 풀이하기 위하여 각각의 수식(abc=9, ax = by = cz = 27, 1/x + 1/y + 1/z)을 개별적으로 연산할 필요가 없으므로 수식 풀이 모듈(140)에 의한 풀이 결과는 학습자에게 오히려 불필요한 풀이 과정을 제공할 수 있다. 따라서, 인공지능 튜터링 시스템(10)은 풀이 검색 모듈(150)에 의하여 검색된 풀이 결과(404-1)를 제공하고, 수식 풀이 모듈(140)에 의한 풀이 결과는 없음을 나타내는 화면(404-2)을 제공할 수 있다. 추가적으로, 인공지능 튜터링 시스템(10)은 수학 문제(403)와 유형이 동일한 문제(404-3)를 풀이 결과(404-1)와 함께 제공할 수 있다.
다른 예를 들어, 도 4d에 주어진 수학 문제(405)와 같이 참과 거짓을 구별해야 하는 문제의 경우, 수식 풀이 모듈(140)은 '참' 또는 '거짓' 여부를 결정할 수 있지만 최종적인 정답(예: '옳지 않은 것은 5번')을 도출하지 못하므로, 인공지능 튜터링 시스템(10)은 풀이 검색 모듈(150)에 의하여 검색된 풀이 결과(405-1)를 우선적으로 제공하되, 수식 풀이 모듈(140)에 의한 풀이 결과도 확인할 수 있음을 나타내는 화면(405-2)을 제공할 수 있다.
도 5a 내지 도 5d는 다양한 실시예들에 따라 구문 트리를 이용하여 수식을 풀이하는 동작을 설명한다. 도 5a 내지 도 5d에서 서술되는 동작들은 인공지능 튜터링 시스템(10)의 수식 풀이 모듈(140)에 의하여 구현될 수 있다.
수식 풀이 모듈(140)은 수식을 자동적으로 풀이하기 위하여 구문 트리 구조를 이용할 수 있다. 구문 트리는 노드들(예: int, sym, op)이 계층적으로 연결되는 데이터 구조로써, 인공지능 튜터링 시스템(10)은 구문 트리를 이용하여 문제의 풀이 과정을 순차적으로 학습자에게 안내할 수 있다. 구문 트리는 AST(abstract syntax tree)로 참조될 수 있다. 구문 트리는 숫자, 미지수, 또는 연산자 중 하나를 나타내는 노드를 포함할 수 있다. 구문 트리는 하나의 루트 노드(root node)를 가지며, 1개 이상의 자식 노드를 가질 수 있다. 자식 노드가 없는 노드는 말단 노드로, 자식 노드가 있는 노드는 내부 노드로 참조될 수 있다. 구문 트리에서는 모든 내부 노드가 수학에서의 연산자 또는 함수의 역할을 하며, 말단 노드는 숫자 또는 미지수 역할을 할 수 있다. 예를 들어, 수식 풀이 모듈(140)은 'x + 2y'인 수식을 도 5a에 도시된 구문 트리로 변환할 수 있다. 구문 트리는 쉽게 확장될 수 있다. 예를 들어, 수식 풀이 모듈(140)은 도 5a에 도시된 구문 트리에서 ^를 나타내는 연산자 노드를 추가하여 지수 함수를 표현할 수 있으며 =를 나타내는 연산자 노드를 추가하여 방정식을 표현할 수 있다. 또한, 수식 풀이 모듈(140)은 레이텍(LaTex) 형식으로 주어진 수식을 파싱하는 과정에서 자연스럽게 수식을 구문 트리로 변환할 수 있다.
구문 트리를 이용하여 수식을 푸는 것은 구문 트리를 다른 형태로 변환하는 동작을 의미할 수 있다. 예를 들어 도 5b를 참조하면, 수식 풀이 모듈(140)은 '1 + 2'이라는 수식을 숫자 '1', '2' 및 연산자 '+' 를 각각 노드로 나타내는 구문 트리로 변환한 후, 변환된 구문 트리를 연산함으로써 숫자 '3'을 나타내는 노드로 변환할 수 있다. 위와 같이 구문 트리를 변환하는 과정은 '풀이 전략'으로 참조될 수 있다. 하나의 수식은 복수의 풀이 전략을 요구할 수 있다. 예를 들어, '1 + 2 + 3'과 같이 세 자연수의 합을 나타내는 수식이 주어지면, 수식 풀이 모듈(140)은 하나의 덧셈(addition) 전략을 두 번 수행함으로써 수식을 연산할 수 있다. 이 경우, 예컨대, 수식 풀이 모듈(140)은 '1 + 2'에 대한 덧셈 전략에 따라서 수식을 풀고, '3 + 3'에 대한 덧셈 전략에 따라서 수식을 풀 수 있다. 인공지능 튜터링 시스템(10)은 각각의 풀이 전략에 따른 연산 결과를 단계별로 학습자에게 제공함으로써 학습자가 주어진 수식을 보다 명확하게 이해하는데 도움을 줄 수 있다.
도 5b는 노드의 수가 감소하는 풀이 전략만을 도시하지만, 다른 실시예에 따르면 인공지능 튜터링 시스템(10)은 풀이 전략을 통해 노드의 수를 유지하거나 증가시킬 수 있다. 예를 들어, 'x + x'인 수식이 주어지면, 인공지능 튜터링 시스템(10)은 '다항식 동류항 정리' 풀이 전략을 이용하여 해당 수식을 '2 * x'으로 변환할 수 있다. 이 경우, 'x', '+', 및 'x'를 각각 노드로 포함하는 구문 트리의 형태가 '2', '*', 및 'x'를 각각 노드로 포함하는 구문 트리로 변환될 수 있다. 다른 예를 들어, '12'라는 숫자가 주어지면, 인공지능 튜터링 시스템(10)은 '소인수분해' 풀이 전략을 이용하여 해당 숫자를 '2 * 2 * 3'이라는 수식으로 변환할 수 있다.
도 5b에서 설명한 '덧셈 전략'과 같은 풀이 전략은 초, 중, 고등학교의 교과 과정을 기준으로 1000개 이상이며, 해당 숫자는 증가할 수 있다. 따라서, 수식 풀이 모듈(140)이 학습자가 질문한 수학 문제에 적합한 풀이 전략을 결정하기 위하여 많은 시간이 소모될 수 있다. 실시예들에 따른 인공지능 튜터링 시스템(10)은 풀이 전략들을 기능별로 그룹화하고, 각 그룹을 도 5c에 도시된 바와 같이 계층적으로 구성함으로써 풀이 결과를 생성하기 위하여 필요한 풀이 전략을 효율적으로 선택할 수 있다. 예를 들어 수식이 주어지면, 수식 풀이 모듈(140)은 'Solving Group' 함수를 호출하고, 수식에 포함된 미지수나 연산자에 기반하여 주어진 수식이 사칙 연산과 같은 단순 계산을 필요로 하는 'Simple Group'인지, 방정식이나 다항식 연산과 같이 사칙 연산 이상의 계산을 요구하는 'Middle Group'인지를 판단할 수 있다. 도 5c에는 도시되지 않았지만, 'Solving Group'은 미분, 적분, sigma 합산과 같은 연산을 요구하는 추가적인 Group을 더 포함할 수 있다. 수식 풀이 모듈(140)은 계층화된 풀이 전략을 순차적으로 호출함으로써 풀이 전략을 선택하므로, 풀이 전략을 선택하기 위하여 요구되는 호출 횟수를 줄일 수 있다. 수식 풀이 모듈(140)은 둘 이상의 풀이 전략을 선택할 수 있으며, 서로 다른 Group의 풀이 전략을 선택할 수 있다. 예를 들어, 수식 풀이 모듈(140)은 주어진 수식을 연산하기 위하여 자연수 사칙 연산과 전개를 풀이 전략으로 선택할 수 있다. 수식 풀이 모듈(140)은 계층화된 풀이 전략 구조를 선택할 때 방향성 또는 최종 목표를 설정할 수 있다. 예를 들어, '(x + 2)(x + 4) + 1'이라는 수식이 주어지면, 해당 수식의 최종 목표는 수식을 전개하는 것이거나 또는 인수분해하는 것일 수 있다. 해당 수식의 최종 목표가 전개인 경우, 수식 풀이 모듈(140)은 전개를 연산한 이후에 풀이를 종료하고 풀이 결과를 제공함으로써 불필요한 연산을 줄일 수 있다.
도 5d는 구문 트리를 이용하여 수식을 풀이하기 위한 동작 흐름도를 도시한다. 동작 510에서, 인공지능 튜터링 시스템(10)은 OCR 모듈(120)을 통해 인식된 수식을 구문 트리로 변환할 수 있다. 구문 트리에 포함된 노드들은 계층화된 구조를 가지면, 각 노드들은 미지수, 숫자, 또는 연산자 중 하나를 나타낼 수 있다. 동작 520에서, 인공지능 튜터링 시스템(10)은 구문 트리 내에서 적어도 하나의 풀이 전략을 선택할 수 있다. 풀이 전략은 연산을 통해 둘 이상의 노드들을 하나로 줄이는 동작을 의미할 수 있다. 동작 530에서, 인공지능 튜터링 시스템(10)은 선택된 적어도 하나의 풀이 전략에 따라서 수식이 순차적으로 풀이되는 풀이 결과를 제공할 수 있다. 인공지능 튜터링 시스템(10)은 수식의 일부에 대하여 풀이 전략 선택 및 수식 풀이를 수행한 후, 나머지 일부에 대하여 풀이 전략 선택 및 수식 풀이를 수행할 수 있다.
도 6은 다양한 실시예들에 따라 문제의 유사도를 측정하는 동작을 설명한다.
풀이 검색 모듈(150)이 학습자가 질문한 수학 문제에 대응하는 문제를 문제 풀이 DB(190)에서 검색할 때 이미지에 포함된 텍스트를 직렬화한 후 유사도를 판단하는 알고리즘을 적용하면 문제의 레이아웃(layout) 정보가 손실될 수 있다. 레이아웃 정보는 예를 들어, 텍스트뿐만 아니라 글자의 위치, 문제 번호, 데코레이더(decorator), 그림, 또는 색감과 같은 정보를 나타낼 수 있다. 실시예들에 따른 풀이 검색 모듈(150)은 이미지에 포함된 텍스트 및 수식의 상대적 위치를 산출하고, 산출된 상대적 위치를 이용하여 유사도를 계산함으로써 검색의 정확도를 높일 수 있다. 풀이 검색 모듈(150)은 상대적 위치를 결정하기 위하여 들로네 삼각분할(Delaunay triangulation) 알고리즘을 이용할 수 있다. 들로네 삼각분할을 이용하여 유사도를 산출하는 방식은 아래와 같다.
1. OCR 박스의 중심을 하나의 점으로 생각한다.
2. 이미지 상의 점들을 들로네 삼각분할 알고리즘으로 연결한다.
3. 들로네 삼각분할 알고리즘으로 생성된 각각의 삼각형들을 구성하는 점 3개의 특성(character)들의 집합(set)을 하나의 토큰(token)으로 결정한다. 토큰들을 모두 모은 결과는 토큰셋(tokenset)으로 간주한다.
4. 주어진 문제 Q1과 데이터 베이스에 저장된 문제 Q2의 들로네 토큰 유사도(Delaunay Token Similarity)는 Q1의 토큰셋(TS_Q1)과 Q2의 토큰셋(TS_Q2) 사이의 자카드 유사도(Jaccard similarity)를 이용하여 계산한다. 예를 들어, 자카드 유사도는 하기의 [수학식 1]로 표현될 수 있으며, 들로네 삼각분할 및 자카드 유사도에 의하여 결정된 문제들 간 유사도(DTSim)은 하기의 [수학식 2]로 표현될 수 있다.
Figure pat00001
Figure pat00002
도 6은 각각의 수학 문제(왼쪽부터 (a), (b), (c))에 들로네 삼각분할이 적용된 결과를 도시한다. 수학 문제(a)와 수학 문제(b)는 동일한 문제이고, 수학 문제(c)는 다른 수학 문제들과 다른 문제이다. EDSim 또는 LCSSim과 같은 기존의 알고리즘을 이용할 경우, 수학 문제(a)와 수학 문제(b)간 유사도가 높게 측정될 뿐만 아니라 수학 문제(a)와 수학 문제(c)간 유사도 또한 높게 측정되는 오류가 발생할 수 있는 반면에, 들로네 삼각분할 알고리즘을 이용할 경우 수학 문제(a)와 수학 문제(c)간 유사도가 낮게 측정될 수 있다.
도 7a 내지 도 7c는 다양한 실시예들에 따라 키워드에 기반하여 텍스트를 분석하는 동작을 설명한다.
키워드는 문제 풀이 DB(190)에 저장된 문제들 내에서 출현 빈도가 높은(또는 지정된 횟수 이상인) 텍스트를 의미할 수 있다. 예를 들어 도 7a를 참조하면, 키워드 분석 모듈(130)은 주어진 2번 문제의 키워드가 '다항식'에 해당하고, 문제 유형이 '다항식의 덧셈과 뺄셈'인 것으로 결정할 수 있다. 또한, 키워드 분석 모듈(130)은 주어진 0887번 문제의 키워드가 '직각삼각형', '변', '지름', '반원', 및 '넓이'이고 문제 유형이 '히포크라테스의 원의 넓이'인 것으로 결정할 수 있다. 키워드 분석 모듈(130)은 학년에 따라서 키워드를 분류하여 문제 풀이 DB(190)에 저장할 수 있다.
키워드 분석 모듈(130)은 키워드를 이용하여 수식 풀이 모듈(140)의 풀이 정확도를 높일 수 있다. 예를 들어, 주어진 수학 문제가 (x-2)(x-4)+1이라는 수식을 포함하는 경우, 해당 수학 문제는 수식의 전개를 요구할 수도 있고, 인수분해를 요구할 수도 있다. 이 경우, 키워드 분석 모듈(130)은 수학 문제에서 '인수분해'라는 키워드를 인식하고 해당 키워드를 수식 풀이 모듈(140)에 제공하여 인수분해를 풀이 전략으로 이용하도록 유도할 수 있다.
키워드 분석 모듈(130)은 키워드를 이용하여 OCR 모듈(120)에서 오인식된 텍스트를 수정할 수 있다. 실시예에서, 키워드 분석 모듈(130)은 퍼지 검색(fuzzy search) 및 Levenshtein distance를 이용하여 오인식된 텍스트를 추출할 수 있다. OCR 모듈(120)은 텍스트를 인식할 때 텍스트들 간 거리를 기준으로 하나의 '단어 박스'를 설정한다. 단어 박스에 포함된 텍스트는 띄어쓰기로 구분된 문자열일 수 있다. 한글의 특성상 문자열은 키워드 하나가 조사나 어미와 결합되는 경우가 많으므로, 키워드 분석 모듈(130)은 단어 박스 내의 문자열에 대한 형태소 및 품사를 분석하고, 분석 결과에 기반하여 보정 후보 리스트를 생성할 수 있다. 도 7b를 참조하면, '곱셈공식'에서 '곱셈'과 '공식'에 조사가 결합되지 않으므로 키워드 분석 모듈(130)은 '곱셈공식'을 하나의 보정 후보 리스트로 결정할 수 있다. 다른 예를 들어, '이차망정식의'에서 '의'라는 관형격 조사가 결합되므로 키워드 분석 모듈(130)은 '이차망정식'과 '의'를 보정 후보 리스트로 결정할 수 있다. 추가적으로 '이차망정식의'도 보정 후보 리스트로 생성할 수 있는데 '의'가 오타일 수 있음을 고려한 것이다. 키워드 분석 모듈(130)은 생성된 보정 후보 리스트에 퍼지 검색을 수행함으로써 오타(예: '이차망정식'의 '망', '최맷값'의 '맷')를 추출할 수 있다. 키워드 분석 모듈(130)은 데이터 베이스에 저장된 키워드(예: '이차방정식', '최댓값')을 고려하여 추출된 오타를 수정할 수 있다. 실시예에서 키워드 분석 모듈(130)은 학습자의 학년을 고려하여 텍스트를 추가적으로 수정할 수 있다. 예를 들어, 인식된 텍스트가 '임차방정식'이면, 키워드 분석 모듈(130)은 학습자의 학년의 고려하여 '일차방정식' 또는 '이차방정식'으로 수정할 수 있다.
도 8은 다양한 실시예들에 따라 자연어를 수식으로 변환하는 동작을 설명한다.
자연어 처리 모듈(170)은 문장 형태의 수학 문제를 분석함으로써 수식 풀이 모듈(140)의 단점을 보완할 수 있다. 문장 형태의 수학 문제(예: 810)가 주어지면 자연어 처리 모듈(170)은 데이터셋 기반의 자연어 처리 파서(parser)를 이용하여 이미지로부터 추출된 텍스트를 분석하고, 분석 결과에 따라서 텍스트를 수식(예: 820)으로 변환할 수 있다. 자연어 처리 파서를 구현하기 위하여, 자연어 처리 모듈(170)은 수많은 문장 형태에 대해 문맥 무관 문법을 정의할 수 있다.
데이터셋은 하나의 문장으로 이루어진 수학 문제의 데이터셋과 복수의 문장으로 이루어진 수학 문제의 데이터셋으로 분류될 수 있다. 또한, 문장 형태의 수학 문제는 1개의 목표(word problem objective)와 목표 앞 또는 뒤에 붙는 조건(word problem condition)으로 구성될 수 있다. 예를 들어, 문제 유형에 따른 데이터셋의 예시는 하기의 [표 1]로 표현될 수 있다.
문제 유형 한 문장으로 이루어진 수학 문제 합성된 수학 문제
사칙 연산 Sum 259 and -46.
대소 비교 What is the second biggest value in 0.9, -2/11, -5, 3/5? Let v = -394.063 + -0.437. Let f = 394 + v. Let b = -26 + 105/4.

What is the smallest value in b, 3, f?
정렬 Sort -0.06, 2/3, 46, -18, -414 in descending order. Suppose -2*s + 3*s = -5. Suppose 3*g + 25 = *4y, -4*g - 11*y - 20 = -15*y. Let b(j) = -j**2 - 5*j. Let r be b(-4).
Put s, r, g in descending order.
최소 공배수 Calculate the smallest common multiple of 23954 and 4176. Suppose -b - 29 = -27, -2*m + 5*b + 810 = 0.
Calculate the least common multiple of m and 550.
연립방정식 Solve -221 = n + 308*z - 304*z, 823 = 2*n - 15*z for n. Let o(b) be the first derivative of -b**3/3 + 6*b**2 - 18*b + 18. Let f be o(9). Let z be (-1 + 1 + 4)/1.
소인수분해 What are the prime factors of 6792? Let c = -12085 - -17386. What are the prime factors of c?
다항 함수의 미분 Find the second derivative of 2882*p**3*v + 3228*p*v wrt p. Let u(w) be the first derivative of -452*w**5 - 99*w**3 + w - 601.
Find the third derivative of u(v) wrt v.
자연어 처리 모듈(170)은 자연어 처리 파서를 이용하여 문장 형태의 수학 문제를 둘 이상의 수식으로 변환할 수 있다. 이 경우, 수식은 최종적으로 풀고자 하는 수식(목표)과 해당 수식을 풀기 위하여 필요한 수식(조건)을 포함할 수 있다.
도 9는 다양한 실시예들에 따라 문제 유형을 분류하는 동작을 설명한다.
유형 분류 모듈(180)은 수학 문제에 대한 문제 유형을 지정된 기준에 따라 분류할 수 있다. 지정된 기준은 예를 들어, 학년, 학기(semester), 챕터(chapter), 또는 섹션(section) 중 적어도 하나를 포함할 수 있다. 챕터는 한 학기에 배우는 일정한 개수(예: 5개)의 문제 유형 단위를 의미할 수 있다. 섹션은 한 챕터에서 배우는 일정한 개수(예: 2개)의 문제 유형 단위를 의미할 수 있다. 추가적으로, 유형 분류 모듈(180)은 도 9에 도시된 바와 같이 섹션보다 더 작은 단위(예: 장르(genre))로 문제 유형을 분류할 수 있다. 동일한 섹션 또는 장르는 예를 들어, 수식 풀이 모듈(140)이 사용하는 풀이 전략이 동일하거나 유사할 수 있다.
유형 분류 모듈(180)은 학습자가 질문한 수학 문제의 문제 유형을 확인하고, 확인된 문제 유형과 관련된 학습 컨텐츠를 제공할 수 있다. 또한, 유형 분류 모듈(180)은 학습자들이 자주 질문하는 문제 유형을 확인하고, 학습자의 검색 경향을 분석할 수 있다.
새로운 문제가 주어질 때, 유형 분류 모듈(180)은 문제 풀이 DB(190)에 저장된 문제와의 유사도를 기반으로 새로운 문제의 문제 유형을 결정할 수 있다. 예를 들어, 유형 분류 모듈(180)은 K-NN 알고리즘을 이용하여 최소 편집 거리 및 TF-IDF(Term Frequency - Inverse Document Frequency) 기반으로 텍스트의 유사도를 판단할 수 있다. K-NN 알고리즘에 기반한 유사도 판단은 완전히 새로운 유형의 문제에 대한 추론 능력이 떨어질 수 있으므로, 유형 분류 모듈(180)은 딥 러닝을 활용한 분류기(classifier)를 이용하여 유사도 판단의 성능을 높일 수 있다.
도 10은 다양한 실시예들에 따라 학습 컨텐츠를 제공하는 동작을 설명한다.
학습자가 수학 문제를 업로드하면, 인공지능 튜터링 시스템(10)은 업로드 된 수학 문제에 대한 풀이 결과뿐만 아니라 해당 수학 문제와 관련된 학습 컨텐츠를 제공할 수 있다. 학습 컨텐츠는 학습자가 질문한 수학 문제와 관련된 개념, 동일하거나 유사한 유형의 문제, 태깅, 개념서 내용, 또는 동영상 강의를 포함할 수 있다. 예를 들어 도 10을 참조하면, 동작 1001에서 인공지능 튜터링 시스템(10)은 학습자를 통해 특정 수학 문제(예: x2 + 2x - 3 = 0)를 포함하는 이미지를 획득하고, 동작 1002에서 해당 수학 문제와 동일한 문제 유형(예: 이차방정식)에 대한 동영상 강의를 제공할 수 있다.

Claims (11)

  1. 인공지능 튜터링 시스템의 동작 방법에 있어서,
    사용자 장치로부터 이미지를 획득하는 동작;
    OCR(optical character recognition)을 이용하여 상기 이미지에 포함된 문제의 텍스트 및 수식을 추출하는 동작;
    수식 풀이 모듈의 알고리즘을 이용하여 상기 텍스트 및 상기 수식에 대한 제1 풀이 결과를 생성하는 동작;
    데이터 베이스로부터 상기 텍스트 및 상기 수식에 대한 제2 풀이 결과를 검색하는 동작; 및
    상기 제1 풀이 결과 상기 제2 풀이 결과의 신뢰도에 기반하여 상기 제1 풀이 결과 및 상기 제2 풀이 결과 중 적어도 하나를 제공하는 동작을 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 문제에 포함된 수식을 입력 또는 편집할 수 있는 사용자 인터페이스(user interface)를 제공하는 동작을 더 포함하는, 방법.
  3. 청구항 1에 있어서, 상기 제1 풀이 결과를 생성하는 동작은,
    상기 수식을, 숫자, 미지수, 및 연산자 중 적어도 하나를 포함하는 하나 이상의 노드가 포함된 구문 트리(syntax tree)로 변환하는 동작;
    상기 구문 트리 내에서 상기 하나 이상의 노드를 변환하기 위한 풀이 전략(strategy)을 적어도 하나 선택하는 동작; 및
    상기 선택된 풀이 전략에 따라 상기 수식이 순차적으로 풀이되는 상기 제1 풀이 결과를 제공하는 동작을 포함하는, 방법.
  4. 청구항 1에 있어서,
    ElasticSearch 검색 엔진을 이용하여 상기 데이터 베이스로부터 상기 제2 풀이 결과를 검색하는 동작을 포함하는, 방법.
  5. 청구항 1에 있어서,
    상기 이미지에 포함된 문제에서 상기 텍스트 및 상기 수식의 상대적 위치를 들로네 삼각분할(Delaunay triangulation) 알고리즘을 이용하여 결정하는 동작;
    상기 데이터 베이스에 포함된 텍스트 및 수식의 상대적 위치를 상기 들로네 삼각분할 알고리즘을 이용하여 결정하는 동작; 및
    상기 결정된 상대적 위치들을 이용하여 상기 이미지에 포함된 문제와 동일 또는 유사한 문제를 상기 데이터 베이스로부터 검색하는 동작을 포함하는, 방법.
  6. 청구항 1에 있어서, 상기 제1 풀이 결과를 생성하는 동작은,
    상기 이미지로부터 추출된 텍스트 중 키워드를 분석하는 동작; 및
    상기 분석된 키워드를 이용하여 상기 수식 풀이 모듈의 알고리즘을 이용하여 상기 제1 풀이 결과를 생성하는 동작을 포함하고,
    상기 데이터 베이스에 기 저장된 문제에서 출현 빈도가 높은 텍스트가 상기 키워드로 저장되며,
    상기 키워드는 학년에 따라서 분류되어 상기 데이터 베이스에 저장되는, 방법.
  7. 청구항 1에 있어서,
    상기 이미지로부터 추출된 텍스트 중 오인식된 텍스트를 추출하는 동작; 및
    상기 오인식된 텍스트를 상기 데이터 베이스에 저장된 키워드에 기반하여 수정하는 동작을 더 포함하고,
    상기 데이터 베이스에 기 저장된 문제에서 출현 빈도가 높은 텍스트가 상기 키워드로 저장되며,
    상기 키워드는 학년에 따라서 분류되어 상기 데이터 베이스에 저장되는, 방법.
  8. 청구항 1에 있어서,
    상기 데이터 베이스에 저장된 데이터셋(dataset) 기반의 자연어 처리 파서(parser)를 이용하여 상기 이미지로부터 추출된 텍스트를 분석하는 동작; 및
    상기 분석 결과에 기반하여 상기 텍스트를, 최종적으로 풀고자 하는 수식과 해당 수식을 풀기 위하여 필요한 조건에 해당하는 수식 중 적어도 하나의 수식으로 변환하는 동작을 더 포함하고,
    상기 데이터셋은 문장을 포함하는 수학 문제에 대한 데이터를 나타내는, 방법.
  9. 청구항 1에 있어서,
    상기 데이터 베이스에 저장된 문제 유형 정보에 기반하여 상기 문제의 문제 유형을 결정하는 동작을 더 포함하고,
    상기 문제 유형은 메타 데이터에 기반하여 분류되는, 방법.
  10. 청구항 9에 있어서,
    상기 결정된 문제 유형에 대응하는 학습 컨텐츠를, 상기 제1 풀이 결과 및 상기 제2 풀이 결과 중 적어도 하나와 함께 제공하는 동작을 더 포함하는, 방법.
  11. 인공지능 튜터링 시스템에 있어서,
    사용자 장치로부터 이미지를 획득하고,
    OCR(optical character recognition)을 이용하여 상기 이미지 내에 포함된 문제의 텍스트 및 수식을 추출하고,
    수식 풀이 모듈의 알고리즘을 이용하여 상기 텍스트 및 상기 수식에 대한 제1 풀이 결과를 생성하고,
    데이터 베이스로부터 상기 텍스트 및 상기 수식에 대한 제2 풀이 결과를 검색하고, 및
    상기 제1 풀이 결과 상기 제2 풀이 결과의 신뢰도에 기반하여 상기 제1 풀이 결과 및 상기 제2 풀이 결과 중 적어도 하나를 제공하는 서버를 포함하는, 인공지능 튜터링 시스템.
KR1020210021828A 2021-02-18 2021-02-18 인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법 KR20220118579A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210021828A KR20220118579A (ko) 2021-02-18 2021-02-18 인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법
PCT/KR2022/002463 WO2022177372A1 (ko) 2021-02-18 2022-02-18 인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210021828A KR20220118579A (ko) 2021-02-18 2021-02-18 인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법

Publications (1)

Publication Number Publication Date
KR20220118579A true KR20220118579A (ko) 2022-08-26

Family

ID=82931031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210021828A KR20220118579A (ko) 2021-02-18 2021-02-18 인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법

Country Status (2)

Country Link
KR (1) KR20220118579A (ko)
WO (1) WO2022177372A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102583004B1 (ko) * 2022-10-19 2023-09-27 주식회사 율러닝 동영상 기반의 온라인 학습 서비스를 제공하는 방법 및 이를 위한 서버

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004144903A (ja) * 2002-10-23 2004-05-20 Hokkaido Technology Licence Office Co Ltd 試験問題作成・採点方法およびそのシステム、試験問題作成・採点サーバ、携帯型解答者端末装置、プログラム、並びに携帯型解答者端末装置搭載用プログラム
KR101763390B1 (ko) * 2015-10-15 2017-07-31 강호제 문제풀이 과정을 계층별로 나누어 시각화시키는 추론과정 전개도 서비스 장치 및 방법
KR101840358B1 (ko) * 2015-11-04 2018-03-20 주식회사 터치앤에듀 필기된 수식 인식을 이용한 수학 학습 장치 및 방법
KR102056822B1 (ko) * 2017-05-04 2019-12-17 주식회사 매스프레소 학습 서비스 제공 방법 및 그 장치
KR20180097477A (ko) * 2018-08-21 2018-08-31 양선아 온라인 네트워크를 통해 주관식 수학 문제를 채점하는 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102583004B1 (ko) * 2022-10-19 2023-09-27 주식회사 율러닝 동영상 기반의 온라인 학습 서비스를 제공하는 방법 및 이를 위한 서버

Also Published As

Publication number Publication date
WO2022177372A1 (ko) 2022-08-25

Similar Documents

Publication Publication Date Title
CN110489538B (zh) 基于人工智能的语句应答方法、装置及电子设备
CN110795543B (zh) 基于深度学习的非结构化数据抽取方法、装置及存储介质
CN110337645B (zh) 可适配的处理组件
US11113323B2 (en) Answer selection using a compare-aggregate model with language model and condensed similarity information from latent clustering
JP3856778B2 (ja) 複数言語を対象とした文書分類装置及び文書分類方法
US11409964B2 (en) Method, apparatus, device and storage medium for evaluating quality of answer
US20190114300A1 (en) Reading Level Based Text Simplification
CN107807968B (zh) 基于贝叶斯网络的问答装置、方法及存储介质
US20220019734A1 (en) Method and system for visio-linguistic understanding using contextual language model reasoners
CN111831789A (zh) 一种基于多层语义特征提取结构的问答文本匹配方法
CN110825867B (zh) 相似文本推荐方法、装置、电子设备和存储介质
US20220405484A1 (en) Methods for Reinforcement Document Transformer for Multimodal Conversations and Devices Thereof
CN107301164B (zh) 数学公式的语义解析方法及装置
CN110750624A (zh) 信息输出方法及装置
KR102644992B1 (ko) 교육 컨텐츠 주제 기반의 대화형 인공지능 아바타 영어 말하기 교육 방법, 장치 및 이에 대한 시스템
CN107943940A (zh) 数据处理方法、介质、系统和电子设备
US20220366282A1 (en) Systems and Methods for Active Curriculum Learning
CN116091836A (zh) 一种多模态视觉语言理解与定位方法、装置、终端及介质
KR102410715B1 (ko) 머신 러닝 기반의 텍스트 데이터의 감성 분석 장치 및 방법
WO2022177372A1 (ko) 인공지능을 이용하여 튜터링 서비스를 제공하기 위한 시스템 및 그에 관한 방법
CN113505786A (zh) 试题拍照评判方法、装置及电子设备
US20230088411A1 (en) Machine reading comprehension apparatus and method
CN114722174A (zh) 提词方法和装置、电子设备及存储介质
US10255906B2 (en) Sensors and analytics for reading comprehension
Hattimare et al. Maruna Bot: An extensible retrieval-focused framework for task-oriented dialogues

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal