KR102682790B1 - Computer device and method to create question data - Google Patents

Computer device and method to create question data Download PDF

Info

Publication number
KR102682790B1
KR102682790B1 KR1020210049636A KR20210049636A KR102682790B1 KR 102682790 B1 KR102682790 B1 KR 102682790B1 KR 1020210049636 A KR1020210049636 A KR 1020210049636A KR 20210049636 A KR20210049636 A KR 20210049636A KR 102682790 B1 KR102682790 B1 KR 102682790B1
Authority
KR
South Korea
Prior art keywords
words
word
candidate words
database
candidate
Prior art date
Application number
KR1020210049636A
Other languages
Korean (ko)
Other versions
KR20220143291A (en
Inventor
이현정
홍상원
Original Assignee
엔에이치엔 주식회사
Filing date
Publication date
Application filed by 엔에이치엔 주식회사 filed Critical 엔에이치엔 주식회사
Priority to KR1020210049636A priority Critical patent/KR102682790B1/en
Publication of KR20220143291A publication Critical patent/KR20220143291A/en
Application granted granted Critical
Publication of KR102682790B1 publication Critical patent/KR102682790B1/en

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/00Information and communication technology [ICT] specially adapted for implementation of business processes of 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
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based 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/34Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

컴퓨터 장치는, 적어도 하나의 프로세서; 및 적어도 하나의 프로세서의 제어에 응답하여 사용자 단말기와 통신하도록 구성되는 통신기를 포함한다. 프로세서는, 입력된 텍스트에서 적어도 하나를 타겟 단어를 선택하고; 복수의 소스 문장들을 학습하여 획득된, 복수의 소스 문장들의 단어들에 대응하는 워드 임베딩 벡터들을 저장하는 제 1 데이터베이스로부터 타겟 단어의 워드 임베딩 벡터를 획득하고; 타겟 단어의 워드 임베딩 벡터와 벡터 공간 상 가장 인접한, 정해진 개수의 워드 임베딩 벡터들을 제 1 데이터베이스에서 검색하고 검색된 워드 임베딩 벡터들의 단어들을 제 1 후보 단어들로서 추출하고; 서로 연관된 단어들을 저장하는 제 2 데이터베이스를 조회하여 제 1 후보 단어들과 타겟 단어 사이의 연관성을 검증함으로써, 제 1 후보 단어들 중 적어도 일부를 하나 또는 그 이상의 제 2 후보 단어들로서 추출하고; 제 2 후보 단어들을 이용하여 입력된 텍스트에 대응하는 문제 데이터를 생성하도록 구성된다.A computer device may include at least one processor; and a communicator configured to communicate with the user terminal in response to control of the at least one processor. The processor selects at least one target word from the input text; Obtaining a word embedding vector of a target word from a first database that stores word embedding vectors corresponding to words of a plurality of source sentences, obtained by learning a plurality of source sentences; Searching a first database for a predetermined number of word embedding vectors that are closest to the word embedding vector of the target word in vector space and extracting words from the searched word embedding vectors as first candidate words; extracting at least some of the first candidate words as one or more second candidate words by verifying the association between the first candidate words and the target word by querying a second database storing related words; It is configured to generate problem data corresponding to the input text using the second candidate words.

Description

문제 데이터를 생성하는 컴퓨터 장치 및 방법{COMPUTER DEVICE AND METHOD TO CREATE QUESTION DATA}COMPUTER DEVICE AND METHOD TO CREATE QUESTION DATA}

본 발명은 컴퓨터 장치 및 방법에 관한 것으로, 좀 더 구체적으로는 문제 데이터를 생성하는 컴퓨터 장치 및 방법에 관한 것이다.The present invention relates to computer devices and methods, and more particularly to computer devices and methods for generating problem data.

인터넷이 널리 사용됨에 따라, 다양한 웹 사이트들은 사람들로 하여금 다양한 주제들에 대해 학습할 수 있도록 한다. 예를 들면, 사람들은 인터넷을 통해 웹 사이트에 접속하여 멀티미디어 컨텐츠를 다운로드 및 재생할 수 있다. 나아가, 웹 사이트들은 학습의 정도를 평가하기 위해 전달하고자 했던 정보와 관련된 문제들을 사용자에게 제공하고, 사용자로부터 문제들에 대한 대답을 수신하며, 그에 대한 평가 결과를 사용자에게 제공할 수 있다. 이러한 문제들은 일반적으로 사람에 의해 직접 만들지고 있으며, 따라서 웹 사이트는 해당 사람이 문제들을 입력할 수 있도록 하는 사용자 인터페이스를 추가적으로 제공할 수 있다.As the Internet becomes widely used, various websites allow people to learn about a variety of topics. For example, people can access websites through the Internet to download and play multimedia content. Furthermore, websites can provide users with problems related to the information they wish to convey in order to evaluate the degree of learning, receive answers to the problems from the user, and provide the user with the results of the evaluation. These questions are typically created by humans, so the website may additionally provide a user interface that allows the person to enter the questions.

위 기재된 내용은 오직 본 발명의 기술적 사상들에 대한 배경 기술의 이해를 돕기 위한 것이며, 따라서 그것은 본 발명의 기술 분야의 당업자에게 알려진 선행 기술에 해당하는 내용으로 이해될 수 없다.The content described above is only intended to help understand the background technology of the technical ideas of the present invention, and therefore, it cannot be understood as content corresponding to prior art known to those skilled in the art of the present invention.

본 발명의 실시 예들은 전달하고자 했던 정보에 적합한 문제들을 자동적으로 생성할 수 있는 컴퓨터 장치 및 방법을 제공하기 위한 것이다.Embodiments of the present invention are intended to provide a computer device and method that can automatically generate problems appropriate for information intended to be conveyed.

본 발명의 실시 예에 따른 사용자 단말기와 통신하기 위한 컴퓨터 장치는, 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서의 제어에 응답하여 상기 사용자 단말기와 통신하도록 구성되는 통신기를 포함하며, 상기 적어도 하나의 프로세서는, 입력된 텍스트에서 적어도 하나를 타겟 단어를 선택하고; 복수의 소스 문장들을 학습하여 획득된, 상기 복수의 소스 문장들의 단어들에 대응하는 워드 임베딩 벡터들을 저장하는 제 1 데이터베이스로부터 상기 타겟 단어의 워드 임베딩 벡터를 획득하고; 상기 타겟 단어의 상기 워드 임베딩 벡터와 벡터 공간 상 가장 인접한, 정해진 개수의 워드 임베딩 벡터들을 상기 제 1 데이터베이스에서 검색하고 상기 검색된 워드 임베딩 벡터들의 단어들을 제 1 후보 단어들로서 추출하고; 서로 연관된 단어들을 저장하는 제 2 데이터베이스를 조회하여 상기 제 1 후보 단어들과 상기 타겟 단어 사이의 연관성을 검증함으로써, 상기 제 1 후보 단어들 중 적어도 일부를 하나 또는 그 이상의 제 2 후보 단어들로서 추출하고; 상기 제 2 후보 단어들을 이용하여 상기 입력된 텍스트에 대응하는 문제 데이터를 생성하고; 상기 문제 데이터를 상기 통신기를 통해 상기 사용자 단말기에 전송하도록 구성된다.A computer device for communicating with a user terminal according to an embodiment of the present invention includes at least one processor; and a communicator configured to communicate with the user terminal in response to control of the at least one processor, wherein the at least one processor selects at least one target word from the input text; Obtaining a word embedding vector of the target word from a first database that stores word embedding vectors corresponding to words of the plurality of source sentences, obtained by learning a plurality of source sentences; Searching the first database for a predetermined number of word embedding vectors that are closest to the word embedding vector of the target word in a vector space and extracting words from the searched word embedding vectors as first candidate words; extracting at least some of the first candidate words as one or more second candidate words by verifying the association between the first candidate words and the target word by querying a second database storing related words; ; generating problem data corresponding to the input text using the second candidate words; and transmit the problem data to the user terminal through the communicator.

상기 적어도 하나의 프로세서는 상기 제 1 후보 단어들 중 상기 제 2 데이터베이스 상 상기 타겟 단어와 매치되는 것들을 상기 제 2 후보 단어들로서 판별하도록 구성될 수 있다.The at least one processor may be configured to determine, among the first candidate words, those that match the target word in the second database as the second candidate words.

상기 적어도 하나의 프로세서는 사용자에 의해 선택된 제 3 데이터베이스에 저장된 단어들에 기반하여 상기 제 2 후보 단어들을 필터링하고, 상기 필터링된 제 2 후보 단어들에 따라 상기 문제 데이터를 생성하도록 구성될 수 있다.The at least one processor may be configured to filter the second candidate words based on words stored in a third database selected by a user and generate the problem data according to the filtered second candidate words.

상기 입력된 텍스트는 상기 통신기를 통해 상기 사용자 단말기로부터 수신되는 요청 신호에 따라 결정될 수 있다.The input text may be determined according to a request signal received from the user terminal through the communicator.

본 발명의 다른 일면은 사용자 단말기와 통신하기 위한 방법에 관한 것이다. 상기 방법은, 입력된 텍스트에서 적어도 하나의 타겟 단어를 선택하는 단계; 복수의 소스 문장들을 학습하여 획득된, 상기 복수의 소스 문장들의 단어들에 대응하는 워드 임베딩 벡터들을 저장하는 제 1 데이터베이스로부터 상기 타겟 단어의 워드 임베딩 벡터를 획득하는 단계; 상기 타겟 단어의 상기 워드 임베딩 벡터와 벡터 공간 상 가장 인접한, 정해진 개수의 워드 임베딩 벡터들을 상기 제 1 데이터베이스에서 검색하고 상기 검색된 워드 임베딩 벡터들의 단어들을 제 1 후보 단어들로서 추출하는 단계; 서로 연관된 단어들을 저장하는 제 2 데이터베이스를 조회하여 상기 제 1 후보 단어들 각각과 상기 타겟 단어 사이의 연관성을 검증함으로써, 상기 제 1 후보 단어들 중 적어도 일부를 하나 또는 그 이상의 제 2 후보 단어들로서 추출하는 단계; 상기 제 2 후보 단어들을 이용하여 상기 입력된 텍스트에 대응하는 문제 데이터를 생성하는 단계; 및 상기 문제 데이터를 상기 사용자 단말기에 전송하는 단계를 포함할 수 있다.Another aspect of the present invention relates to a method for communicating with a user terminal. The method includes selecting at least one target word from input text; Obtaining a word embedding vector of the target word from a first database that stores word embedding vectors corresponding to words of the plurality of source sentences, obtained by learning a plurality of source sentences; Searching the first database for a predetermined number of word embedding vectors that are closest to the word embedding vector of the target word in vector space and extracting words from the searched word embedding vectors as first candidate words; Extracting at least some of the first candidate words as one or more second candidate words by verifying the association between each of the first candidate words and the target word by searching a second database storing related words steps; generating problem data corresponding to the input text using the second candidate words; And it may include transmitting the problem data to the user terminal.

상기 제 2 후보 단어들을 추출하는 단계에서, 상기 제 1 후보 단어들 중 상기 제 2 데이터베이스 상 상기 타겟 단어와 매치되는 것들이 상기 제 2 후보 단어들로서 판별될 수 있다.In the step of extracting the second candidate words, those that match the target word in the second database among the first candidate words may be determined as the second candidate words.

상기 문제 데이터를 생성하는 단계는, 사용자에 의해 선택된 제 3 데이터베이스에 저장된 단어들에 기반하여 상기 제 2 후보 단어들을 필터링하는 단계; 및 상기 필터링된 제 2 후보 단어들에 따라 상기 문제 데이터를 생성하는 단계를 포함할 수 있다.Generating the problem data may include filtering the second candidate words based on words stored in a third database selected by a user; and generating the problem data according to the filtered second candidate words.

상기 입력된 텍스트는 상기 통신기를 통해 상기 사용자 단말기로부터 수신되는 요청 신호에 따라 결정될 수 있다.The input text may be determined according to a request signal received from the user terminal through the communicator.

본 발명의 실시 예들에 따르면, 전달하고자 했던 정보에 적합한 문제들을 자동적으로 생성할 수 있는 컴퓨터 장치 및 방법이 제공된다. 예를 들면, 컴퓨터 장치는 사전에 학습된 워드 임베딩 벡터들에 기반하여 타겟 단어와 관련된 후보 단어들을 우선적으로 추출하고, 이후 서로 연관된 단어들을 저장하는 언어 데이터베이스를 참조하여 추출된 후보 단어들을 필터링할 수 있다. 문제는 필터링된 후보 단어에 기반하여 생성될 수 있다. 이에 따라, 컴퓨터 장치는 전달하고자 했던 정보에 적합한 문제들을 높은 신뢰성으로 생성하면서도, 문제 생성에 소요되는 자원들을 절약할 수 있다.According to embodiments of the present invention, a computer device and method are provided that can automatically generate problems suitable for information to be conveyed. For example, a computer device may first extract candidate words related to a target word based on pre-learned word embedding vectors, and then filter the extracted candidate words by referring to a language database that stores words related to each other. there is. Problems can be generated based on filtered candidate words. Accordingly, the computer device can generate problems suitable for the information intended to be conveyed with high reliability, while saving resources required for problem creation.

도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다.
도 2는 도 1의 네트워크 서버에 포함된 문제 생성기를 보여주는 블록도이다.
도 3은 도 2의 워드 임베딩 데이터베이스에 저장된 워드 임베딩 벡터들의 일 예를 개념적으로 보여주는 도면이다.
도 4는 도 2의 후보 단어 추출부에 의해 추출된 제 1 후보 단어들의 일 예를 보여주는 도면이다.
도 5는 도 2의 유의어 데이터베이스에 저장된 데이터의 일부를 개념적으로 보여주는 도면이다.
도 6은 도 2의 문제 생성부에 의해 생성된 문제의 일 예를 보여주는 도면이다.
도 7은 제 1 내지 제 3 후보 단어들의 데이터 사이즈를 개념적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 네트워크 서버의 동작 방법을 보여주는 순서도이다.
도 9는 도 8의 S150단계의 실시 예를 보여주는 순서도이다.
도 10은 도 1의 네트워크 서버를 구현하기에 적합한 컴퓨터 장치의 실시 예를 보여주는 블록도이다.
1 is a block diagram showing a network system according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a problem generator included in the network server of FIG. 1.
FIG. 3 is a diagram conceptually showing an example of word embedding vectors stored in the word embedding database of FIG. 2.
FIG. 4 is a diagram showing an example of first candidate words extracted by the candidate word extraction unit of FIG. 2.
FIG. 5 is a diagram conceptually showing some of the data stored in the synonym database of FIG. 2.
FIG. 6 is a diagram showing an example of a problem created by the problem generator of FIG. 2.
Figure 7 is a diagram conceptually showing the data sizes of first to third candidate words.
Figure 8 is a flowchart showing a method of operating a network server according to an embodiment of the present invention.
Figure 9 is a flowchart showing an example of step S150 of Figure 8.
FIG. 10 is a block diagram showing an embodiment of a computer device suitable for implementing the network server of FIG. 1.

이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the attached drawings. It should be noted that in the following description, only the parts necessary to understand the operation according to the present invention will be described, and the description of other parts will be omitted in order to not obscure the gist of the present invention. Additionally, the present invention is not limited to the embodiments described herein and may be embodied in other forms. However, the embodiments described herein are provided to explain in detail enough to enable those skilled in the art to easily implement the technical idea of the present invention.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 여기에서 사용된 용어는 특정한 실시예들을 설명하기 위한 것이며 본 발명을 한정하기 위한 것이 아니다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. "X, Y, 및 Z 중 적어도 어느 하나", 그리고 "X, Y, 및 Z로 구성된 그룹으로부터 선택된 적어도 어느 하나"는 X 하나, Y 하나, Z 하나, 또는 X, Y, 및 Z 중 둘 또는 그 이상의 어떤 조합 (예를 들면, XYZ, XYY, YZ, ZZ) 으로 해석될 수 있다. 여기에서, "및/또는"은 해당 구성들 중 하나 또는 그 이상의 모든 조합을 포함한다.Throughout the specification, when a part is said to be "connected" to another part, this includes not only the case where it is "directly connected," but also the case where it is "indirectly connected" with another element in between. . The terminology used herein is for the purpose of describing specific embodiments and is not intended to limit the invention. Throughout the specification, when a part is said to “include” a certain element, this means that it may further include other elements rather than excluding other elements, unless specifically stated to the contrary. “at least one of X, Y, and Z”, and “at least one selected from the group consisting of It can be interpreted as any combination (e.g., XYZ, XYY, YZ, ZZ). Here, “and/or” includes any combination of one or more of the constituents.

도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다.1 is a block diagram showing a network system according to an embodiment of the present invention.

도 1을 참조하면, 네트워크 시스템(100)은 네트워크(50), 사용자 단말기(110), 및 네트워크 서버(120)를 포함할 수 있다.Referring to FIG. 1 , the network system 100 may include a network 50, a user terminal 110, and a network server 120.

