KR102607701B1 - A method and a apparatus for generating a questionnaire list for building a user food profile - Google Patents
A method and a apparatus for generating a questionnaire list for building a user food profile Download PDFInfo
- Publication number
- KR102607701B1 KR102607701B1 KR1020230057837A KR20230057837A KR102607701B1 KR 102607701 B1 KR102607701 B1 KR 102607701B1 KR 1020230057837 A KR1020230057837 A KR 1020230057837A KR 20230057837 A KR20230057837 A KR 20230057837A KR 102607701 B1 KR102607701 B1 KR 102607701B1
- Authority
- KR
- South Korea
- Prior art keywords
- vectors
- tree
- node
- foods
- ingredients
- Prior art date
Links
- 235000013305 food Nutrition 0.000 title claims abstract description 152
- 238000000034 method Methods 0.000 title claims abstract description 45
- 239000013598 vector Substances 0.000 claims abstract description 212
- 239000004615 ingredient Substances 0.000 claims abstract description 153
- 230000004044 response Effects 0.000 claims description 18
- 235000012041 food component Nutrition 0.000 description 55
- 239000005417 food ingredient Substances 0.000 description 55
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 235000015219 food category Nutrition 0.000 description 13
- 238000000855 fermentation Methods 0.000 description 12
- 230000004151 fermentation Effects 0.000 description 12
- 235000015278 beef Nutrition 0.000 description 10
- 238000009835 boiling Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 238000010438 heat treatment Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 241000251468 Actinopterygii Species 0.000 description 7
- 241000220259 Raphanus Species 0.000 description 7
- 235000006140 Raphanus sativus var sativus Nutrition 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 7
- 238000010025 steaming Methods 0.000 description 6
- 235000002566 Capsicum Nutrition 0.000 description 5
- 241000124008 Mammalia Species 0.000 description 5
- 241001465754 Metazoa Species 0.000 description 5
- 239000006002 Pepper Substances 0.000 description 5
- 244000046052 Phaseolus vulgaris Species 0.000 description 5
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 5
- 241000722363 Piper Species 0.000 description 5
- 235000016761 Piper aduncum Nutrition 0.000 description 5
- 235000017804 Piper guineense Nutrition 0.000 description 5
- 235000008184 Piper nigrum Nutrition 0.000 description 5
- 235000014347 soups Nutrition 0.000 description 5
- 241000272525 Anas platyrhynchos Species 0.000 description 4
- 241001474374 Blennius Species 0.000 description 4
- 241000283690 Bos taurus Species 0.000 description 4
- 241000196324 Embryophyta Species 0.000 description 4
- 241000287828 Gallus gallus Species 0.000 description 4
- 238000010411 cooking Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 244000291564 Allium cepa Species 0.000 description 2
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 2
- 241000238424 Crustacea Species 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 2
- 235000007164 Oryza sativa Nutrition 0.000 description 2
- 235000021438 curry Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000015277 pork Nutrition 0.000 description 2
- 244000144977 poultry Species 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 235000009566 rice Nutrition 0.000 description 2
- 235000015170 shellfish Nutrition 0.000 description 2
- 235000007688 Lycopersicon esculentum Nutrition 0.000 description 1
- 240000003768 Solanum lycopersicum Species 0.000 description 1
- 235000021186 dishes Nutrition 0.000 description 1
- 235000020803 food preference Nutrition 0.000 description 1
- 235000011194 food seasoning agent Nutrition 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 235000019640 taste Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Primary Health Care (AREA)
- Algebra (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
본 개시는 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법 및 장치에 관한 것이다. 본 개시의 일 실시 예에 따른 방법은, 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성하고, 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출하고, 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성할 수 있다.The present disclosure relates to a method and device for generating a survey list for building a user food profile. A method according to an embodiment of the present disclosure generates a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on ingredient information and recipe information for a plurality of foods, and generates a plurality of first vectors corresponding to one or more ingredients and one or more recipes. A plurality of second vectors each of which has a degree of similarity greater than a preset value may be derived, and a survey list including foods corresponding to each of the plurality of second vectors may be generated.
Description
본 발명은 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법 및 장치에 관한 것이다.The present invention relates to a method and device for generating a survey list for building a user food profile.
최근에 현대인들은 각종 통신 매체의 프로그램들과 소셜 네트워킹 서비스 등을 통하여 음식에 관련된 정보를 소개받고, 이를 기반으로 식사 메뉴를 선정하고 있다. 하지만 개개인의 음식에 대한 기호도와 선호도 및 취향의 차이로 인해 제공된 음식 정보는 무용할 때가 많다.Recently, modern people are introduced to food-related information through various communication media programs and social networking services, and are selecting meal menus based on this information. However, the food information provided is often useless due to differences in individual food preferences, preferences, and tastes.
상술한 배경하에, 사용자에게 적합한 음식을 추천함으로써 사용자의 만족도를 높일 수 있는 어플리케이션이 개발되어 사용되고 있다. 하지만 이러한 어플리케이션은, 사용자의 선호도가 고려되지 않은 상태로 무작위로 선출되는 음식을 사용자에게 추천하거나, 단순히 다수의 사람들의 선호도가 높은 것을 사용자에게 추천하는 방식을 사용한다. 상기 어플리케이션은 음식을 추천하더라도 넓은 범주의 음식을 추천하게 되는데, 이러한 추천 결과는 사용자에게 높은 만족도를 제공할 수 없고 오히려 사용자에게 메뉴 선정에 대한 어려움을 가중시킬 수 있다.Under the above-described background, applications that can increase user satisfaction by recommending foods suitable for the user have been developed and are being used. However, these applications either recommend randomly selected foods to the user without considering the user's preferences, or simply recommend to the user foods that are highly preferred by many people. Even when the application recommends food, it recommends a wide range of foods. However, these recommendation results cannot provide high satisfaction to the user and may actually increase the difficulty of menu selection for the user.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.The above-mentioned background technology is technical information that the inventor possessed for deriving the present invention or acquired in the process of deriving the present invention, and cannot necessarily be said to be known art disclosed to the general public before filing the application for the present invention.
본 발명은 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법 및 장치를 제공하는 데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. The present invention provides a method and device for generating a survey list for building a user food profile. Additionally, the object is to provide a computer-readable recording medium on which a program for executing the method on a computer is recorded.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 과제 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해보다 분명하게 이해될 것이다. 또한, 본 발명이 해결하고자 하는 과제 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.The problem to be solved by the present invention is not limited to the problems mentioned above, and other problems and advantages of the present invention that are not mentioned can be understood through the following description and can be understood more clearly through the examples of the present invention. It will be. In addition, it can be seen that the problems and advantages to be solved by the present invention can be realized by the means and combinations thereof indicated in the patent claims.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일 실시예는, 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 적어도 하나의 식재료 및 적어도 하나의 조리법에 대응하는 복수의 제1 벡터들을 생성하는 단계; 상기 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출하는 단계; 및 상기 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성하는 단계;를 포함하는, 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법을 제공할 수 있다.As a technical means for achieving the above-mentioned technical problem, an embodiment of the present disclosure provides, based on ingredient information and recipe information for a plurality of foods, a plurality of dishes corresponding to at least one ingredient and at least one recipe. 1 generating vectors; Deriving a plurality of second vectors whose similarity to each of the plurality of first vectors is equal to or greater than a preset value; and generating a survey list including foods corresponding to each of the plurality of second vectors. A method of generating a survey list for building a user food profile can be provided.
상기 복수의 제1 벡터들을 생성하는 단계는, 상기 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 식재료에 관한 제1 트리 및 조리법에 관한 제2 트리를 생성하는 단계; 및 상기 제1 트리 및 상기 제2 트리에 기초하여, 상기 복수의 제1 벡터들을 생성하는 단계;를 포함할 수 있다.Generating the plurality of first vectors may include generating a first tree regarding ingredients and a second tree regarding recipes based on ingredient information and recipe information regarding the plurality of foods; and generating the plurality of first vectors based on the first tree and the second tree.
상기 제1 트리는, 상기 복수의 음식들 각각의 식재료 카테고리로 설정된 노드들을 포함하고, 상기 제2 트리는, 상기 복수의 음식들 각각의 조리법 카테고리로 설정된 노드들을 포함할 수 있다.The first tree may include nodes set to ingredient categories for each of the plurality of foods, and the second tree may include nodes set to recipe categories for each of the plurality of foods.
상기 복수의 제1 벡터들 각각은, 상기 제1 트리에 포함된 적어도 하나의 노드 및 상기 제2 트리에 포함된 적어도 하나의 노드에 대응하는 것일 수 있다.Each of the plurality of first vectors may correspond to at least one node included in the first tree and at least one node included in the second tree.
상기 복수의 제1 벡터들 각각은, 상기 제1 트리에 포함된 적어도 하나의 단말 노드(terminal node)인 제1 노드 및 상기 제2 트리에 포함된 적어도 하나의 단말 노드인 제2 노드에 대응하는 것일 수 있다.Each of the plurality of first vectors corresponds to a first node that is at least one terminal node included in the first tree and a second node that is at least one terminal node included in the second tree. It may be.
상기 복수의 제1 벡터들 중 적어도 하나는, 상기 제1 노드의 조상 노드(ancestor node)인 제3 노드 및 상기 제2 노드의 조상 노드인 제4 노드에 대응하고, 상기 제3 노드 및 제4 노드는, 루트 노드(root node)가 아닌 것일 수 있다.At least one of the plurality of first vectors corresponds to a third node that is an ancestor node of the first node and a fourth node that is an ancestor node of the second node, and the third node and the fourth node The node may be other than the root node.
상기 복수의 제2 벡터들 각각은, 하나의 음식에 관한 식재료 정보 및 조리법 정보에 기초하여 생성된 것일 수 있다.Each of the plurality of second vectors may be generated based on ingredient information and recipe information for one food.
상기 복수의 제2 벡터들 각각은, 하나의 음식에 관한 식재료 정보에 기초하여 생성된 식재료에 관한 제3 트리 및 상기 하나의 음식에 관한 조리법 정보에 기초하여 생성된 조리법에 관한 제4 트리를 이용함으로써 생성된 것일 수 있다.Each of the plurality of second vectors uses a third tree related to ingredients generated based on ingredient information about one food and a fourth tree related to recipes generated based on recipe information about one food. It may have been created by doing so.
상기 방법은, 상기 설문 리스트에 대응하는 응답 정보에 기초하여, 추가 설문 리스트를 생성하는 단계;를 더 포함할 수 있다.The method may further include generating an additional survey list based on response information corresponding to the survey list.
상기 추가 설문 리스트를 생성하는 단계는, 상기 설문 리스트에 대응하는 응답 정보에 기초하여, 선호 식재료에 관한 제5 트리 및 선호 조리법에 관한 제6 트리를 생성하는 단계; 상기 제5 트리 및 상기 제6 트리에 기초하여, 적어도 하나의 식재료 및 적어도 하나의 조리법에 대응하는 복수의 제3 벡터들을 생성하는 단계; 상기 복수의 제3 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제4 벡터들을 도출하는 단계; 및 상기 복수의 제4 벡터들 각각에 대응하는 음식들을 포함하는 추가 설문 리스트를 생성하는 단계;를 포함할 수 있다.The step of generating the additional survey list includes generating a fifth tree regarding preferred ingredients and a sixth tree regarding preferred recipes based on response information corresponding to the survey list; Based on the fifth tree and the sixth tree, generating a plurality of third vectors corresponding to at least one food ingredient and at least one recipe; Deriving a plurality of fourth vectors whose similarity to each of the plurality of third vectors is greater than or equal to a preset value; and generating an additional survey list including foods corresponding to each of the plurality of fourth vectors.
본 개시의 다른 실시예는, 적어도 하나의 메모리; 및 적어도 하나의 프로세서;를 포함하고, 상기 적어도 하나의 프로세서는, 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 적어도 하나의 식재료 및 적어도 하나의 조리법에 대응하는 복수의 제1 벡터들을 생성하고, 상기 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출하고, 상기 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성하는 것인, 컴퓨팅 장치를 제공할 수 있다.Another embodiment of the present disclosure includes at least one memory; and at least one processor, wherein the at least one processor generates a plurality of first vectors corresponding to at least one ingredient and at least one recipe based on ingredient information and recipe information regarding the plurality of foods. generating, deriving a plurality of second vectors whose similarity with each of the plurality of first vectors is greater than or equal to a preset value, and generating a survey list including foods corresponding to each of the plurality of second vectors. , computing devices can be provided.
본 개시의 또 다른 실시예는, 일 실시예에 따른 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.Another embodiment of the present disclosure may provide a computer-readable recording medium that records a program for executing the method according to the embodiment on a computer.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체가 더 제공될 수 있다.In addition, another method for implementing the present invention, another system, and a computer-readable recording medium storing a computer program for executing the method may be further provided.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features and advantages in addition to those described above will become apparent from the following drawings, claims and detailed description of the invention.
전술한 본 개시의 과제 해결 수단에 의하면, 본 개시에서는 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성하고, 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출하고, 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성시킴으로써, 보다 정확하게 모든 음식 카테고리에 대한 사용자의 선호도를 파악할 수 있다.According to the means for solving the problem of the present disclosure described above, in the present disclosure, a plurality of first vectors corresponding to one or more ingredients and one or more recipes are generated based on ingredient information and recipe information for a plurality of foods, and a plurality of first vectors corresponding to one or more ingredients and one or more recipes are generated. By deriving a plurality of second vectors whose similarity to each of the first vectors is more than a preset value and generating a survey list including foods corresponding to each of the plurality of second vectors, users can more accurately identify all food categories You can understand your preferences.
또한, 본 개시의 과제 해결 수단에 의하면, 유사한 카테고리에 속하는 음식들에 대해서 중복하여 동일한 사용자에게 설문하는 것을 방지할 수 있다.In addition, according to the problem solving means of the present disclosure, it is possible to prevent the same user from being repeatedly surveyed about foods belonging to similar categories.
또한, 본 개시의 과제 해결 수단에 의하면, 일부 중복된 카테고리에 속하는 음식들에 대해 사용자가 상반된 선호도를 응답하여 설문의 해석이 모호해지는 것을 방지할 수 있다.In addition, according to the problem solving means of the present disclosure, it is possible to prevent the interpretation of the questionnaire from becoming ambiguous as the user responds with conflicting preferences for foods belonging to some overlapping categories.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.
도 1은 일 실시예에 따른 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 시스템을 설명하기 위한 도면이다.
도 2a는 일 실시예에 따른 사용자 단말의 일 예를 도시한 구성도이다.
도 2b는 일 실시예에 따른 서버의 일 예를 도시한 구성도이다.
도 3은 일 실시예에 따른 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법의 일 예를 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 프로세서가 복수의 제1 벡터들을 생성하는 일 예를 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 식재료에 관한 제1 트리 및 제1 노드의 일 예를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 조리법에 관한 제2 트리 및 제2 노드의 일 예를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 제3 노드의 일 예를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 제4 노드의 일 예를 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법의 다른 예를 설명하기 위한 흐름도이다.
도 10은 일 실시예에 따른 프로세서가 추가 설문 리스트를 생성하는 일 예를 설명하기 위한 흐름도이다.
도 11은 일 실시예에 따른 선호 식재료에 관한 제5 트리의 일 예를 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 선호 조리법에 관한 제6 트리를 설명하기 위한 도면이다.1 is a diagram illustrating a system for generating a survey list for building a user food profile according to an embodiment.
FIG. 2A is a configuration diagram illustrating an example of a user terminal according to an embodiment.
Figure 2b is a configuration diagram illustrating an example of a server according to an embodiment.
Figure 3 is a flowchart illustrating an example of a method for generating a survey list for building a user food profile according to an embodiment.
FIG. 4 is a flowchart illustrating an example in which a processor generates a plurality of first vectors according to an embodiment.
Figure 5 is a diagram for explaining an example of a first tree and a first node related to food ingredients according to an embodiment.
Figure 6 is a diagram for explaining an example of a second tree and a second node related to a recipe according to an embodiment.
FIG. 7 is a diagram for explaining an example of a third node according to an embodiment.
FIG. 8 is a diagram for explaining an example of a fourth node according to an embodiment.
Figure 9 is a flowchart illustrating another example of a method for generating a survey list for building a user food profile according to an embodiment.
FIG. 10 is a flowchart illustrating an example in which a processor generates an additional survey list according to an embodiment.
Figure 11 is a diagram for explaining an example of a fifth tree related to preferred food ingredients according to an embodiment.
Figure 12 is a diagram for explaining a sixth tree related to preferred recipes according to an embodiment.
이하, 본 개시의 다양한 실시예가 첨부된 도면과 연관되어 기재된다. 본 개시의 다양한 실시예는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나 이는 본 개시의 다양한 실시예를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 다양한 실시예의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.BRIEF DESCRIPTION OF THE DRAWINGS Various embodiments of the present disclosure are described below in conjunction with the accompanying drawings. Various embodiments of the present disclosure can make various changes and have various embodiments, and specific embodiments are illustrated in the drawings and related detailed descriptions are described. However, this is not intended to limit the various embodiments of the present disclosure to specific embodiments, and should be understood to include all changes and/or equivalents or substitutes included in the spirit and technical scope of the various embodiments of the present disclosure. In connection with the description of the drawings, similar reference numbers have been used for similar components.
본 개시의 다양한 실시예에서 사용될 수 있는 "포함한다." 또는 "포함할 수 있다." 등의 표현은 개시(disclosure)된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한, 본 개시의 다양한 실시예에서, "포함하다." 또는 "가지다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.“Includes” may be used in various embodiments of the present disclosure. or “may include.” Expressions such as "disclosed" indicate the existence of the corresponding function, operation, or component, and do not limit one or more additional functions, operations, or components. Additionally, in various embodiments of the present disclosure, “including.” Or “to have.” Terms such as are intended to designate the presence of features, numbers, steps, operations, components, parts, or a combination thereof described in the specification, but are intended to indicate the presence of one or more other features, numbers, steps, operations, components, parts, or It should be understood that the existence or addition possibility of combinations of these is not excluded in advance.
본 개시의 다양한 실시예에서 "또는" 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, "A 또는 B"는, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.In various embodiments of the present disclosure, expressions such as “or” include any and all combinations of words listed together. For example, “A or B” may include A, B, or both A and B.
본 개시의 다양한 실시예에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 실시예들의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 개시의 다양한 실시예의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Expressions such as “first,” “second,” “first,” or “second” used in various embodiments of the present disclosure may modify various elements of the various embodiments, but do not limit the elements. No. For example, the above expressions do not limit the order and/or importance of the corresponding components. The above expressions can be used to distinguish one component from another. For example, the first user device and the second user device are both user devices and represent different user devices. For example, a first component may be referred to as a second component, and similarly, the second component may be referred to as a first component without departing from the scope of various embodiments of the present disclosure.
본 개시의 실시 예에서 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.In embodiments of the present disclosure, terms such as “module”, “unit”, “part”, etc. are terms to refer to components that perform at least one function or operation, and these components are either hardware or software. It may be implemented or may be implemented through a combination of hardware and software. In addition, a plurality of "modules", "units", "parts", etc. are integrated into at least one module or chip, except in cases where each needs to be implemented with individual specific hardware, and is integrated into at least one processor. It can be implemented as:
본 개시의 다양한 실시예에서 사용한 용어는 단지 특정일 실시예를 설명하기 위해 사용된 것으로, 본 개시의 다양한 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Terms used in the various embodiments of the present disclosure are merely used to describe specific embodiments and are not intended to limit the various embodiments of the present disclosure. Singular expressions include plural expressions unless the context clearly dictates otherwise.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시의 다양한 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the technical field to which the various embodiments of the present disclosure pertain.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 개시의 다양한 실시예에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Terms such as those defined in commonly used dictionaries should be interpreted as having meanings consistent with the meanings they have in the context of the related technology, and unless clearly defined in various embodiments of the present disclosure, are not ideal or excessively formal. It is not interpreted as meaning.
이하에서, 첨부된 도면을 이용하여 본 발명의 다양한 실시 예들에 대하여 구체적으로 설명한다.Hereinafter, various embodiments of the present invention will be described in detail using the attached drawings.
도 1은 일 실시예에 따른 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 시스템을 설명하기 위한 도면이다.1 is a diagram illustrating a system for generating a survey list for building a user food profile according to an embodiment.
도 1을 참조하면, 시스템(1)은 사용자 단말(10) 및 서버(20)를 포함한다. 예를 들어, 사용자 단말(10)과 서버(20)는 유선 또는 무선 통신 방식으로 연결되어 상호 간에 데이터(복수의 음식들에 관한 식재료 정보 및 복수의 음식들에 관한 조리법 정보 등)를 송수신할 수 있다.Referring to Figure 1, system 1 includes a user terminal 10 and a server 20. For example, the user terminal 10 and the server 20 can be connected by wired or wireless communication to transmit and receive data (e.g., ingredient information about a plurality of foods and recipe information about a plurality of foods) between them. there is.
설명의 편의를 위하여, 도 1에는 시스템(1)에 사용자 단말(10) 및 서버(20)가 포함되는 것으로 도시하였으나, 이에 한정되지 않는다. 예를 들어, 시스템(1)에는 적어도 하나의 외부 디바이스가 포함될 수 있으며, 이하에서 설명될 사용자 단말(10) 및 서버(20)의 동작이 단일 디바이스(예를 들어, 사용자 단말(10) 또는 서버(20)) 또는 다수의 디바이스들에 의하여 구현될 수도 있다.For convenience of explanation, FIG. 1 shows that the system 1 includes a user terminal 10 and a server 20, but the system 1 is not limited thereto. For example, the system 1 may include at least one external device, and the operations of the user terminal 10 and the server 20, which will be described below, may be performed using a single device (e.g., the user terminal 10 or the server 20). (20)) Alternatively, it may be implemented by multiple devices.
사용자 단말(10)은 디스플레이 장치를 구비하고, 메모리와 프로세서를 포함하는 컴퓨팅 장치일 수 있다. 예를 들어, 디스플레이 장치는 터치 스크린으로 구현되어 사용자 입력을 수신할 수 있다. 또는, 사용자 단말(10)에는 사용자 입력을 수신하는 별도의 장치(예를 들어, 키보드, 마우스 등)가 더 포함될 수도 있다. 예를 들어, 사용자 단말(10)은 스마트 폰, 노트북(notebook) PC, 데스크탑(desktop) PC, 랩탑(laptop), 테블릿 컴퓨터(tablet computer) 등이 해당될 수 있으나, 이에 한정되지 않는다.The user terminal 10 may be a computing device that includes a display device and a memory and a processor. For example, a display device may be implemented as a touch screen to receive user input. Alternatively, the user terminal 10 may further include a separate device (eg, keyboard, mouse, etc.) that receives user input. For example, the user terminal 10 may include a smart phone, a laptop PC, a desktop PC, a laptop, a tablet computer, etc., but is not limited thereto.
서버(20)는, 사용자 단말(10)을 포함하는 외부 디바이스(미도시)와 통신하는 장치일 수 있다. 일 예로서, 서버(20)는 복수의 음식들에 관한 식재료 정보, 복수의 음식들에 관한 조리법 정보, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들, 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들, 복수의 제2 벡터들 각각에 대응하는 음식들 등을 포함하는 다양한 데이터를 저장하는 장치일 수 있다. The server 20 may be a device that communicates with an external device (not shown) including the user terminal 10. As an example, the server 20 may provide ingredient information about a plurality of foods, recipe information about a plurality of foods, a plurality of first vectors corresponding to one or more ingredients and one or more recipes, and a plurality of first vectors. It may be a device that stores various data including a plurality of second vectors whose similarity to each is more than a preset value, foods corresponding to each of the plurality of second vectors, etc.
또는, 서버(20)는 메모리와 프로세서를 포함하고, 자체적인 연산 능력을 갖춘 컴퓨팅 장치일 수 있다. 서버(20)가 컴퓨팅 장치인 경우, 서버(20)는 도 1 내지 도 12를 참조하여 후술할 사용자 단말(10)의 동작들 중 적어도 일부를 수행할 수 있다. 예를 들어, 서버(20)는 클라우드(cloud) 서버일 수도 있으나, 이에 한정되지 않는다.Alternatively, the server 20 may be a computing device that includes memory and a processor and has its own computing capabilities. When the server 20 is a computing device, the server 20 may perform at least some of the operations of the user terminal 10, which will be described later with reference to FIGS. 1 to 12. For example, the server 20 may be a cloud server, but is not limited thereto.
사용자 단말(10)은 사용자(30)의 음식 프로파일 구축을 위한 설문 리스트를 나타내는 이미지(40)를 출력할 수 있다. 예를 들어, 사용자 단말(10)은 사용자(30)가 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성할 수 있다. 그리고, 사용자 단말(10)은 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출할 수 있다. 그리고, 사용자 단말(10)은 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 이미지(40)로 출력할 수 있다.The user terminal 10 may output an image 40 representing a survey list for building a food profile of the user 30. For example, the user terminal 10 may allow the user 30 to generate a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on ingredient information and recipe information for a plurality of foods. . Additionally, the user terminal 10 may derive a plurality of second vectors whose similarity to each of the plurality of first vectors is equal to or greater than a preset value. Additionally, the user terminal 10 may output a survey list including foods corresponding to each of the plurality of second vectors as an image 40 .
예를 들어, 사용자 단말(10)은 사용자 단말(10)에 설치된 애플리케이션(application)을 통하여 사용자(30)의 음식 프로파일 구축을 위한 설문 리스트를 제공할 수 있다. 여기에서, 애플리케이션은 사용자(30)의 요식 활동을 목적으로 설계된 소프트웨어 프로그램일 수 있다. 예를 들어, 애플리케이션을 통하여 사용자(30)는 요식 상품 또는 요식 서비스의 결제 등 다양한 요식 활동을 수행할 수 있다.For example, the user terminal 10 may provide a survey list for building a food profile of the user 30 through an application installed on the user terminal 10. Here, the application may be a software program designed for the purpose of catering activities for the user 30. For example, through the application, the user 30 can perform various restaurant activities, such as payment for restaurant products or restaurant services.
한편, 설명의 편의를 위하여, 명세서의 전반에 걸쳐 사용자 단말(10)이 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성하고, 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출하고, 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성하는 것으로 설명하였으나, 이에 한정되지 않는다. 예를 들어, 사용자 단말(10)에 의하여 수행되는 동작들의 적어도 일부는 서버(20)에 의하여 수행될 수도 있다.Meanwhile, for convenience of explanation, throughout the specification, the user terminal 10 generates a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on ingredient information and recipe information for a plurality of foods. It was described as generating, deriving a plurality of second vectors whose similarity with each of the plurality of first vectors is greater than a preset value, and generating a survey list including foods corresponding to each of the plurality of second vectors. It is not limited to this. For example, at least some of the operations performed by the user terminal 10 may be performed by the server 20.
다시 말해, 도 1 내지 도 12를 참조하여 설명되는 사용자 단말(10)의 동작들 중 적어도 일부는 서버(20)에 의하여 수행될 수 있다. 예를 들어, 서버(20)는 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성할 수 있다. 그리고, 서버(20)는 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출할 수 있다. 그리고, 서버(20)는 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성할 수 있다. 다만, 서버(20)의 동작은 상술한 바에 한정되지 않는다.In other words, at least some of the operations of the user terminal 10 described with reference to FIGS. 1 to 12 may be performed by the server 20. For example, the server 20 may generate a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on ingredient information and recipe information for a plurality of foods. Additionally, the server 20 may derive a plurality of second vectors whose similarity to each of the plurality of first vectors is greater than or equal to a preset value. Additionally, the server 20 may generate a survey list including foods corresponding to each of the plurality of second vectors. However, the operation of the server 20 is not limited to the above.
도 2a는 일 실시예에 따른 사용자 단말의 일 예를 도시한 구성도이다.FIG. 2A is a configuration diagram illustrating an example of a user terminal according to an embodiment.
도 2a를 참조하면, 사용자 단말(100)은 프로세서(110), 메모리(120), 입출력 인터페이스(130) 및 통신 모듈(140)을 포함한다. 설명의 편의를 위하여, 도 2a에는 본 발명과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2a에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 사용자 단말(100)에 더 포함될 수 있다. 또한, 도 2a에 도시된 프로세서(110), 메모리(120), 입출력 인터페이스(130) 및 통신 모듈(140)은 독립된 장치로 구현될 수도 있음은 본 발명과 관련된 기술 분야에서의 통상의 지식을 가진 자에게 자명하다.Referring to FIG. 2A, the user terminal 100 includes a processor 110, a memory 120, an input/output interface 130, and a communication module 140. For convenience of explanation, only components related to the present invention are shown in FIG. 2A. Accordingly, in addition to the components shown in FIG. 2A, other general-purpose components may be further included in the user terminal 100. In addition, the processor 110, memory 120, input/output interface 130, and communication module 140 shown in FIG. 2A may be implemented as independent devices, as will be understood by those skilled in the art related to the present invention. It is self-evident.
프로세서(110)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리할 수 있다. 여기에서, 명령은 메모리(120) 또는 외부 장치(예를 들어, 서버(20) 등)로부터 제공될 수 있다. 또한, 프로세서(110)는 사용자 단말(100)에 포함된 다른 구성요소들의 동작을 전반적으로 제어할 수 있다.The processor 110 can process computer program instructions by performing basic arithmetic, logic, and input/output operations. Here, the command may be provided from the memory 120 or an external device (eg, server 20, etc.). Additionally, the processor 110 may generally control the operations of other components included in the user terminal 100.
프로세서(110)는 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성한다. 예를 들어, 프로세서(110)는 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 식재료에 관한 제1 트리 및 조리법에 관한 제2 트리를 생성하고, 제1 트리 및 제2 트리에 기초하여 복수의 제1 벡터들을 생성할 수 있다. The processor 110 generates a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on ingredient information and recipe information for a plurality of foods. For example, the processor 110 generates a first tree about ingredients and a second tree about recipes based on ingredient information and recipe information about a plurality of foods, and based on the first tree and the second tree. Thus, a plurality of first vectors can be generated.
여기에서, 복수의 음식들에 관한 식재료 정보는, 복수의 음식들 각각을 조리함에 있어서 사용되는 모든 식재료에 관한 정보를 지칭할 수 있다. 구체적으로, 복수의 음식들에 관한 식재료 정보는, 복수의 음식들 각각을 조리함에 있어서 사용되는 식재료가 무엇인지에 관한 정보 등을 포함할 수 있다. 예를 들어, 소고기가 사용되는 음식에 관한 식재료 정보는, 소고기 또는 소에 관한 정보를 포함할 수 있다. 그러나, 복수의 음식들에 관한 식재료 정보의 예는 상술한 바에 한정되지 않는다.Here, ingredient information about a plurality of foods may refer to information about all ingredients used in cooking each of the plurality of foods. Specifically, ingredient information regarding a plurality of foods may include information regarding the ingredients used in cooking each of the plurality of foods. For example, ingredient information about food in which beef is used may include information about beef or cattle. However, examples of ingredient information regarding a plurality of foods are not limited to the above.
한편, 식재료는 상위 식재료 및 하위 식재료라는 상대적인 개념으로 구분할 수 있으며, 상위 식재료는 하위 식재료로 분류할 수 있다. 예를 들면, “식재료”는, “육상” 식재료 및 “해상” 식재료라는 하위 식재료로 분류할 수 있다. 그리고, “육상” 식재료라는 상위 식재료는, “동물” 식재료 및 “식물” 식재료라는 하위 식재료로 분류할 수 있다. 그리고, “동물” 식재료라는 상위 식재료는, “포유류” 식재료 및 “가금류” 식재료라는 하위 식재료로 분류할 수 있다. 그리고, “식물” 식물 식재료라는 상위 식재료는, “고추” 식재료 및 “콩” 식재료라는 하위 식재료로 분류할 수 있다. 여기에서, “동물” 식재료는 “포유류” 식재료의 상위 식재료에 해당하지만, “육상” 식재료의 하위 식재료에도 해당한다. 그러나, 식재료의 예는 상술한 바에 한정되지 않는다.Meanwhile, food ingredients can be divided into relative concepts such as high-level food ingredients and low-level food ingredients, and high-level food ingredients can be classified into low-level food ingredients. For example, “food ingredients” can be classified into sub-ingredients: “land” ingredients and “sea” ingredients. In addition, high-order food ingredients called “terrestrial” ingredients can be classified into low-level ingredients called “animal” ingredients and “plant” ingredients. In addition, high-level food ingredients called “animal” food ingredients can be classified into low-level food ingredients called “mammal” food ingredients and “poultry” food ingredients. And, the high-level food ingredients called “plant” plant food ingredients can be classified into low-level food ingredients called “pepper” food ingredients and “bean” food ingredients. Here, “animal” ingredients correspond to the upper level of “mammal” ingredients, but they also correspond to the lower level of “terrestrial” ingredients. However, examples of food ingredients are not limited to those described above.
여기에서, 복수의 음식들에 관한 조리법 정보는, 복수의 음식들 각각을 조리함에 있어서 사용되는 모든 조리법에 관한 정보를 지칭할 수 있다. 구체적으로, 복수의 음식들에 관한 조리법 정보는, 복수의 음식들 각각을 조리함에 있어서 사용되는 조리법이 무엇인지에 관한 정보 등을 포함할 수 있다. 예를 들어, 굽기가 사용되는 음식에 관한 조리법 정보는, 굽기에 관한 정보를 포함할 수 있다. 그러나, 복수의 음식들에 관한 조리법 정보의 예는 상술한 바에 한정되지 않는다.Here, recipe information about a plurality of foods may refer to information about all recipes used in cooking each of a plurality of foods. Specifically, recipe information about a plurality of foods may include information about the recipe used to cook each of the plurality of foods. For example, recipe information about food in which baking is used may include information about baking. However, examples of recipe information for multiple foods are not limited to those described above.
한편, 조리법은 상위 조리법 및 하위 조리법이라는 상대적인 개념으로 구분할 수 있으며, 상위 조리법은 하위 조리법으로 분류할 수 있다. 예를 들면, “조리법”은, “가열” 조리법, “비가열” 조리법 및 “비가공” 조리법이라는 하위 조리법으로 분류할 수 있다. 그리고, “가열” 조리법이라는 상위 식재료는, “끓이기” 조리법, “찌기” 조리법 및 “굽기” 조리법이라는 하위 조리법으로 분류할 수 있다. 그리고, “비가열” 조리법이라는 상위 조리법은, “발효” 조리법 및 “무치기” 조리법이라는 하위 조리법으로 분류할 수 있다. 여기에서, “가열” 조리법은 “끓이기” 조리법의 상위 조리법에 해당하지만, “조리법”의 하위 조리법에도 해당한다. 그러나, 조리법의 예는 상술한 바에 한정되지 않는다.Meanwhile, recipes can be divided into relative concepts of upper-level recipes and lower-level recipes, and upper-level recipes can be classified into lower-level recipes. For example, “recipes” can be classified into sub-recipes: “heated” recipes, “non-heated” recipes, and “non-processed” recipes. In addition, the upper level ingredients called “heating” recipes can be classified into lower level recipes called “boiling” recipes, “steaming” recipes, and “baking” recipes. And, the upper level recipe called “non-heating” recipe can be classified into lower level recipe called “fermentation” recipe and “radish” recipe. Here, the “heating” recipe corresponds to the parent recipe of the “boiling” recipe, but also corresponds to the child recipe of “recipe”. However, examples of recipes are not limited to those described above.
여기에서, 제1 트리는, 복수의 음식들에 관한 식재료 정보에 기초하여 생성한 트리를 지칭한다. 예를 들면, 제1 트리는 복수의 음식들 각각의 식재료로 설정된 노드들을 포함할 수 있다. Here, the first tree refers to a tree generated based on ingredient information about a plurality of foods. For example, the first tree may include nodes set as ingredients for each of a plurality of foods.
여기에서, 제2 트리는, 복수의 음식들에 관한 조리법 정보에 기초하여 생성한 트리를 지칭한다. 예를 들면, 제2 트리는 복수의 음식들 각각의 조리법으로 설정된 노드들을 포함할 수 있다.Here, the second tree refers to a tree generated based on recipe information about a plurality of foods. For example, the second tree may include nodes set to recipes for each of a plurality of foods.
여기에서, 복수의 제1 벡터들은, 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여 생성된 벡터들로, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 것일 수 있다. 일 예로서, 복수의 제1 벡터들 각각은, 제1 트리에 포함된 하나 이상의 노드 및 제2 트리에 포함된 하나 이상의 노드에 대응하는 것일 수 있다. 다른 예로서, 복수의 제1 벡터들 각각은, 제1 트리에 포함된 하나 이상의 단말 노드인 제1 노드 및 제2 트리에 포함된 하나 이상의 단말 노드인 제2 노드에 대응하는 것일 수 있다. 하지만, 복수의 제1 벡터들의 예는 상술한 바에 한정되지 않는다.Here, the plurality of first vectors are vectors generated based on ingredient information and recipe information for a plurality of foods, and may correspond to one or more ingredients and one or more recipes. As an example, each of the plurality of first vectors may correspond to one or more nodes included in the first tree and one or more nodes included in the second tree. As another example, each of the plurality of first vectors may correspond to a first node that is one or more terminal nodes included in the first tree and a second node that is one or more terminal nodes included in the second tree. However, examples of the plurality of first vectors are not limited to those described above.
한편, 복수의 제1 벡터들은, 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여 생성된 벡터들로, 하나의 식재료 및 하나의 조리법에 대응하는 것일 수 있다. 일 예로서, 복수의 제1 벡터들 각각은, 제1 트리에 포함된 하나의 노드 및 제2 트리에 포함된 하나의 노드에 대응하는 것일 수 있다. 다른 예로서, 복수의 제1 벡터들 각각은, 제1 트리에 포함된 하나의 단말 노드인 제1 노드 및 제2 트리에 포함된 하나의 단말 노드인 제2 노드에 대응하는 것일 수 있다. 복수의 제1 벡터들 각각이 하나의 식재료 및 하나의 조리법에 대응함으로써, 생성된 복수의 제1 벡터들 각각은 서로 다른 카테고리의 음식을 대표할 수 있다. 하지만, 복수의 제1 벡터들의 예는 상술한 바에 한정되지 않는다.Meanwhile, the plurality of first vectors are vectors generated based on ingredient information and recipe information for a plurality of foods, and may correspond to one ingredient and one recipe. As an example, each of the plurality of first vectors may correspond to one node included in the first tree and one node included in the second tree. As another example, each of the plurality of first vectors may correspond to a first node that is one terminal node included in the first tree and a second node that is one terminal node included in the second tree. Since each of the plurality of first vectors corresponds to one food ingredient and one recipe, each of the plurality of generated first vectors may represent different categories of food. However, examples of the plurality of first vectors are not limited to those described above.
한편, 복수의 제1 벡터들은, 하나의 식재료 및 하나의 조리법에 대응하는 것으로, 식재료에 관한 제1 트리 및 조리법에 관한 제2 트리에 기초하여 생성되는 것일 수 있다. 복수의 제1 벡터들은, 가상의 음식에 대응하는 것일 수 있고, 실존하는 음식에 대응하는 것일 수 있다. 예를 들면, 제1 벡터가 하나의 “소” 식재료 및 하나의 “발효” 조리법에 대응하는 것인 경우, 제1 벡터는 하나의 “소” 식재료만을 하나의 “발효” 조리법만을 사용하는 실존하는 음식에 대응하는 것일 수 있다. 하지만, 하나의 “소” 식재료만을 하나의 “발효” 조리법만을 사용하는 음식이 실존하지 않는다면, 제1 벡터는 하나의 “소” 식재료만을 하나의 “발효” 조리법만을 사용하는 가상의 음식일 수 있다. 하지만, 제1 벡터의 예는 상술한 바에 한정되지 않는다.Meanwhile, the plurality of first vectors may correspond to one food ingredient and one recipe, and may be generated based on a first tree related to the food ingredient and a second tree related to the recipe. The plurality of first vectors may correspond to virtual food or may correspond to real food. For example, if the first vector corresponds to one “small” ingredient and one “fermentation” recipe, the first vector is an actual vector that uses only one “small” ingredient and one “fermentation” recipe. It may correspond to food. However, if there is no real food that uses only one “small” ingredient and one “fermentation” recipe, the first vector may be a hypothetical food that uses only one “small” ingredient and one “fermentation” recipe. . However, examples of the first vector are not limited to those described above.
그리고, 프로세서(110)는 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출한다.Then, the processor 110 derives a plurality of second vectors whose similarity to each of the plurality of first vectors is greater than or equal to a preset value.
여기에서, 유사도는, 코사인 유사도(Cosine similarity), 유클리드 거리(Euclidian distance), 자카드 유사도(Jaccard similarity), 맨해튼 거리(Manhattan distance), 민코프스키 거리(Minkowski Distance) 등일 수 있다. 하지만, 유사도의 예는 상술한 바에 한정되지 않는다.Here, the similarity may be cosine similarity, Euclidian distance, Jaccard similarity, Manhattan distance, Minkowski Distance, etc. However, examples of similarity are not limited to those described above.
여기에서, 기 설정된 값은, 프로세서(110)에 의해 설정된 값 또는 사용자(30)에 의해 설정된 값일 수 있다. 기 설정된 값은, 복수의 제1 벡터들 각각에 대해 서로 다른 값이 설정될 수 있다. 하지만, 기 설정된 값의 예는 상술한 바에 한정되지 않는다.Here, the preset value may be a value set by the processor 110 or a value set by the user 30. The preset value may be set to a different value for each of the plurality of first vectors. However, examples of preset values are not limited to the above.
여기에서, 복수의 제2 벡터들은, 하나의 음식에 관한 식재료 정보 및 조리법 정보에 기초하여 생성된 벡터들일 수 있다. 예를 들면, 복수의 제2 벡터들 각각은, 카레덮밥, 소고기 무국, 토마토 스파게티 등의 음식들 각각에 관한 식재료 정보 및 조리법 정보에 기초하여 생성된 벡터들일 수 있다. 제2 벡터는, 카레덮밥에 관한 식재료 정보 및 조리법 정보에 기초하여 생성된 벡터일 수 있고, 또는 소고기 무국에 관한 식재료 정보 및 조리법 정보에 기초하여 생성된 벡터일 수 있다. 하지만, 복수의 제2 벡터들의 예는 상술한 바에 한정되지 않는다.Here, the plurality of second vectors may be vectors generated based on ingredient information and recipe information for one food. For example, each of the plurality of second vectors may be vectors generated based on ingredient information and recipe information for each of foods such as curry rice bowl, beef radish soup, and tomato spaghetti. The second vector may be a vector generated based on ingredient information and recipe information for curry rice bowl, or may be a vector generated based on ingredient information and recipe information for beef radish soup. However, examples of the plurality of second vectors are not limited to those described above.
그리고, 프로세서(110)는 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성할 수 있다.Additionally, the processor 110 may generate a survey list including foods corresponding to each of the plurality of second vectors.
상술한 바와 같이, 복수의 제1 벡터들 각각은 하나의 식재료 및 하나의 조리법에 대응함으로써, 생성된 복수의 제1 벡터들 각각은 서로 다른 카테고리의 음식들 각각에 대응하는 것일 수 있다. 그리고, 서로 다른 카테고리의 음식들 각각에 대응하는 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들은, 마찬가지로 서로 다른 카테고리의 음식들 각각에 대응하는 것일 수 있다. 본 발명의 일 실시예에 따르면, 서로 다른 카테고리의 음식들을 포함하는 설문 리스트를 생성함으로써, 보다 정확하게 모든 음식 카테고리에 대한 사용자의 선호도를 파악할 수 있고, 유사한 카테고리에 속하는 음식들에 대해서 중복하여 동일한 사용자에게 설문하는 것을 방지할 수 있고, 일부 중복된 카테고리에 속하는 음식들에 대해 사용자가 상반된 선호도를 응답하여 설문의 해석이 모호해지는 것을 방지할 수 있다.As described above, each of the plurality of first vectors corresponds to one food ingredient and one recipe, so that each of the plurality of first vectors generated may correspond to different categories of food. Additionally, the plurality of second vectors having a similarity with each of the first vectors corresponding to each of the different categories of food may be equal to or greater than a preset value, and may likewise correspond to each of the different categories of foods. According to one embodiment of the present invention, by creating a survey list containing foods of different categories, it is possible to more accurately determine the user's preference for all food categories, and the same user can repeatedly identify foods belonging to similar categories. It is possible to prevent questionnaires from being asked to people, and it is possible to prevent the interpretation of the questionnaire from being ambiguous as users respond with conflicting preferences for foods belonging to some overlapping categories.
그리고, 프로세서(110)는 설문 리스트에 대응하는 응답 정보에 기초하여, 추가 설문 리스트를 생성할 수 있다. 구체적으로, 프로세서(110)는 설문 리스트에 대응하는 응답 정보에 기초하여, 선호 식재료에 관한 제5 트리 및 선호 조리법에 관한 제6 트리를 생성할 수 있다. 그리고, 프로세서(110)는 제5 트리 및 제6 트리에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제3 벡터들을 생성할 수 있다. 그리고, 프로세서(110)는 복수의 제3 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제4 벡터들을 도출할 수 있다. 그리고, 프로세서(110)는 복수의 제4 벡터들 각각에 대응하는 음식들을 포함하는 추가 설문 리스트를 생성할 수 있다.Additionally, the processor 110 may generate an additional survey list based on response information corresponding to the survey list. Specifically, the processor 110 may generate a fifth tree regarding preferred ingredients and a sixth tree regarding preferred recipes based on response information corresponding to the survey list. Additionally, the processor 110 may generate a plurality of third vectors corresponding to one or more food ingredients and one or more recipes based on the fifth tree and the sixth tree. Additionally, the processor 110 may derive a plurality of fourth vectors whose similarity to each of the plurality of third vectors is greater than or equal to a preset value. Additionally, the processor 110 may generate an additional survey list including foods corresponding to each of the plurality of fourth vectors.
프로세서(110)는 다수의 논리 게이트들의 어레이로 구현될 수도 있고, 범용적인 마이크로 프로세서와 이 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다. 예를 들어, 프로세서(110)는 범용 프로세서, 중앙 처리 장치(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함할 수 한다. 일부 환경에서, 프로세서(110)는 주문형 반도체(ASIC), 프로그램 가능 로직 디바이스(PLD), 필드 프로그램 가능 게이트 어레이(FPGA) 등을 포함할 수도 있다. 예를 들어, 프로세서(110)는 디지털 신호 프로세서(DSP)와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, 디지털 신호 프로세서(DSP) 코어와 결합된 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.The processor 110 may be implemented as an array of multiple logic gates, or may be implemented as a combination of a general-purpose microprocessor and a memory storing a program that can be executed on the microprocessor. For example, processor 110 may include a general-purpose processor, central processing unit (CPU), microprocessor, digital signal processor (DSP), controller, microcontroller, state machine, etc. In some circumstances, processor 110 may include an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), etc. For example, processor 110 may be a combination of a digital signal processor (DSP) and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors combined with a digital signal processor (DSP) core, or any other such. It may also refer to a combination of processing devices, such as a combination of configurations.
메모리(120)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 예로서, 메모리(120)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리와는 구분되는 별도의 영구 저장 장치일 수 있다. 또한, 메모리(210)에는 운영체제(OS)와 적어도 하나의 프로그램 코드(예를 들어, 도 3 내지 도 12를 참조하여 후술할 동작을 프로세서(110)가 수행하기 위한 코드)가 저장될 수 있다.Memory 120 may include any non-transitory computer-readable recording medium. As an example, the memory 120 is a non-permanent mass storage device such as random access memory (RAM), read only memory (ROM), disk drive, solid state drive (SSD), flash memory, etc. device). As another example, non-perishable mass storage devices such as ROM, SSD, flash memory, disk drives, etc. may be a separate persistent storage device distinct from memory. Additionally, the memory 210 may store an operating system (OS) and at least one program code (e.g., code for the processor 110 to perform operations to be described later with reference to FIGS. 3 to 12).
이러한 소프트웨어 구성요소들은 메모리(120)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 사용자 단말(100)에 직접 연결될 수 있는 기록 매체일 수 있고, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 또는, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(140)을 통해 메모리(120)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 통신 모듈(140)을 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(예를 들어, 도 3 내지 도 12를 참조하여 후술할 동작을 프로세서(110)가 수행하기 위한 컴퓨터 프로그램 등)에 기반하여 메모리(120)에 로딩될 수 있다.These software components may be loaded from a computer-readable recording medium separate from the memory 120. The recording medium readable by such a separate computer may be a recording medium that can be directly connected to the user terminal 100, for example, a floppy drive, disk, tape, DVD/CD-ROM drive, memory card, etc. It may include a readable recording medium. Alternatively, software components may be loaded into the memory 120 through the communication module 140 rather than a computer-readable recording medium. For example, at least one program is a computer program installed by files provided through the communication module 140 by developers or a file distribution system that distributes the installation file of the application (e.g., FIGS. 3 to 12 It may be loaded into the memory 120 based on a computer program (such as a computer program for the processor 110 to perform an operation to be described later with reference to).
입출력 인터페이스(130)는 사용자 단말(100)과 연결되거나 사용자 단말(100)에 포함될 수 있는 입력 또는 출력을 위한 장치(예를 들어, 터치 스크린, 키보드, 마우스 등)와의 인터페이스를 위한 수단일 수 있다. 도 2a에서는 입출력 인터페이스(130)가 프로세서(110)와 별도로 구성된 요소로 도시되었으나, 이에 한정되지 않으며, 입출력 인터페이스(130)가 프로세서(110)에 포함되도록 구성될 수도 있다.The input/output interface 130 may be a means for interfacing with a device for input or output (e.g., touch screen, keyboard, mouse, etc.) that may be connected to or included in the user terminal 100. . In FIG. 2A, the input/output interface 130 is shown as an element configured separately from the processor 110, but the present invention is not limited thereto, and the input/output interface 130 may be included in the processor 110.
통신 모듈(140)은 네트워크를 통해 서버(20)와 사용자 단말(100)이 서로 통신하기 위한 구성 또는 기능을 제공할 수 있다. 또한, 통신 모듈(140)은 사용자 단말(100)이 다른 외부 디바이스와 통신하기 위한 구성 또는 기능을 제공할 수 있다. 예를 들어, 프로세서(110)의 제어에 따라 제공되는 제어 신호, 명령, 데이터 등이 통신 모듈(140)과 네트워크를 거쳐 서버(20) 및/또는 외부 디바이스로 전송될 수 있다.The communication module 140 may provide a configuration or function for the server 20 and the user terminal 100 to communicate with each other through a network. Additionally, the communication module 140 may provide a configuration or function for the user terminal 100 to communicate with other external devices. For example, control signals, commands, data, etc. provided under control of the processor 110 may be transmitted to the server 20 and/or an external device through the communication module 140 and the network.
한편, 도 2a에는 도시되지 않았으나, 사용자 단말(100)은 디스플레이 장치를 더 포함할 수 있다. 예를 들어, 디스플레이 장치는 터치 스크린으로 구현될 수도 있다. 또는, 사용자 단말(100)은 독립적인 디스플레이 장치와 유선 또는 무선 통신 방식으로 연결되어 상호 간에 데이터를 송수신할 수 있다. 예를 들어, 디스플레이 장치를 통하여 설문 리스트, 추가 설문 리스트 등이 제공될 수 있다.Meanwhile, although not shown in FIG. 2A, the user terminal 100 may further include a display device. For example, the display device may be implemented as a touch screen. Alternatively, the user terminal 100 may be connected to an independent display device through wired or wireless communication to transmit and receive data between them. For example, a survey list, an additional survey list, etc. may be provided through the display device.
도 2b는 일 실시예에 따른 서버의 일 예를 도시한 구성도이다.Figure 2b is a configuration diagram illustrating an example of a server according to an embodiment.
도 2b를 참조하면, 서버(20)는 프로세서(210), 메모리(220) 및 통신 모듈(230)을 포함한다. 설명의 편의를 위하여, 도 2b에는 본 발명과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2b에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 서버(200)에 더 포함될 수 있다. 또한, 도 2b에 도시된 프로세서(210), 메모리(220) 및 통신 모듈(230)은 독립된 장치로 구현될 수도 있음은 본 발명과 관련된 기술 분야에서의 통상의 지식을 가진 자에게 자명하다.Referring to FIG. 2B, the server 20 includes a processor 210, a memory 220, and a communication module 230. For convenience of explanation, only components related to the present invention are shown in FIG. 2B. Accordingly, in addition to the components shown in FIG. 2B, other general-purpose components may be further included in the server 200. Additionally, it is obvious to those skilled in the art that the processor 210, memory 220, and communication module 230 shown in FIG. 2B may be implemented as independent devices.
프로세서(210)는, 메모리(220), 사용자 단말(10) 또는 외부 장치 중 적어도 하나로부터 복수의 음식들에 관한 식재료 정보 및 복수의 음식들에 관한 조리법 정보를 획득할 수 있다. 프로세서(210)는 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성할 수 있다. 그리고, 프로세서(210)는, 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출할 수 있다. 그리고, 프로세서(210)는 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성할 수 있다. 또한, 프로세서(210)는 설문 리스트에 대응하는 응답 정보에 기초하여, 추가 설문 리스트를 생성할 수 있다.The processor 210 may obtain ingredient information about a plurality of foods and recipe information about a plurality of foods from at least one of the memory 220, the user terminal 10, or an external device. The processor 210 may generate a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on ingredient information and recipe information for a plurality of foods. Additionally, the processor 210 may derive a plurality of second vectors whose similarity to each of the plurality of first vectors is equal to or greater than a preset value. Additionally, the processor 210 may generate a survey list including foods corresponding to each of the plurality of second vectors. Additionally, the processor 210 may generate an additional survey list based on response information corresponding to the survey list.
다시 말해, 도 2a를 참조하여 상술한 프로세서(110)의 동작 중 적어도 하나가 프로세서(210)에 의하여 수행될 수 있다. 이 경우, 사용자 단말(100)은 서버(200)로부터 전송된 정보를 디스플레이 장치를 통하여 출력할 수 있다.In other words, at least one of the operations of the processor 110 described above with reference to FIG. 2A may be performed by the processor 210. In this case, the user terminal 100 may output information transmitted from the server 200 through a display device.
한편, 프로세서(210)의 구현 예는 도 2a를 참조하여 상술한 프로세서(110)의 구현 예와 동일하므로, 구체적인 설명은 생략한다.Meanwhile, since the implementation example of the processor 210 is the same as the implementation example of the processor 110 described above with reference to FIG. 2A, detailed description is omitted.
메모리(220)에는 프로세서(210)의 동작에 필요한 데이터, 프로세서(210)의 동작에 따라 생성된 데이터 등 다양한 데이터가 저장될 수 있다. 또한, 메모리(220)에는 운영체제(OS)와 적어도 하나의 프로그램(예를 들어, 프로세서(210)가 동작하는데 필요한 프로그램 등)이 저장될 수 있다.The memory 220 may store various data, such as data required for the operation of the processor 210 and data generated according to the operation of the processor 210. Additionally, the memory 220 may store an operating system (OS) and at least one program (eg, a program necessary for the processor 210 to operate, etc.).
한편, 메모리(220)의 구현 예는 도 2a를 참조하여 상술한 메모리(220)의 구현 예와 동일하므로, 구체적인 설명은 생략한다.Meanwhile, since the implementation example of the memory 220 is the same as the implementation example of the memory 220 described above with reference to FIG. 2A, detailed description will be omitted.
통신 모듈(230)은 네트워크를 통해 서버(200)와 사용자 단말(100)이 서로 통신하기 위한 구성 또는 기능을 제공할 수 있다. 또한, 통신 모듈(140)은 서버(200)가 다른 외부 디바이스와 통신하기 위한 구성 또는 기능을 제공할 수 있다. 예를 들어, 프로세서(210)의 제어에 따라 제공되는 제어 신호, 명령, 데이터 등이 통신 모듈(230)과 네트워크를 거쳐 사용자 단말(100) 및/또는 외부 디바이스로 전송될 수 있다.The communication module 230 may provide a configuration or function for the server 200 and the user terminal 100 to communicate with each other through a network. Additionally, the communication module 140 may provide a configuration or function for the server 200 to communicate with other external devices. For example, control signals, commands, data, etc. provided under control of the processor 210 may be transmitted to the user terminal 100 and/or an external device through the communication module 230 and the network.
도 3은 일 실시예에 따른 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법의 일 예를 설명하기 위한 흐름도이다.Figure 3 is a flowchart illustrating an example of a method for generating a survey list for building a user food profile according to an embodiment.
도 3을 참조하면, 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법은, 도 1 및 도 2a에 도시된 사용자 단말(10, 100) 또는 프로세서(110)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 1 및 도 2a에 도시된 사용자 단말(10, 100) 또는 프로세서(110)에 관하여 이상에서 기술된 내용은 도 3의 사용자(30)의 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법에도 적용될 수 있다.Referring to FIG. 3, the method of generating a survey list for building a user food profile consists of steps processed in time series in the user terminals 10 and 100 or the processor 110 shown in FIGS. 1 and 2A. do. Therefore, even if the content is omitted below, the content described above with respect to the user terminals 10 and 100 or the processor 110 shown in FIGS. 1 and 2A is used to build a user food profile of the user 30 of FIG. 3. It can also be applied to the method of creating a survey list for.
또한, 도 1 및 도 2b를 참조하여 상술한 바와 같이, 도 3의 사용자(30)의 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법의 단계들 중 적어도 하나는 서버(20, 200) 또는 프로세서(210)에서 처리될 수 있다.In addition, as described above with reference to FIGS. 1 and 2B, at least one of the steps of the method for generating a survey list for building the user food profile of the user 30 of FIG. 3 is performed by the server 20 or the processor. It can be processed at (210).
310 단계에서, 프로세서(110)는 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성한다. 구체적으로, 프로세서(110)는 복수의 음식들 각각에 관한 식재료 정보 및 조리법 정보를 획득한다. 그리고, 프로세서(110)는 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성한다.In step 310, the processor 110 generates a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on ingredient information and recipe information for a plurality of foods. Specifically, the processor 110 obtains ingredient information and recipe information for each of a plurality of foods. Then, the processor 110 generates a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on the ingredient information and recipe information.
먼저, 프로세서(110)는 복수의 음식들 각각에 관한 식재료 정보 및 조리법 정보를 획득한다. 프로세서(110)는, 메모리(120), 서버(20) 또는 외부 장치(미도시) 중 적어도 하나로부터 복수의 음식들 각각에 관한 식재료 정보 및 조리법 정보를 획득할 수 있다. 하지만 프로세서(110)가 복수의 음식들 각각에 관한 식재료 정보 및 조리법 정보를 획득하는 방법은 상술한 예에 한정되지 않는다.First, the processor 110 obtains ingredient information and recipe information for each of a plurality of foods. The processor 110 may obtain ingredient information and recipe information for each of a plurality of foods from at least one of the memory 120, the server 20, or an external device (not shown). However, the method by which the processor 110 obtains ingredient information and recipe information for each of a plurality of foods is not limited to the above-described example.
그리고, 프로세서(110)는 식재료 정보 및 조리법 정보에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성한다.Then, the processor 110 generates a plurality of first vectors corresponding to one or more ingredients and one or more recipes based on the ingredient information and recipe information.
한편, 프로세서(110)는 식재료 정보 및 조리법 정보에 기초하여, 하나의 식재료 및 하나의 조리법에 대응하는 복수의 제1 벡터들을 생성한다. 제1 벡터는 하나의 식재료 및 하나의 조리법에 대응하는 것일 수 있다. 따라서, 복수의 제1 벡터들 각각은 서로 동일한 식재료 및 동일한 조리법에 대응하지 않을 수 있다. 복수의 제1 벡터들 각각은 서로 다른 카테고리의 음식에 대응하는 것일 수 있다. Meanwhile, the processor 110 generates a plurality of first vectors corresponding to one ingredient and one recipe based on the ingredient information and recipe information. The first vector may correspond to one food ingredient and one recipe. Accordingly, each of the plurality of first vectors may not correspond to the same food ingredients and the same recipe. Each of the plurality of first vectors may correspond to different categories of food.
이하, 도 4를 참조하여, 일 실시예에 따른 프로세서가 복수의 제1 벡터들을 생성하는 일 예를 설명하도록 한다.Hereinafter, with reference to FIG. 4, an example in which a processor according to an embodiment generates a plurality of first vectors will be described.
도 4는 일 실시예에 따른 프로세서가 복수의 제1 벡터들을 생성하는 일 예를 설명하기 위한 흐름도이다.FIG. 4 is a flowchart illustrating an example in which a processor generates a plurality of first vectors according to an embodiment.
410 단계에서, 프로세서(110)는 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 식재료에 관한 제1 트리 및 조리법에 관한 제2 트리를 생성한다. In step 410, the processor 110 generates a first tree regarding ingredients and a second tree regarding recipes based on ingredient information and recipe information for a plurality of foods.
이하, 도 5 및 도 6을 참조하여, 식재료에 관한 제1 트리의 일 예 및 조리법에 관한 제2 트리의 일 예를 설명하도록 한다.Hereinafter, with reference to FIGS. 5 and 6, an example of a first tree related to food ingredients and an example of a second tree related to recipes will be described.
도 5는 일 실시예에 따른 식재료에 관한 제1 트리 및 제1 노드의 일 예를 설명하기 위한 도면이다.Figure 5 is a diagram for explaining an example of a first tree and a first node related to food ingredients according to an embodiment.
도 5를 참조하면, 프로세서가 생성한 식재료에 관한 제1 트리 및 제1 노드의 일 예를 확인할 수 있다. Referring to FIG. 5, an example of a first tree and a first node related to food ingredients generated by the processor can be seen.
프로세서(110)는 “식재료”로 설정된 루트 노드(root node), “식재료”의 하위 식재료인 “육상” 식재료 및 “해상” 식재료로 설정된 루트 노드의 자식 노드를 포함하는 식재료에 관한 제1 트리(500)를 생성할 수 있다. 그리고, 프로세서(110)는 “육상” 식재료의 하위 식재료인 “동물” 식재료 및 “식물” 식재료로 설정된 노드를 포함하는 식재료에 관한 제1 트리(500)를 생성할 수 있다. 또한, 프로세서(110)는 “소” 식재료(510), “돼지” 식재료(520), “닭” 식재료(530), “오리” 식재료(540), “고추” 식재료(550), “콩” 식재료(560), “생선류” 식재료(570), “갑각류” 식재료(580) 및 “해조류” 식재료로 설정된 단말 노드(terminal node)들을 포함하는 식재료에 관한 제1 트리(500)를 생성할 수 있다. 상술한 바와 같이, 프로세서(110)는 상위 식재료 및 하위 식재료라는 상대적인 개념으로 구분할 수 있는 식재료들로 설정된 노드들을 포함하는 제1 트리를 생성할 수 있다. 하지만, 제1 트리의 예는 상술한 바에 한정되지 않는다.The processor 110 creates a first tree related to food ingredients, including a root node set as “food ingredients,” child nodes of the root node set as “land” ingredients and “sea” ingredients, which are subordinate ingredients of “food ingredients” ( 500) can be created. Additionally, the processor 110 may generate a first tree 500 regarding food ingredients including nodes set as “animal” ingredients and “plant” ingredients, which are lower level ingredients of “terrestrial” ingredients. In addition, the processor 110 uses “cow” ingredients (510), “pork” ingredients (520), “chicken” ingredients (530), “duck” ingredients (540), “pepper” ingredients (550), and “beans”. A first tree 500 regarding food ingredients can be created including terminal nodes set to food ingredients 560, “fish” ingredients 570, “crustacean” ingredients 580, and “seaweed” ingredients. . As described above, the processor 110 may generate a first tree including nodes set as ingredients that can be classified by relative concepts such as upper-order ingredients and lower-order ingredients. However, the example of the first tree is not limited to the above.
도 6은 일 실시예에 따른 조리법에 관한 제2 트리 및 제2 노드의 일 예를 설명하기 위한 도면이다.Figure 6 is a diagram for explaining an example of a second tree and a second node related to a recipe according to an embodiment.
프로세서(110)는 “조리법”으로 설정된 루트 노드(root node), “조리법”의 하위 조리법인 “가열” 조리법, “비가열” 조리법 및 “비가공” 조리법으로 설정된 루트 노드의 자식 노드를 포함하는 조리법에 관한 제2 트리(600)를 생성할 수 있다. 그리고, 프로세서(110)는 “가열” 조리법의 하위 조리법인 “끓이기” 조리법, “찌기” 조리법 및 “굽기” 조리법으로 설정된 노드를 포함하는 조리법에 관한 제2 트리(600)를 생성할 수 있다. 또한, 프로세서(110)는 “끓이기” 조리법(610), “찌기” 조리법(620), “굽기” 조리법(630), “발효” 조리법(640), “무치기” 조리법(650) 및 “비가공” 조리법(660)으로 설정된 단말 노드(terminal node)들을 포함하는 조리법에 관한 제2 트리(600)를 생성할 수 있다. 상술한 바와 같이, 프로세서(110)는 상위 조리법 및 하위 조리법이라는 상대적인 개념으로 구분할 수 있는 조리법들로 설정된 노드들을 포함하는 제2 트리를 생성할 수 있다. 하지만, 제2 트리의 예는 상술한 바에 한정되지 않는다.The processor 110 includes a root node set to “recipe”, a “heating” recipe that is a child recipe of “recipe”, a “non-heating” recipe, and a child node of the root node set to a “non-processing” recipe. A second tree 600 related to recipes can be created. Additionally, the processor 110 may generate a second tree 600 for recipes including nodes set as “boiling” recipes, “steaming” recipes, and “baking” recipes, which are sub-recipes of the “heating” recipe. In addition, the processor 110 can be used to prepare a “boiling” recipe (610), a “steaming” recipe (620), a “baking” recipe (630), a “fermentation” recipe (640), a “seasoning” recipe (650), and a “bake” recipe (650). A second tree 600 regarding the recipe including terminal nodes set as “processing” recipes 660 can be created. As described above, the processor 110 may generate a second tree including nodes set with recipes that can be classified into relative concepts of upper recipe and lower recipe. However, the example of the second tree is not limited to the above.
다시 도 4를 참조하면, 420 단계에서, 프로세서(110)는 제1 트리 및 제2 트리에 기초하여, 복수의 제1 벡터들을 생성한다.Referring again to FIG. 4, in step 420, the processor 110 generates a plurality of first vectors based on the first tree and the second tree.
일 예로서, 프로세서(110)는 제1 트리에 기초한 벡터 및 제2 트리에 기초한 벡터를 생성하고, 제1 트리에 기초한 벡터 및 제2 트리에 기초한 벡터를 이용하여 제1 벡터를 생성할 수 있다.As an example, the processor 110 may generate a vector based on the first tree and a vector based on the second tree, and generate the first vector using the vector based on the first tree and the vector based on the second tree. .
다른 예로서, 프로세서(110)는 제1 트리에 기초한 행렬 및 제2 트리에 기초한 행렬을 생성하고, 제1 트리에 기초한 행렬을 이용하여 제1 트리에 기초한 벡터를 생성하고, 제2 트리에 기초한 행렬을 이용하여 제2 트리에 기초한 벡터를 생성하고, 제1 트리에 기초한 벡터 및 제2 트리에 기초한 벡터를 이용하여 제1 벡터를 생성할 수 있다. 여기에서, 제1 트리에 기초한 행렬은, 제1 트리에 포함된 노드들에 대응하는 식재료들을 각각 행 및 열의 요소로 하는 행렬로 구현될 수 있고, 제1 트리에 포함된 노드들에 대응하는 식재료들은 상위 식재료에서 하위 식재료순으로 행 및 열의 요소를 구성할 수 있으나, 이에 한정되지 않는다. 여기에서, 제2 트리에 기초한 행렬은, 제2 트리에 포함된 노드들에 대응하는 조리법들을 각각 행 및 열의 요소로 하는 행렬로 구현될 수 있고, 제2 트리에 포함된 노드들에 대응하는 조리법들은 상위 조리법에서 하위 조리법순으로 행 및 열의 요소를 구성할 수 있으나, 이에 한정되지 않는다. As another example, processor 110 generates a matrix based on the first tree and a matrix based on the second tree, uses the matrix based on the first tree to generate a vector based on the first tree, and generates a vector based on the second tree. A vector based on the second tree can be generated using a matrix, and a first vector can be generated using a vector based on the first tree and a vector based on the second tree. Here, the matrix based on the first tree may be implemented as a matrix with the ingredients corresponding to the nodes included in the first tree as row and column elements, and the ingredients corresponding to the nodes included in the first tree. The elements of rows and columns may be configured in order from upper level ingredients to lower level ingredients, but are not limited to this. Here, the matrix based on the second tree may be implemented as a matrix with recipes corresponding to nodes included in the second tree as row and column elements, respectively, and recipes corresponding to nodes included in the second tree. The elements of rows and columns may be configured in the order from the upper recipe to the lower recipe, but are not limited to this.
한편, 복수의 제1 벡터들 각각은, 제1 트리 및 제2 트리에 대응하는 것일 수 있다. Meanwhile, each of the plurality of first vectors may correspond to a first tree and a second tree.
일 예로서, 복수의 제1 벡터들 각각은, 제1 트리에 포함된 하나 이상의 노드 및 제2 트리에 포함된 하나 이상의 노드에 대응하는 것일 수 있다. As an example, each of the plurality of first vectors may correspond to one or more nodes included in the first tree and one or more nodes included in the second tree.
다른 예로서, 복수의 제1 벡터들 각각은, 제1 트리에 포함된 하나의 노드 및 제2 트리에 포함된 하나의 노드에 대응하는 것일 수 있다. As another example, each of the plurality of first vectors may correspond to one node included in the first tree and one node included in the second tree.
또 다른 예로서, 복수의 제1 벡터들 각각은, 제1 트리에 포함된 하나 이상의 단말 노드인 제1 노드 및 제2 트리에 포함된 하나 이상의 단말 노드인 제2 노드에 대응하는 것일 수 있다.As another example, each of the plurality of first vectors may correspond to a first node that is one or more terminal nodes included in the first tree and a second node that is one or more terminal nodes included in the second tree.
또 다른 예로서, 복수의 제1 벡터들 각각은, 제1 트리에 포함된 하나의 단말 노드인 제1 노드 및 제2 트리에 포함된 하나의 단말 노드인 제2 노드에 대응하는 것일 수 있다.As another example, each of the plurality of first vectors may correspond to a first node that is one terminal node included in the first tree and a second node that is one terminal node included in the second tree.
또 다른 예로서, 복수의 제1 벡터들 중 적어도 하나는, 제1 노드의 조상 노드(ancestor node)인 제3 노드 및 제2 노드의 조상 노드인 제4 노드에 대응하는 것일 수 있다. 여기에서, 제3 노드 및 제4 노드는 루트 노드가 아닌 것일 수 있다. 제1 노드의 조상 노드인 제3 노드는 제1 노드에 비해 개수가 적고, 제2 노드의 조상 노드인 제4 노드는 제2 노드에 비해 개수가 적을 수 있다. 따라서, 프로세서(110)는 제1 노드 및 제2 노드가 아닌, 제3 노드 및 제4 노드에 대응하는 복수의 제1 벡터들을 생성함으로써, 설문 리스트에 포함되는 음식의 개수를 용이하게 조절할 수 있다.As another example, at least one of the plurality of first vectors may correspond to a third node that is an ancestor node of the first node and a fourth node that is an ancestor node of the second node. Here, the third node and fourth node may not be the root node. The number of third nodes, which are the ancestor nodes of the first node, may be smaller than that of the first node, and the number of fourth nodes, which are the ancestor nodes of the second node, may be smaller than that of the second node. Accordingly, the processor 110 can easily adjust the number of foods included in the survey list by generating a plurality of first vectors corresponding to the third and fourth nodes, rather than the first and second nodes. .
이하, 표 1 내지 표 3을 참조하여, 일 실시예에 따른 제1 벡터를 생성하는 일 예를 설명하도록 한다.Hereinafter, with reference to Tables 1 to 3, an example of generating a first vector according to an embodiment will be described.
표 1을 참조하면, 도 5에 도시된 제1 트리(500)에 기초하여, 제1 트리(500)에 포함된 단말 노드들(510 내지 590)에 번호를 부여하여 정리한 것을 확인할 수 있다. 제1 트리(500)에는 총 9개의 단말 노드들(510 내지 590)이 존재함을 알 수 있다.Referring to Table 1, it can be seen that the terminal nodes 510 to 590 included in the first tree 500 are numbered and organized based on the first tree 500 shown in FIG. 5. It can be seen that there are a total of 9 terminal nodes 510 to 590 in the first tree 500.
표2를 참조하면, 도 6에 도시된 제2 트리(600)에 기초하여, 제2 트리(600)에 포함된 단말 노드들(610 내지 660)에 번호를 부여하여 정리한 것을 확인할 수 있다. 제2 트리(600)에는 총 6개의 단말 노드들(610 내지 660)이 존재함을 알 수 있다. Referring to Table 2, it can be seen that the terminal nodes 610 to 660 included in the second tree 600 are numbered and organized based on the second tree 600 shown in FIG. 6. It can be seen that there are a total of six terminal nodes (610 to 660) in the second tree 600.
한편, 상술한 표 1 및 표 2를 참조하면, 식재료에 관한 단말 노드들(510 내지 590) 9개와 조리법에 관한 단말 노드들(610 내지 660) 6개가 존재함을 알 수 있다. 상술한 바와 같이 제1 벡터들은 제1 트리에 포함된 적어도 하나의 단말 노드인 제1 노드 및 제2 트리에 포함된 적어도 하나의 단말 노드인 제2 노드에 대응하는 것일 수 있다. 일 실시예에 따른 제1 벡터들은, 식재료에 관한 단말 노드들(510 내지 590) 9개 중 하나와 조리법에 관한 단말 노드들(610 내지 660) 6개 중 하나의 조합에 대응하는 총 54개의 제1 벡터들일 수 있다.Meanwhile, referring to Table 1 and Table 2 above, it can be seen that there are 9 terminal nodes 510 to 590 related to food ingredients and 6 terminal nodes 610 to 660 related to recipes. As described above, the first vectors may correspond to a first node that is at least one terminal node included in the first tree and a second node that is at least one terminal node included in the second tree. The first vectors according to one embodiment are a total of 54 vectors corresponding to a combination of one of nine terminal nodes (510 to 590) related to food ingredients and one of six terminal nodes (610 to 660) related to recipes. 1 can be vectors.
표 3을 참조하면, 도 5에 도시된 제1 트리(500) 및 도 6에 도시된 제2 트리(600)에 기초하여, 제1 트리(500)에 포함된 단말 노드들(510 내지 590)과 제2 트리(600)에 포함된 단말 노드들(610 내지 660)에 번호를 부여하여 정리한 것을 확인할 수 있다. 이때, 제1 벡터는, “소” 식재료 및 “끓이기” 조리법에 대응하는 것일 수 있다. “소” 식재료 및 “끓이기” 조리법에 대응하는 제1 벡터는, 상술한 54개의 제1 벡터들 중 하나일 수 있다. Referring to Table 3, based on the first tree 500 shown in FIG. 5 and the second tree 600 shown in FIG. 6, terminal nodes 510 to 590 included in the first tree 500 It can be seen that the terminal nodes 610 to 660 included in the second tree 600 are numbered and organized. At this time, the first vector may correspond to the “small” ingredients and the “boiling” recipe. The first vector corresponding to the “small” ingredient and the “boiling” recipe may be one of the 54 first vectors described above.
이하, 수학식 1 내지 수학식 3을 참조하여, 제1 벡터의 일 예를 설명하도록 한다. Hereinafter, an example of the first vector will be described with reference to Equations 1 to 3.
수학식 1을 참조하면, 식재료에 관한 제1 트리에 기초한 벡터(Vi)를 확인할 수 있다. 식재료에 관한 제1 트리에 기초한 벡터는 제1 트리를 구성하는 노드들에 대응하는 값(Vi1, Vi2, …, Vin)을 상위 식재료부터 하위 식재료 순으로 포함할 수 있다. 여기에서, n은 식재료에 관한 제1 트리를 구성하는 노드들의 개수를 의미한다. 하지만, 식재료에 관한 제1 트리에 기초한 벡터의 예는 상술한 바에 한정되지 않는다.Referring to Equation 1, the vector (V i ) based on the first tree related to food ingredients can be confirmed. A vector based on the first tree related to food ingredients may include values (V i1 , V i2 , ..., V in ) corresponding to the nodes constituting the first tree, in order from the upper food ingredient to the lower food ingredient. Here, n means the number of nodes constituting the first tree related to food ingredients. However, examples of vectors based on the first tree related to food ingredients are not limited to those described above.
수학식 2를 참조하면, 조리법에 관한 제2 트리에 기초한 벡터(Vr)를 확인할 수 있다. 식재료에 관한 제2 트리에 기초한 벡터는 제2 트리를 구성하는 노드들에 대응하는 값(Vr1, Vr2, …, Vrn)을 상위 조리법부터 하위 조리법 순으로 포함할 수 있다. 여기에서, n은 조리법에 관한 제2 트리를 구성하는 노드들의 개수를 의미한다. 하지만, 조리법에 관한 제2 트리에 기초한 벡터의 예는 상술한 바에 한정되지 않는다.Referring to Equation 2, the vector (V r ) based on the second tree related to the recipe can be confirmed. A vector based on the second tree related to food ingredients may include values (V r1 , V r2 , ..., V rn ) corresponding to the nodes constituting the second tree in order from the upper recipe to the lower recipe. Here, n means the number of nodes constituting the second tree related to the recipe. However, examples of vectors based on the second tree for recipes are not limited to those described above.
수학식 3을 참조하면, 식재료에 관한 제1 트리에 기초한 벡터(Vi) 및 조리법에 관한 제2 트리에 기초한 벡터(Vr)를 합성(concatenation)함으로써 생성한 제1 벡터(Vf)를 확인할 수 있다. 일 예로서, 제1 벡터(Vf)는, 식재료에 관한 제1 트리에 기초한 벡터(Vi) 및 조리법에 관한 제2 트리에 기초한 벡터(Vr)를 상위 식재료부터 하위 식재료 순으로 포함하고, 상위 조리법부터 하위 조리법 순으로 포함하는 것일 수 있다. 다른 예로서, 제1 벡터(Vf)는, 조리법에 관한 제2 트리에 기초한 벡터(Vr) 및 식재료에 관한 제1 트리에 기초한 벡터(Vi)를 상위 조리법부터 하위 조리법 순으로 포함하고, 상위 식재료부터 하위 식재료 순으로 포함하는 것일 수 있다. 다만, 제1 벡터의 예는 상술한 바에 한정되지 않는다.Referring to Equation 3, the first vector (V f ) generated by concatenating a vector (V i ) based on the first tree regarding food ingredients and a vector (V r ) based on the second tree regarding recipes is You can check it. As an example, the first vector (V f ) includes a vector (V i ) based on a first tree related to food ingredients and a vector (V r ) based on a second tree related to recipes in order from upper level ingredients to lower level ingredients; , it may be included in the order from top recipe to bottom recipe. As another example, the first vector (V f ) includes a vector (V r ) based on the second tree related to the recipe and a vector (V i ) based on the first tree related to the ingredients in order from the upper recipe to the lower recipe, , it may be included in the order from top food ingredients to bottom food ingredients. However, the example of the first vector is not limited to the above.
한편, 표 3에 따른 “소” 식재료 및 “끓이기” 조리법에 대응하는 제1 벡터는 수학식 3에 기초하여, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}와 같이 표현될 수 있다. 마찬가지로, “생선” 식재료 및 “발효” 조리법에 대응하는 제1 벡터는 수학식 3에 기초하여, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}와 같이 표현될 수 있다. 상술한 54개의 제1 벡터들 또한 이와 같은 방법으로 표현될 수 있으나, 이에 한정되지 않는다.Meanwhile, the first vector corresponding to the “small” ingredients and “boiling” recipe according to Table 3 is {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, It can be expressed as 0, 0, 0, 0, 0}. Likewise, the first vector corresponding to the “fish” ingredient and the “fermentation” recipe is {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, It can be expressed as 1, 0, 0}. The 54 first vectors described above can also be expressed in the same way, but the method is not limited to this.
이하, 도 7 및 도 8을 참조하여, 일 실시예에 따른 제3 노드 및 제4 노드의 일 예를 설명하도록 한다. Hereinafter, with reference to FIGS. 7 and 8, an example of a third node and a fourth node according to an embodiment will be described.
도 7은 일 실시예에 따른 제3 노드의 일 예를 설명하기 위한 도면이다. FIG. 7 is a diagram for explaining an example of a third node according to an embodiment.
도 7의 트리(700)는 도 5의 제1 트리(500)에 대응하는 것으로, 중복되는 설명은 생략한다.The tree 700 of FIG. 7 corresponds to the first tree 500 of FIG. 5, and redundant description will be omitted.
상술한 바에 따르면, 프로세서(110)는 제1 트리의 단말 노드인 제1 노드에 기초하여 제1 벡터를 생성할 수 있다. 상술한 방법과 동일한 방법으로 프로세서(110)는 제1 노드의 조상 노드인 제3 노드들(710, 720, 730, 740, 750)에 기초하여 제1 벡터를 생성할 수 있다. 제3 노드(710)는 “소” 식재료에 대응하는 단말 노드 및 “돼지” 식재료에 대응하는 단말 노드의 부모 노드일 수 있다. 제3 노드(720)는 “닭” 식재료에 대응하는 단말 노드 및 “오리” 식재료에 대응하는 단말 노드의 부모 노드일 수 있다. 제3 노드(730)는 “고추” 식재료에 대응하는 단말 노드 및 “콩” 식재료에 대응하는 단말 노드의 부모 노드일 수 있다. 제3 노드(740)는 “생선류” 식재료에 대응하는 단말 노드 및 “갑각류” 식재료에 대응하는 단말 노드의 부모 노드일 수 있다. 제3 노드(750)는 “해조류” 식재료에 대응하는 단말 노드의 부모 노드일 수 있다. According to the above description, the processor 110 may generate the first vector based on the first node, which is the terminal node of the first tree. In the same manner as the above-described method, the processor 110 may generate the first vector based on the third nodes 710, 720, 730, 740, and 750, which are ancestor nodes of the first node. The third node 710 may be a parent node of a terminal node corresponding to “beef” ingredients and a terminal node corresponding to “pork” ingredients. The third node 720 may be a parent node of the terminal node corresponding to the “chicken” ingredient and the terminal node corresponding to the “duck” ingredient. The third node 730 may be a parent node of the terminal node corresponding to the “pepper” ingredient and the terminal node corresponding to the “bean” ingredient. The third node 740 may be a parent node of the terminal node corresponding to the “fish” ingredient and the terminal node corresponding to the “crustacean” ingredient. The third node 750 may be the parent node of the terminal node corresponding to the “seaweed” food ingredient.
도 7에서 도시하지는 않았지만, 제3 노드는 “포유류” 식재료에 대응하는 노드(710) 및 “가금류” 식재료에 대응하는 노드(720)의 부모 노드일 수 있다. 또한, 제3 노드는 “동물” 식재료에 대응하는 노드 및 “식물” 식재료에 대응하는 노드의 부모 노드일 수 있다. 하지만, 제3 노드는 루트 노드일 수는 없으므로, “육상” 식재료에 대응하는 노드 및 “해상” 식재료에 대응하는 노드의 부모 노드일 수는 없다. 하지만, 제3 노드의 예는 상술한 바에 한정되지 않는다. Although not shown in FIG. 7, the third node may be the parent node of the node 710 corresponding to the “mammal” ingredient and the node 720 corresponding to the “poultry” ingredient. Additionally, the third node may be a parent node of a node corresponding to an “animal” ingredient and a node corresponding to a “plant” ingredient. However, the third node cannot be the root node, and therefore cannot be the parent node of the node corresponding to the “land” ingredient and the node corresponding to the “sea” ingredient. However, examples of the third node are not limited to those described above.
도 8은 일 실시예에 따른 제4 노드의 일 예를 설명하기 위한 도면이다.FIG. 8 is a diagram for explaining an example of a fourth node according to an embodiment.
도 8의 트리(800)는 도 6의 제2 트리(600)에 대응하는 것으로, 중복되는 설명은 생략한다.The tree 800 of FIG. 8 corresponds to the second tree 600 of FIG. 6, and redundant description will be omitted.
상술한 바에 따르면, 프로세서(110)는 제2 트리의 단말 노드인 제2 노드에 기초하여 제1 벡터를 생성할 수 있다. 상술한 방법과 동일한 방법으로 프로세서(110)는 제2 노드의 조상 노드인 제4 노드들(810, 820, 830)에 기초하여 제1 벡터를 생성할 수 있다. 제4 노드(810)는 “끓이기” 조리법에 대응하는 단말 노드, “찌기” 조리법에 대응하는 단말노드 및 “굽기” 조리법에 대응하는 단말 노드의 부모 노드일 수 있다. 제4 노드(820)는 “발효” 조리법에 대응하는 단말 노드 및 “무치기” 조리법에 대응하는 단말 노드의 부모 노드일 수 있다. 단말 노드(830)의 부모 노드가 루트 노드인 경우에는, 제1 벡터는 단말 노드(830)인 제2 노드에 기초하여 생성되는 것일 수 있다.According to the above description, the processor 110 may generate the first vector based on the second node, which is the terminal node of the second tree. In the same manner as the above-described method, the processor 110 may generate the first vector based on the fourth nodes 810, 820, and 830, which are ancestor nodes of the second node. The fourth node 810 may be a parent node of a terminal node corresponding to a “boiling” recipe, a terminal node corresponding to a “steaming” recipe, and a terminal node corresponding to a “baking” recipe. The fourth node 820 may be the parent node of the terminal node corresponding to the “fermentation” recipe and the terminal node corresponding to the “radish” recipe. When the parent node of the terminal node 830 is the root node, the first vector may be generated based on the second node that is the terminal node 830.
다시 도 3을 참조하면, 320 단계에서, 프로세서(110)는 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출할 수 있다. Referring again to FIG. 3, in step 320, the processor 110 may derive a plurality of second vectors whose similarity to each of the plurality of first vectors is greater than or equal to a preset value.
일 예로서, 프로세서(110)는, “소” 식재료 및 “끓이기” 조리법에 대응하는 제1 벡터인 {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}와 코사인 유사도가 기 설정된 값 이상인 제2 벡터를 도출할 수 있다. 이때, 도출된 제2 벡터에 대응하는 음식은 “소” 식재료 및 “끓이기” 조리법에 대응하는 음식과 카테고리가 가장 유사한 음식에 해당될 수 있다. As an example, the processor 110 stores the first vector {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, corresponding to the “small” ingredients and the “boil” recipe. , 0, 0, 0} and a second vector whose cosine similarity is greater than or equal to a preset value can be derived. At this time, the food corresponding to the derived second vector may correspond to the food whose category is most similar to the food corresponding to the “beef” ingredient and the “boiling” recipe.
다른 예로서, 프로세서(110)는, “생선” 식재료 및 “발효” 조리법에 대응하는 제1 벡터인 {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}와 코사인 유사도가 기 설정된 값 이상인 제2 벡터를 도출할 수 있다. 이때, 도출된 제2 벡터에 대응하는 음식은, “생선” 식재료 및 “발효” 조리법에 대응하는 음식과 카테고리가 가장 유사한 음식에 해당될 수 있다. As another example, the processor 110 stores the first vector {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, corresponding to the “fish” ingredient and the “fermentation” recipe. , 1, 0, 0} and a second vector whose cosine similarity is greater than or equal to a preset value can be derived. At this time, the food corresponding to the derived second vector may correspond to the food whose category is most similar to the food corresponding to the “fish” ingredient and the “fermentation” recipe.
330 단계에서, 프로세서(110)는 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성한다.In step 330, the processor 110 generates a survey list including foods corresponding to each of the plurality of second vectors.
복수의 제2 벡터들 각각에 대응하는 음식들은, 복수의 제1 벡터들 각각과 대응하는 음식 카테고리에 포함되는 음식일 수 있다. The foods corresponding to each of the plurality of second vectors may be foods included in the food category corresponding to each of the plurality of first vectors.
일 예로서, 복수의 제1 벡터들이 제1 트리에 포함된 하나의 단말 노드인 제1 노드 및 제2 트리에 포함된 하나의 단말 노드인 제2 노드에 대응하는 경우, 복수의 제2 벡터들 각각에 대응하는 음식들은, 제1 트리에 포함된 하나의 단말 노드에 대응하는 식재료 및 제2 트리에 포함된 하나의 단말 노드에 대응하는 조리법에 대응하는 음식 카테고리에 포함되는 음식일 수 있다. 여기에서, 복수의 제2 벡터들 각각에 대응하는 음식들 각각은 서로 동일한 식재료 및 조리법에 대응할 수 없으므로, 모두 다른 음식 카테고리에 포함된다. 상술한 도 5 및 도 6에 따르면, 복수의 제2 벡터들 각각에 대응하는 음식들 각각은 54 개의 음식 카테고리에 포함될 수 있다. As an example, when the plurality of first vectors correspond to a first node that is one terminal node included in the first tree and a second node that is one terminal node included in the second tree, the plurality of second vectors The foods corresponding to each may be foods included in a food category corresponding to an ingredient corresponding to one terminal node included in the first tree and a recipe corresponding to one terminal node included in the second tree. Here, since the foods corresponding to each of the plurality of second vectors cannot correspond to the same ingredients and recipes, they are all included in different food categories. According to FIGS. 5 and 6 described above, each of the foods corresponding to each of the plurality of second vectors may be included in 54 food categories.
다른 예로서, 복수의 제1 벡터들 중 하나 이상이 제1 노드의 조상 노드인 제3 노드 및 제2 노드의 조상 노드인 제4 노드에 대응하는 경우, 복수의 제2 벡터들 각각에 대응하는 음식들은, 제3 노드에 대응하는 식재료 및 제4 노드에 대응하는 조리법에 대응하는 음식 카테고리에 포함되는 음식일 수 있다. 상술한 도 7 및 도 8에 따르면, 복수의 제2 벡터들 각각에 대응하는 음식들 각각은 15개의 음식 카테고리에 포함될 수 있다. As another example, when one or more of the plurality of first vectors correspond to a third node that is an ancestor node of the first node and a fourth node that is an ancestor node of the second node, each of the plurality of second vectors corresponds to The foods may be foods included in a food category corresponding to ingredients corresponding to the third node and recipes corresponding to the fourth node. According to FIGS. 7 and 8 described above, each of the foods corresponding to each of the plurality of second vectors may be included in 15 food categories.
한편, 설문 리스트는, 복수의 제2 벡터들 각각에 대응하는 음식들에 대해 사용자의 선호도를 조사하는 것일 수 있다. 예를 들면, 설문 리스트는, 복수의 제2 벡터들 각각에 대응하는 소고기 무국, 더덕구이, 파래무침 등에 대해 사용자의 선호도를 조사하는 것일 수 있다. 일 실시예에 따라 생성된 설문 리스트는, 보다 정확하게 모든 음식 카테고리에 대한 사용자의 선호도를 파악할 수 있고, 유사한 음식 카테고리에 속하는 음식들에 대해서 중복하여 동일한 사용자에게 설문하는 것을 방지할 수 있고, 일부 중복된 음식 카테고리에 속하는 음식들에 대해 사용자가 상반된 선호도를 응답하여 설문의 해석이 모호해지는 것을 방지할 수 있다. 하지만, 설문 리스트의 예는 상술한 바에 한정되지 않는다.Meanwhile, the survey list may investigate the user's preferences for foods corresponding to each of a plurality of second vectors. For example, the survey list may survey the user's preferences for beef radish soup, grilled deodeok, seasoned green onions, etc., corresponding to each of the plurality of second vectors. The survey list generated according to one embodiment can more accurately determine the user's preference for all food categories, prevents the same user from repeatedly surveying foods belonging to similar food categories, and eliminates some duplicates. It is possible to prevent the interpretation of the survey from being ambiguous as users respond with conflicting preferences for foods belonging to the same food category. However, the example of the survey list is not limited to the above.
이하, 도 9를 참조하여, 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법의 다른 예를 설명한다.Hereinafter, with reference to FIG. 9, another example of a method for generating a survey list for building a user food profile will be described.
도 9는 일 실시예에 따른 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법의 다른 예를 설명하기 위한 흐름도이다.Figure 9 is a flowchart illustrating another example of a method for generating a survey list for building a user food profile according to an embodiment.
한편, 도 9의 910 단계 내지 930 단계 각각은 도 3의 310 단계 내지 330 단계에 대응한다. 따라서, 도 9의 910 단계 내지 930 단계의 중복되는 내용은 생략한다. Meanwhile, steps 910 to 930 of FIG. 9 each correspond to steps 310 to 330 of FIG. 3 . Accordingly, overlapping contents of steps 910 to 930 of FIG. 9 are omitted.
940 단계에서, 프로세서(110)는 설문 리스트에 대응하는 응답 정보에 기초하여, 추가 설문 리스트를 생성할 수 있다.In step 940, the processor 110 may generate an additional survey list based on response information corresponding to the survey list.
여기에서, 설문 리스트에 대응하는 응답 정보는, 프로세서가 생성한 설문 리스트를 제공받은 사용자가 설문 리스트에 포함된 음식들에 관해 응답한 내용을 포함할 수 있다. 일 예로서, 응답 정보는, 설문 리스트에 포함된 음식들에 대한 사용자의 선호도를 포함할 수 있다. 다른 예로서, 응답 정보는, 소고기 무국에 대한 “좋음”, “더덕구이”에 대한 “싫음”, “파래무침”에 대한 “최고에요”와 같은 사용자의 선호도를 포함할 수 있다. 다만, 응답 정보의 예는 상술한 바에 한정되지 않는다.Here, the response information corresponding to the survey list may include responses made by the user who has received the survey list generated by the processor regarding the foods included in the survey list. As an example, response information may include the user's preferences for foods included in the survey list. As another example, the response information may include the user's preferences, such as “I like” beef radish soup, “I don't like” “grilled deodeok”, and “it's the best” for “seasoned green onions.” However, examples of response information are not limited to the above.
이하, 도 10을 참조하여, 프로세서가 추가 설문 리스트를 생성하는 일 예를 설명하도록 한다.Hereinafter, with reference to FIG. 10, an example in which a processor generates an additional survey list will be described.
도 10은 일 실시예에 따른 프로세서가 추가 설문 리스트를 생성하는 일 예를 설명하기 위한 흐름도이다. FIG. 10 is a flowchart illustrating an example in which a processor generates an additional survey list according to an embodiment.
1010 단계에서, 프로세서(110)는 설문 리스트에 대응하는 응답 정보에 기초하여, 선호 식재료에 관한 제5 트리 및 선호 조리법에 관한 제6 트리를 생성할 수 있다. In step 1010, the processor 110 may generate a fifth tree regarding preferred ingredients and a sixth tree regarding preferred recipes based on response information corresponding to the survey list.
프로세서(110)는 응답 정보에 기초하여, 사용자의 선호 식재료 및 선호 조리법을 파악함으로써 선호 식재료에 관한 제5 트리 및 선호 조리법에 관한 제6 트리를 생성할 수 있다. 예를 들면, 응답 정보에 사용자의 소고기 무국에 관해 “최고에요”라는 선호도가 포함되어 있는 경우, 프로세서(110)는 “소고기” 식재료를 루트 노드로 하는 제5 트리 및 “끓이기” 조리법을 루트 노드로 하는 제6 트리를 생성할 수 있다. The processor 110 may generate a fifth tree regarding preferred ingredients and a sixth tree regarding preferred recipes by identifying the user's preferred ingredients and preferred recipes based on the response information. For example, if the response information includes the user's preference for beef radish soup, “It's the best,” the processor 110 creates a fifth tree with the “beef” ingredient as the root node and the “boiling” recipe as the root node. A sixth tree can be created.
이하, 도 11 및 도 12를 참조하여, 프로세서가 생성한 선호 식재료에 관한 제5 트리의 일 예 및 선호 조리법에 관한 제6 트리의 일 예를 설명한다. Hereinafter, with reference to FIGS. 11 and 12 , an example of a fifth tree related to preferred ingredients and an example of a sixth tree related to preferred recipes generated by the processor will be described.
도 11은 일 실시예에 따른 선호 식재료에 관한 제5 트리의 일 예를 설명하기 위한 도면이다. Figure 11 is a diagram for explaining an example of a fifth tree related to preferred food ingredients according to an embodiment.
프로세서(110)는, 응답 정보에 사용자의 “포유류” 식재료에 대응하는 음식에 관해 “최고에요”라는 선호도가 포함되어 있는 경우, “포유류” 식재료를 루트 노드로 하는 제5 트리(1110)를 생성할 수 있다. 하지만, 제5 트리의 예는 상술한 바에 한정되지 않는다.The processor 110 generates a fifth tree 1110 with the “mammal” ingredient as the root node when the response information includes the user's preference of “it is the best” regarding the food corresponding to the “mammal” ingredient. can do. However, the example of the fifth tree is not limited to the above.
도 12는 일 실시예에 따른 선호 조리법에 관한 제6 트리를 설명하기 위한 도면이다. Figure 12 is a diagram for explaining a sixth tree related to preferred recipes according to an embodiment.
프로세서(110)는, 응답 정보에 사용자의 “가열” 조리법에 대응하는 음식에 관해 “최고에요”라는 선호도가 포함되어 있는 경우, “가열” 조리법을 루트 노드로 하는 제6 트리(1210)를 생성할 수 있다. 하지만, 제6 트리의 예는 상술한 바에 한정되지 않는다.The processor 110 generates a sixth tree 1210 with the “heating” recipe as the root node when the response information includes a preference of “it is the best” regarding the food corresponding to the user’s “heating” recipe. can do. However, the example of the sixth tree is not limited to the above.
다시 도 10을 참조하면, 1020 단계에서, 프로세서(110)는 제5 트리 및 제6 트리에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제3 벡터들을 생성할 수 있다. Referring again to FIG. 10 , in step 1020, the processor 110 may generate a plurality of third vectors corresponding to one or more food ingredients and one or more recipes based on the fifth tree and the sixth tree.
프로세서(110)가 제5 트리 및 제6 트리에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제3 벡터들을 생성하는 방법은, 상술한 프로세서(110)가 제1 트리 및 제3 트리에 기초하여, 하나 이상의 식재료 및 하나 이상의 조리법에 대응하는 복수의 제1 벡터들을 생성하는 방법과 동일하다.The method in which the processor 110 generates a plurality of third vectors corresponding to one or more food ingredients and one or more recipes based on the fifth tree and the sixth tree includes the processor 110 described above using the first tree and the third tree. It is the same as the method of generating a plurality of first vectors corresponding to one or more food ingredients and one or more recipes based on the tree.
1030 단계에서, 프로세서(110)는 복수의 제3 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제4 벡터들을 도출할 수 있다. In step 1030, the processor 110 may derive a plurality of fourth vectors whose similarity to each of the plurality of third vectors is greater than or equal to a preset value.
프로세서가(110)가 복수의 제3 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제4 벡터들을 도출하는 방법은, 상술한 프로세서(110)가 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출하는 방법과 동일하다.The method by which the processor 110 derives a plurality of fourth vectors whose similarity with each of the plurality of third vectors is greater than or equal to a preset value is that the processor 110 as described above derives the similarity with each of the plurality of first vectors. This is the same as the method of deriving a plurality of second vectors that are greater than or equal to a preset value.
1040 단계에서, 프로세서(110)는 복수의 제4 벡터들 각각에 대응하는 음식들을 포함하는 추가 설문 리스트를 생성할 수 있다.In step 1040, the processor 110 may generate an additional survey list including foods corresponding to each of the plurality of fourth vectors.
프로세서(110)가 복수의 제4 벡터들 각각에 대응하는 음식들을 포함하는 추가 설문 리스트를 생성하는 방법은, 상술한 프로세서(110)가 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성하는 방법과 동일하다.The method for the processor 110 to generate an additional survey list including foods corresponding to each of a plurality of fourth vectors includes the above-described processor 110 generating a questionnaire including foods corresponding to each of the plurality of second vectors. It is the same as the method for creating a list.
한편, 복수의 제4 벡터들 각각에 대응하는 음식들을 포함하는 추가 설문 리스트는 사용자의 선호도를 반영하여 생성된 설문 리스트일 수 있다. 상술한 본 개시에 따르면, 추가 설문 리스트를 통해 보다 구체적이고 세부적인 사용자의 선호하는 음식 카테고리를 정확하게 확인할 수 있다. Meanwhile, the additional survey list including foods corresponding to each of the plurality of fourth vectors may be a survey list generated by reflecting the user's preferences. According to the present disclosure described above, a more specific and detailed user's preferred food category can be accurately confirmed through an additional questionnaire list.
상술한 바에 따르면, 프로세서(110)는 복수의 음식들에 관한 식재료 및 조리법 정보에 기초하여 다양한 음식 카테고리에 대응하는 음식들을 포함하는 설문 리스트를 생성한다. 또한, 프로세서(110)는 생성된 설문 리스트를 통해 사용자의 선호도가 반영된 추가 설문 리스트를 생성할 수 있고, 설문 리스트 및 추가 설문 리스트를 통해 사용자의 음식 프로파일을 구축할 수 있다.As described above, the processor 110 generates a survey list including foods corresponding to various food categories based on ingredient and recipe information for a plurality of foods. Additionally, the processor 110 may generate an additional survey list reflecting the user's preferences through the generated survey list, and build the user's food profile through the survey list and the additional survey list.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 램, USB, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described method can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. Additionally, the data structure used in the above-described method can be recorded on a computer-readable recording medium through various means. The computer-readable recording media includes storage media such as magnetic storage media (e.g., ROM, RAM, USB, floppy disk, hard disk, etc.) and optical read media (e.g., CD-ROM, DVD, etc.) do.
한편, 상술한 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.Meanwhile, the above-described method may be included and provided in a computer program product. Computer programs and products are commodities and can be traded between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or between two user devices. It may be distributed in person or online (e.g., downloaded or uploaded). In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the manufacturer's server, the server of an application store, or the memory of a relay server.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하며, 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점을 포함하는 것으로 해석되어야 할 것이다.Those skilled in the art related to the present embodiment will understand that the above-described substrate can be implemented in a modified form without departing from the essential characteristics. Therefore, the disclosed methods should be considered from an explanatory rather than a restrictive perspective, and the scope of rights is indicated in the claims, not the foregoing description, and should be interpreted to include all differences within the equivalent scope.
Claims (12)
상기 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출하는 단계; 및
상기 유사도가 기 설정된 값 이상인 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성하는 단계;를 포함하고,
상기 제1 벡터들은,
하나의 식재료 및 하나의 조리법에 기초하여 생성된 것이고,
상기 제2 벡터들은,
하나의 실제 음식에 관한 식재료 및 조리법에 기초하여 생성된 것인, 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법.generating a plurality of first vectors for virtual foods and a plurality of second vectors for real foods based on ingredient information and recipe information for a plurality of foods;
Deriving a plurality of second vectors whose similarity to each of the plurality of first vectors is equal to or greater than a preset value; and
Comprising: generating a survey list including foods corresponding to each of the plurality of second vectors whose similarity is greater than or equal to a preset value,
The first vectors are,
It is created based on one ingredient and one recipe,
The second vectors are,
A method of creating a survey list for building a user food profile, which is created based on ingredients and recipes for one actual food.
상기 가상의 음식에 관한 복수의 제1 벡터들 및 실제 음식에 관한 복수의 제2 벡터들을 생성하는 단계는,
상기 복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 식재료에 관한 제1 트리 및 조리법에 관한 제2 트리를 생성하는 단계; 및
상기 제1 트리 및 상기 제2 트리에 기초하여, 상기 복수의 제1 벡터들을 생성하는 단계;를 포함하는, 방법.According to claim 1,
The step of generating a plurality of first vectors related to the virtual food and a plurality of second vectors related to the actual food,
Generating a first tree about ingredients and a second tree about recipes based on ingredient information and recipe information about the plurality of foods; and
A method comprising: generating the plurality of first vectors based on the first tree and the second tree.
상기 제1 트리는,
상기 복수의 음식들 각각의 식재료로 설정된 노드들을 포함하고,
상기 제2 트리는,
상기 복수의 음식들 각각의 조리법로 설정된 노드들을 포함하는, 방법. According to clause 2,
The first tree is,
Includes nodes set as ingredients for each of the plurality of foods,
The second tree is,
A method comprising nodes set to recipes for each of the plurality of foods.
상기 복수의 제1 벡터들 각각은,
상기 제1 트리에 포함된 하나의 노드 및 상기 제2 트리에 포함된 하나의 노드에 대응하는 것인, 방법.According to clause 3,
Each of the plurality of first vectors is,
A method corresponding to one node included in the first tree and one node included in the second tree.
상기 복수의 제1 벡터들 각각은,
상기 제1 트리에 포함된 하나의 단말 노드(terminal node)인 제1 노드 및 상기 제2 트리에 포함된 하나의 단말 노드인 제2 노드에 대응하는 것인, 방법.According to clause 3,
Each of the plurality of first vectors is,
A method corresponding to a first node that is one terminal node included in the first tree and a second node that is one terminal node included in the second tree.
상기 복수의 제1 벡터들 중 적어도 하나는,
상기 제1 노드의 조상 노드(ancestor node)인 제3 노드 및 상기 제2 노드의 조상 노드인 제4 노드에 대응하고,
상기 제3 노드 및 제4 노드는,
루트 노드(root node)가 아닌 것인, 방법.According to clause 5,
At least one of the plurality of first vectors is,
Corresponds to a third node that is the ancestor node of the first node and a fourth node that is the ancestor node of the second node,
The third node and fourth node are,
A method that is not the root node.
상기 복수의 제2 벡터들 각각은,
하나의 음식에 관한 식재료 정보에 기초하여 생성된 식재료에 관한 제3 트리 및 상기 하나의 음식에 관한 조리법 정보에 기초하여 생성된 조리법에 관한 제4 트리를 이용함으로써 생성된 것인, 방법.According to claim 1,
Each of the plurality of second vectors is,
A method, which is generated by using a third tree regarding ingredients generated based on ingredient information regarding one food and a fourth tree relating to recipes generated based on recipe information relating to the one food.
상기 설문 리스트에 대응하는 응답 정보에 기초하여, 추가 설문 리스트를 생성하는 단계;를 더 포함하는, 방법.According to claim 1,
The method further includes generating an additional survey list based on response information corresponding to the survey list.
상기 추가 설문 리스트를 생성하는 단계는,
상기 설문 리스트에 대응하는 응답 정보에 기초하여, 선호 식재료에 관한 제5 트리 및 선호 조리법에 관한 제6 트리를 생성하는 단계;
상기 제5 트리 및 상기 제6 트리에 기초하여, 가상 음식에 관한 복수의 제3 벡터들 및 실제 음식에 관한 복수의 제4 벡터들을 생성하는 단계;
상기 복수의 제3 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제4 벡터들을 도출하는 단계; 및
상기 유사도가 기 설정된 값 이상인 복수의 제4 벡터들 각각에 대응하는 음식들을 포함하는 추가 설문 리스트를 생성하는 단계;를 포함하고,
상기 제3 벡터들은,
상기 선호 식재료 중 하나의 식재료 및 상기 선호 조리법 중 하나의 조리법에 기초하여 생성된 것이고,
상기 제4 벡터들은,
하나의 실제 음식에 관한 식재료 및 조리법에 기초하여 생성된 것인, 방법.According to clause 9,
The step of creating the additional survey list is,
generating a fifth tree regarding preferred ingredients and a sixth tree relating to preferred recipes based on response information corresponding to the survey list;
generating a plurality of third vectors for virtual food and a plurality of fourth vectors for real food based on the fifth tree and the sixth tree;
Deriving a plurality of fourth vectors whose similarity to each of the plurality of third vectors is greater than or equal to a preset value; and
A step of generating an additional survey list including foods corresponding to each of the plurality of fourth vectors whose similarity is greater than or equal to a preset value,
The third vectors are,
It is created based on one of the preferred ingredients and a recipe of one of the preferred recipes,
The fourth vectors are,
A method created based on ingredients and recipes for an actual food.
적어도 하나의 프로세서;를 포함하고,
상기 적어도 하나의 프로세서는,
복수의 음식들에 관한 식재료 정보 및 조리법 정보에 기초하여, 가상의 음식에 관한 복수의 제1 벡터들 및 실제 음식에 관한 복수의 제2 벡터들을 생성하고,
상기 복수의 제1 벡터들 각각과의 유사도가 기 설정된 값 이상인 복수의 제2 벡터들을 도출하고,
상기 유사도가 기 설정된 값 이상인 복수의 제2 벡터들 각각에 대응하는 음식들을 포함하는 설문 리스트를 생성하고,
상기 제1 벡터들은,
하나의 식재료 및 하나의 조리법에 기초하여 생성된 것이고,
상기 제2 벡터들은,
하나의 실제 음식에 관한 식재료 및 조리법에 기초하여 생성된 것인, 컴퓨팅 장치.at least one memory; and
At least one processor;
The at least one processor,
Generating a plurality of first vectors for virtual foods and a plurality of second vectors for real foods based on ingredient information and recipe information for a plurality of foods,
Deriving a plurality of second vectors whose similarity to each of the plurality of first vectors is greater than or equal to a preset value,
Generating a survey list including foods corresponding to each of the plurality of second vectors whose similarity is greater than or equal to a preset value,
The first vectors are,
It is created based on one ingredient and one recipe,
The second vectors are,
A computing device created based on ingredients and recipes for an actual food.
A computer-readable recording medium recording a program for executing the method according to claim 1 on a computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230057837A KR102607701B1 (en) | 2023-05-03 | 2023-05-03 | A method and a apparatus for generating a questionnaire list for building a user food profile |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230057837A KR102607701B1 (en) | 2023-05-03 | 2023-05-03 | A method and a apparatus for generating a questionnaire list for building a user food profile |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102607701B1 true KR102607701B1 (en) | 2023-11-30 |
Family
ID=88968344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230057837A KR102607701B1 (en) | 2023-05-03 | 2023-05-03 | A method and a apparatus for generating a questionnaire list for building a user food profile |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102607701B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200104592A (en) * | 2019-02-27 | 2020-09-04 | 주식회사 포트럭테이블 | System for Providing Recommended Food Contents Media by using Curation |
KR20210019392A (en) * | 2019-08-12 | 2021-02-22 | 주식회사 코너스톤헬스케어랩 | Apparatus and method for recommending diet information based on ontology |
KR20220026214A (en) | 2020-08-25 | 2022-03-04 | 특허법인아이피랩 | Method and system recommending food menu |
KR102415373B1 (en) * | 2021-11-15 | 2022-07-01 | 주식회사 팜킷 | Method, device and computer program product for recommending food tailored to the user's taste |
KR102540268B1 (en) * | 2022-07-26 | 2023-06-07 | 주식회사 팜킷 | A method and an apparatus for measuring the similarity of food for personalized food recommendation using a tree |
-
2023
- 2023-05-03 KR KR1020230057837A patent/KR102607701B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200104592A (en) * | 2019-02-27 | 2020-09-04 | 주식회사 포트럭테이블 | System for Providing Recommended Food Contents Media by using Curation |
KR20210019392A (en) * | 2019-08-12 | 2021-02-22 | 주식회사 코너스톤헬스케어랩 | Apparatus and method for recommending diet information based on ontology |
KR20220026214A (en) | 2020-08-25 | 2022-03-04 | 특허법인아이피랩 | Method and system recommending food menu |
KR102415373B1 (en) * | 2021-11-15 | 2022-07-01 | 주식회사 팜킷 | Method, device and computer program product for recommending food tailored to the user's taste |
KR102540268B1 (en) * | 2022-07-26 | 2023-06-07 | 주식회사 팜킷 | A method and an apparatus for measuring the similarity of food for personalized food recommendation using a tree |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5988056B2 (en) | Recipe presentation system and recipe presentation method | |
US20140322678A1 (en) | Presentation of food information on a personal and selective dynamic basis and associated services | |
EP2261824A2 (en) | Information process apparatus, information process method, and program | |
Pinel et al. | A culinary computational creativity system | |
JP6410069B1 (en) | Recipe information providing apparatus, recipe information providing method, and recipe information providing program | |
Church | The importance of food composition data in recipe analysis | |
US12056624B2 (en) | System and method for use with connected kitchen appliances | |
Jabeen et al. | EvoChef: show me what to cook! Artificial evolution of culinary arts | |
JP2019133624A (en) | Recipe information provision apparatus, recipe information provision method, and recipe information provision program | |
KR20200054361A (en) | System and method for cooking personalized rice | |
Neuman et al. | Exploring (non‐) meat eating and “translated cuisines” out of home: Evidence from three English cities | |
KR102607701B1 (en) | A method and a apparatus for generating a questionnaire list for building a user food profile | |
Nguyen et al. | The influence of companion foods on sensory attribute perception and liking of regular and sodium‐reduced foods | |
KR20210032718A (en) | System and apparatus for menu recommendation based on dietary type | |
CN112232917B (en) | Commodity recommendation method, device and equipment for e-commerce platform | |
JP7003739B2 (en) | Menu provision equipment, menu provision method and menu provision program | |
Sanchez‐Matos et al. | Are Peruvians moving toward healthier diets with lower environmental burden? Household consumption trends for the period 2008–2021 | |
CN114048375A (en) | Menu recommendation method, device, equipment and storage medium | |
JP7249854B2 (en) | Recipe information provision system and program | |
KR102565403B1 (en) | A method and apparatus for user's taste intelligence based personalized recomendations using ontology and machine learning | |
JP7487910B1 (en) | Information processing device, information processing method, and program | |
KR101435276B1 (en) | Food information service method and system using ingredient-based food genealogy network | |
Drake | Farmers Market Cookbook | |
CN110866845A (en) | Electronic menu generation method and electronic equipment | |
Mei et al. | DeliciFind: A Recipe Recommendation and Kitchen Ingredients Green System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |