KR20230015555A - Food Recommendation Apparatus and Method - Google Patents

Food Recommendation Apparatus and Method Download PDF

Info

Publication number
KR20230015555A
KR20230015555A KR1020210096831A KR20210096831A KR20230015555A KR 20230015555 A KR20230015555 A KR 20230015555A KR 1020210096831 A KR1020210096831 A KR 1020210096831A KR 20210096831 A KR20210096831 A KR 20210096831A KR 20230015555 A KR20230015555 A KR 20230015555A
Authority
KR
South Korea
Prior art keywords
food
foods
meal
representative
user
Prior art date
Application number
KR1020210096831A
Other languages
Korean (ko)
Inventor
남경필
이시현
하나영
Original Assignee
주식회사 빅케어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 빅케어 filed Critical 주식회사 빅케어
Priority to KR1020210096831A priority Critical patent/KR20230015555A/en
Publication of KR20230015555A publication Critical patent/KR20230015555A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/12Hotels or restaurants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

The present invention provides a food recommendation device and method. The food recommendation device includes: an information collection unit that collects and obtains food intake data including user meal information, which is information about food consumed during a meal during a previous predetermined period of a user and information on food eaten by a large number of people and the ingredients of each meal; a relationship analysis unit that obtains a food-ingredient bipartite graph for analyzing the relationship between food and ingredients based on the food intake data and a food-meal bipartite graph for analyzing the relationship between food and meals; a food selection unit that searches for related food in the food-ingredient bipartite graph based on food obtained from the user meal information to select a predetermined number of representative food with high correlation, searches for related food in a food-meal bipartite graph based on each representative food to select a predetermined number of combination food with high correlation corresponding to each representative food, and obtains a food set consisting of the representative food and the combination food; and a food recommendation unit that optimizes the serving amount of each food based on the correlation of the food included in the food set and selects and recommends a predetermined number of food sets with a high overall correlation calculated based on the optimal serving amount of each food. Therefore, food combinations can be recommended to ensure an appropriate amount of nutrients based on individual tastes and health conditions.

Description

음식 추천 장치 및 방법{Food Recommendation Apparatus and Method}Food Recommendation Apparatus and Method {Food Recommendation Apparatus and Method}

본 발명은 음식 추천 장치 및 방법에 관한 것으로, 개인에 따른 적합도와 영양에 기반하여 최적으로 조합된 음식을 추천할 수 있는 음식 추천 장치 및 방법에 관한 것이다.The present invention relates to a food recommendation apparatus and method, and more particularly to a food recommendation apparatus and method capable of recommending optimally combined foods based on personal fitness and nutrition.

삶의 질적 향상에 따라 건강에 대한 관심이 높아졌으며, 그 중에서도 음식에 대한 사회적 관심이 크게 높아지고 있다. 특히 현대에는 기존에 비해 매우 다양한 종류의 음식이 보급되고 있으며, 사람들의 편중된 식사로 인해 개인의 영양 불균형이 점차 심각해지고 있는 상황이다. 또한 고령화에 따라 각종 성인병을 보유하고 있는 사람이 많아짐에 따라 회피해야 하는 음식이 많음에도 각 음식들에 포함된 식재료나 섭취량에 따른 영양 성분 등을 개개인이 인지하기는 어렵다는 문제가 있다. 더욱이 우리나라의 경우, 반찬 문화로 인해 매끼 식사 시에 다양한 음식이 조합되어야 하므로, 각 개인의 식단 선택은 더욱 복잡하고 어렵다는 문제가 있다.As the quality of life has improved, interest in health has increased, and among them, social interest in food is greatly increasing. In particular, in modern times, a wide variety of foods are being supplied compared to before, and personal nutritional imbalance is gradually becoming more serious due to people's biased diet. In addition, as the number of people with various adult diseases increases with aging, there is a problem that it is difficult for individuals to recognize the ingredients contained in each food or the nutritional components according to the amount of intake, even though there are many foods to avoid. Moreover, in the case of Korea, since various foods must be combined at each meal due to the side dish culture, there is a problem in that each individual's diet selection is more complicated and difficult.

한국 등록 특허 제10-2132975호 (2020.07.06 등록)Korean Registered Patent No. 10-2132975 (registered on July 6, 2020)

본 발명의 목적은 적절한 양의 영양 성분이 보충될 수 있도록 음식 조합을 추천할 수 있는 음식 추천 장치 및 방법을 제공하는데 있다.An object of the present invention is to provide a food recommendation device and method capable of recommending a food combination so that an appropriate amount of nutritional components can be supplemented.

본 발명의 다른 목적은 개인의 취향과 건강 상태에 따른 음식 조합을 추천할 수 있는 음식 추천 장치 및 방법을 제공하는데 있다.Another object of the present invention is to provide a food recommendation apparatus and method capable of recommending a food combination according to personal tastes and health conditions.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 음식 추천 장치는 사용자의 이전 기지정된 기간 동안 식사 시 섭취한 음식에 대한 정보인 사용자 식사 정보와 다수의 사람들의 식사 시 섭취하는 음식과 각 음식의 식재료에 대한 정보가 포함된 음식 섭취 데이터를 수집하여 획득하는 정보 수집부; 상기 음식 섭취 데이터를 기반으로 음식과 식재료 사이의 관계를 분석하기 위한 음식-식재료 이분 그래프와 음식과 식사 사이의 관계를 분석하기 위한 음식-식사 이분 그래프를 획득하는 관계 분석부; 상기 사용자 식사 정보에서 획득된 음식을 기준으로 상기 음식-식재료 이분 그래프에서 연관된 음식을 탐색하여 연관성이 높은 기지정된 개수의 대표 음식을 선택하고, 상기 대표 음식 각각을 기준으로 상기 음식-식사 이분 그래프에서 연관된 음식을 탐색하여 대표 음식 각각에 대응하는 높은 연관성을 갖는 기지정된 개수의 조합 음식을 선택하여 대표 음식과 조합 음식으로 구성되는 음식 세트를 획득하는 음식 선택부; 및 상기 음식 세트에 포함된 음식들의 연관성에 기초하여 각 음식의 제공량을 최적화하고, 각 음식의 최적 제공량에 기초하여 계산되는 전체 연관성이 높은 기지정된 개수의 음식 세트를 선택하여 추천하는 음식 추천부를 포함한다.In order to achieve the above object, a food recommendation device according to an embodiment of the present invention provides user meal information, which is information about food consumed by a user during a previous predetermined period of time, food consumed by a plurality of people, and each food. Information collection unit for collecting and obtaining food intake data containing information on the ingredients of the; a relationship analysis unit that acquires a food-ingredient bipartite graph for analyzing a relationship between food and ingredients and a food-meal bipartite graph for analyzing a relationship between food and meal based on the food intake data; Based on the food obtained from the user's meal information, search for related foods in the food-ingredient bipartite graph to select a predetermined number of representative foods with high correlation, and based on each of the representative foods, in the food-meal bipartite graph. a food selection unit for obtaining a food set consisting of the representative food and the combination food by searching for related foods and selecting a predetermined number of combination foods having a high correlation corresponding to each of the representative foods; And a food recommendation unit that optimizes the serving amount of each food based on the correlation of the foods included in the food set, and selects and recommends a predetermined number of food sets having a high total correlation calculated based on the optimal serving amount of each food. do.

상기 음식 선택부는 상기 사용자 식사 정보에서 획득된 음식을 기준으로 상기 음식-식재료 이분 그래프에서 공통된 식재료를 이용하는 연관 음식을 탐색하고, 기준이 된 음식과 연관 음식과의 연관성을 공통으로 포함된 식재료의 비중을 고려하여 수정한 수정 아다믹 아다르 인덱스(Adamic-Adar Index: 이하 AAI)로 계산하여 높은 수정 AAI를 갖는 기지정된 개수의 연관 음식을 대표 음식을 선택하는 대표 음식 선택부; 및 상기 대표 음식 각각을 기준으로 상기 음식-식사 이분 그래프에서 동일 식사에서 제공된 음식인 연관 음식을 탐색하고, 각 대표 음식과 연관 음식과의 연관성을 AAI로 계산하여 높은 AAI를 갖는 기지정된 개수의 연관 음식을 조합 음식을 선택하여 대표 음식과 조합 음식으로 구성되는 음식 세트를 획득하는 조합 음식 선택부를 포함할 수 있다.The food selection unit searches for related foods using common ingredients in the food-ingredient dichotomy graph based on the food acquired from the user meal information, and determines the relationship between the standard food and the related food as a proportion of ingredients included in common. a representative food selection unit for selecting a representative food from a predetermined number of related foods having a high modified AAI by calculating a modified Adamic-Adar Index (hereinafter referred to as AAI) in consideration of; And based on each of the representative foods, search for related foods that are foods served at the same meal in the food-meal dichotomy graph, calculate the association between each representative food and the related food by AAI, and calculate a predetermined number of associations with a high AAI. It may include a combination food selection unit that selects a food combination and obtains a food set composed of the representative food and the combination food.

상기 관계 분석부는 상기 음식 섭취 데이터에서 다수의 음식과 다수의 식재료를 서로 다른 2개의 카테고리로 분류하고, 다수의 음식 각각에 포함된 식재료를 서로 연결하여 상기 음식-식재료 이분 그래프를 획득하는 음식 식재료 관계 그래프 획득부; 및 상기 음식 섭취 데이터에서 식사와 음식을 서로 다른 2개의 카테고리로 분류하고, 각 식사 시에 섭취한 음식을 서로 연결하여 상기 음식-식사 이분 그래프를 획득하는 음식 식사 관계 그래프 획득부를 포함할 수 있다.The relationship analyzer classifies a plurality of foods and a plurality of food ingredients in the food intake data into two different categories, connects ingredients included in each of the plurality of foods, and obtains the food-ingredient bipartite graph. a graph acquisition unit; and a food-meal relationship graph obtaining unit configured to classify meals and foods into two different categories from the food intake data and connect the foods consumed at each meal to obtain the food-meal dichotomy graph.

상기 음식 추천부는 상기 음식 세트에 포함된 음식들의 연관성의 합으로 계산되는 전체 연관성이 최대가 되도록 각 음식의 제공량을 최적화하고, 미리 지정된 영양 성분별로 연산된 음식별 최적 제공량을 적용하여 음식별 최적 제공량에 따른 각 음식 세트의 영양 성분량을 계산하며, 계산된 영양 성분량이 기지정된 영양 성분별 조건을 만족하면서 전체 연관성이 가장 높은 기지정된 개수의 음식 세트를 선택하여 추천할 수 있다.The food recommendation unit optimizes the serving amount of each food so that the total correlation calculated as the sum of the correlations of the foods included in the food set is maximized, and applies the optimal serving amount for each food calculated for each predetermined nutritional component to the optimal serving amount for each food. The nutritional component amount of each food set is calculated according to , and a predetermined number of food sets having the highest total correlation may be selected and recommended while satisfying the predetermined nutritional component-specific condition.

상기 음식 추천부는 기지정된 영양 성분별 조건과의 차이에 따라 계산되는 조건 완화 패널티가 적용된 전체 연관성을 계산하고, 상기 조건 완화 패널티가 적용된 전체 연관성이 최대가 되도록 각 음식의 제공량을 최적화하고, 최적 제공량에 따른 전체 연관성이 가장 높은 기지정된 개수의 음식 세트를 선택하여 추천할 수 있다.The food recommendation unit calculates the total correlation to which the condition relaxation penalty, which is calculated according to the difference from the condition for each predetermined nutritional component, is applied, optimizes the serving amount of each food so that the total correlation to which the condition relaxation penalty is applied is maximized, and optimizes the serving amount It is possible to select and recommend a pre-specified number of food sets having the highest overall correlation according to .

상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 영양기반 음식 추천 방법은 사용자의 이전 기지정된 기간 동안 식사 시 섭취한 음식에 대한 정보인 사용자 식사 정보와 다수의 사람들의 식사 시 섭취하는 음식과 각 음식의 식재료에 대한 정보가 포함된 음식 섭취 데이터를 수집하여 획득하는 단계; 상기 음식 섭취 데이터를 기반으로 음식과 식재료 사이의 관계를 분석하기 위한 음식-식재료 이분 그래프와 음식과 식사 사이의 관계를 분석하기 위한 음식-식사 이분 그래프를 포함하는 이분 그래프를 획득하는 단계; 상기 사용자 식사 정보에서 획득된 음식을 기준으로 상기 음식-식재료 이분 그래프에서 연관된 음식을 탐색하여 연관성이 높은 기지정된 개수의 대표 음식을 선택하고, 상기 대표 음식 각각을 기준으로 상기 음식-식사 이분 그래프에서 연관된 음식을 탐색하여 대표 음식 각각에 대응하는 높은 연관성을 갖는 기지정된 개수의 조합 음식을 선택하여 대표 음식과 조합 음식으로 구성되는 음식 세트를 획득하는 단계; 및 상기 음식 세트에 포함된 음식들의 연관성에 기초하여 각 음식의 제공량을 최적화하고, 각 음식의 최적 제공량에 기초하여 계산되는 전체 연관성이 높은 기지정된 개수의 음식 세트를 선택하여 추천하는 단계를 포함한다.In order to achieve the above object, a nutrition-based food recommendation method according to another embodiment of the present invention provides user meal information, which is information about food consumed during a meal for a predetermined period of time by a user, food consumed during a meal of a plurality of people, and Collecting and obtaining food intake data including information on ingredients of each food; Obtaining a bipartite graph including a food-ingredient bipartite graph for analyzing a relationship between food and ingredients and a food-meal bipartite graph for analyzing a relationship between food and meal based on the food intake data; Based on the food obtained from the user's meal information, search for related foods in the food-ingredient bipartite graph to select a predetermined number of representative foods with high correlation, and based on each of the representative foods, in the food-meal bipartite graph. obtaining a food set consisting of the representative food and the combination food by searching for related foods and selecting a predetermined number of combination foods having a high correlation corresponding to each of the representative foods; And optimizing the serving amount of each food based on the correlation of the foods included in the food set, and selecting and recommending a predetermined number of food sets having a high total correlation calculated based on the optimal serving amount of each food. .