네트워크 시스템(100)은 여기에 설명된 본 발명의 실시 예들에 따른 다양한 방법들을 수행하도록 동작하는 복수의 장치들, 서버들, 및/또는 소프트웨어 구성들을 포함할 수 있다. 도 1에 도시된 장치들 및/또는 서버들은 다른 방식들로 구성될 수 있으며, 장치들 및/또는 서버들에 의해 제공되는 동작들 및 서비스들은 여기에 설명된 실시 예들을 위해 결합되거나 분리될 수 있으며, 더 많은 수 혹은 더 적은 수의 장치들 및/또는 서버들에 의해 수행될 수 있다. 하나 또는 그 이상의 장치들 및/또는 서버들은 동일 혹은 상이한 기업체들에 의해 구동 및/또는 유지될 수 있다.Network system 100 may include a plurality of devices, servers, and/or software components operative to perform various methods in accordance with embodiments of the invention described herein. The devices and/or servers shown in FIG. 1 may be configured in different ways, and the operations and services provided by the devices and/or servers may be combined or separated for the embodiments described herein. and may be performed by more or fewer devices and/or servers. One or more devices and/or servers may be operated and/or maintained by the same or different entities.

네트워크(50)는 사용자 단말기(110) 및 네트워크 서버(120)와 같은 네트워크 시스템(100) 내 구성 요소들을 연결한다. 네트워크(50)는 공용 네트워크, 적어도 하나의 사설 네트워크, 유선 네트워크, 무선 네트워크, 다른 적절한 타입의 네트워크, 및 그것들의 조합들 중 적어도 하나를 포함할 수 있다. 네트워크 시스템(100) 내 구성 요소들 각각은 유선 통신 기능 및 무선 통신 기능 중 적어도 하나를 포함할 수 있으며, 그에 따라 네트워크(50)를 통해 상호 간 통신할 수 있다.The network 50 connects components within the network system 100, such as the user terminal 110 and the network server 120. Network 50 may include at least one of a public network, at least one private network, a wired network, a wireless network, another suitable type of network, and combinations thereof. Each of the components in the network system 100 may include at least one of a wired communication function and a wireless communication function, and thus may communicate with each other through the network 50 .

사용자 단말기(110)는 네트워크(50)를 통해 네트워크 서버(120)와 통신하도록 구성된다. 사용자 단말기(110)는 네트워크 서버(120)로부터 네트워크(50)를 통해 컨텐츠 데이터(CT)를 수신하고, 수신된 컨텐츠 데이터(CT)에 대응하는 정보를 디스플레이 장치 및/또는 오디오 장치를 통해 출력함으로써 사용자로 하여금 해당 정보를 학습할 수 있도록 한다.The user terminal 110 is configured to communicate with the network server 120 through the network 50. The user terminal 110 receives content data (CT) from the network server 120 through the network 50 and outputs information corresponding to the received content data (CT) through a display device and/or an audio device. Allows users to learn the information.

사용자 단말기(110)는 네트워크 서버(120)로부터 문제 데이터를 수신하고, 문제 데이터에 대응하는 정보(즉, 문제)를 디스플레이 장치 및/또는 오디오 장치를 통해 출력할 수 있다. 이때, 문제 데이터는 컨텐츠 데이터(CT)와 연관될 수 있다. 또한, 사용자 단말기(110)는 네트워크 서버(120)로부터 문제 데이터에 대응하는 정답 데이터를 제공받아 디스플레이 장치 및/또는 오디오 장치를 통해 출력할 수 있다.The user terminal 110 may receive problem data from the network server 120 and output information (i.e., problem) corresponding to the problem data through a display device and/or an audio device. At this time, the problem data may be associated with content data (CT). Additionally, the user terminal 110 may receive answer data corresponding to the question data from the network server 120 and output it through a display device and/or an audio device.

사용자 단말기(110)는 위와 같은 동작들을 수행하기에 적합한 하드웨어들, 소프트웨어들, 및/또는 펌웨어들을 포함할 수 있다. 실시 예들에서, 사용자 단말기(110)는 컴퓨터 장치, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기 등과 같은 정보를 유선 및/또는 무선 환경에서 송수신할 수 있는 장치 등을 포함할 수 있다.The user terminal 110 may include hardware, software, and/or firmware suitable for performing the above operations. In embodiments, the user terminal 110 may be a computer device, an Ultra Mobile PC (UMPC), a workstation, a net-book, a Personal Digital Assistant (PDA), a portable computer, a web tablet, Information such as wireless phones, mobile phones, smart phones, e-books, PMPs (portable multimedia players), portable game consoles, etc. are stored in a wired and/or wireless environment. It may include devices capable of transmitting and receiving.

네트워크 서버(120)는 네트워크(50)를 통해 사용자 단말기(110)와 통신하도록 구성된다. 네트워크 서버(120)는 사용자 단말기(110)의 요청에 응답하여 데이터베이스(DB)에 저장된 컨텐츠 데이터(CT)를 사용자 단말기(110)에 제공할 수 있다. 또한, 본 발명의 실시 예에 따르면 네트워크 서버(120)는 사용자 단말기(110)로부터의 요청에 응답하여 컨텐츠 데이터(CT)에 대응하는 문제 데이터 및 그에 대응하는 정답 데이터를 자동적으로 생성하고, 문제 데이터를 사용자 단말기(110)에 제공하고, 정답 데이터를 사용자 단말기(110)에 제공할 수 있다. 이와 관련하여는 도 3을 참조하여 좀 더 상세히 설명된다.The network server 120 is configured to communicate with the user terminal 110 through the network 50. The network server 120 may provide content data (CT) stored in the database (DB) to the user terminal 110 in response to a request from the user terminal 110. In addition, according to an embodiment of the present invention, the network server 120 automatically generates problem data and answer data corresponding to the content data (CT) in response to a request from the user terminal 110, and generates the problem data may be provided to the user terminal 110, and the correct answer data may be provided to the user terminal 110. This will be explained in more detail with reference to FIG. 3 .

도 2는 도 1의 네트워크 서버에 포함된 문제 생성기를 보여주는 블록도이다. 도 3은 도 2의 워드 임베딩 데이터베이스에 저장된 워드 임베딩 벡터들의 일 예를 개념적으로 보여주는 도면이다. 도 4는 도 2의 후보 단어 추출부에 의해 추출된 제 1 후보 단어들의 일 예를 보여주는 도면이다. 도 5는 도 2의 유의어 데이터베이스에 저장된 데이터의 일부를 개념적으로 보여주는 도면이다. 도 6은 도 2의 문제 생성부에 의해 생성된 문제의 일 예를 보여주는 도면이다.FIG. 2 is a block diagram showing a problem generator included in the network server of FIG. 1. FIG. 3 is a diagram conceptually showing an example of word embedding vectors stored in the word embedding database of FIG. 2. FIG. 4 is a diagram showing an example of first candidate words extracted by the candidate word extraction unit of FIG. 2. FIG. 5 is a diagram conceptually showing some of the data stored in the synonym database of FIG. 2. FIG. 6 is a diagram showing an example of a problem created by the problem generator of FIG. 2.

도 2를 참조하면, 문제 생성기(200)는 타겟 단어 선택부(220), 후보 단어 추출부(230), 제 1 필터링부(240), 제 2 필터링부(250), 문제 생성부(260), 및 사용자 단말기 인터페이스(270)를 포함할 수 있다.Referring to FIG. 2, the problem generator 200 includes a target word selection unit 220, a candidate word extraction unit 230, a first filtering unit 240, a second filtering unit 250, and a problem generating unit 260. , and may include a user terminal interface 270.

타겟 단어 선택부(220)는 입력된 텍스트(TXT)의 단어들 중 타겟 단어(TW)를 선택하도록 구성된다. 입력된 텍스트(TXT)는 네트워크 서버(120, 도 1 참조)의 통신기를 통해 사용자 단말기(110)로부터 수신되는 요청 신호에 따라 결정될 수 있다. 예를 들면, 컨텐츠 데이터(CT)에 포함된 문장들 중 어느 하나가 사용자 단말기(110)의 사용자에 의해 선택될 수 있으며, 선택된 문장은 입력된 텍스트(TXT)로서 타겟 단어 선택부(220)에 제공될 수 있다. 이 밖에도 다양한 방법들을 통해 입력된 텍스트(TXT)가 결정될 수 있다. 예를 들면, 입력된 텍스트(TXT)가 “but the price tage says it’s only 19 dollars and 99 cents”일 때 타겟 단어 선택부(220)는 “says”를 타겟 단어(TW)로서 선택할 수 있다.The target word selection unit 220 is configured to select a target word (TW) from words in the input text (TXT). The input text (TXT) may be determined according to a request signal received from the user terminal 110 through the communicator of the network server 120 (see FIG. 1). For example, one of the sentences included in the content data (CT) may be selected by the user of the user terminal 110, and the selected sentence is sent to the target word selection unit 220 as input text (TXT). can be provided. In addition, the input text (TXT) can be determined through various methods. For example, when the input text (TXT) is “but the price tag says it’s only 19 dollars and 99 cents,” the target word selection unit 220 may select “says” as the target word (TW).

실시 예들에서, 타겟 단어 선택부(220)는 입력된 텍스트(TXT)에 포함된 형태소들을 식별하도록 구성되는 형태소 분석기, 그리고 입력된 텍스트(TXT)에 포함된 구문을 식별하도록 구성되는 구문 분석기를 포함할 수 있다. 형태소 분석기 및 구문 분석기 각각은 이 분야에 잘 알려진 다양한 방식들 및/또는 알고리즘들에 따라 동작할 수 있다. 타겟 단어 선택부(220)는 식별된 형태소들 및 구문들에 따라 입력된 텍스트(TXT)에서 상대적으로 높은 중요도(혹은 가장 높은 중요도)를 갖는 단어를 타겟 단어(TW)로서 결정할 수 있다. 다른 실시 예들에서, 타겟 단어(TW)는 사용자에 의해 선택될 수 있다.In embodiments, the target word selection unit 220 includes a morpheme analyzer configured to identify morphemes included in the input text (TXT), and a parser configured to identify phrases included in the input text (TXT). can do. Each of the morphological analyzer and syntactic analyzer may operate according to various methods and/or algorithms well known in the art. The target word selection unit 220 may determine a word with relatively high importance (or highest importance) in the input text (TXT) as the target word (TW) according to the identified morphemes and phrases. In other embodiments, the target word (TW) may be selected by the user.

후보 단어 추출부(230)는 타겟 단어 선택부(220)로부터 타겟 단어(TW)를 수신할 수 있다. 후보 단어 추출부(230)는 워드 임베딩 데이터베이스(DB1)에 액세스할 수 있다.The candidate word extraction unit 230 may receive the target word (TW) from the target word selection unit 220. The candidate word extractor 230 can access the word embedding database DB1.

워드 임베딩 데이터베이스(DB1)는 복수의 소스 문장들에 대해 딥 러닝을 수행함으로써 획득된, 복수의 소스 문장들의 단어들에 대응하는 워드 임베딩(word embedding) 벡터들을 저장한다. 신경망(neural network)과 같은 학습 모듈을 통해 소스 문장들 내 임의의 단어의 앞과 뒤 단어들이 학습되어 해당 단어의 워드 임베딩 벡터가 생성될 수 있다. 예를 들면, 소스 문장들 내에서 임의의 단어들 각각의 앞 뒤에서 동일 및/또는 유사한 단어들이 반복적으로 출현하는 경우, 그 임의의 단어들은 서로 인접한 워드 임베딩 벡터들을 가질 수 있으며, 이는 그 임의의 단어들이 서로 연관됨(예를 들면, 유사함)을 의미할 수 있다. 도 3을 참조하면, 다수의 단어들에 각각 대응하는 워드 임베딩 벡터들이 벡터 공간(VS) 내에 위치하며, 각 워드 임베딩 벡터는 2 이상의 스케일들(예를 들면, 도 3의 x축 및 y축)에 의해 정의될 수 있다. 벡터 공간(VS) 내에서 서로 연관된 단어들은 서로 인접한 밀집 벡터들, 즉 워드 임베딩 벡터들을 가질 수 있다. 도 3에서, “woman”의 워드 임베딩 벡터와 그에 인접한 워드 임베딩 벡터들을 포함하는 밀집 벡터들, 그리고 “future”의 워드 임베딩 벡터와 그에 인접한 워드 임베딩 벡터들을 포함하는 밀집 벡터들이 점선 원들로 표시되어 있다. 이와 같이, 서로 인접한 워드 임베딩 벡터들에 대응하는 단어들은 서로 연관되며, 서로 유사할 수 있다. 워드 임베딩 벡터들이 서로 인접할수록 해당 단어들 사이의 연관도는 높아질 수 있다. 실시 예에서, 워드 임베딩 벡터들은 Sense2Vec 모델 혹은 Word2Vec 모델을 이용하여 소스 문장들을 학습함으로써 생성된 것들일 수 있다.The word embedding database DB1 stores word embedding vectors corresponding to words of a plurality of source sentences, obtained by performing deep learning on the plurality of source sentences. Through a learning module such as a neural network, words before and after a random word in source sentences can be learned to generate a word embedding vector for the word. For example, if the same and/or similar words appear repeatedly before and after each of the arbitrary words in the source sentences, the arbitrary words may have word embedding vectors adjacent to each other, which may It may mean that they are related to each other (e.g., similar). Referring to FIG. 3, word embedding vectors corresponding to multiple words are located in a vector space (VS), and each word embedding vector has two or more scales (e.g., x-axis and y-axis in FIG. 3). It can be defined by . Within a vector space (VS), words that are related to each other may have dense vectors adjacent to each other, that is, word embedding vectors. In Figure 3, the dense vectors containing the word embedding vector of “woman” and its adjacent word embedding vectors, and the dense vectors containing the word embedding vector of “future” and its adjacent word embedding vectors are indicated by dotted circles. . In this way, words corresponding to adjacent word embedding vectors are related to each other and may be similar to each other. The closer word embedding vectors are to each other, the higher the degree of correlation between the words can be. In an embodiment, word embedding vectors may be generated by learning source sentences using the Sense2Vec model or the Word2Vec model.

다시 도 2를 참조하면, 후보 단어 추출부(230)는 워드 임베딩 데이터베이스(DB1)에서 타겟 단어(TW)에 대응하는 워드 임베딩 벡터를 획득하고, 벡터 공간(VS, 도 3 참조) 상 타겟 단어(TW)의 워드 임베딩 벡터와 가장 인접한, 정해진 개수의 워드 임베딩 벡터들을 워드 임베딩 데이터베이스(DB1)에서 검색하고, 검색된 워드 임베딩 벡터들의 단어들을 제 1 후보 단어들(CW1)로서 추출한다. 도 4를 참조하면, “say”와 연관된 제 1 후보 단어들(CW1)로서 “know”, “tell”, “admit”, “realize”, “believe” 등이 추출된다. 예를 들면, 5개의 제 1 후보 단어들(CW1)이 추출될 수 있다. 벡터 공간(VS, 도 3 참조) 상 “say”의 워드 임베딩 벡터와의 거리에 따라, 제 1 후보 단어들(CW1) 각각의 “say”와의 연관도가 결정될 수 있다. 도 4에서, “know”, “tell”, “admit”, “realize”, 및 “believe” 각각은 “say”와 88%, 85%, 82%, 74%, 및 74%의 연관도들을 갖는다.Referring again to FIG. 2, the candidate word extractor 230 obtains a word embedding vector corresponding to the target word (TW) from the word embedding database DB1, and extracts the target word ( A predetermined number of word embedding vectors that are closest to the word embedding vector of TW) are searched in the word embedding database (DB1), and the words of the searched word embedding vectors are extracted as first candidate words (CW1). Referring to FIG. 4, “know”, “tell”, “admit”, “realize”, “believe”, etc. are extracted as first candidate words (CW1) related to “say”. For example, five first candidate words (CW1) may be extracted. Depending on the distance from the word embedding vector of “say” in the vector space (VS, see FIG. 3), the degree of relevance of each of the first candidate words (CW1) with “say” may be determined. In Figure 4, “know”, “tell”, “admit”, “realize”, and “believe” have associations with “say” of 88%, 85%, 82%, 74%, and 74%, respectively. .

다시 도 2를 참조하면, 제 1 필터링부(240)는 후보 단어 추출부(230)로부터 제 1 후보 단어들(CW1)을 수신한다. 제 1 필터링부(240)는 유의어 데이터베이스(DB2)에 액세스할 수 있다. 유의어 데이터베이스(DB2)에는 서로 매핑되는 단어들, 예를 들면 서로 동일 혹은 유사한 의미를 갖는 동의어들이 그룹핑되어 있다. 도 5를 참조하면, 유의어 데이터베이스(DB2)는 “say”에 매핑되는(예를 들면, 유사한) 단어들로서 “state”, “tell”, “allege”, “aver”, “write” 등을 포함할 수 있다. 실시 예에서, 유의어 데이터베이스(DB2)는 WordNet과 같은 언어 데이터베이스를 포함할 수 있다. 실시 예들에서, 유의어 데이터베이스(DB2)는 범용 언어 데이터베이스일 수 있다.Referring again to FIG. 2, the first filtering unit 240 receives first candidate words CW1 from the candidate word extracting unit 230. The first filtering unit 240 may access the synonym database DB2. The synonym database (DB2) groups words that are mapped to each other, for example, synonyms that have the same or similar meaning. Referring to FIG. 5, the synonym database (DB2) may include “state,” “tell,” “allege,” “aver,” “write,” etc. as words that are mapped to (e.g., similar to) “say.” You can. In an embodiment, the synonym database DB2 may include a linguistic database such as WordNet. In embodiments, synonym database DB2 may be a general-purpose language database.