따라서, 본 발명의 실시예에 따른 음식 추천 장치 및 방법은 개인의 취향과 건강 상태에 따른 적절한 양의 영양 성분이 보충될 수 있도록 음식 조합을 추천할 수 있다.Accordingly, the food recommendation apparatus and method according to an embodiment of the present invention may recommend a food combination so that an appropriate amount of nutritional components according to personal tastes and health conditions may be supplemented.

도 1은 본 발명의 일 실시예에 따른 영양기반 음식 추천 시스템을 나타낸다.
도 2는 도 1의 음식 추천 장치의 개략적 구조의 일 예를 나타낸다.
도 3은 도 2의 그래프 획득부에서 획득되는 이분 그래프의 일 예를 나타낸다.
도 4는 도 2의 음식 분류부에 따라 설정된 음식 분류와 단위량의 일 예를 나타낸다.
도 5는 도 2의 음식 분류부의 개인 취향 설정 일 예를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 영양기반 음식 추천 방법을 나타낸다.
1 shows a nutrition-based food recommendation system according to an embodiment of the present invention.
FIG. 2 shows an example of a schematic structure of the food recommendation device of FIG. 1 .
FIG. 3 shows an example of a bipartite graph obtained by the graph acquisition unit of FIG. 2 .
Figure 4 shows an example of food classification and unit amount set according to the food classification unit of FIG.
5 shows an example of personal taste setting of the food classification unit of FIG. 2 .
6 shows a nutrition-based food recommendation method according to an embodiment of the present invention.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention and its operational advantages and objectives achieved by the practice of the present invention, reference should be made to the accompanying drawings illustrating preferred embodiments of the present invention and the contents described in the accompanying drawings.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다. Hereinafter, the present invention will be described in detail by describing preferred embodiments of the present invention with reference to the accompanying drawings. However, the present invention may be embodied in many different forms and is not limited to the described embodiments. And, in order to clearly describe the present invention, parts irrelevant to the description are omitted, and the same reference numerals in the drawings indicate the same members.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. Throughout the specification, when a part "includes" a certain component, it means that it may further include other components, not excluding other components unless otherwise stated. In addition, terms such as "... unit", "... unit", "module", and "block" described in the specification mean a unit that processes at least one function or operation, which is hardware, software, or hardware. And it can be implemented as a combination of software.

도 1은 본 발명의 일 실시예에 따른 영양기반 음식 추천 시스템을 나타낸다.1 shows a nutrition-based food recommendation system according to an embodiment of the present invention.

도 1을 참조하면 본 실시예에 따른 영양기반 음식 추천 시스템은 다수의 사용자 단말(10)과 의료 단말(20), 데이터베이스 서버(30) 및 음식 추천 서버(40)를 포함할 수 있다.Referring to FIG. 1 , the nutrition-based food recommendation system according to the present embodiment may include a plurality of user terminals 10, medical terminals 20, a database server 30, and a food recommendation server 40.

다수의 사용자 단말(10)은 스마트폰과 같은 휴대용 사용자 단말 분만 아니라 PC나 랩탑과 같은 거치형 사용자 단말 등으로 구현될 수 있으며, 각각 음식 추천 앱이 설치된다.The plurality of user terminals 10 may be implemented not only in portable user terminals such as smartphones, but also in stationary user terminals such as PCs and laptops, and food recommendation apps are installed, respectively.

사용자는 자신이 섭취한 음식 각각의 종류와 양을 음식 추천 앱이 설치된 사용자 단말(10)에 입력할 수 있으며, 사용자 단말(10)은 입력된 음식 종류와 양은 네트워크를 통해 음식 추천 서버(40)로 전달한다. 또한 사용자 단말(10)은 사용자의 개인 취향에 따라 사용자가 입력한 선호 및 비선호 음식 정보 또는 질병 등에 따른 금지 음식, 권장 음식 정보 등을 음식 추천 서버(40)로 전달할 수 있다.The user may input the type and amount of each food he/she has consumed into the user terminal 10 in which the food recommendation app is installed, and the user terminal 10 may transmit the input type and amount of food to the food recommendation server 40 through the network. forward to In addition, the user terminal 10 may transmit preferred and non-preferred food information input by the user according to the user's personal taste, or prohibited food and recommended food information according to disease to the food recommendation server 40 .

그리고 사용자 단말(10)은 사용자의 명령에 따라 음식 추천 서버(40)로 음식 추천 요청을 전송하고, 음식 추천 서버(40)로부터 추천 음식이 전송되면, 추천 음식을 사용자에게 표시할 수 있다.The user terminal 10 may transmit a food recommendation request to the food recommendation server 40 according to the user's command, and display the recommended food to the user when the recommended food is transmitted from the food recommendation server 40 .

의료 단말(20)은 병원 등과 같은 의료 기관에서 이용되는 단말이며, 사용자의 승인 하에 이용되는 것이 바람직하다. 의료 단말(20)은 사용자 단말(10)과 유사하게 사용자의 질병에 따른 금지 음식, 권장 음식 정보 등을 음식 추천 서버(40)로 전달할 수 있으며, 사용자가 병원에 입원중인 상태 등과 같은 특수한 경우에는 사용자에게 제공된 음식의 종류와 양을 음식 추천 서버(40)로 전달할 수 있다. 즉 의료 단말(20)은 사용자의 건강 상태에 따라 섭취하거나 금지할 음식 정보를 의료 기관에서 제공하는 경우에 사용자 단말(10)을 대체하거나 보조하는 수단으로 이용될 수 있다.The medical terminal 20 is a terminal used in medical institutions such as hospitals, and is preferably used under user approval. Similar to the user terminal 10, the medical terminal 20 may transmit prohibited food, recommended food information, etc. according to the user's disease to the food recommendation server 40, and in a special case such as a state in which the user is hospitalized The type and amount of food provided to the user may be transmitted to the food recommendation server 40 . That is, the medical terminal 20 may be used as a means to replace or assist the user terminal 10 when a medical institution provides food information to be consumed or prohibited according to the user's health condition.

데이터베이스 서버(30)는 음식 섭취 데이터가 저장되며, 음식 추천 서버(40)의 요청에 따라 저장된 음식 섭취 데이터를 전송한다. 본 실시예에서 식사는 사용자가 한 번에 적어도 하나의 음식을 섭취하는 행위를 의미하며, 여기에는 아침, 점심, 저녁 식사와 같은 한끼 식사뿐만아니라 간식 등도 포함될 수 있다. 그리고 음식은 공기밥, 각종 구이, 찌게, 김치, 햄버거 등과 같이, 개별적으로 구분되어 제공될 수 있는 모든 음식물을 의미한다.The database server 30 stores food intake data and transmits the stored food intake data according to a request of the food recommendation server 40 . In this embodiment, a meal means an action by which a user consumes at least one food at a time, and it may include snacks as well as one meal such as breakfast, lunch, and dinner. In addition, food refers to all foods that can be individually classified and provided, such as steamed rice, various kinds of grilled meat, stew, kimchi, hamburger, and the like.

경우에 따라서 데이터베이스 서버(30)는 다수의 사용자 단말(10) 또는 의료 단말로부터 각 사용자가 식사 시에 섭취한 음식의 종류와 양을 인가받아 저장할 수도 있다.In some cases, the database server 30 may receive and store the type and amount of food consumed by each user from a plurality of user terminals 10 or medical terminals.

본 실시예에서는 일 예로 질병 관리청에서 공개하여 제공하는 국민 건강 영양 조사 내역 중 식품섭취조사(개인별 24시회상조사) 항목을 음식 섭취 데이터로서 이용하는 것으로 가정한다. 국민 건강 영양 조사 내역의 식품섭취조사(개인별 24시회상조사) 항목은 미리 지정된 피실험자의 24시간 동안 식사 내역을 조사하여 기록한 데이터로서, 하루 동안의 식사 시간과 식사 시 섭취한 음식의 종류, 각 음식에 사용된 식재료의 중량이 포함된다. 예로서 2018년 데이터의 경우, 7064명에 대해 실험을 진행하여 1783 종류의 음식과 음식에 포함된 3079 종류의 식재료가 포함되어 있다. 또한 식품섭취조사 항목에는 농촌진흥청에서 공표하는 표준식품성분표에 따른 음식별 영양 성분 정보가 함께 포함되어 있다.In this embodiment, for example, it is assumed that the food intake survey (24-hour recall survey by individual) is used as food intake data among the public health and nutrition survey details provided by the Korea Centers for Disease Control and Prevention. The food intake survey (individual 24-hour recall survey) item of the National Health and Nutrition Examination Survey is the data recorded by surveying the meal details of the subjects designated in advance for 24 hours. Including the weight of ingredients used in For example, in the case of the 2018 data, the experiment was conducted on 7064 people, and 1783 types of food and 3079 types of ingredients included in the food were included. In addition, the food intake survey items include nutritional component information for each food according to the standard food composition table announced by the Rural Development Administration.

음식 추천 서버(40)는 본 실시예의 음식 추천 장치로서, 음식 섭취 데이터를 분석하여, 다수의 사람들이 섭취한 식사와 음식 사이의 관계와 음식과 식재료 사이의 관계를 분석한다. 또한 다수의 사용자 단말(10) 각각으로부터 사용자가 섭취한 식사 및 음식 정보를 획득하여 저장하고, 사용자 단말(10)로부터 음식 추천 요청이 전송되면 분석된 식사와 음식, 및 음식과 식재료 사이의 관계 정보를 기반으로 사용자의 식사를 위해 적합한 음식 조합을 추천한다.The food recommendation server 40 is the food recommendation device of the present embodiment, and analyzes food intake data to analyze the relationship between meals consumed by a large number of people and food and between food and food ingredients. In addition, meals and food information consumed by the user are obtained and stored from each of the plurality of user terminals 10, and when a food recommendation request is transmitted from the user terminal 10, the analyzed meal and food and relationship information between the food and food ingredients are stored. Based on this, suitable food combinations are recommended for the user's meal.

이때 본 실시예에 따른 음식 추천 서버(40)는 다수의 사람들의 음식 조합 패턴을 참조하여 음식을 추천하되, 사용자에게 적합한 영양 성분과 양을 고려하여 음식 조합을 추천할 수 있다. 또한 사용자 개개인이 직접 설정하는 사용자 조건과 건강 상태 등에 따른 적절한 양의 영양 성분이 보충될 수 있도록 음식 조합과 양을 획득하여 추천한다.At this time, the food recommendation server 40 according to the present embodiment recommends food by referring to food combination patterns of a plurality of people, but may recommend food combinations by considering nutritional components and amounts suitable for the user. In addition, food combinations and amounts are obtained and recommended so that an appropriate amount of nutritional components can be supplemented according to user conditions and health conditions set by each user.

그리고 음식 추천 서버(40)는 직접 음식 섭취 데이터를 획득하도록 구성될 수도 있으며, 이 경우, 데이터베이스 서버(30)는 음식 추천 서버(40)에 통합되어 생략될 수도 있다.Also, the food recommendation server 40 may be configured to directly acquire food intake data. In this case, the database server 30 may be integrated into the food recommendation server 40 and may be omitted.

도 2는 도 1의 음식 추천 장치의 개략적 구조의 일 예를 나타낸다.FIG. 2 shows an example of a schematic structure of the food recommendation device of FIG. 1 .

도 2를 참조하면, 본 실시예에 따른 음식 추천 장치(40)는 정보 수집부(100), 관계 분석부(200), 음식 선택부(300), 음식 분류부(400), 조건 설정부(500) 및 음식 추천부(600)를 포함할 수 있다.Referring to FIG. 2 , the food recommendation device 40 according to the present embodiment includes an information collection unit 100, a relationship analysis unit 200, a food selection unit 300, a food classification unit 400, a condition setting unit ( 500) and a food recommendation unit 600.

정보 수집부(100)는 사용자에게 음식을 추천하기 위한 각종 정보를 수집한다. 정보 수집부(100)는 사용자 식사 정보 획득부(110)와 식품 섭취 정보 수집부(120)를 포함할 수 있다. 사용자 식사 정보 획득부(110)는 다수의 사용자 단말(10) 각각로부터 사용자 개개인이 식사 시에 섭취한 음식의 종류와 양이 포함된 사용자 식사 정보를 수집한다. 사용자 식사 정보 획득부(110)는 다수의 사용자 단말(10) 또는 의료 단말(20)로부터 다수의 사용자 각각의 최근 기지정된 기간(예를 들면 1주일)동안 식사 시에 섭취한 음식의 종류와 양을 사용자 식사 정보로서 획득할 수 있다. 그리고 식품 섭취 정보 수집부(120)는 상기한 음식 섭취 데이터를 수집하여 획득한다.The information collection unit 100 collects various types of information for recommending food to users. The information collection unit 100 may include a user meal information acquisition unit 110 and a food intake information collection unit 120 . The user meal information acquisition unit 110 collects user meal information including the type and amount of food consumed by each user from each of the plurality of user terminals 10 . The user meal information acquisition unit 110 is a type and amount of food consumed by each of the plurality of users from the plurality of user terminals 10 or the medical terminal 20 during a recent pre-determined period (for example, one week). Can be obtained as user meal information. In addition, the food intake information collecting unit 120 collects and obtains the food intake data.

사람들은 한끼의 식사에서 한가지 음식만을 섭취하는 경우는 매우 드물고, 통상적으로 4 ~ 5가지 음식을 조합하여 섭취한다. 이와 같이 한끼 식사에 함께 섭취되는 음식들 중에는 핵심이 되는 1 ~ 2 종류의 메인 음식과 나머지 서브 음식으로 구분될 수 있으며, 식사에 따라서는 과일이나 음료와 같은 부가 음식 또한 존재할 수 있다. 이에 수집되는 음식 섭취 데이터에는 메인 음식, 서브 음식 및 부가 음식과 같은 음식 카테고리가 미리 지정되어 함께 획득될 수 있다.It is very rare for people to consume only one food at a meal, and usually consumes a combination of 4 to 5 foods. Among the foods consumed together in a meal as described above, one or two main types of main foods and the remaining sub foods may be classified as core foods, and additional foods such as fruits or beverages may also exist depending on the meal. Food categories such as main food, sub food, and additional food may be pre-specified and acquired together with the collected food intake data.

상기한 바와 같이, 음식 섭취 데이터에는 각 음식에 포함되는 식재료와 이에 따른 영양 성분 정보가 함께 포함되어 있으며 여기서 포함되는 식재료의 양과 영양 성분은 1인분을 기준으로 설정되어 있다. 이에 음식 섭취 데이터에는 1인분에 대한 단위량 또한 미리 지정될 수 있다. 즉 음식 섭취 데이터에는 한 사람이 1회 식사 시에 섭취하는 해당 음식의 평균량이 미리 포함되어 함께 획득될 수 있다.As described above, the food intake data includes the ingredients included in each food and the corresponding nutritional component information, and the amount and nutritional components of the ingredients included here are set based on one serving. Accordingly, the unit amount for one serving may also be pre-specified in the food intake data. That is, the food intake data may include an average amount of the corresponding food consumed by one person in one meal and may be acquired together.

여기서는 음식 추천 장치(40)에 데이터베이스 서버(30)가 포함되어 구성되는 것을 가정하여, 데이터베이스 서버(30)를 대체하여 정보 수집부(100)가 사용자 식사 정보와 음식 섭취 데이터를 수집하지만, 데이터베이스 서버(30)가 별도로 구성된 경우, 정보 수집부(100)는 음식 추천 장치(40)에서 생략될 수 있다.Here, it is assumed that the database server 30 is included in the food recommendation device 40, and the information collection unit 100 collects user meal information and food intake data by replacing the database server 30, but the database server If 30 is configured separately, the information collection unit 100 may be omitted from the food recommendation device 40 .

관계 분석부(200)는 정보 수집부(100)에서 수집된 사용자 식사 정보와 음식 섭취 데이터를 기반으로 사용자와 음식, 음식과 식사 및 음식과 식재료 사이의 관계를 분석한다. 관계 분석부(200)는 다양한 데이터 분석 기법에 따라 수집된 정보들 사이의 관계를 분석할 수 있으나, 여기서는 일 예로 이분 그래프(Bipartite Graph)를 이용하여 사용자와 음식, 음식과 식사 및 음식과 식재료 사이의 관계를 분석한다.The relationship analyzer 200 analyzes relationships between the user and food, between food and meal, and between food and food ingredients, based on user meal information and food intake data collected by the information collection unit 100 . The relationship analysis unit 200 may analyze the relationship between the collected information according to various data analysis techniques, but here, as an example, a bipartite graph is used between the user and food, food and meal, and food and food ingredients. analyze the relationship between

도 3은 도 2의 그래프 획득부에서 획득되는 이분 그래프의 일 예를 나타낸다.FIG. 3 shows an example of a bipartite graph obtained by the graph acquisition unit of FIG. 2 .