도 4 및 도 5와 함께 도 2를 참조하면, 제 1 필터링부(240)는 유의어 데이터베이스(DB2)를 조회하여 제 1 후보 단어들(CW1)을 필터링하고, 필터링된 제 1 후보 단어들(CW1)을 적어도 하나의 제 2 후보 단어(CW2)로서 출력할 수 있다. 제 1 후보 단어들(CW1)인 “know”, “tell”, “admit”, “realize”, 및 “believe” 중 유의어 데이터베이스(DB2)에서 “say”에 매핑되는 단어는 “tell”이다. 이러한 경우, 제 1 필터링부(240)는 “know”, “admit”, “realize”, 및 “believe”를 제외하고 “tell”을 제 2 후보 단어(CW)로서 출력할 수 있다.Referring to FIG. 2 along with FIGS. 4 and 5, the first filtering unit 240 searches the synonym database DB2 and filters the first candidate words CW1, and filters the first candidate words CW1. ) can be output as at least one second candidate word (CW2). Among the first candidate words (CW1), “know,” “tell,” “admit,” “realize,” and “believe,” the word mapped to “say” in the synonym database (DB2) is “tell.” In this case, the first filtering unit 240 may output “tell” as the second candidate word (CW), excluding “know,” “admit,” “realize,” and “believe.”

제 2 필터링부(250)는 제 1 필터링부(240)로부터 하나 또는 그 이상의 제 2 후보 단어들(CW2)을 수신한다. 제 2 필터링부(250)는 교과 내용 데이터베이스(DB3)에 액세스할 수 있다. 교과 내용 데이터베이스(DB3)는 컨텐츠 데이터(CT)에 포함된 단어들의 적어도 일부를 저장할 수 있다. 제 2 필터링부(250)는 제 2 후보 단어들(CW2) 각각이 교과 내용 데이터베이스(DB3)에 존재하는지 여부를 검증할 수 있다. 제 2 필터링부(250)는 제 2 후보 단어들(CW2) 중 교과 내용 데이터베이스(DB3)에 존재하는 것들을 정답 단어(AW)로서 출력할 수 있다. 다른 실시 예들에서, 제 2 후보 단어(CW)는 제 2 필터링부(250)를 거치지 않고 정답 단어(AW)로서 제공될 수 있다.The second filtering unit 250 receives one or more second candidate words CW2 from the first filtering unit 240. The second filtering unit 250 can access the curriculum content database DB3. The curriculum content database DB3 may store at least some of the words included in the content data CT. The second filtering unit 250 may verify whether each of the second candidate words CW2 exists in the curriculum content database DB3. The second filtering unit 250 may output those existing in the curriculum content database DB3 among the second candidate words CW2 as the correct answer words AW. In other embodiments, the second candidate word (CW) may be provided as the correct answer word (AW) without going through the second filtering unit 250.

문제 생성부(260)는 입력된 텍스트(TXT), 타겟 단어(TW), 및 정답 단어(AW)에 기반하여 문제 데이터를 생성하도록 구성된다. 이 분야에 알려진 다양한 방식들 및/또는 알고리즘들이 이용되어 문제가 생성될 수 있다. 도 6을 참조하면, 입력된 텍스트(TXT)인 “but the price tage says it’s only 19 dollars and 99 cents”, 타겟 단어(TW)인 “says”, 그리고 정답 단어(AW)인 “tells”에 기반하여 문제가 생성되었다. 실시 예들에서, 제 1 후보 단어들(CW1, 도 2 참조) 중 정답 단어(AW)를 제외한 단어들인 “knows”, “admits”, “realizes”, 및 “believes”가 “says”와 함께 객관식 문항들로서 제공될 수 있다.The problem generator 260 is configured to generate problem data based on the input text (TXT), target word (TW), and correct answer word (AW). A variety of methods and/or algorithms known in the art may be used to generate the problem. Referring to Figure 6, based on the input text (TXT) “but the price tag says it's only 19 dollars and 99 cents”, the target word (TW) “says”, and the correct word (AW) “tells” So a problem was created. In embodiments, “knows,” “admits,” “realizes,” and “believes,” which are words excluding the correct word (AW) among the first candidate words (CW1, see FIG. 2), together with “says,” are included in a multiple-choice question. can be provided as

다시 도 2를 참조하면, 사용자 단말기 인터페이스(270)는 문제 생성부(260)에 의해 생성된 문제 데이터를 네트워크(50, 도 1 참조)를 통해 사용자 단말기(110)에 전송할 수 있다.Referring again to FIG. 2 , the user terminal interface 270 may transmit problem data generated by the problem generator 260 to the user terminal 110 through the network 50 (see FIG. 1 ).

실시 예들에서, 워드 임베딩 데이터베이스(DB1), 유의어 데이터베이스(DB2), 및 교과 내용 데이터베이스(DB3)는 도 1에 도시된 데이터베이스(DB)에 포함될 수 있다. 실시 예들에서, 워드 임베딩 데이터베이스(DB1), 유의어 데이터베이스(DB2), 및 교과 내용 데이터베이스(DB3)는 네트워크 서버(120, 도 1 참조)에 포함된 구성요소들로서 제공될 수 있다. 다른 실시 예들에서, 워드 임베딩 데이터베이스(DB1), 유의어 데이터베이스(DB2), 및 교과 내용 데이터베이스(DB3) 중 적어도 일부는 네트워크 서버(120)와 분리된 구성요소들로서 제공될 수 있으며, 네트워크(50, 도 1 참조)를 통해 네트워크 서버(120)에 그것의 데이터를 제공할 수 있다.In embodiments, a word embedding database (DB1), a synonym database (DB2), and a curriculum content database (DB3) may be included in the database (DB) shown in FIG. 1. In embodiments, the word embedding database DB1, the synonym database DB2, and the curriculum content database DB3 may be provided as components included in the network server 120 (see FIG. 1). In other embodiments, at least some of the word embedding database DB1, the synonym database DB2, and the curriculum content database DB3 may be provided as components separate from the network server 120 and network 50, FIG. Its data can be provided to the network server 120 through (see 1).

도 7은 제 1 내지 제 3 후보 단어들의 데이터 사이즈를 개념적으로 보여주는 도면이다.Figure 7 is a diagram conceptually showing the data sizes of first to third candidate words.

도 2 및 도 7을 참조하면, 입력 텍스트(TXT)에서 타겟 단어(TW)가 선택된 후, 워드 임베딩 데이터베이스(DB1)의 워드 임베딩 벡터들을 이용하여 정해진 개수만큼의 제 1 후보 단어들(CW1)을 우선적으로 추출하고, 이후 유의어 데이터베이스(DB2)를 이용하여 필터링을 수행함으로써 제 2 후보 단어들(CW2)이 추출된다. 이에 따라 제 2 후보 단어들(CW2)은 제 1 후보 단어들(CW1)보다 작은 데이터 사이즈를 가질 수 있다. 제 2 후보 단어(CW2)들은 교과 내용 데이터베이스(DB3)를 이용하여 더 필터링(혹은, 검증)되어 정답 단어(AW)를 추출할 수 있다.2 and 7, after the target word (TW) is selected from the input text (TXT), a predetermined number of first candidate words (CW1) are selected using word embedding vectors of the word embedding database (DB1). Second candidate words (CW2) are extracted by first extracting and then filtering using the synonym database (DB2). Accordingly, the second candidate words CW2 may have a smaller data size than the first candidate words CW1. The second candidate words (CW2) can be further filtered (or verified) using the curriculum content database (DB3) to extract the correct answer word (AW).

유의어 데이터베이스(DB2)를 우선적으로 이용하여 후보 단어들을 추출한다고 가정한다. 이러한 경우, WordNet과 같은 범용의 유의어 데이터베이스(DB2)에서는 특정 단어(예를 들면 타겟 단어)와 유사한 단어들이 매우 다양하다는 점을 고려할 때, 상대적으로 많은 후보 단어들이 추출되어야 한다. 이러한 경우, 많은 후보 단어들로 인해 정답 단어를 추출하여 문제를 생성하는 데 소요되는 자원들이 증가할 수 있다.Assume that candidate words are extracted by first using the synonym database (DB2). In this case, considering that there are many different words similar to a specific word (e.g., target word) in a general-purpose synonym database (DB2) such as WordNet, a relatively large number of candidate words must be extracted. In this case, the resources required to extract the correct word and create a problem may increase due to the large number of candidate words.