도 3에 도시된 바와 같이 이분 그래프는 두 개 카테고리(U, V)로 구분되는 데이터((u1, u2, …, ui), (v1, v2, …, vj))를 서로 연결하여 획득되는 그래프로서, 서로 다른 카테고리(U, V)에 포함된 데이터((u1, u2, …, ui), (v1, v2, …, vj)) 중 서로 연관된 데이터들을 간단하게 표현하기 위해 이용된다.As shown in FIG. 3, the bipartite graph includes data ((u 1 , u 2 , …, u i ), (v 1 , v 2 , …, v j ) divided into two categories (U and V). As a graph obtained by connecting each other, among the data ((u 1 , u 2 , …, u i ), (v 1 , v 2 , …, v j )) included in different categories (U, V) are related to each other It is used to simply represent data.

도 3의 예를 참조하면, 제1 카테고리(U)의 데이터(u1)는 제2 카테고리(V)의 데이터(v1)에만 연관되지만, 제2 카테고리(V)의 데이터(v1)는 제1 카테고리(U)의 데이터(u1) 뿐만 아니라, 다른 2개의 데이터(u2, ui)와도 연관됨을 알 수 있고, 제1 카테고리(U)의 데이터(u2)는 제2 카테고리(V)의 2개의 데이터(v1, v2)에 연관됨을 용이하게 알 수 있다. 즉 이분 그래프는 서로 다른 카테고리의 데이터들 사이의 연관 관계를 매우 간단하게 설정하고 확인할 수 있는 데이터 분석 수단이다.Referring to the example of FIG. 3 , the data (u 1 ) of the first category (U) is related only to the data (v 1 ) of the second category (V), but the data (v 1 ) of the second category (V) It can be seen that the data (u 1 ) of the first category (U) is associated with the other two data (u 2 , u i ), and the data (u 2 ) of the first category (U) is associated with the second category ( It can be easily seen that V) is related to two data (v 1 , v 2 ). That is, the bipartite graph is a data analysis means that can very simply set and check the correlation between data of different categories.

관계 분석부(200)는 사용자 음식 관계 그래프 획득부(210), 음식 식재료 관계 그래프 획득부(220) 및 음식 식사 관계 그래프 획득부(230)를 포함할 수 있다. The relationship analysis unit 200 may include a user food relationship graph acquisition unit 210, a food ingredient relationship graph acquisition unit 220, and a food meal relationship graph acquisition unit 230.

사용자 음식 관계 그래프 획득부(210)는 사용자 식사 정보를 이용하여 각 사용자와 사용자가 섭취한 음식 사이의 관계를 이분 그래프로 획득한다. 사용자 음식 관계 획득부(210)는 일 예로 사용자를 제1 카테고리(U)로 설정하고, 음식을 제2 카테고리(V)로 설정하여 음식-식재료 이분 그래프를 획득할 수 있다. 그러나 다른 예로서 음식을 제1 카테고리(U)로 설정하고, 사용자를 2 카테고리(V)로 설정할 수도 있다.The user food relationship graph acquisition unit 210 obtains a relationship between each user and the food consumed by the user in a bipartite graph using the user meal information. For example, the user food relationship acquisition unit 210 may set the user as the first category (U) and the food as the second category (V) to obtain a food-ingredient bipartite graph. However, as another example, food may be set as the first category (U) and users may be set as the second category (V).

음식 식재료 관계 그래프 획득부(220)는 음식 섭취 데이터를 이용하여 각 음식과 식재료 사이의 관계를 이분 그래프로 획득한다. 음식 식재료 관계 그래프 획득부(220)는 음식을 제1 카테고리(U)로 설정하고, 식재료를 제2 카테고리(V)로 설정하여 음식-식재료 이분 그래프를 획득할 수 있다.The food ingredient relationship graph acquisition unit 220 obtains a relationship between each food and ingredient as a bipartite graph using food intake data. The food-ingredient relationship graph acquisition unit 220 may obtain a food-ingredient bipartite graph by setting food as the first category (U) and food as the second category (V).

한편, 음식 식사 관계 그래프 획득부(230)는 식품 섭취 정보 수집부(120)에서 수집된 음식 섭취 데이터를 기반으로 다수의 사람들의 식사와 사람들이 식사 시에 섭취한 음식 사이의 관계를 이분 그래프로 획득한다. 음식 식사 관계 그래프 획득부(230)는 제1 카테고리(U)로 설정하고, 다수의 사람들의 식사를 사람들이 섭취한 음식을 제2 카테고리(V)로 설정하여 식사-음식 이분 그래프를 획득할 수 있다.On the other hand, the food meal relationship graph acquisition unit 230, based on the food intake data collected by the food intake information collection unit 120, the relationship between the meals of a number of people and the food consumed by the people at the time of eating a bipartite graph. Acquire The food-meal relationship graph obtaining unit 230 may obtain a meal-food dichotomy graph by setting a first category (U) to food consumed by a plurality of people and setting food consumed by a plurality of people to a second category (V). there is.

음식 선택부(300)는 관계 분석부(200)에서 획득된 이분 그래프를 기반으로 사용자에게 추천할 음식 후보를 선정한다. 본 실시예에서 음식 선택부(300)는 공통 이웃(common neighbor)의 차수(degree)를 활용하여 두 점 사이의 친밀도를 비교하는 지표인 아다믹 아다르 인덱스(Adamic-Adar Index: 이하 AAI)를 기반으로 사용자에게 추천할 음식 후보를 정렬할 수 있다.The food selection unit 300 selects food candidates to be recommended to the user based on the bipartite graph obtained by the relationship analysis unit 200 . In this embodiment, the food selection unit 300 utilizes the degree of a common neighbor to use the Adamic-Adar Index (AAI), which is an index for comparing intimacy between two points. Food candidates to be recommended to the user can be sorted based on the

AAI는 소셜 네트워크에서 두 노드 사이의 공유 링크 양에 따른 중요도를 수치적으로 표현하기 위해 제안된 알고리즘으로 이를 도 3의 이분 그래프에 적용하는 경우, 제1 카테고리(U)의 다수의 제1 데이터(u1, u2, …, ui) 중에서 2개의 제1 데이터(up, uq)가 공통으로 연결되는 제2 데이터(vm)의 개수, 즉 공통 연관 제2 데이터(vm)의 개수가 많고, 공통으로 연결된 제2 데이터(vm)가 연결된 제1 데이터(u)의 개수(N(v))가 적을수록 높은 수치를 갖도록 계산된다. 이는 2개의 제1 데이터(up, uq)가 공통으로 연결된 제2 데이터(vm)의 개수가 많을수록 상호 연관성이 많으나, 제2 데이터(vm)가 연결된 제1 데이터의 개수가 희소할수록 2개의 제1 데이터(up, uq)의 연관성에 대한 중요도가 높기 때문이다.AAI is an algorithm proposed to numerically express the importance according to the amount of shared links between two nodes in a social network. When applied to the bipartite graph of FIG. 3, a plurality of first data of the first category U ( The number of second data (v m ) to which the two first data (u p , u q ) are commonly connected among u 1 , u 2 , …, u i , that is, the number of commonly associated second data (v m ) It is calculated to have a higher value as the number (N(v)) of the first data (u) connected to the second data (v m ) connected in common is large. As the number of second data (v m ) commonly connected to the two first data (up p , u q ) increases, the correlation increases, but as the number of first data connected to the second data (v m ) becomes rarer, This is because the importance of the correlation between the two first data u p and u q is high.

일 예로 제1 카테고리(U)의 2개의 제1 데이터(u1, u2)에 대한 AAI(AAI(u1, u2))는 수학식 1과 같이 계산될 수 있다.For example, AAI (AAI(u 1 , u 2 )) for the two first data u 1 and u 2 of the first category U may be calculated as in Equation 1.

Figure pat00001
Figure pat00001

음식 선택부(300)는 대표 음식 선택부(310)와 조합 음식 선택부(320)를 포함할 수 있다.The food selection unit 300 may include a representative food selection unit 310 and a combination food selection unit 320 .

대표 음식 선택부(310)는 일예로 사용자 식사 정보 획득부(110)에서 획득된 사용자 식사 정보로부터 사용자의 과거 기지정된 기간(예를 들면 1주일) 동안 식사 시에 섭취한 다수의 음식 각각에 대응하는 데이터를 음식 식재료 관계 그래프 획득부(220)가 획득한 음식-식재료 이분 그래프의 제1 카테고리(U)에서 확인한다. 그리고 확인된 다수의 음식 데이터(up) 각각에 대해 제2 카테고리(V)인 식재료를 매개로 하여 연관이 있는 제1 카테고리(U)의 연관 음식 데이터(uq)를 탐색한다. 즉 사용자가 섭취한 음식의 식재료를 기반으로 공통된 식재료를 사용한 음식 데이터를 탐색할 수 있다.The representative food selection unit 310 corresponds to each of a plurality of foods consumed during a meal for a predetermined period in the past (for example, one week) from the user meal information acquired by the user meal information acquisition unit 110, for example. The data to be checked in the first category (U) of the food-ingredient bipartite graph obtained by the food ingredient relationship graph acquisition unit 220. Then, for each of the identified plurality of food data (up ), food data (u q ) of the first category (U) is searched for through the medium of the food material of the second category (V). That is, food data using common ingredients may be searched based on the ingredients of the food consumed by the user.

다만 사용자 개인이 섭취한 음식에만 기초하여 음식 데이터를 탐색하게 되면, 탐색되는 음식의 종류가 제한적일 수 있다. 이를 극복하기 위해서 대표 음식 선택부(310)는 사용자 음식 관계 그래프 획득부(210)에서 획득된 사용자-음식 이분 그래프의 제1 카테고리(U)에서 현재 사용자(up)와 연결된 제2 카테고리(V)의 음식을 탐색하고, 탐색된 음식을 공통으로 섭취한 다른 사용자인 연관 사용자(uq)를 다시 제1 카테고리(U)에서 탐색할 수 있다. 그리고 탐색된 연관 사용자(uq)가 섭취한 음식을 기반으로 다시 음식-식재료 이분 그래프를 이용하여 연관 음식을 탐색할 수도 있다. 이 경우, 현재 사용자와 공통된 음식을 섭취한 연관 사용자가 섭취한 음식을 추가로 고려하여 연관 음식 데이터를 탐색하게 되므로, 탐색되는 음식의 종류를 확장시킬 수 있다. 그리고 이때, 연관 사용자의 수가 과도하게 증가하지 않도록, 현재 사용자(up)와 연관 사용자(uq) 사이의 연관성을 AAI를 기반으로 계산하고, 계산된 AAI가 높은 기지정된 수의 연관 사용자(uq)가 섭취한 음식에 기초하여 음식-식재료 이분 그래프를 이용할 수도 있다.However, when food data is searched based only on food consumed by an individual user, the type of food to be searched may be limited. In order to overcome this problem, the representative food selection unit 310 includes a second category (V) connected to the current user (up) in the first category (U) of the user-food bipartite graph obtained by the user food relationship graph acquisition unit 210. ) may be searched for, and a related user (u q ), who is another user who has commonly consumed the searched food, may be searched again in the first category (U). In addition, based on the food consumed by the searched related user (u q ), related food may be searched again using a food-ingredient dichotomy graph. In this case, since the related food data is searched by additionally considering the food consumed by the related user who consumed common food with the current user, the type of food to be searched for can be expanded. At this time, the association between the current user (up p ) and the associated user (u q ) is calculated based on the AAI so that the number of associated users does not increase excessively, and the calculated AAI is calculated based on a predetermined number of associated users (u You can also use a food-ingredient bipartite graph based on the food eaten by q ).

한편 음식-식재료 이분 그래프의 제1 카테고리(U)에서 사용자가 섭취한 다수의 음식 데이터(up)에 연관된 다른 음식 데이터인 연관 음식 데이터(uq)가 탐색되면, 섭취한 음식 데이터(up) 각각과 연관된 연관 음식 데이터(uq) 사이의 연관성을 AAI를 기반으로 계산하고, 계산된 AAI에 따라 탐색된 연관 음식 데이터(uq)를 정렬한다. 이는 사용자 또는 공통된 음식을 섭취한 다른 사용자가 과거 섭취한 음식 내역을 기반으로 사용자의 선호 식재료를 확인하고, 선호 식재료에 따른 음식이 우선 추천될 수 있도록 하기 위함이다.On the other hand, when related food data (u q ), which is other food data related to a plurality of food data (u p ) consumed by the user in the first category (U) of the food-ingredient bipartite graph, is searched for, the consumed food data (u p ), the association between each associated food data (u q ) is calculated based on AAI, and the searched related food data (u q ) is sorted according to the calculated AAI. This is to confirm the user's preferred food ingredients based on the food history of the user or other users who have consumed common food in the past, and to prioritize recommending foods according to the preferred food ingredients.

다만, 음식에는 다양한 식재료가 포함되며, 이 중에서는 해당 음식의 핵심이 되는 중요 식재료가 존재하는 반면, 조미료 등과 같은 부가 식재료도 함께 존재한다. 따라서 음식에 대한 식재료들 사이의 관계는 서로 대등한 관계로 보기 어렵다. 비록 음식-식재료 이분 그래프에서 2개의 제1 데이터(up, uq)에 대한 AAI(AAI(up, uq))가 공통으로 연결되는 공통 식재료(v)의 개수가 많고, 공통 식재료가 이용되는 음식(u)의 개수가 적을수록 높은 값을 가지게 되어, 중요 식재료를 중심으로 연관되는 음식(uq)이 높은 AAI를 가질 확률이 높지만, 수학식 1의 AAI를 이용하는 것만으로는 음식에 공통으로 포함된 식재료의 중요도가 음식 사이의 연관성에 제대로 반영되지 않는다.However, food includes various ingredients, and among them, there are important ingredients that are the core of the food, while additional ingredients such as seasonings also exist. Therefore, it is difficult to see the relationship between food ingredients as an equal relationship. Although AAI (AAI (up p , u q )) for the two first data (up p , u q ) in the food-food dichotomous graph has a large number of common ingredients (v) that are commonly connected, and the common ingredients are The smaller the number of foods (u) used, the higher the value, and the food (u q ) related to important ingredients is more likely to have a high AAI. The importance of commonly included ingredients is not properly reflected in the relationship between foods.

이에 본 실시예에서 대표 음식 선택부(310)는 음식 사이의 연관성에 식재료의 중량에 따른 비중이 추가로 반영되도록 수학식 1의 AAI를 수학식 2와 같이 수정함으로써, 음식들 사이의 연관성을 수학식 2의 수정 AAI(mAAI)를 이용하여 계산하고, 수정 AAI(mAAI)에 따라 연관성이 높은 음식(uq)을 순차적으로 정렬한다.Accordingly, in this embodiment, the representative food selection unit 310 corrects the AAI of Equation 1 as in Equation 2 so that the proportion according to the weight of the food ingredient is additionally reflected in the association between foods, thereby determining the association between foods. It is calculated using the modified AAI (mAAI) of Equation 2, and the highly related foods (u q ) are sequentially sorted according to the modified AAI (mAAI).

Figure pat00002
Figure pat00002

여기서 Am은 식재료(v)가 포함된 모든 음식들 내에서 식재료(v)의 평균 중량을 나타내고, mp, mq는 각각 음식(up, uq)에 포함된 식재료(v)의 중량을 나타낸다.Here, Am represents the average weight of the ingredient (v) within all foods containing the ingredient (v), and m p , m q are the weight of the ingredient (v) included in the food (up p , u q ), respectively. indicate

그리고 대표 음식 선택부(310)에서 정렬된 음식(uq)에서 수정 AAI가 큰 상위 기지정된 개수(예를 들면 10개)의 음식을 선택하여 조합 음식 선택부(320)로 전달한다.Then, the representative food selection unit 310 selects a predetermined number (eg, 10) of foods having a large modified AAI from the aligned foods (u q ) and delivers them to the combination food selection unit 320.

조합 음식 선택부(320)는 대표 음식 선택부(310)에서 선택되어 전달된 기지정된 개수의 대표 음식 각각에 대해 사람들이 함께 조합하여 섭취한 조합 음식을 탐색 및 정렬한다.The combination food selection unit 320 searches for and arranges combination foods that people have combined and consumed for each of a predetermined number of representative foods selected and delivered by the representative food selection unit 310 .

대표 음식 선택부(310)에 따라 정렬된 음식(uq)은 이전 사용자 또는 연관 사용자가 섭취한 음식의 중요 식재료가 포함되는 음식으로 이중 상위 기지정된 개수의 음식을 대표 음식이라할 수 있다. 여기서 대표 음식은 단순히 중요도에 따라 선출된 음식들로서 메인 음식이거나 서브 음식 또는 부가 음식이어도 무방하다.The food u q arranged according to the representative food selector 310 includes important ingredients of the food consumed by the previous user or related user, and a predetermined number of high-ranking foods may be referred to as the representative food. Here, the representative food is simply food selected according to importance, and may be a main food, a sub food, or an additional food.

조합 음식 선택부(320)는 대표 음식 선택부(310)에서 선택된 기지정된 개수의 대표 음식을 인가받고, 인가된 대표 음식을 음식 식사 관계 그래프 획득부(230)가 획득한 음식-식사 이분 그래프의 제1 카테고리(U)에서 확인한다. 그리고 확인된 다수의 음식 데이터(up) 각각에 대해 제2 카테고리(V)인 식사를 매개로 하여 연관이 있는 제1 카테고리(U)의 연관 음식 데이터(uq)를 탐색한다. 즉 사람들이 식사 시에 대표 음식과 함께 섭취한 음식 데이터를 탐색한다.The combination food selection unit 320 receives a predetermined number of representative foods selected by the representative food selection unit 310, and the authorized representative food is obtained by the food meal relationship graph acquisition unit 230. The food-meal dichotomy graph Check in the first category (U). Then, for each of the identified plurality of food data ( up), food data (u q ) of the first category (U), which is related to the meal of the second category (V), is searched for. In other words, it searches for food data that people consumed along with representative foods during meals.

음식-식사 이분 그래프의 제1 카테고리(U)에서 대표 음식에 대한 음식 데이터(up)에 연관된 연관 음식 데이터(uq)가 탐색되면, 조합 음식 선택부(320)는 대표 음식 데이터(up) 각각과 연관된 연관 음식 데이터(uq) 사이의 연관성을 AAI를 기반으로 계산하고, 계산된 AAI에 따라 탐색된 연관 음식 데이터(uq)를 정렬하여, 각 대표 음식에 대해 AAI가 높은 상위 기지정된 개수의 연관 음식 데이터(uq)를 해당 대표 음식과 조합될 조합 음식으로 선택한다.When the associated food data (u q ) related to the food data (up p ) for the representative food in the first category (U) of the food-meal dichotomy graph is searched for, the combination food selection unit 320 displays the representative food data (u p ) The association between each associated food data (u q ) is calculated based on AAI, and the searched related food data (u q ) is sorted according to the calculated AAI, and the top criteria with high AAI for each representative food A specified number of associated food data (u q ) is selected as a combination food to be combined with the corresponding representative food.

즉 사람들이 대표 음식과 함께 섭취하는 비율이 높은 음식을 순차적으로 정렬한다. 식사 시에 함께 섭취하는 음식 사이의 관계는 서로 대등한 관계로 볼 수 있으므로, 조합 음식 선택부(320)는 수학식 1에 따라 계산되는 AAI에 따라 음식을 정렬할 수 있다. 그리고 조합 음식 선택부(320)는 AAI에 따라 정렬된 다수의 음식 중 기지정된 개수의 음식을 해당 대표 음식과 함께 조합될 조합 음식으로 선택한다.In other words, the foods that people consume with the representative foods are sequentially arranged. Since the relationship between foods consumed together during a meal can be regarded as an equal relationship, the combination food selection unit 320 may arrange the foods according to the AAI calculated according to Equation 1. Then, the combination food selection unit 320 selects a predetermined number of foods from among a plurality of foods arranged according to AAI as combination foods to be combined with corresponding representative foods.

본 실시예에서 음식 선택부(300)에서 대표 음식 선택부(310)는 음식-식재료 이분 그래프를 이용하여 사용자가 이전 섭취한 음식과 공통된 식재료를 사용한 음식 데이터를 탐색하여 정렬하므로, 조합 음식 선택부(320)는 음식-식사 이분 그래프를 이용하여 사람들이 함께 섭취하는 음식 데이터를 탐색하여 정렬하므로, 서로 연관성이 없는 음식을 탐색하지 않고 AAI 또한 계산하지 않는다. 따라서 낮은 연산 비용으로 대표 음식과 조합 음식을 정렬할 수 있다.In this embodiment, in the food selection unit 300, the representative food selection unit 310 uses a food-ingredient dichotomy graph to search for and sort food data using common ingredients with the food previously consumed by the user, so that the combined food selection unit (320) searches and sorts food data consumed by people using a food-meal dichotomy graph, so unrelated foods are not searched and AAI is not calculated. Therefore, representative food and combination food can be sorted with low computational cost.

한편, 음식 분류부(400)는 정보 수집부(100)에서 수집된 음식의 종류와 양을 분류한다. 음식 분류부(400)는 음식 카테고리 설정부(410)와 단위 음식량 설정부(420)를 포함할 수 있다.On the other hand, the food classification unit 400 classifies the type and amount of food collected in the information collection unit (100). The food classification unit 400 may include a food category setting unit 410 and a unit food amount setting unit 420 .

도 4는 도 2의 음식 분류부에 따라 설정된 음식 분류와 단위량의 일 예를 나타낸다. 도 4의 4번째 칼럼(main)에 나타난 바와 같이, 음식 카테고리 설정부(410)는 정보 수집부(100)에서 수집된 음식의 카테고리에 따른 구분자를 부여할 수 있다. 즉 음식 카테고리 설정부(410)는 메인 음식과 서브 음식 및 부가 음식인지에 따라 서로 다른 구분자를 부여할 수 있으며, 도 4에서는 메인 음식에 대해서는 1의 구분자를 부여하였으며, 서브 음식에 대해서는 0의 구분자를 부여한 경우를 도시하였다.Figure 4 shows an example of food classification and unit amount set according to the food classification unit of FIG. As shown in the fourth column (main) of FIG. 4 , the food category setting unit 410 may assign a separator according to the category of food collected by the information collecting unit 100 . That is, the food category setting unit 410 may assign different delimiters depending on whether the main food, the sub food, or the side food is different. In FIG. 4, a delimiter of 1 is assigned to the main food and a delimiter of 0 is assigned to the sub food. The case where is given is shown.

여기서 음식 카테고리 설정부(410)가 음식 카테고리에 따른 구분자를 부여하는 것은 구분자에 따라 구분된 각 음식 카테고리의 음식이 식사에 일정 비율 이상으로 고르게 포함될 수 있도록 하기 위함이다. Here, the food category setting unit 410 assigns separators according to food categories so that foods of each food category classified according to the separators can be evenly included in meals at a predetermined ratio or more.

상기한 음식 선택부(300)에서 대표 음식과 이와 함께 섭취할 조합 음식이 식재료 및 식사에 따른 연관성에 기초하여 정렬될지라도, 이는 음식 상호간의 연관성만을 고려한 정렬 순서이다. 따라서 음식 선택부(300)에서 정렬된 순서에 따라 음식을 선택하여 추천하게 되는 경우, 메인 음식의 비율이 너무 높거나 서브 음식의 비율이 너무 높게 추천되는 경우가 발생할 수 있다. 이러한 문제를 방지하기 위해, 음식 카테고리 설정부(410)는 후술하는 조건 설정부(500)가 음식 카테고리에 따른 음식을 다양하게 포함시킬 수 있도록 미리 음식 카테고리에 따른 구분자를 부여할 수 있다.Although the representative food and the combination food to be consumed together in the food selection unit 300 are sorted based on the relationship between food ingredients and meals, this is a sorting order that considers only the relationship between foods. Therefore, when foods are selected and recommended according to the order in which they are arranged in the food selector 300, the proportion of main foods or the proportion of sub foods may be too high. In order to prevent this problem, the food category setting unit 410 may preliminarily assign a separator according to the food category so that the condition setting unit 500 to be described later may include various foods according to the food category.

한편 단위 음식량 설정부(420)는 각 음식의 음식량을 이산화한다. 도 4의 표에서 3번째 칼럼(serving_size)에 나타난 바와 같이, 식사 시에 제공되는 각 음식의 양은 매우 다양하고 종류별로 상이하다. 그러나 각 음식에 대한 1인분에 따른 단위량으로 이산화되어 설정될 수는 있다. 이에 단위 음식량 설정부(420)는 각 음식이 1인분 단위로 증감되도록, 음식 종류에 따른 1인분 중량을 설정한다.Meanwhile, the unit food amount setting unit 420 discretizes the food amount of each food. As shown in the third column (serving_size) in the table of FIG. 4, the amount of each food served during a meal is very diverse and different for each type. However, it can be discretized and set as a unit amount according to one serving for each food. Accordingly, the unit food amount setting unit 420 sets the weight per serving according to the type of food so that each food increases or decreases per serving.

여기서 음식 분류부(400)는 음식 추천 장치를 관리하는 관리자가 각 음식의 카테고리와 단위 음식량을 설정하여 저장할 수 있다. 다만 수집된 음식 섭취 데이터에 이미 메인 음식과 서브 음식 및 부가 음식에 따른 구분자가 부여된 경우, 음식 카테고리 설정부(410)는 생략될 수 있으며, 음식 정보에 1인분에 대한 단위량이 미리 설정된 경우에는 단위 음식량 설정부(420)가 생략될 수 있다.Here, in the food classification unit 400, a manager who manages the food recommendation device may set and store each food category and unit food amount. However, if the main food, sub food, and additional food are already assigned to the collected food intake data, the food category setting unit 410 may be omitted, and if the unit amount for one serving is set in advance in the food information, Unit food amount setting unit 420 may be omitted.

조건 설정부(500)는 음식 추천 장치가 사용자에게 음식을 추천할 때, 고려해야할 각종 제약 사항을 설정한다. 여기서 제약 사항에는 영양 성분에 따른 제약 사항과 더불어 사용자의 기호에 따른 사용자 조건이 함께 설정될 수 있다.The condition setting unit 500 sets various constraints to be considered when the food recommendation device recommends food to the user. Here, user conditions according to the user's taste may be set together with restrictions according to nutritional components.

조건 설정부(500)는 기본 조건 설정부(510) 및 사용자 조건 설정부(520)를 포함할 수 있다.The condition setting unit 500 may include a basic condition setting unit 510 and a user condition setting unit 520 .

기본 조건 설정부(510)는 음식의 영양 성분을 고려한 조건을 설정한다. 여기서는 일 예로 기본 조건 설정부(510)가 나트륨 섭취량(na), 열량(en), 포화 지방 비율(sfa), 지방 비율(fat), 탄수화물 비율(carb) 및 비타민 C 함량(vitc)을 기본적으로 고려하는 것으로 가정한다. 이 경우, 나트륨 섭취량(na)은 2000mg 이하가 되도록 설정되고, 열량(en)은 2000kcal 이하, 포화 지방 비율(sfa)은 7% 이하, 지방 비율(fat)은 15 ~ 30% 사이, 탄수화물 비율(carb)은 55 ~ 65% 사이 및 비타민 C 함량(vitc)은 50 ~ 1000mg 이 되도록 조건을 설정할 수 있다. 다만 이는 단순한 일 예로서 영양 성분의 종류와 갯수는 다양하게 변경될 수 있다.The basic condition setting unit 510 sets conditions considering nutritional components of food. Here, as an example, the basic condition setting unit 510 basically sets sodium intake (na), calories (en), saturated fat ratio (sfa), fat ratio (fat), carbohydrate ratio (carb), and vitamin C content (vitc). assumed to be taken into account. In this case, the sodium intake (na) is set to be 2000 mg or less, the calorie (en) is 2000 kcal or less, the saturated fat percentage (sfa) is 7% or less, the fat percentage (fat) is between 15 and 30%, and the carbohydrate percentage ( carb) is between 55 and 65% and the vitamin C content (vitc) is 50 to 1000 mg. However, this is a simple example and the type and number of nutritional ingredients may be variously changed.

또한 기본 조건 설정부(510)는 음식의 구성이 통상적인 식사의 형태를 유지할 수 있도록 추가적인 조건을 설정할 수 있다. 예로서 기본 조건 설정부(510)는 음식 카테고리에서 메인 음식으로 분류된 음식이 기지정된 중량(예를 들면 700g) 이상 포함되도록 설정할 수 있다. 이는 반찬이나 채소 등과 같은 서브 음식만이 과도하게 제공되고 메인 음식이 제공되지 않아 사용자가 추천되는 음식을 신뢰하지 못하는 경우를 방지하기 위함이다. 그리고 과일과 같은 특정 종류의 음식의 제공량이 미리 지정될 수도 있다.In addition, the basic condition setting unit 510 may set additional conditions so that the composition of food can maintain the form of a normal meal. For example, the basic condition setting unit 510 may set food classified as main food in the food category to include a predetermined weight (eg, 700 g) or more. This is to prevent a case in which the user does not trust the recommended food because only sub food such as side dishes or vegetables are excessively provided and main food is not provided. In addition, the serving amount of a particular type of food, such as fruit, may be pre-determined.

사용자 조건 설정부(520)는 사용자 단말(10)로부터 인가되는 선호 및 비선호 음식 정보와 질병 등에 따른 금지 음식 정보에 따라 반드시 포함하거나 제외할 음식에 대한 조건을 설정할 수 있다. 일 예로 사용자는 추천 음식에 김치가 반드시 포함되도록 설정하거나, 포함되지 않도록 설정할 수 있다.The user condition setting unit 520 may set conditions for foods to be necessarily included or excluded according to preferred and non-preferred food information and forbidden food information according to disease, etc., applied from the user terminal 10 . For example, the user may set kimchi to be necessarily included in the recommended food or set not to be included.

도 5는 도 2의 음식 분류부의 개인 취향 설정 일 예를 나타낸다.5 shows an example of personal taste setting of the food classification unit of FIG. 2 .

도 5에서는 김치가 반드시 포함되도록 조건을 설정한 경우의 예를 나타내며, 이 경우 단순히 배추 김치만을 포함하는 것이 아니라 음식 종류에서 김치로 분류되는 다양한 김치 중 적어도 하나가 포함될 수 있도록, 오른쪽 칼럼에서와 같이 김치로 분류되는 모든 음식이 1로 활성화되었음을 알 수 있다.5 shows an example in which conditions are set so that kimchi must be included. In this case, as shown in the right column, at least one of various kimchi classified as kimchi in the food category is included, rather than simply including cabbage kimchi. It can be seen that all foods classified as kimchi are activated as 1.

여기서 반드시 포함하거나 제외할 음식이 아닌 식재료가 인가된 경우에는 음식 식재료 관계 그래프 획득부(220)가 획득한 음식-식재료 이분 그래프를 이용하여 해당 식재료가 포함된 음식을 확인할 수 있다.Here, when an ingredient other than a food to be necessarily included or excluded is authorized, the food including the corresponding ingredient can be identified using the food-ingredient bipartite graph acquired by the food ingredient relationship graph acquisition unit 220 .

또한 사용자 조건 설정부(520)는 사용자의 건강 상태에 따른 개인 영양 조건이 추가로 설정될 수도 있으며, 사용자 조건 설정부(520)에서 설정된 조건이 기본 조건 설정부(510)에서 설정된 조건과 중복되는 경우 사용자 조건 설정부(520)에서 설정된 조건을 우선하도록 조건을 수정할 수 있다.In addition, the user condition setting unit 520 may additionally set personal nutritional conditions according to the user's health condition, and the conditions set by the user condition setting unit 520 overlap with the conditions set by the basic condition setting unit 510. In this case, the conditions set in the user condition setting unit 520 may be prioritized.

음식 추천부(600)는 음식 선택부(300)의 대표 음식 선택부(310)에서 추출한 기지정된 개수의 대표 음식과 조합 음식 선택부(320)에서 각 대표 음식에 따라 추출한 기지정된 개수의 음식이 조합된 음식 세트를 다수개로 인가받고, 조건 설정부(500)에서 설정된 조건에 부합되는 음식 세트와 음식 세트에 포함된 음식량을 결정하여 추천 음식으로서 사용자 단말(10)로 전달한다. 여기서 음식 세트의 개수는 선택된 대표 음식의 개수와 동일할 수 있다.The food recommendation unit 600 has a predetermined number of representative foods extracted from the representative food selection unit 310 of the food selection unit 300 and a predetermined number of foods extracted according to each representative food from the combination food selection unit 320. A plurality of combined food sets are authorized, and a food set meeting a condition set in the condition setting unit 500 and an amount of food included in the food set are determined and transmitted to the user terminal 10 as recommended food. Here, the number of food sets may be the same as the number of selected representative foods.

음식 추천부(600)는 음식 세트에 포함된 음식들의 AAI와 제공량을 기반으로 선형 계획법에 기초하여 음식 세트를 정렬하고, 상위에 정렬된 음식 세트 중에서 조건 설정부(500)에서 설정된 조건에 만족하는 기지정된 개수(예를 들면 3개)의 음식 세트를 추천 음식으로 결정한다.The food recommendation unit 600 arranges the food set based on the linear programming method based on the AAI and serving amounts of the foods included in the food set, and satisfies the condition set in the condition setting unit 500 among the food sets arranged on the top. A food set of a predetermined number (for example, three) is determined as a recommended food.

음식 추천부(600)는 다수의 음식 세트 각각에 대해 포함된 각 음식의 AAI를 스코어(s)로 지정하고, 각 음식의 제공량을 변수(x)로 설정하여 선형 함수를 구성하고, 선형 함수의 연산값이 최대가 되도록 음식 제공량(x)을 지정된 범위 내에서 가변하여 각 음식 세트에서의 음식 제공량을 최적화한다. 즉 음식 추천부(600)는 음식 세트에 포함된 음식들의 연관성을 이용하여 각 음식의 제공량을 최적화한다.The food recommendation unit 600 designates the AAI of each food included in each of a plurality of food sets as a score (s), configures a linear function by setting the serving amount of each food as a variable (x), and constructs a linear function The food serving amount (x) is varied within a specified range so that the calculated value is maximized to optimize the food serving amount in each food set. That is, the food recommendation unit 600 optimizes the serving amount of each food by using the correlation between the foods included in the food set.

만일 음식 세트에 포함된 음식의 개수가 n개일 때, 음식 세트의 각 음식 제공량은 수학식 3에 따라 최적화될 수 있다.If the number of foods included in the food set is n, the serving amount of each food in the food set can be optimized according to Equation 3.

Figure pat00003
Figure pat00003

여기서 s1 ~ sn 은 음식 세트에 포함된 n개의 음식 각각의 스코어를 나타내고, x1 ~ xn 은 n개의 음식 각각의 제공량을 나타낸다.Here, s 1 to s n represent the scores of each of the n foods included in the food set, and x 1 to x n represent the serving amounts of each of the n foods.

이때, 음식 제공량(x)은 단위량을 기초로 0인분, 1인분 및 2인분(0, 1, 2)으로 이산된 단위로 제공되도록 제한될 수 있다. 이는 음식 제공량(x)이 제한되지 않는 경우, 수학식 3의 연산 함수의 연산값이 사용자가 식사 중에 섭취할 수 있는 상식적인 범위의 양을 초과할 수 있기 때문이다. 즉 특정 음식이 한끼에 2인분을 초과하여 제공되지 않도록 제한할 수 있다.At this time, the amount of food to be provided (x) may be limited to be provided in discrete units such as 0 servings, 1 serving, and 2 servings (0, 1, 2) based on the unit amount. This is because, when the amount of food provided (x) is not limited, the calculated value of the calculation function of Equation 3 may exceed the amount within a common sense range that the user can consume during a meal. That is, certain foods can be restricted so that they are not provided in excess of two servings per meal.

다만 일부 음식의 경우에는 다수의 사람들이 음식을 나누어서 섭취하는 것을 기본으로 1회 제공량이 결정되어 있으므로, 음식 제공량(x)이 0인분, 1인분 및 2인분(0, 1, 2)이 아닌 0인분, 0.5 인분, 1 인분, 1.5인분(0, 0.5, 1, 1.5)의 이산된 단위로 제공되도록 설정할 수도 있다.However, in the case of some foods, since the serving amount is determined based on the fact that many people share the food and consume it, the food serving amount (x) is 0, not 0 servings, 1 serving, and 2 servings (0, 1, 2). It can also be set to be served in discrete units of servings, 0.5 servings, 1 serving, 1.5 servings (0, 0.5, 1, 1.5).

수학식 3에 따라 다수의 음식 세트 각각에 대한 음식 제공량의 최적화가 수행되면, 최적화된 연산값에 따라 다수의 음식 세트를 정렬한다. 즉 최적화된 제공량에 기초하여 계산되는 음식 세트의 연관성이 높은 순서로 음식 세트를 정렬한다.When the amount of food provided for each of the plurality of food sets is optimized according to Equation 3, the plurality of food sets are sorted according to the optimized calculation value. That is, the food sets are arranged in an order of high correlation among the food sets calculated based on the optimized serving amount.

그리고 최적화된 연산값에 따른 음식 제공량이 결정된 음식 세트의 음식 조합이 조건 설정부(500)에서 설정된 조건에 만족하는지 확인한다. 이때 기본 조건 설정부(510)에서 설정된 영양 조건을 만족하는지 여부는 수학식 4에 따라 계산될 수 있다.In addition, it is checked whether the food combination of the food set in which the food serving amount is determined according to the optimized calculation value satisfies the condition set by the condition setting unit 500. At this time, whether or not the nutritional conditions set in the basic condition setting unit 510 are satisfied may be calculated according to Equation 4.

Figure pat00004
Figure pat00004

여기서 am1 ~ amn 은 n개의 음식 각각의 단위량에서의 특정 영양 성분(m)을 나타내고, bmu 와 bml 은 각각 특정 영양 성분(m)에 대해 설정된 상한 및 하한 조건을 나타낸다.Here, a m1 to a mn represent specific nutritional components (m) in each unit amount of n foods, and b mu and b ml represent upper and lower limit conditions set for specific nutritional components (m), respectively.

즉 수학식 4는 음식 세트에 포함된 음식들의 최적 제공량(x1 ~ xn)에 따른 특정 영양 성분(m)이 상한 및 하한 조건(bmu, bml)을 초과하는지 여부를 판별한다.That is, Equation 4 determines whether a specific nutritional component (m) according to the optimal serving amount (x 1 to x n ) of foods included in the food set exceeds the upper and lower limit conditions (b mu , b ml ).

다만 일반적으로 사용자들이 섭취해야하는 영양 성분은 1회 식사가 아닌 1일 단위로 설정된다. 따라서 음식 추천부(600)는 사용자가 해당일의 이전 식사시에 섭취한 음식에 의해 제공된 영양 성분을 추가로 고려하여 상한 및 하한 조건(bmu, bml)을 조절할 수 있다. 즉 1일 단위에서 영양 성분이 부족하거나 초과되지 않도록 상한 및 하한 조건(bmu, bml)을 변경할 수 있다.However, in general, the nutritional components that users should consume are set per day, not per meal. Therefore, the food recommendation unit 600 may adjust the upper and lower limit conditions (b mu , b ml ) by additionally considering nutritional components provided by food consumed by the user at the previous meal of the corresponding day. That is, the upper and lower limit conditions (b mu , b ml ) may be changed so that nutritional components are not insufficient or exceeded on a daily basis.

이후 음식 추천부(600)는 최적화된 연산값에 따른 음식 제공량이 결정된 음식 세트에서 조건 설정부(500)에서 설정된 조건에 만족하는 음식 세트를 선택하여 추천 음식으로서 사용자 단말로 전달한다. 이때 조건 설정부(500)에서 설정된 조건에 만족하는 음식 세트가 다수개인 경우, 정렬된 순서, 즉 최적화된 연산값이 큰 음식 세트 순서로 기지정된 개수의 음식 세트를 선택하여 사용자 단말로 전송할 수 있다.Thereafter, the food recommendation unit 600 selects a food set that satisfies the condition set by the condition setting unit 500 from the food set for which the amount of food to be provided according to the optimized calculation value is determined, and transmits the selected food set to the user terminal as recommended food. At this time, if there are a plurality of food sets satisfying the condition set by the condition setting unit 500, a predetermined number of food sets may be selected in the sorted order, that is, in the order of food sets having a large optimized calculation value, and transmitted to the user terminal. .

추가적으로 본 실시예에서 음식 추천부(600)는 설정된 조건에 의해 추천 가능한 음식 세트가 매우 제한되거나 선택되지 않는 경우를 방지하기 위해 조건 완화 패널티를 추가로 적용할 수도 있다.Additionally, in this embodiment, the food recommendation unit 600 may additionally apply a condition relaxation penalty to prevent a case in which a set of recommended foods is very limited or not selected according to set conditions.

조건 완화 패널티는 각 영양 성분(m)의 조건 초과량(em)에 대해 미리 지정된 영양 성분별 패널티 계수(pm)를 가중하여 설정될 수 있으며, 이 경우 수학식 3의 선형 함수는 영양 성분에 따른 패널티를 차감하여 수학식 5로 변형될 수 있다.The condition relaxation penalty can be set by weighting the pre-specified penalty coefficient (p m ) for each nutritional component (m ) over the condition (e m ) of each nutritional component (m). In this case, the linear function of Equation 3 is It can be transformed into Equation 5 by subtracting the penalty according to

Figure pat00005
Figure pat00005

그리고 음식 추천부(600)는 수학식 5에 따라 각 음식 세트에서 최적의 음식 제공량을 결정하고, 결정된 최적의 음식 제공량에 따른 연산값을 기초로 음식 세트를 정렬하여 추천 음식을 결정할 수 있다.Also, the food recommendation unit 600 may determine an optimal serving amount of food in each food set according to Equation 5, and arrange the food sets based on calculation values according to the determined optimal serving amount of food to determine recommended foods.

결과적으로 본 실시예에 따른 음식 추천 장치는 사용자가 이전 식사 시에 섭취한 음식으로부터 연관성이 높은 대표 음식을 추출하고, 추출된 대표 음식과 함께 섭취하기 좋은 다수의 조합 음식을 추출하여 음식 세트를 구성하고 구성된 음식 세트에서 각 음식의 제공량을 결정하여 사용자에게 추천할 수 있다. 또한 음식 세트에 따른 영양 성분과 같은 기본 조건과 사용자 개인이 설정한 사용자 조건을 만족하는 음식 세트를 선택하도록 함으로써 사용자의 기호와 영양을 고려한 음식 추천이 가능하도록 한다.As a result, the food recommendation device according to the present embodiment configures a food set by extracting a representative food with a high correlation from the food consumed by the user at a previous meal, and extracting a plurality of combination foods that are good to be consumed together with the extracted representative food. It is possible to determine the serving amount of each food from the configured food set and recommend it to the user. In addition, it is possible to recommend food considering the user's taste and nutrition by allowing the user to select a food set that satisfies basic conditions such as nutritional components according to the food set and user conditions set by the individual user.

도 6은 본 발명의 일 실시예에 따른 영양기반 음식 추천 방법을 나타낸다.6 shows a nutrition-based food recommendation method according to an embodiment of the present invention.

도 1 내지 도 5를 참조하여, 도 6의 음식 추천 방법을 설명하면, 우선 음식 섭취 데이터를 수집하여 획득한다(S11). 여기서 음식 섭취 데이터에는 다수의 사람들이 섭취한 음식 및 음식에 이용된 식재료에 대한 정보가 포함되며, 예로서 하루 동안의 식사 시간과 식사 시 섭취한 음식의 종류, 각 음식에 사용된 식재료의 중량 및 음식별 영양 성분 정보가 포함될 수 있다.Referring to the food recommendation method of FIG. 6 with reference to FIGS. 1 to 5 , first, food intake data is collected and obtained (S11). Here, the food intake data includes information on the food consumed by a large number of people and the ingredients used in the food, for example, the meal time during the day, the type of food consumed at the time of meal, the weight of the food material used for each food, and Nutrient component information for each food may be included.

그리고 음식 섭취 데이터에 대한 정보가 수집되면, 사용자 각각이 기지정된 기간 동안의 식사와 식사 시에 섭취한 음식의 종류와 양에 대한 정보가 포함된 사용자 식사 정보를 획득한다(S12). 사용자 식사 정보는 다수의 사용자 단말(10)로부터 전송되어 획득될 수 있다.Then, when information on food intake data is collected, user meal information including information on the type and amount of food consumed during each user's meal for a predetermined period of time and during the meal is obtained (S12). User meal information may be transmitted and obtained from a plurality of user terminals 10 .

음식 섭취 데이터와 사용자 식사 정보가 획득되면, 획득된 사용자 식사 정보와 음식 섭취 데이터를 기반으로 사용자와 음식, 음식과 식사 및 음식과 식재료 사이의 관계를 분석하기 위한 이분 그래프를 획득한다(S13). 이때, 음식과 식재료 사이의 관계를 나타내는 음식-식재료 이분 그래프 및 음식과 식사 사이의 관계를 음식-식사 이분 그래프로 구분하여 획득될 수 있으며, 사용자와 음식 사이의 관계를 나타내는 사용자-음식 이분 그래프가 추가로 획득될 수 있다.When the food intake data and user meal information are acquired, a bipartite graph is obtained to analyze the relationship between the user and food, food and meal, and food and ingredients based on the obtained user meal information and food intake data (S13). At this time, it can be obtained by dividing the food-food bipartite graph representing the relationship between food and food and the food-meal bipartite graph representing the relationship between food and food, and the user-food bipartite graph representing the relationship between the user and food can be obtained additionally.

음식-식재료 이분 그래프와 음식-식사 이분 그래프가 획득되면, 사용자 식사 정보를 기반으로 사용자가 이전 기지정된 기간 동안 섭취한 음식을 기초로 음식-식재료 이분 그래프를 이용하여 공통된 식재료를 갖는 연관 음식을 탐색하고, 두 음식 사이의 연관성을 식재료의 비중을 고려한 수학식 2의 수정 AAI로 계산하여 높은 수정 AAI값을 갖는 기지정된 개수의 음식을 대표 음식으로 선택한다(S14).When the food-ingredient bipartite graph and food-meal bipartite graph are obtained, based on the user's meal information, based on the food consumed by the user for a pre-determined period, search for related foods having common ingredients using the food-ingredient bipartite graph. And, the correlation between the two foods is calculated by the modified AAI of Equation 2 considering the specific gravity of the ingredients, and a predetermined number of foods having a high modified AAI value are selected as representative foods (S14).

기지정된 개수의 대표 음식 각각을 기초로 음식-식사 이분 그래프를 이용하여 사람들이 해당 음식과 함께 섭취한 연관 음식을 탐색하고, 두 음식 사이의 연관성을 AAI로 계산하여 높은 AAI값을 갖는 기지정된 개수의 음식을 각 대표 음식에 대한 조합 음식으로 선택한다(S15).Based on each of a predetermined number of representative foods, a food-meal dichotomy graph is used to search for related foods that people consume with the corresponding food, and the relationship between the two foods is calculated with AAI to determine a predetermined number of high AAI values. The food of each is selected as a combination food for each representative food (S15).

기지정된 개수의 대표 음식과 각 대표 음식에 대한 기지정된 개수의 조합 음식이 선택되면, 대표 음식과 대응하는 조합 음식을 음식 세트로 설정한다(S16).When a predetermined number of representative foods and a predetermined number of combination foods for each representative food are selected, the representative food and the corresponding combination food are set as a food set (S16).

한편, 이와는 별도로 음식 섭취 데이터와 사용자 식사 정보가 획득되면, 각 음식을 메인 음식, 서브 음식 및 부가 음식으로 음식 카테고리를 분류하여 카테고리에 따른 구분자를 부여한다(S21). 각 음식의 1회 제공량을 기준으로 단위량을 설정한다(S22).Meanwhile, separately from this, when food intake data and user meal information are obtained, food categories are classified into main food, sub food, and additional food, and a separator according to the category is assigned (S21). A unit amount is set based on the serving amount of each food (S22).

다만 수집된 음식 섭취 데이터에 메인 음식, 서브 음식 및 부가 음식과 같은 음식 카테고리가 미리 구분된 경우, 카테고리 분류 단계(S21)는 생략될 수 있다. 또한 음식 섭취 데이터에 음식별 단위량이 미리 설정된 경우, 음식 단위량 설정 단계(S22) 또한 생략될 수 있다.However, if food categories such as main food, sub food, and additional food are pre-classified in the collected food intake data, the category classification step (S21) may be omitted. In addition, if the unit amount for each food is set in advance in the food intake data, the food unit amount setting step (S22) may also be omitted.

그리고 추천되는 음식 세트에 대한 기본 조건이 설정될 수 있다(S23). 여기서 기본 조건에는 음식 세트로 제공되어야 할 각종 영양 성분이나 카테고리에 따른 음식량과 필수 포함 음식 등이 설정될 수 있다.In addition, basic conditions for recommended food sets may be set (S23). Here, as the basic condition, various nutritional components to be provided as a food set, amount of food according to category, and essential food may be set.

또한 사용자 개인의 취향이나 건강 상태에 따른 사용자 조건이 추가로 설정된다(S24). 여기서 사용자 조건에는 사용자의 선호 및 비선호 음식과 건강 상태에 따른 영양 성분별 필요량 등이 포함될 수 있다. 만일 기본 조건과 사용자 조건이 동일한 내용에 대한 조건으로 설정되는 경우, 사용자 조건이 우선 설정될 수 있다.In addition, user conditions according to the user's personal taste or health condition are additionally set (S24). Here, the user conditions may include the user's preferred and non-preferred food and the required amount of each nutritional component according to the user's health condition. If the basic condition and the user condition are set as conditions for the same content, the user condition may be set first.

여기서 기본 조건의 경우, 관리자에 의해 사전에 미리 설정될 수 있으며, 사용자 조건 또한 사용자에 의해 미리 설정될 수 있으며, 이 경우, 기본 조건 설정 단계와 사용자 조건 설정 단계는 생략될 수 있다.Here, the basic conditions may be set in advance by the administrator, and the user conditions may also be set in advance by the user. In this case, the basic condition setting step and the user condition setting step may be omitted.

그리고 음식 세트가 설정되면, 설정된 각 음식 세트에 포함된 음식들의 AAI값과 제공량을 기반으로, 음식들 각각의 제공량을 최적화한다(S17). 이때, 제공량을 단위량에 따른 이산적인 변수로 설정하여 기지정된 범위 내에서 가변하면서 수학식 3으로 나타나는 선형 함수의 연산값이 최대화되는 제공량을 계산함으로써, 음식 제공량을 최적화할 수 있다.When the food set is set, the serving amount of each food is optimized based on the AAI value and the serving amount of the food included in each set food set (S17). At this time, the serving amount can be optimized by setting the serving amount to a discrete variable according to the unit amount and calculating the serving amount at which the calculated value of the linear function represented by Equation 3 is maximized while varying within a predetermined range.

이후 최적화된 음식 제공량을 기초로 다수의 음식 세트 각각이 설정된 기본 조건 및 사용자 조건을 만족하는지 판별하여 조건을 만족하는 음식 세트를 선별한다(S18).Then, based on the optimized amount of food provided, it is determined whether each of the plurality of food sets satisfies the set basic condition and user condition, and a food set satisfying the condition is selected (S18).

조건을 만족하는 음식 세트가 존재하면, 조건을 만족하는 음식 세트를 추천 음식으로 사용자에게 추천한다(S19). 이때 조건을 만족하는 음식 세트 중 선형 함수의 연산값이 큰 순서로 기지정된 기준 개수의 음식 세트를 사용자에게 추천할 수 있다. 그러나 만일 조건을 만족하는 음식 세트가 존재하지 않거나 조건을 만족하는 음식 세트의 개수가 기준 개수 미만이면, 각 영양 성분(m)의 조건 초과량(em)에 대해 미리 지정된 영양 성분별 패널티 계수(pm)를 가중하여 누적한 조건 완화 패널티를 수학식 3의 선형 함수에 추가로 반영하여 수학식 5와 같이 변형된 선형 함수를 이용한다. 이는 음식 세트의 음식 제공량이 요구되는 조건을 만족시키지 못하여 패널티가 적용됨에도 높은 연산값을 나타내는 음식 세트가 사용자에게 추천될 수 있도록 하여 사용자가 추천된 음식에 대한 불만을 일정 수준 해소할 수 있도록 하기 위함이다.If there is a food set that satisfies the condition, the food set that satisfies the condition is recommended to the user as recommended food (S19). In this case, among the food sets satisfying the condition, food sets of a predetermined reference number may be recommended to the user in the order of increasing calculated values of the linear function. However, if there is no food set that satisfies the condition or the number of food sets that satisfy the condition is less than the standard number, the penalty coefficient ( The condition relaxation penalty accumulated by weighting p m ) is additionally reflected in the linear function of Equation 3, and the modified linear function is used as shown in Equation 5. This is to allow the user to be recommended a food set with a high computational value even though a penalty is applied because the amount of food provided in the food set does not satisfy the required condition, so that the user can resolve the complaint about the recommended food to a certain level. am.

본 발명에 따른 방법은 컴퓨터에서 실행시키기 위한 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 여기서 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 또한 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하며, ROM(판독 전용 메모리), RAM(랜덤 액세스 메모리), CD(컴팩트 디스크)-ROM, DVD(디지털 비디오 디스크)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함할 수 있다.The method according to the present invention may be implemented as a computer program stored in a medium for execution on a computer. Here, computer readable media may be any available media that can be accessed by a computer, and may also include all computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, including read-only memory (ROM) dedicated memory), random access memory (RAM), compact disk (CD)-ROM, digital video disk (DVD)-ROM, magnetic tape, floppy disk, optical data storage device, and the like.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.Although the present invention has been described with reference to the embodiments shown in the drawings, this is only exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom.

따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.

10: 사용자 단말 20: 의료 단말
30: 데이터베이스 서버 40: 음식 추천 서버
100: 정보 수집부 110: 사용자 식사 정보 획득부
120: 식품 섭취 정보 수집부 200: 관계 분석부
210: 사용자 음식 관계 그래프 획득부
220: 음식 식재료 관계 그래프 획득부
230: 음식 식사 관계 그래프 획득부
300: 음식 선택부 310: 대표 음식 선택부
320: 조합 음식 선택부 400: 음식 분류부
410: 음식 카테고리 설정부 420: 단위 음식량 설정부
500: 조건 설정부 510: 기본 조건 설정부
520: 사용자 조건 설정부 600: 음식 추천부
10: user terminal 20: medical terminal
30: database server 40: food recommendation server
100: information collection unit 110: user meal information acquisition unit
120: food intake information collection unit 200: relationship analysis unit
210: user food relationship graph acquisition unit
220: food ingredient relationship graph acquisition unit
230: food meal relationship graph acquisition unit
300: food selection unit 310: representative food selection unit
320: combination food selection unit 400: food classification unit
410: food category setting unit 420: unit food amount setting unit
500: condition setting unit 510: basic condition setting unit
520: user condition setting unit 600: food recommendation unit

Claims (18)