반면, 본 발명의 실시 예에 따르면 워드 임베딩 데이터베이스(DB1)를 우선적으로 이용하여 정해진 개수만큼 제 1 후보 단어들(CW1)을 추출한다. 컨텐츠 데이터(CT, 도 1 참조)의 학습자, 컨텐츠 데이터(CT)의 종류와 내용 등에 따라 특정 단어와 높은 연관도(예를 들면 유사도)를 갖는 단어는 달라질 수 있는 점, 그리고 사용자에 의해 컨텐츠 데이터(CT)에 적응적으로 선택된 소스 문장들을 학습하여 생성된 워드 임베딩 벡터들이 이용되어 타겟 단어(TW)와 연관된 제 1 후보 단어들(CW1)을 추출하는 점을 고려할 때, 제 1 후보 단어들(CW1)은 정해진 개수로 한정되더라도 상대적으로 높은 확률로 타겟 단어(TW)와 매치되는 정답 단어(AW)를 포함할 수 있다. 또한 한정된 개수로 제 1 후보 단어들(CW1)을 추출하는 것은 문제 생성을 위한 자원들을 감소시킬 수 있음을 의미한다.On the other hand, according to an embodiment of the present invention, the word embedding database DB1 is preferentially used to extract a predetermined number of first candidate words CW1. Words with a high degree of association (e.g., similarity) with a specific word may vary depending on the learner of the content data (CT, see Figure 1), the type and content of the content data (CT), and the content data depending on the user. Considering that word embedding vectors generated by learning source sentences adaptively selected for (CT) are used to extract first candidate words (CW1) associated with the target word (TW), the first candidate words ( Even though CW1) is limited to a predetermined number, it may contain the correct word (AW) that matches the target word (TW) with a relatively high probability. Additionally, extracting a limited number of first candidate words (CW1) means that resources for problem creation can be reduced.

이후, 유의어 데이터베이스(DB2)를 통해 제 1 후보 단어들(CW1)을 필터링하여 제 2 후보 단어(CW2)가 추출됨으로써 제 2 후보 단어(CW2)는 더 높은 확률로 정답 단어(AW)를 포함할 수 있다. 이어서, 제 2 후보 단어(CW2)는 교과 내용 데이터베이스(DB3)를 이용하여 검증되어 정답 단어(AW)로서 제공될 수 있다.Afterwards, the second candidate word (CW2) is extracted by filtering the first candidate words (CW1) through the synonym database (DB2), so that the second candidate word (CW2) contains the correct word (AW) with a higher probability. You can. Subsequently, the second candidate word (CW2) can be verified using the curriculum content database (DB3) and provided as the correct answer word (AW).

이와 같이, 문제 생성기(200)는 감소된 자원들로 정답 단어(AW)를 판별하면서도, 향상된 신뢰성으로 정답 단어(AW)를 추출할 수 있다.In this way, the problem generator 200 can extract the correct word (AW) with improved reliability while determining the correct word (AW) with reduced resources.

도 8은 본 발명의 실시 예에 따른 네트워크 서버의 동작 방법을 보여주는 순서도이다.Figure 8 is a flowchart showing a method of operating a network server according to an embodiment of the present invention.

도 1 및 도 8을 참조하면, S110단계에서, 네트워크 서버(120)는 입력된 텍스트로부터 타겟 단어를 선택한다. 이 분야에 잘 알려진 다양한 형태소 분석 알고리즘 및/또는 구문 분석 알고리즘을 이용하여 입력된 텍스트로부터 타겟 단어가 선택될 수 있다.Referring to FIGS. 1 and 8 , in step S110, the network server 120 selects a target word from the input text. Target words may be selected from the input text using various morphological analysis algorithms and/or parsing algorithms well known in the art.

S120단계에서, 네트워크 서버(120)는 복수의 소스 문장들에 대해 딥 러닝을 수행함으로써 획득된, 복수의 단어들에 대응하는 워드 임베딩 벡터들을 저장하는 워드 임베딩 데이터베이스(DB1, 도 2 참조)로부터 타겟 단어의 임베딩 벡터를 획득한다.In step S120, the network server 120 selects a target from the word embedding database (DB1, see FIG. 2) that stores word embedding vectors corresponding to a plurality of words, obtained by performing deep learning on a plurality of source sentences. Obtain the embedding vector of the word.

S130단계에서, 네트워크 서버(120)는 타겟 단어의 임베딩 벡터와 가장 인접한, 정해진 개수의 워드 임베딩 벡터들에 대응하는 단어들을 제 1 후보 단어들로서 워드 임베딩 데이터베이스(DB1)로부터 추출한다. 앞서 설명된 바와 같이, 워드 임베딩 벡터들을 이용하여 제 1 후보 단어들이 추출됨으로써 제 1 후보 단어들은 정해진 개수로 한정되더라도 상대적으로 높은 확률로 타겟 단어와 매치되는 정답 단어를 포함할 수 있다.In step S130, the network server 120 extracts words corresponding to a predetermined number of word embedding vectors that are closest to the embedding vector of the target word as first candidate words from the word embedding database DB1. As described above, first candidate words are extracted using word embedding vectors, so that the first candidate words may include correct words that match the target word with a relatively high probability even if the first candidate words are limited to a predetermined number.

S140단계에서, 네트워크 서버(120)는 유의어 데이터베이스(DB2, 도 2 참조)를 조회하여 제 1 후보 단어들 각각과 타겟 단어 사이의 연관도(예를 들면 유사도)를 검증함으로써 제 1 후보 단어들 중 일부를 적어도 하나의 제 2 후보 단어로서 추출한다. 이에 따라, 적어도 하나의 제 2 후보 단어는 더 높은 확률로 정답 단어를 포함할 수 있다.In step S140, the network server 120 searches the synonym database (DB2, see FIG. 2) to verify the degree of association (e.g., similarity) between each of the first candidate words and the target word, thereby selecting one of the first candidate words. Some are extracted as at least one second candidate word. Accordingly, at least one second candidate word may include the correct word with a higher probability.

S150단계에서, 네트워크 서버(120)는 제 2 후보 단어를 이용하여 입력된 텍스트에 대응하는 문제 데이터를 생성한다. 네트워크 서버(120)는 입력된 텍스트, 타겟 단어, 및 제 2 후보 단어에 기반하여 문제 데이터를 생성할 수 있다.In step S150, the network server 120 generates problem data corresponding to the input text using the second candidate word. The network server 120 may generate problem data based on the input text, target word, and second candidate word.

S160단계에서, 네트워크 서버(120)는 문제 데이터를 사용자 단말기(110)에 전송할 수 있다. 이후, 네트워크 서버(120)는 사용자 단말기(110)의 요청에 응답하여 제 2 후보 단어(즉, 정답 단어)를 사용자 단말기(110)에 제공할 수 있다.In step S160, the network server 120 may transmit problem data to the user terminal 110. Thereafter, the network server 120 may provide a second candidate word (i.e., the correct word) to the user terminal 110 in response to a request from the user terminal 110.

도 9는 도 8의 S150단계의 실시 예를 보여주는 순서도이다.Figure 9 is a flowchart showing an example of step S150 of Figure 8.

도 1 및 도 9를 참조하면, S210단계에서, 네트워크 서버(120)는 교과 내용 데이터베이스(DB3, 도 2 참조)에 기반하여 제 2 후보 단어를 검증할 수 있다. 이어서 S220단계에서, 네트워크 서버(120)는 검증된 제 2 후보 단어(즉, 정답 단어)를 이용하여 문제를 생성할 수 있다.Referring to FIGS. 1 and 9 , in step S210, the network server 120 may verify the second candidate word based on the curriculum content database (DB3, see FIG. 2). Subsequently, in step S220, the network server 120 may create a problem using the verified second candidate word (i.e., the correct word).

도 10은 도 1의 네트워크 서버를 구현하기에 적합한 컴퓨터 장치의 실시 예를 보여주는 블록도이다.FIG. 10 is a block diagram showing an embodiment of a computer device suitable for implementing the network server of FIG. 1.

도 10을 참조하면, 컴퓨터 장치(1000)는 버스(1100), 적어도 하나의 프로세서(1200), 시스템 메모리(1300), 스토리지 인터페이스(1400), 통신 인터페이스(1500), 저장 매체(1600), 및 통신기(1700)를 포함한다.Referring to FIG. 10, the computer device 1000 includes a bus 1100, at least one processor 1200, a system memory 1300, a storage interface 1400, a communication interface 1500, a storage medium 1600, and Includes a communicator 1700.