사용자의 이전 기지정된 기간 동안 식사 시 섭취한 음식에 대한 정보인 사용자 식사 정보와 다수의 사람들의 식사 시 섭취하는 음식과 각 음식의 식재료에 대한 정보가 포함된 음식 섭취 데이터를 수집하여 획득하는 정보 수집부;
상기 음식 섭취 데이터를 기반으로 음식과 식재료 사이의 관계를 분석하기 위한 음식-식재료 이분 그래프와 음식과 식사 사이의 관계를 분석하기 위한 음식-식사 이분 그래프를 획득하는 관계 분석부;
상기 사용자 식사 정보에서 획득된 음식을 기준으로 상기 음식-식재료 이분 그래프에서 연관된 음식을 탐색하여 연관성이 높은 기지정된 개수의 대표 음식을 선택하고, 상기 대표 음식 각각을 기준으로 상기 음식-식사 이분 그래프에서 연관된 음식을 탐색하여 대표 음식 각각에 대응하는 높은 연관성을 갖는 기지정된 개수의 조합 음식을 선택하여 대표 음식과 조합 음식으로 구성되는 음식 세트를 획득하는 음식 선택부; 및
상기 음식 세트에 포함된 음식들의 연관성에 기초하여 각 음식의 제공량을 최적화하고, 각 음식의 최적 제공량에 기초하여 계산되는 전체 연관성이 높은 기지정된 개수의 음식 세트를 선택하여 추천하는 음식 추천부를 포함하는 음식 추천 장치.
Information collection obtained by collecting user meal information, which is information about the user's previous food consumption during a pre-specified period, and food intake data, which includes information about the food consumed by a large number of people and the ingredients of each meal. wealth;
a relationship analysis unit that acquires a food-ingredient bipartite graph for analyzing a relationship between food and ingredients and a food-meal bipartite graph for analyzing a relationship between food and meal based on the food intake data;
Based on the food obtained from the user's meal information, search for related foods in the food-ingredient bipartite graph to select a predetermined number of representative foods with high correlation, and based on each of the representative foods, in the food-meal bipartite graph. a food selection unit for obtaining a food set consisting of the representative food and the combination food by searching for related foods and selecting a predetermined number of combination foods having a high correlation corresponding to each of the representative foods; and
A food recommendation unit that optimizes the serving amount of each food based on the relevance of the foods included in the food set and selects and recommends a predetermined number of food sets having a high total correlation calculated based on the optimal serving amount of each food Food recommendation device.
제1항에 있어서, 상기 음식 선택부는
상기 사용자 식사 정보에서 획득된 음식을 기준으로 상기 음식-식재료 이분 그래프에서 공통된 식재료를 이용하는 연관 음식을 탐색하고, 기준이 된 음식과 연관 음식과의 연관성을 공통으로 포함된 식재료의 비중을 고려하여 수정한 수정 아다믹 아다르 인덱스(Adamic-Adar Index: 이하 AAI)로 계산하여 높은 수정 AAI를 갖는 기지정된 개수의 연관 음식을 대표 음식을 선택하는 대표 음식 선택부; 및
상기 대표 음식 각각을 기준으로 상기 음식-식사 이분 그래프에서 동일 식사에서 제공된 음식인 연관 음식을 탐색하고, 각 대표 음식과 연관 음식과의 연관성을 AAI로 계산하여 높은 AAI를 갖는 기지정된 개수의 연관 음식을 조합 음식을 선택하여 대표 음식과 조합 음식으로 구성되는 음식 세트를 획득하는 조합 음식 선택부를 포함하는 음식 추천 장치.
The method of claim 1, wherein the food selection unit
Based on the food obtained from the user's meal information, search for related foods using common ingredients in the food-ingredient bipartite graph, and modify the relationship between the standard food and the related food in consideration of the proportion of commonly included ingredients. a representative food selection unit for selecting a representative food from a predetermined number of related foods having a high modified AAI calculated by a modified Adamic-Adar Index (hereinafter referred to as AAI); and
Based on each of the representative foods, a related food that is a food served at the same meal is searched for in the food-meal dichotomy graph, and the association between each representative food and the related food is calculated by AAI, and a predetermined number of related foods having a high AAI are calculated. A food recommendation device including a combination food selection unit for selecting a combination food to obtain a food set consisting of the representative food and the combination food.
제2항에 있어서, 상기 관계 분석부는
상기 음식 섭취 데이터에서 다수의 음식과 다수의 식재료를 서로 다른 2개의 카테고리로 분류하고, 다수의 음식 각각에 포함된 식재료를 서로 연결하여 상기 음식-식재료 이분 그래프를 획득하는 음식 식재료 관계 그래프 획득부; 및
상기 음식 섭취 데이터에서 식사와 음식을 서로 다른 2개의 카테고리로 분류하고, 각 식사 시에 섭취한 음식을 서로 연결하여 상기 음식-식사 이분 그래프를 획득하는 음식 식사 관계 그래프 획득부를 포함하는 음식 추천 장치.
The method of claim 2, wherein the relationship analysis unit
a food ingredient relationship graph acquisition unit configured to classify a plurality of foods and a plurality of ingredients into two different categories in the food intake data, and acquire the food-ingredient bipartite graph by connecting ingredients included in each of the plurality of foods; and
and a food-meal relationship graph acquisition unit configured to classify meals and foods into two different categories from the food intake data and to obtain the food-meal dichotomy graph by connecting foods consumed at each meal.
제2항에 있어서, 상기 대표 음식 선택부는
상기 수정 AAI(mAAI)를 수학식
Figure pat00006