버스(1100)는 컴퓨터 장치(1000)의 다양한 구성 요소들에 연결되어 데이터, 신호, 및 정보를 전달한다. 프로세서(1200)는 범용 혹은 전용 프로세서 중 어느 하나일 수 있으며, 컴퓨터 장치(1000)의 제반 동작들을 제어할 수 있다.Bus 1100 is connected to various components of computer device 1000 to transfer data, signals, and information. The processor 1200 may be either a general-purpose or dedicated processor, and may control overall operations of the computer device 1000.

프로세서(1200)는 실행될 때 다양한 기능들을 제공하는 프로그램 코드들 및 명령어들을 시스템 메모리(1300)에 로딩하고, 로딩된 프로그램 코드들 및 명령어들을 처리하도록 구성된다. 시스템 메모리(1300)는 프로세서(1200) 혹은 시스템 메모리(1300)에 로딩된 문제 생성 모듈(1310)의 워킹 메모리로서 제공될 수 있다. 실시 예로서, 시스템 메모리(1300)는 램(Random Access Memory, RAM), 롬(Read Only Memory, ROM), 및 다른 타입의 컴퓨터에 의해 판독 가능한 매체 중 적어도 하나를 포함할 수 있다.The processor 1200 is configured to load program codes and instructions that provide various functions when executed into the system memory 1300 and process the loaded program codes and instructions. The system memory 1300 may be provided as a working memory for the processor 1200 or the problem creation module 1310 loaded into the system memory 1300. As an embodiment, the system memory 1300 may include at least one of random access memory (RAM), read only memory (ROM), and media readable by other types of computers.

프로세서(1200)는 프로세서(1200)에 의해 실행될 때 도 2의 문제 생성기(200)의 기능들을 제공하는 문제 생성 모듈(1310)을 시스템 메모리(1300)에 로딩할 수 있다. 그러한 프로그램 코드들 및/또는 명령어들은 프로세서(1200)에 의해 실행되어 도 2를 참조하여 설명된 문제 생성기(200)의 동작들을 수행할 수 있다. 프로그램 코드들 및/또는 명령어들은 별도의 컴퓨터에 의해 판독 가능한 기록 매체인 저장 매체(1600)로부터 시스템 메모리(1300)에 로딩될 수 있다. 또는, 프로그램 코드들 및/또는 명령어들은 컴퓨터 장치(1000)의 외부로부터 통신기(1700)을 통해 시스템 메모리(1300)에 로딩될 수도 있다. 또한, 프로세서(1200)는 프로세서(1200)에 의해 실행될 때 문제 생성 모듈(1310)이 실행되기에 적합한 환경을 제공하기 위한 운영 체제(1320)를 시스템 메모리(1300)에 로딩하고, 로딩된 운영 체제(1320)를 실행할 수 있다. 운영 체제(1320)는 문제 생성 모듈(1310)이 컴퓨터 장치(1000)의 스토리지 인터페이스(1400) 및 통신 인터페이스(1500)와 같은 구성 요소들을 이용할 수 있도록, 그것들과 문제 생성 모듈(1310) 사이를 인터페이싱할 수 있다.The processor 1200 may load the problem creation module 1310, which provides the functions of the problem generator 200 of FIG. 2 when executed by the processor 1200, into the system memory 1300. Such program codes and/or instructions may be executed by processor 1200 to perform the operations of problem generator 200 described with reference to FIG. 2 . Program codes and/or instructions may be loaded into the system memory 1300 from the storage medium 1600, which is a recording medium readable by a separate computer. Alternatively, program codes and/or instructions may be loaded into the system memory 1300 from outside the computer device 1000 through the communicator 1700. In addition, the processor 1200 loads an operating system 1320 into the system memory 1300 to provide a suitable environment for the problem creation module 1310 to run when executed by the processor 1200, and the loaded operating system (1320) can be executed. The operating system 1320 interfaces between the problem creation module 1310 and components such as the storage interface 1400 and the communication interface 1500 of the computer device 1000 so that the problem creation module 1310 can utilize them. can do.

도 10에서, 시스템 메모리(1300)는 프로세서(1200)와 구분된 구성으로 도시되어 있으나, 시스템 메모리(1300)의 적어도 일부는 프로세서(1200)에 포함될 수도 있다.In FIG. 10 , the system memory 1300 is shown as a separate component from the processor 1200 , but at least a portion of the system memory 1300 may be included in the processor 1200 .

스토리지 인터페이스(1400)는 저장 매체(1600)에 연결된다. 스토리지 인터페이스(1400)는 버스(1100)에 연결된 프로세서(1200) 및 시스템 메모리(1300)와 같은 구성 요소들과 저장 매체(1600) 사이를 인터페이싱할 수 있다. 통신 인터페이스(1500)는 통신기(1700)에 연결된다. 통신 인터페이스(1500)는 버스(1100)에 연결된 구성 요소들과 통신기(1700) 사이를 인터페이싱할 수 있다. 프로세서(1200)는 통신기(1700)를 통해 네트워크(50)에 연결된 사용자 단말기(110, 도 1 참조)와 통신할 수 있다.Storage interface 1400 is connected to storage medium 1600. The storage interface 1400 may interface between components such as the processor 1200 and the system memory 1300 connected to the bus 1100 and the storage medium 1600. Communication interface 1500 is connected to communicator 1700. The communication interface 1500 may interface between components connected to the bus 1100 and the communicator 1700. The processor 1200 may communicate with the user terminal 110 (see FIG. 1) connected to the network 50 through the communicator 1700.

실시 예들에서, 버스(1100), 프로세서(1200), 및 시스템 메모리(1300)는 하나의 보드(1050)에 통합될 수 있다. 예를 들면, 버스(1100), 프로세서(1200), 및 시스템 메모리(1300)는 하나의 반도체 칩에 실장될 수 있다. 실시 예들에서, 보드(1050)는 스토리지 인터페이스(1400) 및 통신 인터페이스(1500)를 더 포함할 수 있다.In embodiments, bus 1100, processor 1200, and system memory 1300 may be integrated into one board 1050. For example, the bus 1100, processor 1200, and system memory 1300 may be mounted on one semiconductor chip. In embodiments, the board 1050 may further include a storage interface 1400 and a communication interface 1500.

저장 매체(1600)는 전원이 차단되더라도 저장된 데이터를 유지하는 다양한 타입들의 불휘발성 저장 매체들, 예를 들면 플래시 메모리(flash memory), 하드 디스크(hard disk) 등을 포함할 수 있다. 저장 매체(1600)는 도 2의 워드 임베딩 데이터베이스(DB1), 유의어 데이터베이스(DB2), 및 교과 내용 데이터베이스(DB3)의 적어도 일부를 포함할 수 있다.The storage medium 1600 may include various types of non-volatile storage media, such as flash memory and hard disk, that retain stored data even when power is turned off. The storage medium 1600 may include at least a portion of the word embedding database DB1, the synonym database DB2, and the curriculum content database DB3 of FIG. 2 .

통신기(1700, 혹은 트랜시버)는 네트워크(50)를 통해 컴퓨터 장치(1000)와 네트워크 시스템(100, 도 1 참조) 내 다른 장치들 및/또는 서버들 사이의 신호들을 송수신할 수 있다.The communicator 1700 (or transceiver) may transmit and receive signals between the computer device 1000 and other devices and/or servers in the network system 100 (see FIG. 1) through the network 50.

비록 특정 실시 예들 및 적용 례들이 여기에 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정들 및 변형들이 가능하다.Although specific embodiments and application examples are described herein, they are provided only to facilitate a more general understanding of the present invention, and the present invention is not limited to the above embodiments and can be understood by those skilled in the art. Various modifications and variations are possible from this substrate.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be limited to the described embodiments, and the scope of the patent claims described later as well as all things that are equivalent or equivalent to the scope of this patent claim shall fall within the scope of the spirit of the present invention. .

100: 네트워크 시스템
110: 사용자 단말기
120: 네트워크 서버
200: 문제 생성기
220: 타겟 단어 선택부
230: 후보 단어 추출부
240: 제 1 필터링부
250: 제 2 필터링부
260: 문제 생성부
270: 사용자 단말기 인터페이스
100: Network system
110: user terminal
120: network server
200: Problem Generator
220: Target word selection unit
230: Candidate word extraction unit
240: first filtering unit
250: second filtering unit
260: Problem creation unit
270: User terminal interface

Claims (8)