(여기서 up 는 음식-식재료 이분 그래프에서 기준이 되는 음식과 연관 음식을 나타내고, v는 식재료, Am은 식재료(v)가 포함된 모든 음식들 내에서 식재료(v)의 평균 중량을 나타내고, mp, mq는 각각 음식(up, uq)에 포함된 식재료(v)의 중량을 나타낸다.)
에 따라 계산하는 음식 추천 장치.
The method of claim 2, wherein the representative food selection unit
The modified AAI (mAAI) is expressed as
Figure pat00006

(Where u p represents the standard food and related food in the food-ingredient bipartite graph, v is the food ingredient, Am represents the average weight of the food ingredient (v) within all foods including the food ingredient (v), m p , m q represent the weight of ingredients (v) included in food (u p , u q ), respectively.)
Food recommendation device that calculates according to.
제2항에 있어서, 상기 조합 음식 선택부는
상기 AAI를 수학식
Figure pat00007

(여기서 up 는 음식-식사 이분 그래프에서 기준이 되는 음식과 연관 음식을 나타내고, v는 식사를 나타낸다.)
에 따라 계산하는 음식 추천 장치.
The method of claim 2, wherein the combination food selection unit
Equation above AAI
Figure pat00007

(Where u p represents the standard food and related food in the food-meal dichotomy graph, and v represents the meal.)
Food recommendation device that calculates according to.
제3항에 있어서, 상기 음식 추천부는
상기 음식 세트에 포함된 음식들의 연관성의 합으로 계산되는 전체 연관성이 최대가 되도록 각 음식의 제공량을 최적화하고, 미리 지정된 영양 성분별로 연산된 음식별 최적 제공량을 적용하여 음식별 최적 제공량에 따른 각 음식 세트의 영양 성분량을 계산하며, 계산된 영양 성분량이 기지정된 영양 성분별 조건을 만족하면서 전체 연관성이 가장 높은 기지정된 개수의 음식 세트를 선택하여 추천하는 음식 추천 장치.
The method of claim 3, wherein the food recommendation unit
The serving amount of each food is optimized so that the total correlation calculated as the sum of the correlations of the foods included in the food set is maximized, and the optimal serving amount for each food calculated for each predetermined nutritional component is applied to each food according to the optimal serving amount for each food. A food recommendation device that calculates the amount of nutritional components of a set, selects and recommends a predetermined number of food sets having the highest total correlation while satisfying the predetermined nutritional component-specific conditions.
제6항에 있어서, 상기 음식 추천부는
선형 계획법에 따라 상기 대표 음식 각각과 상기 조합 음식 사이의 AAI를 스코어(s)로 지정하고, 각 음식의 제공량을 각 음식이 제공되는 단위량에 따른 변수(x)로 설정하여 구성되어 음식 세트의 전체 연관성을 나타내는 선형 함수의 연산값이 최대가 되도록 수학식
Figure pat00008

을 만족하는 변수(x)를 기지정된 범위 내에서 탐색하여 각 음식별 최적 제공량을 연산하는 음식 추천 장치.
The method of claim 6, wherein the food recommendation unit
According to the linear programming method, the AAI between each of the representative foods and the combination food is designated as a score (s), and the serving amount of each food is set as a variable (x) according to the unit amount provided for each food. Equation so that the calculated value of the linear function representing the total correlation is maximized
Figure pat00008

A food recommendation device that calculates an optimal serving amount for each food by searching for a variable (x) that satisfies within a predetermined range.
제3항에 있어서, 상기 음식 추천부는
기지정된 영양 성분별 조건과의 차이에 따라 계산되는 조건 완화 패널티가 적용된 전체 연관성을 계산하고, 상기 조건 완화 패널티가 적용된 전체 연관성이 최대가 되도록 각 음식의 제공량을 최적화하고, 최적 제공량에 따른 전체 연관성이 가장 높은 기지정된 개수의 음식 세트를 선택하여 추천하는 음식 추천 장치.
The method of claim 3, wherein the food recommendation unit
Calculate the total relevance to which the condition relief penalty, which is calculated according to the difference from the condition for each predetermined nutritional component, is applied, optimize the serving amount of each food so that the total relevance to which the condition relief penalty is applied is maximized, and the total relevance according to the optimal serving amount A food recommendation device that selects and recommends the highest predetermined number of food sets.
제8항에 있어서, 상기 음식 추천부는
선형 계획법에 따라 상기 대표 음식 각각과 상기 조합 음식 사이의 AAI를 스코어(s)로 지정하고, 각 음식의 제공량을 각 음식이 제공되는 단위량에 따른 변수(x)로 설정하며, 각 영양 성분(m)의 조건 초과량(em)에 대해 미리 지정된 영양 성분별 패널티 계수(pm)를 가중하여 설정되는 조건 완화 패널티로 구성되어 음식 세트의 전체 연관성을 나타내는 선형 함수의 연산값이 최대가 되도록 수학식
Figure pat00009

을 만족하는 변수(x)를 기지정된 범위 내에서 탐색하여 각 음식별 최적 제공량을 연산하는 음식 추천 장치.
The method of claim 8, wherein the food recommendation unit
According to the linear programming method, the AAI between each of the representative foods and the combination food is designated as score (s), the serving amount of each food is set as a variable (x) according to the unit amount provided, and each nutritional component ( m) of the condition excess amount (e m ), which is composed of a condition relaxation penalty set by weighting the penalty coefficient (p m ) for each nutritional component specified in advance, so that the calculated value of the linear function representing the overall association of the food set is maximized math formula
Figure pat00009