사용자 단말기와 통신하기 위한 컴퓨터 장치에 있어서:
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서의 제어에 응답하여 상기 사용자 단말기와 통신하도록 구성되는 통신기를 포함하며,
상기 적어도 하나의 프로세서는,
입력된 텍스트에서 적어도 하나의 타겟 단어를 선택하고;
복수의 소스 문장들을 학습하여 획득된, 상기 복수의 소스 문장들의 단어들에 대응하는 워드 임베딩(word embedding) 벡터들을 저장하는 제 1 데이터베이스로부터 상기 타겟 단어의 워드 임베딩 벡터를 획득하고;
상기 타겟 단어의 상기 워드 임베딩 벡터와 벡터 공간 상 가장 인접한, 정해진 개수의 워드 임베딩 벡터들을 상기 제 1 데이터베이스에서 검색하고 상기 검색된 워드 임베딩 벡터들의 단어들을 제 1 후보 단어들로서 추출하고;
서로 연관된 단어들을 저장하는 제 2 데이터베이스를 조회하여 상기 제 1 후보 단어들과 상기 타겟 단어 사이의 연관성을 검증함으로써, 상기 제 1 후보 단어들 중 적어도 일부를 하나 또는 그 이상의 제 2 후보 단어들로서 추출하고;
상기 제 2 후보 단어들을 이용하여 상기 입력된 텍스트에 대응하는 문제 데이터를 생성하고;
상기 문제 데이터를 상기 통신기를 통해 상기 사용자 단말기에 전송하도록 구성되며,
상기 적어도 하나의 프로세서는 상기 제 1 후보 단어들 중 상기 제 2 데이터베이스 상 상기 타겟 단어와 매치되는 것들을 상기 제 2 후보 단어들로서 판별하도록 구성되는 컴퓨터 장치.
In a computer device for communicating with a user terminal:
at least one processor; and
a communicator configured to communicate with the user terminal in response to control of the at least one processor,
The at least one processor,
select at least one target word from the input text;
Obtain a word embedding vector of the target word from a first database that stores word embedding vectors corresponding to words of the plurality of source sentences, obtained by learning a plurality of source sentences;
Searching the first database for a predetermined number of word embedding vectors that are closest to the word embedding vector of the target word in a vector space and extracting words from the searched word embedding vectors as first candidate words;
extracting at least some of the first candidate words as one or more second candidate words by verifying the association between the first candidate words and the target word by querying a second database storing related words; ;
generating problem data corresponding to the input text using the second candidate words;
configured to transmit the problem data to the user terminal through the communicator,
The at least one processor is configured to determine as the second candidate words those that match the target word in the second database among the first candidate words.
삭제delete 제 1 항에 있어서,
상기 적어도 하나의 프로세서는 사용자에 의해 선택된 제 3 데이터베이스에 저장된 단어들에 기반하여 상기 제 2 후보 단어들을 필터링하고, 상기 필터링된 제 2 후보 단어들에 따라 상기 문제 데이터를 생성하도록 구성되는 컴퓨터 장치.
According to claim 1,
The computer device is configured to filter the second candidate words based on words stored in a third database selected by a user, and generate the problem data according to the filtered second candidate words.
제 1 항에 있어서,
상기 입력된 텍스트는 상기 통신기를 통해 상기 사용자 단말기로부터 수신되는 요청 신호에 따라 결정되는 컴퓨터 장치.
According to claim 1,
A computer device in which the input text is determined according to a request signal received from the user terminal through the communicator.
사용자 단말기와 통신하기 위한 방법에 있어서:
입력된 텍스트에서 적어도 하나의 타겟 단어를 선택하는 단계;
복수의 소스 문장들을 학습하여 획득된, 상기 복수의 소스 문장들의 단어들에 대응하는 워드 임베딩 벡터들을 저장하는 제 1 데이터베이스로부터 상기 타겟 단어의 워드 임베딩 벡터를 획득하는 단계;
상기 타겟 단어의 상기 워드 임베딩 벡터와 벡터 공간 상 가장 인접한, 정해진 개수의 워드 임베딩 벡터들을 상기 제 1 데이터베이스에서 검색하고 상기 검색된 워드 임베딩 벡터들의 단어들을 제 1 후보 단어들로서 추출하는 단계;
서로 연관된 단어들을 저장하는 제 2 데이터베이스를 조회하여 상기 제 1 후보 단어들 각각과 상기 타겟 단어 사이의 연관성을 검증함으로써, 상기 제 1 후보 단어들 중 적어도 일부를 하나 또는 그 이상의 제 2 후보 단어들로서 추출하는 단계;
상기 제 2 후보 단어들을 이용하여 상기 입력된 텍스트에 대응하는 문제 데이터를 생성하는 단계; 및
상기 문제 데이터를 상기 사용자 단말기에 전송하는 단계를 포함하며,
상기 제 2 후보 단어들을 추출하는 단계에서, 상기 제 1 후보 단어들 중 상기 제 2 데이터베이스 상 상기 타겟 단어와 매치되는 것들이 상기 제 2 후보 단어들로서 판별되는 방법.
In a method for communicating with a user terminal:
selecting at least one target word from the input text;
Obtaining a word embedding vector of the target word from a first database that stores word embedding vectors corresponding to words of the plurality of source sentences, obtained by learning a plurality of source sentences;
Searching the first database for a predetermined number of word embedding vectors that are closest to the word embedding vector of the target word in vector space and extracting words from the searched word embedding vectors as first candidate words;
Extracting at least some of the first candidate words as one or more second candidate words by verifying the association between each of the first candidate words and the target word by searching a second database storing related words steps;
generating problem data corresponding to the input text using the second candidate words; and
It includes transmitting the problem data to the user terminal,
In the step of extracting the second candidate words, those that match the target word in the second database among the first candidate words are determined as the second candidate words.
삭제delete 제 5 항에 있어서,
상기 문제 데이터를 생성하는 단계는,
사용자에 의해 선택된 제 3 데이터베이스에 저장된 단어들에 기반하여 상기 제 2 후보 단어들을 필터링하는 단계; 및
상기 필터링된 제 2 후보 단어들에 따라 상기 문제 데이터를 생성하는 단계를 포함하는 방법.
According to claim 5,
The step of generating the problem data is,
filtering the second candidate words based on words stored in a third database selected by a user; and
and generating the problem data according to the filtered second candidate words.
제 5 항에 있어서,
상기 입력된 텍스트는 상기 통신기를 통해 상기 사용자 단말기로부터 수신되는 요청 신호에 따라 결정되는 방법.
According to claim 5,
A method wherein the input text is determined according to a request signal received from the user terminal through the communicator.
KR1020210049636A 2021-04-16 Computer device and method to create question data KR102682790B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210049636A KR102682790B1 (en) 2021-04-16 Computer device and method to create question data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210049636A KR102682790B1 (en) 2021-04-16 Computer device and method to create question data

Publications (2)

Publication Number Publication Date
KR20220143291A KR20220143291A (en) 2022-10-25
KR102682790B1 true KR102682790B1 (en) 2024-07-12

Family

ID=

Similar Documents

Publication Publication Date Title
US20210118431A1 (en) Intelligent short text information retrieve based on deep learning
CN110837550B (en) Knowledge graph-based question answering method and device, electronic equipment and storage medium
US10936821B2 (en) Testing and training a question-answering system
US11720611B2 (en) Entailment knowledge base in natural language processing systems
CN108595629B (en) Data processing method and application for answer selection system
CN112287069B (en) Information retrieval method and device based on voice semantics and computer equipment
US9514113B1 (en) Methods for automatic footnote generation
US11238050B2 (en) Method and apparatus for determining response for user input data, and medium
US20160188569A1 (en) Generating a Table of Contents for Unformatted Text
US10838993B2 (en) Augment politeness in question answer systems
CN111898643A (en) Semantic matching method and device
CN117708309A (en) Method, system, equipment and medium for searching question and answer
CN107239209B (en) Photographing search method, device, terminal and storage medium
KR20230069872A (en) Apparatus, method and program for for providing foreign language translation and learning services suitable for the user's vocabulary level using a learning webpage
KR102682790B1 (en) Computer device and method to create question data
CN116796730A (en) Text error correction method, device, equipment and storage medium based on artificial intelligence
US20160078036A1 (en) Building a Domain Knowledge and Term Identity Using Crowd Sourcing
US11880664B2 (en) Identifying and transforming text difficult to understand by user
KR102534086B1 (en) Network server and method to communicate with user terminal based on plurality of multimedia contents
US11842165B2 (en) Context-based image tag translation
KR20220143291A (en) Computer device and method to create question data
CN117556033B (en) Method and device for determining embedded model parameters of question-answering system and computing equipment
US11663251B2 (en) Question answering approach to semantic parsing of mathematical formulas
CN109902149B (en) Query processing method and device and computer readable medium
CN118152532A (en) Reply generation method, long tail recognition model training method and corresponding device