A food recommendation device that calculates an optimal serving amount for each food by searching for a variable (x) that satisfies within a predetermined range.
사용자의 이전 기지정된 기간 동안 식사 시 섭취한 음식에 대한 정보인 사용자 식사 정보와 다수의 사람들의 식사 시 섭취하는 음식과 각 음식의 식재료에 대한 정보가 포함된 음식 섭취 데이터를 수집하여 획득하는 단계;
상기 음식 섭취 데이터를 기반으로 음식과 식재료 사이의 관계를 분석하기 위한 음식-식재료 이분 그래프와 음식과 식사 사이의 관계를 분석하기 위한 음식-식사 이분 그래프를 포함하는 이분 그래프를 획득하는 단계;
상기 사용자 식사 정보에서 획득된 음식을 기준으로 상기 음식-식재료 이분 그래프에서 연관된 음식을 탐색하여 연관성이 높은 기지정된 개수의 대표 음식을 선택하고, 상기 대표 음식 각각을 기준으로 상기 음식-식사 이분 그래프에서 연관된 음식을 탐색하여 대표 음식 각각에 대응하는 높은 연관성을 갖는 기지정된 개수의 조합 음식을 선택하여 대표 음식과 조합 음식으로 구성되는 음식 세트를 획득하는 단계; 및
상기 음식 세트에 포함된 음식들의 연관성에 기초하여 각 음식의 제공량을 최적화하고, 각 음식의 최적 제공량에 기초하여 계산되는 전체 연관성이 높은 기지정된 개수의 음식 세트를 선택하여 추천하는 단계를 포함하는 음식 추천 방법.
Collecting and obtaining user meal information, which is information about food consumed by a user during a pre-specified period of time, and food intake data including information about food eaten by a plurality of people and ingredients of each meal;
Obtaining a bipartite graph including a food-ingredient bipartite graph for analyzing a relationship between food and ingredients and a food-meal bipartite graph for analyzing a relationship between food and meal based on the food intake data;
Based on the food obtained from the user's meal information, search for related foods in the food-ingredient bipartite graph to select a predetermined number of representative foods with high correlation, and based on each of the representative foods, in the food-meal bipartite graph. obtaining a food set consisting of the representative food and the combination food by searching for related foods and selecting a predetermined number of combination foods having a high correlation corresponding to each of the representative foods; and
Optimizing the serving amount of each food based on the correlation of the foods included in the food set, and selecting and recommending a predetermined number of food sets having a high total correlation calculated based on the optimal serving amount of each food How to recommend.
제10항에 있어서, 상기 음식 세트를 획득하는 단계는
상기 사용자 식사 정보에서 획득된 음식을 기준으로 상기 음식-식재료 이분 그래프에서 공통된 식재료를 이용하는 연관 음식을 탐색하고, 기준이 된 음식과 연관 음식과의 연관성을 공통으로 포함된 식재료의 비중을 고려하여 수정한 수정 아다믹 아다르 인덱스(Adamic-Adar Index: 이하 AAI)로 계산하여 높은 수정 AAI를 갖는 기지정된 개수의 연관 음식을 대표 음식을 선택하는 단계; 및
상기 대표 음식 각각을 기준으로 상기 음식-식사 이분 그래프에서 동일 식사에서 제공된 음식인 연관 음식을 탐색하고, 각 대표 음식과 연관 음식과의 연관성을 AAI로 계산하여 높은 AAI를 갖는 기지정된 개수의 연관 음식을 조합 음식을 선택하여 대표 음식과 조합 음식으로 음식 세트를 구성하는 단계를 포함하는 음식 추천 방법.
11. The method of claim 10, wherein obtaining the set of food comprises:
Based on the food obtained from the user's meal information, search for related foods using common ingredients in the food-ingredient bipartite graph, and modify the relationship between the standard food and the related food in consideration of the proportion of commonly included ingredients. selecting a representative food from a predetermined number of related foods having a high modified AAI by calculating with a modified Adamic-Adar Index (hereinafter referred to as AAI); and
Based on each of the representative foods, a related food that is a food served at the same meal is searched for in the food-meal dichotomy graph, and the association between each representative food and the related food is calculated by AAI, and a predetermined number of related foods having a high AAI are calculated. A food recommendation method comprising selecting a combination food and configuring a food set with representative food and combination food.
제11항에 있어서, 상기 이분 그래프를 획득하는 단계는
상기 음식 섭취 데이터에서 다수의 음식과 다수의 식재료를 서로 다른 2개의 카테고리로 분류하고, 다수의 음식 각각에 포함된 식재료를 서로 연결하여 상기 음식-식재료 이분 그래프를 획득하는 단계; 및
상기 음식 섭취 데이터에서 식사와 음식을 서로 다른 2개의 카테고리로 분류하고, 각 식사 시에 섭취한 음식을 서로 연결하여 상기 음식-식사 이분 그래프를 획득하는 단계를 포함하는 음식 추천 방법.
12. The method of claim 11, wherein the step of obtaining the bipartite graph
obtaining the food-ingredient dichotomy graph by classifying a plurality of foods and a plurality of ingredients into two different categories in the food intake data and connecting ingredients included in each of the plurality of foods; and
and classifying meals and foods into two different categories from the food intake data, and obtaining the food-meal dichotomy graph by connecting the foods consumed at each meal to each other.
제11항에 있어서, 상기 대표 음식을 선택하는 단계는
상기 수정 AAI(mAAI)를 수학식
Figure pat00010

(여기서 up 는 음식-식재료 이분 그래프에서 기준이 되는 음식과 연관 음식을 나타내고, v는 식재료, Am은 식재료(v)가 포함된 모든 음식들 내에서 식재료(v)의 평균 중량을 나타내고, mp, mq는 각각 음식(up, uq)에 포함된 식재료(v)의 중량을 나타낸다.)
에 따라 계산하는 음식 추천 방법.
The method of claim 11, wherein the step of selecting the representative food
The modified AAI (mAAI) is expressed as
Figure pat00010

(Where u p represents the standard food and related food in the food-ingredient bipartite graph, v is the food ingredient, Am represents the average weight of the food ingredient (v) within all foods including the food ingredient (v), m p , m q represent the weight of ingredients (v) included in food (u p , u q ), respectively.)
Food recommendation method to calculate according to.
제11항에 있어서, 상기 음식 세트를 구성하는 단계는
상기 AAI를 수학식
Figure pat00011

(여기서 up 는 음식-식사 이분 그래프에서 기준이 되는 음식과 연관 음식을 나타내고, v는 식사를 나타낸다.)
에 따라 계산하는 음식 추천 방법.
12. The method of claim 11, wherein constructing the food set comprises:
Equation above AAI
Figure pat00011

(Where u p represents the standard food and related food in the food-meal dichotomy graph, and v represents the meal.)
Food recommendation method to calculate according to.
제12항에 있어서, 상기 음식 세트를 선택하여 추천하는 단계는
상기 음식 세트에 포함된 음식들의 연관성의 합으로 계산되는 전체 연관성이 최대가 되도록 각 음식의 제공량을 최적화하는 단계;
미리 지정된 영양 성분별로 연산된 음식별 최적 제공량을 적용하여 음식별 최적 제공량에 따른 각 음식 세트의 영양 성분량을 계산하는 단계; 및
계산된 영양 성분량이 기지정된 영양 성분별 조건을 만족하면서 전체 연관성이 가장 높은 기지정된 개수의 음식 세트를 추천하는 단계를 포함하는 음식 추천 방법.
The method of claim 12, wherein the step of selecting and recommending the food set
optimizing the serving amount of each food so that the total relevance calculated as the sum of the relevance of the foods included in the food set is maximized;
Calculating the amount of nutritional components of each food set according to the optimal serving amount for each food by applying the optimal serving amount for each food calculated for each predetermined nutritional component; and
A food recommendation method comprising the step of recommending a predetermined number of food sets having the highest total correlation while satisfying predetermined conditions for each nutritional component with calculated nutritional component amounts.
제15항에 있어서, 상기 음식의 제공량을 최적화하는 단계는
선형 계획법에 따라 상기 대표 음식 각각과 상기 조합 음식 사이의 AAI를 스코어(s)로 지정하고, 각 음식의 제공량을 각 음식이 제공되는 단위량에 따른 변수(x)로 설정하여 구성되어 음식 세트의 전체 연관성을 나타내는 선형 함수의 연산값이 최대가 되도록 수학식
Figure pat00012

을 만족하는 변수(x)를 기지정된 범위 내에서 탐색하여 각 음식별 최적 제공량을 연산하는 음식 추천 방법.
16. The method of claim 15, wherein optimizing the serving amount of food
According to the linear programming method, the AAI between each of the representative foods and the combination food is designated as a score (s), and the serving amount of each food is set as a variable (x) according to the unit amount provided for each food. Equation so that the calculated value of the linear function representing the total correlation is maximized
Figure pat00012

A food recommendation method that calculates the optimal serving amount for each food by searching for a variable (x) that satisfies within a predetermined range.
제12항에 있어서, 상기 음식 세트를 선택하여 추천하는 단계는
기지정된 영양 성분별 조건과의 차이에 따라 계산되는 조건 완화 패널티를 설정하는 단계;
상기 음식 세트에 포함된 음식들의 연관성과 상기 조건 완화 패널티를 적용하여 전체 연관성이 최대가 되도록 각 음식의 제공량을 최적화하는 단계; 및
상기 조건 완화 패널티가 적용된 전체 연관성이 가장 높은 기지정된 개수의 음식 세트를 선택하여 추천하는 음식 추천 방법.
The method of claim 12, wherein the step of selecting and recommending the food set
setting a condition mitigation penalty calculated according to a difference from a condition for each predetermined nutritional component;
optimizing the serving amount of each food by applying the relevance of the foods included in the food set and the condition relaxation penalty to maximize the overall relevance; and
A food recommendation method for selecting and recommending a predetermined number of food sets having the highest overall correlation to which the condition relaxation penalty is applied.
제17항에 있어서, 상기 음식의 제공량을 최적화하는 단계는
선형 계획법에 따라 상기 대표 음식 각각과 상기 조합 음식 사이의 AAI를 스코어(s)로 지정하고, 각 음식의 제공량을 각 음식이 제공되는 단위량에 따른 변수(x)로 설정하며, 각 영양 성분(m)의 조건 초과량(em)에 대해 미리 지정된 영양 성분별 패널티 계수(pm)를 가중하여 설정되는 조건 완화 패널티로 구성되어 음식 세트의 전체 연관성을 나타내는 선형 함수의 연산값이 최대가 되도록 수학식
Figure pat00013

을 만족하는 변수(x)를 기지정된 범위 내에서 탐색하여 각 음식별 최적 제공량을 연산하는 음식 추천 방법.
18. The method of claim 17, wherein the step of optimizing the serving amount of food
According to the linear programming method, the AAI between each of the representative foods and the combination food is designated as score (s), the serving amount of each food is set as a variable (x) according to the unit amount provided, and each nutritional component ( m) of the condition excess amount (e m ), which is composed of a condition relaxation penalty set by weighting the penalty coefficient (p m ) for each nutritional component specified in advance, so that the calculated value of the linear function representing the overall association of the food set is maximized math formula
Figure pat00013

A food recommendation method that calculates the optimal serving amount for each food by searching for a variable (x) that satisfies within a predetermined range.
KR1020210096831A 2021-07-23 2021-07-23 Food Recommendation Apparatus and Method KR20230015555A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210096831A KR20230015555A (en) 2021-07-23 2021-07-23 Food Recommendation Apparatus and Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210096831A KR20230015555A (en) 2021-07-23 2021-07-23 Food Recommendation Apparatus and Method

Publications (1)

Publication Number Publication Date
KR20230015555A true KR20230015555A (en) 2023-01-31

Family

ID=85109555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210096831A KR20230015555A (en) 2021-07-23 2021-07-23 Food Recommendation Apparatus and Method

Country Status (1)

Country Link
KR (1) KR20230015555A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102132975B1 (en) 2018-11-02 2020-07-13 홍수연 Method and apparatus for recommending restaurant based on preffered menu

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102132975B1 (en) 2018-11-02 2020-07-13 홍수연 Method and apparatus for recommending restaurant based on preffered menu

Similar Documents

Publication Publication Date Title
JP6725619B2 (en) System and method for user-specific adjustment of nutritional intake
CN110135957A (en) A kind of vegetable recommended method, device and the storage medium of intelligent restaurant healthy diet
US8504385B2 (en) Personalized nutrition advisor
CN110504019A (en) User individual dietary recommendations continued method, apparatus, electronic equipment and storage medium
Weber et al. Insights from machine-learned diet success prediction
Mokdara et al. Personalized food recommendation using deep neural network
WO2006031919A1 (en) Method and apparatus for transitioning a diet
CN107391531A (en) A kind of vegetable recommends method and apparatus
CN107731281A (en) A kind of method for recommending dining
KR101466626B1 (en) Method for valuating food and recording-medium recorded program thereof
Caldeira et al. Healthy menus recommendation: optimizing the use of the pantry
KR102422591B1 (en) Weight control customized balanced diet recommendation method and device
CN114329198A (en) Method and device for recommending health information based on user sleep
KR101692299B1 (en) Method and Apparatus for providing a recommended dinner menu
KR20210052123A (en) Method for providing user-customized food information service and server using the same
KR20230015555A (en) Food Recommendation Apparatus and Method
CN112528008A (en) Diabetic catering method and device based on knowledge graph
US20190108287A1 (en) Menu generation system tying healthcare to grocery shopping
CN116130058A (en) Recipe recommendation method based on intelligent diet
US20220171933A1 (en) Methods and systems for personal recipe generation
CN109461502A (en) Health control method, system, Human fat balance and mobile terminal
RU2685019C1 (en) Method and system for monitoring and compliance with nutrition recommendations at public catering enterprise
Mejova et al. Comfort Foods and Community Connectedness: Investigating Diet Change during COVID-19 Using YouTube Videos on Twitter
Natilli et al. Exploring students eating habits through individual profiling and clustering analysis
Rani et al. Product or Item‐Based Recommender System

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application