KR102540268B1 - 트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치 - Google Patents

트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치 Download PDF

Info

Publication number
KR102540268B1
KR102540268B1 KR1020220092418A KR20220092418A KR102540268B1 KR 102540268 B1 KR102540268 B1 KR 102540268B1 KR 1020220092418 A KR1020220092418 A KR 1020220092418A KR 20220092418 A KR20220092418 A KR 20220092418A KR 102540268 B1 KR102540268 B1 KR 102540268B1
Authority
KR
South Korea
Prior art keywords
food
similarity
tree
keywords
processor
Prior art date
Application number
KR1020220092418A
Other languages
English (en)
Inventor
김석환
양선흥
Original Assignee
주식회사 팜킷
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 팜킷 filed Critical 주식회사 팜킷
Priority to KR1020220092418A priority Critical patent/KR102540268B1/ko
Application granted granted Critical
Publication of KR102540268B1 publication Critical patent/KR102540268B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Primary Health Care (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Human Computer Interaction (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

일 측면에 따른 트리를 이용하여 음식의 유사도를 측정하는 방법은, 음식에 관한 문서를 획득하는 단계; 상기 문서로부터 키워드를 추출하는 단계; 상기 추출된 키워드를 이용하여 트리를 생성하는 단계; 및 상기 트리로부터 음식의 유사도를 연산하는 단계;를 포함한다.

Description

트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치 {A METHOD AND AN APPARATUS FOR MEASURING THE SIMILARITY OF FOOD FOR PERSONALIZED FOOD RECOMMENDATION USING A TREE}
트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치에 관한다.
최근에 현대인들은 각종 통신 매체의 프로그램들과 소셜 네트워킹 서비스 등을 통하여 음식에 관련된 정보를 소개받고, 이를 기반으로 식사 메뉴를 선정하고 있다. 하지만 개개인의 음식에 대한 기호도와 선호도 및 취향의 차이로 인해 제공된 음식 정보는 무용할 때가 많다.
상술한 배경하에, 사용자에게 적합한 음식을 추천함으로써 사용자의 만족도를 높일 수 있는 어플리케이션이 개발되어 사용되고 있다. 하지만 이러한 어플리케이션은, 사용자의 선호도가 고려되지 않은 상태로 무작위로 선출되는 음식을 사용자에게 추천하거나, 단순히 다수의 사람들의 선호도가 높은 것을 사용자에게 추천하는 방식을 사용한다. 상기 어플리케이션은 음식을 추천하더라도 넓은 범주의 음식을 추천하게 되는데, 이러한 추천 결과는 사용자에게 높은 만족도를 제공할 수 없고 오히려 사용자에게 메뉴 선정에 대한 어려움을 가중시킬 수 있다.
국내 공개특허공보 제10-2022-0026214호(2022.03.04)
트리를 이용하여 음식의 유사도를 측정하는 방법 및 장치를 제공하는 데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. 해결하려는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
일 측면에 따른 트리를 이용하여 음식의 유사도를 측정하는 방법은, 음식에 관한 문서를 획득하는 단계; 상기 문서로부터 키워드를 추출하는 단계; 상기 추출된 키워드를 이용하여 트리를 생성하는 단계; 및 상기 트리로부터 음식의 유사도를 연산하는 단계;를 포함한다.
다른 측면에 따른 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 컴퓨터에서 실행시키기 위한 방법을 기록한 기록매체를 포함한다.
또 다른 측면에 따른 컴퓨팅 장치는, 적어도 하나의 메모리; 및 적어도 하나의 프로세서;를 포함하고, 상기 프로세서는, 음식에 관한 문서를 획득하고, 상기 획득한 문서로부터 추출한 키워드를 이용하여 트리를 생성하고, 상기 트리로부터 음식의 유사도를 연산한다.
본 발명에 의하면, 트리를 이용하여 음식의 유사도를 연산하여 다양한 음식에 대한 유용한 정보를 제공할 수 있다.
또한, 음식의 유사도를 이용하여 사용자 맞춤형 음식을 추천해 주어 사용자의 선호에 따른 음식 선택에 도움을 줄 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 트리를 이용하여 음식의 유사도를 측정하는 시스템의 일 예를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 사용자 단말의 일 예를 도시한 구성도이다.
도 3은 일 실시예에 따른 트리를 이용하여 음식의 유사도를 측정하는 방법의 일 예를 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 트리를 이용하여 음식의 유사도를 측정하는 방법의 다른 예를 설명하기 위한 흐름도이다.
도 5은 일 실시예에 따른 일반적인 식재료의 트리의 일 예를 설명하기 위한 도면이다.
도 6는 일 실시예에 따른 일반적인 조리법의 트리의 일 예를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 트리를 구성하는 키워드의 위치를 변경하기 전의 트리의 일 예를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 트리를 구성하는 키워드의 위치를 변경한 후의 트리의 일 예를 도시한 도면이다.
실시 예들에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 명세서의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "유닛", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시 예에 대하여 상세히 설명한다. 그러나 실시 예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 예에 한정되지 않는다.
도 1은 일 실시예에 따른 트리를 이용하여 음식의 유사도를 측정하는 시스템의 일 예를 설명하기 위한 도면이다.
도 1을 참조하면, 시스템(1)은 사용자 단말(10) 및 서버(20)를 포함한다. 예를 들어, 사용자 단말(10)과 서버(20)는 유선 또는 무선 통신 방식으로 연결되어 상호 간에 데이터(예를 들어, 음식에 관한 문서 등)를 송수신할 수 있다.
설명의 편의를 위하여, 도 1에는 시스템(1)에 사용자 단말(10) 및 서버(20)가 포함되는 것으로 도시하였으나, 이에 한정되지 않는다. 예를 들어, 시스템(1)에는 다른 외부 디바이스(미도시)가 포함될 수 있으며, 이하에서 설명될 사용자 단말(10) 및 서버(20)의 동작이 단일 디바이스(예를 들어, 사용자 단말(10) 또는 서버(20))에 의하여 구현될 수도 있다.
사용자 단말(10)은 디스플레이 장치 및 사용자 입력을 수신하는 장치(예를 들어, 키보드, 마우스 등)를 구비하고, 메모리와 프로세서를 포함하는 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 단말(10)은 노트북(notebook) PC, 데스크탑(desktop) PC, 랩탑(laptop), 테블릿 컴퓨터(tablet computer), 스마트 폰 등이 해당될 수 있으나, 이에 한정되지 않는다.
서버(20)는 사용자 단말(10)을 포함하여 외부 디바이스(미도시)와 통신하는 장치일 수 있다. 예를 들어, 서버(20)는 음식에 관한 문서를 포함하여 다양한 데이터를 저장하는 장치일 수 있고, 경우에 따라 자체적인 연산 능력을 갖춘 장치일 수 있다. 예를 들어, 서버(20)는 클라우드(cloud) 서버일 수도 있으나, 이에 한정되지 않는다.
사용자 단말(10)은 음식의 유사도 및/또는 사용자 맞춤형 음식을 출력한다.
음식의 유사도는 각각 다른 음식이 식재료, 조리법 등에 관하여 본질적으로 얼마나 유사한지를 보여주는 수치를 지칭할 수 있다. 따라서, 단순히 식재료로서 돼지고기, 생선 등이 같다는 이유로 일정한 수치를 계산하는 것과는 다르다. 예를 들면, 본 발명에서의 음식의 유사도는 고추장을 '고춧가루, 콩 등으로 구성된 음식'으로 보아 다른 음식과의 관계를 단순히 나타내는 것이 아니라, 고추장을 '고춧가루를 콩과 함께 발효시켜 만든 발효식품'으로 보아 다른 음식과의 관계를 나타낸다는 특징이 있다. 이러한 특징은 트리를 이용하여 음식의 유사도를 연산함으로써 나타나는 특징이라고 볼 수 있다. 구체적인 내용은 아래의 도면과 함께 설명하도록 한다.
음식의 유사도는 임의의 복수의 음식에 대하여 식재료, 조리법 등이 얼마나 유사한지를 연산한 것을 지칭할 수 있다. 일 예로서, 음식의 유사도는 복수의 음식에 대한 식재료가 얼마나 유사한지를 연산한 것을 지칭할 수 있다. 다른 예로서, 음식의 유사도는 복수의 음식에 대한 조리법이 얼마나 유사한지를 연산한 것을 지칭할 수 있다. 또 다른 예로서, 음식의 유사도는 복수의 음식에 대한 식재료 및 조리법이 얼마나 유사한지를 연산한 것을 지칭할 수 있으나, 이에 한정되지 않는다.
사용자 맞춤형 음식은 연산된 음식의 유사도 및/또는 사용자(30)가 음식을 선택할 때 선호하는 맛(taste), 식재료(ingredient), 식감(texture), 향미(aroma) 등에 따라 추천된 음식을 지칭할 수 있다. 일 예로서, 사용자 맞춤형 음식은 사용자(30)의 선호도가 높은 음식과 유사도가 높은 순으로 추천된 음식일 수 있다. 다른 예로서, 사용자 맞춤형 음식은 사용자(30)의 선호도가 포함된 문서를 참고하여 다양한 카테고리의 음식에 대하여 추천된 음식일 수 있다. 여기에서, 카테고리는 외식메뉴, 배달메뉴, 간편메뉴, 야식메뉴, 반찬메뉴, 밀키트메뉴 등이 있으나, 이에 한정되지 않는다.
일 실시예에 따른 시스템(1)은 음식에 관한 문서로부터 추출된 키워드를 이용하여 생성된 트리로부터 음식의 유사도를 연산한다. 구체적으로, 사용자 단말(10)은 음식에 관한 문서를 획득하고, 상기 문서로부터 키워드를 추출하고, 상기 추출된 키워드를 이용하여 트리를 생성하고, 상기 트리로부터 음식의 유사도를 연산한다. 따라서, 사용자(30)는 복수의 음식에 대하여 유사도를 확인할 수 있다.
일 실시예에 따른 사용자 단말(10)은 음식의 유사도를 이용하여 사용자 맞춤형 음식을 추천한다. 일 예로서, 사용자 단말(10)은 사용자(30)의 선호도에 따라 음식의 유사도를 연산하여 사용자 맞춤형 음식을 추천하도록 훈련된 딥러닝 알고리즘을 사용하지만, 이에 한정되지 않는다. 따라서, 일 실시예에 따른 사용자 단말(10)이 연산한 음식의 유사도를 바탕으로, 사용자(30)는 사용자 맞춤형 음식에 대한 확인이 가능하다.
이하, 도 2 내지 도 8을 참조하여, 사용자 단말(10)이 음식의 유사도를 연산하거나 음식의 유사도를 이용하여 사용자 맞춤형 음식을 추천하는 예들을 설명한다. 한편, 도 2 내지 도 8을 참조하여 후술할 동작은 서버(20)에서 수행될 수도 있음은 도 1을 참조하여 상술한 바와 같다.
도 2는 일 실시예에 따른 사용자 단말의 일 예를 도시한 구성도이다.
도 2를 참조하면, 사용자 단말(100)은 프로세서(110) 및 메모리(120)를 포함한다. 설명의 편의를 위하여, 도 2에는 본 발명과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 사용자 단말(100)에 더 포함될 수 있다. 예를 들어, 입출력 인터페이스 및/또는 통신 모듈을 포함할 수 있다. 또한, 도 2에 도시된 프로세서(110) 및 메모리(120)는 독립된 장치로 구현될 수도 있음은 본 발명과 관련된 기술 분야에서의 통상의 지식을 가진 자에게 자명하다.
프로세서(110)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리할 수 있다. 여기에서, 명령은 메모리(120) 또는 외부 장치(예를 들어, 서버(20) 등)로부터 제공될 수 있다. 또한, 프로세서(110)는 사용자 단말(100)에 포함된 다른 구성요소들의 동작을 전반적으로 제어할 수 있다.
특히, 프로세서(110)는 음식의 유사도를 연산한다. 구체적으로, 프로세서(110)는 음식에 관한 문서를 획득한다. 그리고, 프로세서(110)는 문서로부터 키워드를 추출한다. 그리고, 프로세서(110)는 추출된 키워드를 이용하여 트리를 생성한다. 그리고, 프로세서(110)는 트리로부터 음식의 유사도를 연산한다.
또한, 프로세서(110)는 음식의 유사도를 이용하여 사용자 맞춤형 음식을 추천한다. 일 예로서, 프로세서(110)는 사용자(30)의 선호도에 따라 음식의 유사도를 연산하여 사용자 맞춤형 음식을 추천하도록 훈련된 딥러닝 알고리즘을 사용하지만, 이에 한정되지 않는다.
일 실시예에 따른 프로세서(110)가 동작하는 구체적인 예들은 도 3 내지 도 8을 참조하여 설명한다.
프로세서(110)는 다수의 논리 게이트들의 어레이로 구현될 수도 있고, 범용적인 마이크로 프로세서와 이 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다. 예를 들어, 프로세서(110)는 범용 프로세서, 중앙 처리 장치(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함할 수 한다. 일부 환경에서, 프로세서(110)는 주문형 반도체(ASIC), 프로그램 가능 로직 디바이스(PLD), 필드 프로그램 가능 게이트 어레이(FPGA) 등을 포함할 수도 있다. 예를 들어, 프로세서(110)는 디지털 신호 프로세서(DSP)와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, 디지털 신호 프로세서(DSP) 코어와 결합된 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.
메모리(120)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 예로서, 메모리(120)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리와는 구분되는 별도의 영구 저장 장치일 수 있다. 또한, 메모리(210)에는 운영체제(OS)와 적어도 하나의 프로그램 코드(예를 들어, 도 3 내지 도 8을 참조하여 후술할 동작을 프로세서(110)가 수행하기 위한 코드)가 저장될 수 있다.
이러한 소프트웨어 구성요소들은 메모리(120)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 사용자 단말(100)에 직접 연결될 수 있는 기록 매체일 수 있고, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 또는, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈을 통해 메모리(120)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 통신 모듈을 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(예를 들어, 도 3 내지 도 8을 참조하여 후술할 동작을 프로세서(110)가 수행하기 위한 컴퓨터 프로그램 등)에 기반하여 메모리(120)에 로딩될 수 있다.
한편, 도 2에는 도시되지 않았으나, 사용자 단말(100)은 입출력 인터페이스 및 통신 모듈을 더 포함할 수도 있다.
입출력 인터페이스는 사용자 단말(100)과 연결되거나 사용자 단말(100)에 포함될 수 있는 입력 또는 출력을 위한 장치(예를 들어, 키보드, 마우스 등)와의 인터페이스를 위한 수단일 수 있다. 입출력 인터페이스는 프로세서(110)와 별도로 구성된 요소로 구성되거나, 프로세서(110)에 포함되도록 구성될 수도 있다.
통신 모듈은 네트워크를 통해 서버(20)와 사용자 단말(100)이 서로 통신하기 위한 구성 또는 기능을 제공할 수 있다. 또한, 통신 모듈은 사용자 단말(100)이 다른 외부 디바이스와 통신하기 위한 구성 또는 기능을 제공할 수 있다. 예를 들어, 프로세서(110)의 제어에 따라 제공되는 제어 신호, 명령, 데이터 등이 통신 모듈과 네트워크를 거쳐 서버(20) 및/또는 외부 디바이스로 전송될 수 있다.
한편, 도 2에는 도시되지 않았으나, 사용자 단말(100)은 디스플레이 장치를 더 포함할 수 있다. 또는, 사용자 단말(100)은 독립적인 디스플레이 장치와 유선 또는 무선 통신 방식으로 연결되어 상호 간에 데이터를 송수신할 수 있다.
도 3은 일 실시예에 따른 트리를 이용하여 음식의 유사도를 측정하는 방법의 일 예를 설명하기 위한 흐름도이다.
도 3을 참조하면, 트리를 이용하여 음식의 유사도를 측정하는 방법은 도 1 및 2에 도시된 사용자 단말(10, 100) 또는 프로세서(110)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 1 및 도 2에 도시된 사용자 단말(10, 100) 또는 프로세서(110)에 관하여 이상에서 기술된 내용은 도 3의 트리를 이용하여 음식의 유사도를 측정하는 방법에도 적용될 수 있다.
310 단계에서, 프로세서(110)는 음식에 관한 문서를 획득한다. 일 예로서, 프로세서(110)는 음식에 관한 문서를 서버(20)로부터 획득한다. 다른 예로서, 프로세서(110)는 음식에 관한 문서를 외부 디바이스(미도시)로부터 획득한다. 또 다른 예로서, 프로세서(110)는 음식에 관한 문서를 메모리(120)로부터 획득하나, 이에 한정되지 않는다.
일 예로서, 음식에 관한 문서는 음식을 구성하는 식재료에 관한 문서일 수 있다. 다른 예로서, 음식에 관한 문서는 음식의 조리법에 관한 문서일 수 있다. 또 다른 예로서, 음식에 관한 문서는 음식에 관한 사용자(30)의 선호도가 포함된 문서일 수 있다. 여기에서, 사용자(30)의 선호도는 사용자가 설정할 수 있다. 다른 예로서, 음식에 관한 문서는 사용자(30)의 음식에 관한 우선순위가 포함된 문서일 수 있으나, 이에 한정되지 않는다.
320단계에서, 프로세서(110)는 문서로부터 키워드를 추출한다.
키워드는 음식에 관한 분류에 해당될 수 있는 해당 음식의 모든 구성요소를 지칭할 수 있다.
일 예로서, 키워드는 해당 음식을 구성하는 식재료에 해당한다. 구체적으로, 키워드는 기본재료, 소금, 설탕, 물, 가공과자, 초콜릿, 동물, 육상동물, 포유류, 소, 소고기, 소뼈, 소내장, 돼지, 돼지고기, 돼지뼈, 돼지내장, 돼지피, 양, 양고기, 유즙, 우유, 가금류, 오리고기, 닭고기, 닭밝, 난류, 계란, 가공육, 햄, 어묵, 소시지, 베이컨, 해상동물, 민물고기, 미꾸라지, 생선류, 고등어, 가자미, 갈치, 조기, 꽁치, 삼치, 쥐치, 참치, 명태, 뱅어, 장어, 멸치, 병어, 양미리, 대구, 가오리, 아귀, 갑각류, 새우, 게, 어패류, 꼬막, 조개, 굴, 재첩, 홍합, 전복, 연체류, 오징어, 문어, 낙지, 생선알, 날치알, 소라류, 골뱅이, 식물, 육상식물, 곡류, 쌀, 찹쌀, 밀, 메밀, 콩, 강낭콩, 팥, 도토리, 구황작물, 감자, 고구마, 옥수수, 토란, 균류, 버섯, 새송이버섯, 표고버섯, 느타리버섯, 나물류, 콩나물, 냉이, 쑥, 아욱, 우거지, 시래기, 시금치, 호박잎, 마늘쫑, 죽순, 도라지, 돌나물, 두릅, 미나리, 더덕, 깻잎, 견과류, 깨, 참깨, 검은깨, 들깨, 밤, 땅콩, 카카오, 호두, 씨앗류, 커피, 과채류, 매실, 토마토, 가지, 당근, 과일류, 사과, 박과식물, 오이, 애호박, 호박, 단호박, 고추과, 고추, 꽈리고추, 피망, 파프리카, 채소류, 생강과, 생강, 강황, 백합과, 마늘, 부추, 달래, 양파, 대파, 파, 엽채류, 양상추, 열무, 치커리, 상추, 배추과, 배추, 양배추, 브로콜리, 무, 뿌리채소류, 근대, 연근, 우엉, 인삼, 해상식물, 김, 미역, 미역줄기, 다시마, 파래 등일 수 있으나, 이에 한정되지 않는다. 이와 같은 키워드는 분류에 따라 트리로 구성될 수 있으며, 자세한 내용은 아래에서 설명하도록 한다.
다른 예로서, 키워드는 해당 음식의 조리법에 해당한다. 구체적으로, 키워드는 가열, 물 많이, 끓이기, 오래 끓이기, 물로 익히기, 삶기, 데치기, 증기, 찜, 물 조금, 조림, 기름, 볶음, 튀김, 구이, 후라이팬구이, 오븐구이, 그릴구이, 비가열, 찬물에 넣기, 롤, 비빔, 무침, 갈기, 건조, 발효, 반죽, 냉동, 얇게 피기, 응고, 쌈, 면 뽑기, 짜기, 얇게 썰기, 비가공 등일 수 있으나, 이에 한정되지 않는다. 이와 같은 키워드는 분류에 따라 트리로 구성될 수 있으며, 자세한 내용은 아래에서 설명하도록 한다.
프로세서(110)는 다양한 방식에 의해 키워드를 추출한다. 일 예로서, 프로세서(110)는 서버(20)에 미리 저장된 키워드를 인식하여 추출한다. 다른 예로서, 프로세서(110)는 사용자(30)가 설정한 키워드를 인식하여 추출한다. 또 다른 예로서, 프로세서(110)는 서버(20)에 미리 저장된 키워드 및 사용자(30)가 설정한 키워드를 인식하여 추출한다. 구체적으로, 프로세서(110)는 서버(20)에 미리 저장된 키워드를 인식하여 추출하고, 서버에 미리 저장된 키워드가 없다면 사용자가 설정한 키워드를 인식하여 추출한다. 여기에서, 프로세서(110)는 사용자가 키워드를 설정하도록 설정 수단을 제공한다.
330단계에서, 프로세서(110)는 추출된 키워드를 이용하여 일반적인 트리를 생성한다. 일 예로서, 프로세서(110)는 추출된 키워드를 이용하여 식재료의 일반적인 트리를 생성한다. 다른 예로서, 프로세서(110)는 추출된 키워드를 이용하여 조리법의 일반적인 트리를 생성한다.
이하 도 5 및 도 6을 참조하여, 프로세서(110)가 일반적인 식재료 및 조리법의 트리를 생성하는 예를 설명한다.
도 5은 일 실시예에 따른 일반적인 식재료의 트리의 일 예를 설명하기 위한 도면이다.
도 5를 참조하면, 프로세서(110)는 일반적인 식재료의 트리를 생성한다. 먼저, 프로세서(110)는 식재료에 관련된 키워드로서 육상 및 해상으로 분류한다. 그리고, 프로세서(110)는 육상 및 해상을 각각 동물 및 식물로 분류한다. 그리고, 프로세서(110)는 육상에서의 동물을 포유류 및 가금류로 분류한다. 여기에서, 포유류는 소 및 돼지로 분류한다. 또한, 가금류는 닭 및 오리로 분류한다. 그리고, 프로세서(110)는 육상에서의 식물을 고추 및 콩으로 분류한다. 그리고, 프로세서(110)는 해상에서의 동물을 생선류 및 갑각류로 분류한다. 그리고, 프로세서(110)는 해상에서의 식물을 해조류로 분류한다. 다만, 이와 같은 분류는 예시에 불과하며, 이에 한정되지 않는다.
한편, 도 5에는 도시되지 않았으나, 프로세서(110)는 식재료에 관련된 키워드를 다음과 같이 분류할 수 있다. 다만, 이에 한정되지 않는다.
프로세서(110)는 식재료를 기본재료, 가공과자, 동물, 식물 등으로 분류할 수 있다. 여기에서, 기본재료는 소금, 설탕, 물 등으로 분류될 수 있다. 가공과자는 초콜릿 등으로 분류될 수 있다. 동물은 육상동물, 해상동물 등으로 분류될 수 있다. 육상동물은 포유류, 가금류, 파충류, 곤충류, 난류, 가공육 등으로 분류될 수 있다. 포유류는 소, 돼지, 양, 유즙 등으로 분류될 수 있다. 소는 소고기, 소뼈, 소내장 등으로 분류될 수 있다. 돼지는 돼지고기, 돼지뼈, 돼지내장, 돼지피 등으로 분류될 수 있다. 양은 양고기 등으로 분류될 수 있다. 유즙은 우유 등으로 분류될 수 있다. 가금류는 오리고기, 닭고기, 닭발 등으로 분류될 수 있다. 난류는 계란 등으로 분류될 수 있다. 가공육은 햄, 어묵, 소시지, 베이컨 등으로 분류될 수 있다. 해상동물은 민물고기, 생선류, 갑각류, 어패류, 연체류, 생선알, 소라류 등으로 분류될 수 있다. 민물고기는 미꾸라지 등으로 분류될 수 있다. 생선류는 고등어, 가자미, 갈치, 조기, 꽁치, 삼치, 쥐치, 참치, 명태, 뱅어, 장어, 멸치, 병어, 양미리, 대구, 가오리, 아귀 등으로 분류될 수 있다. 갑각류는 새우, 게 등으로 분류될 수 있다. 어패류는 꼬막, 조개, 굴, 재첩, 홍합, 전복 등으로 분류될 수 있다. 연체류는 오징어, 문어, 낙지 등으로 분류될 수 있다. 생선알은 날치알 등으로 분류될 수 있다. 소라류는 골뱅이 등으로 분류될 수 있다. 식물은 육상식물, 해상식물 등으로 분류될 수 있다. 육상식물은 곡류, 구황작물, 균류, 나물류, 견과류, 씨앗류, 과채류, 채소류 등으로 분류될 수 있다. 곡류는 쌀, 찹쌀, 밀, 메밀, 콩, 강낭콩, 팥, 도토리 등으로 분류될 수 있다. 구황작물은 감자, 고구마, 옥수수, 토란 등으로 분류될 수 있다. 균류는 버섯, 새송이버섯, 표고버섯, 느타리버섯 등으로 분류될 수 있다. 나물류는 콩나물, 냉이, 쑥, 아욱, 우거지, 시래기, 시금치, 호박잎, 마늘쫑, 죽순, 도라지, 돌나물, 두릅, 미나리, 더덕, 깻잎 등으로 분류될 수 있다. 견과류는 깨, 참깨, 검은깨, 들깨, 밤, 땅콩, 카카오, 호두 등으로 분류될 수 있다. 씨앗류는 커피 등으로 분류될 수 있다. 과채류는 매실, 토마토, 가지, 당근 등으로 분류될 수 있으며, 과일류, 박과식물, 고추과 등으로 분류될 수도 있다. 과일류는 사과 등으로 분류될 수 있으며, 박과식물은 오이, 애호박, 호박, 단호박 등으로 분류될 수 있다. 고추과는 고추, 꽈리고추, 피망, 파프리카 등으로 분류될 수 있다. 채소류는 생강과, 백합과, 엽채류, 배추과, 뿌리채소류 등으로 분류될 수 있다. 생강과는 생강, 강황 등으로 분류될 수 있고, 백합과는 마늘, 부추, 달래, 양파, 대파, 파 등으로 분류될 수 있다. 엽채류는 양상추, 열무, 치커리, 상추 등으로 분류될 수 있고, 배추과는 배추, 양배추, 브로콜리, 무 등으로 분류될 수 있다. 뿌리채소류는 근대, 연근, 우엉, 인삼 등으로 분류될 수 있다. 해상식물은 김, 미역, 미역줄기, 다시마, 파래 등으로 분류될 수 있다.
도 6는 일 실시예에 따른 일반적인 조리법의 트리의 일 예를 설명하기 위한 도면이다.
도 6을 참조하면, 프로세서(110)는 일반적인 조리법의 트리를 생성한다. 먼저, 프로세서(110)는 식재료에 관련된 키워드로서 가열 및 비가열로 분류한다. 그리고, 프로세서(110)는 가열을 끓이기, 찌기 및 굽기로 분류한다. 그리고, 프로세서(110)는 비가열을 발효, 무치기 및 비가공으로 분류한다. 다만, 이와 같은 분류는 예시에 불과하며, 이에 한정되지 않는다.
한편, 도 6에는 도시되지 않았으나, 프로세서(110)는 조리법에 관련된 키워드를 다음과 같이 분류할 수 있다. 다만, 이에 한정되지 않는다.
프로세서(110)는 조리법을 가열, 비가열, 비가공 등으로 분류할 수 있다. 가열은 물의 양에 따라 분류될 수 있으며, 예를 들면, 물 많이, 물로 익히기, 증기, 물 조금, 기름, 구이 등으로 분류될 수 있다. 물 많이는 끓이는 시간의 정도에 따라 분류될 수 있으며, 끓이기, 오래 끓이기 등으로 분류될 수 있다. 물로 익히기는 삶기, 데이기 등으로 분류될 수 있으며, 증기는 찌기 등으로 분류될 수 있다. 물 조금은 조림 등으로 분류될 수 있으며, 기름은 볶음, 튀김 등으로 분류될 수 있다. 구이는 조리에 사용되는 도구에 따라 분류될 수 있으며, 후라이팬구이, 오븐구이, 그릴구이 등으로 분류될 수 있다. 비가열은 찬물에 넣기, 롤, 비빔, 무침, 갈기, 건조, 발효, 반죽, 냉동, 얇게 피기, 응고, 쌈, 면 뽑기, 짜기, 얇게 썰기 등으로 분류될 수 있다.
도 5 및 도 6을 참조하여 상술한 일반적인 트리는 모든 음식에 적용될 수 있는 트리를 의미한다. 프로세서(110)는 상술한 일반적인 트리를 생성한 후, 유사도를 판단하고자 하는 음식들 각각에서 추출된 키워드를 일반적인 트리에 표시할 수 있다.
그리고, 프로세서(110)는 생성된 트리를 구성하는 키워드의 위치를 변경할 수 있다. 일 예로서, 프로세서(110)는 사용자(30)의 우선순위를 고려하여 트리를 구성하는 키워드의 위치를 변경할 수 있다. 구체적으로, 프로세서(110)는 사용자(30)의 음식에 관한 우선순위가 포함된 문서를 획득하고, 사용자(30)의 우선순위를 고려하여 트리를 구성하는 키워드의 위치를 변경할 수 있다. 여기에서, 프로세서(110)는 서버(20)에 미리 저장된 우선순위 또는 사용자(30)가 설정한 우선순위를 획득할 수 있다.
이하 도 7 및 도 8을 참조하여, 프로세서(110)가 트리를 구성하는 키워드의 위치를 변경하는 예를 설명한다.
도 7은 일 실시예에 따른 트리를 구성하는 키워드의 위치를 변경하기 전의 트리의 일 예를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 트리를 구성하는 키워드의 위치를 변경한 후의 트리의 일 예를 도시한 도면이다.
도 7 및 8을 참조하면, 프로세서(110)는 트리를 구성하는 키워드의 위치를 변경한다. 구체적으로, 프로세서(110)는 식재료의 동물/식물의 구분보다는 식재료의 육상/해상의 구분이 더 중요하다는 우선순위를 고려하여 도 7의 트리를 도 8의 구조로 변경할 수 있다. 여기에서, 프로세서(110)는 식재료의 동물/식물의 구분보다는 식재료의 육상/해상의 구분이 더 중요하다는 우선순위를 서버(20)에 미리 저장된 우선순위 또는 사용자(30)가 설정한 우선순위로부터 획득할 수 있다.
도 7 및 8의 트리 구조를 보면, 도 7에서는 가금류 및 생선류의 유사도가 가금류 및 콩의 유사도보다 높게 연산되지만, 도 8에서는 가금류 및 콩의 유사도가 가금류 및 생선류의 유사도보다 높게 연산됨을 쉽게 알 수 있다. 따라서, 사용자(30)는 육상/해상 및 동물/식물의 우선순위에 따라, 개인이 원하는 음식에 대한 유사도를 연산하거나 보다 정확하고 구체화된 개인 맞춤형 음식을 추천받을 수 있다. 이는 트리의 구조적 특징을 이용한 것으로, 사용자(30)의 우선순위를 고려하여 트리 구조를 구성하는 키워드들의 위치를 변경함으로써 다양하게 음식의 유사도를 연산할 수 있다는 장점이 있다.
340단계에서, 프로세서(110)는 트리로부터 음식의 유사도를 연산한다. 일 예로서, 프로세서(110)는 유사도를 연산할 음식을 선택하고, 선택된 음식에 관한 키워드를 일반적인 트리에 표시하고, 트리로부터 음식의 유사도를 연산한다.
먼저, 프로세서(110)는 유사도를 연산할 음식을 선택한다. 일 예로서, 프로세서(110)는 사용자(30)가 선택한 음식을 유사도를 연산할 음식으로 선택한다. 다른 예로서, 프로세서(110)는 메모리(120)에 저장된 음식을 유사도를 연산할 음식으로 선택한다. 또 다른 예로서, 프로세서(110)는 사용자(30)가 선택한 음식 및 메모리(120)에 저장된 음식을 유사도를 연산할 음식으로 선택하나, 이에 한정되지 않는다.
그리고, 프로세서(110)는 선택된 음식에 관한 키워드를 일반적인 트리에 표시한다.
일 예로서, 프로세서(110)는 돼지갈비의 식재료에 관한 키워드를 표시하는 경우에는 일반적인 식재료의 트리에서 육상, 동물, 포유류 및 돼지라는 키워드에 숫자 1을 표시할 수 있다. 다른 예로서, 프로세서(110)는 소갈비의 식재료에 관한 키워드를 표시하는 경우에는 일반적인 식재료의 트리에서 육상, 동물, 포유류 및 소라는 키워드에 숫자 1을 표시할 수 있다. 또 다른 예로서, 프로세서(110)는 생선회의 식재료에 관한 키워드를 표시하는 경우에는 일반적인 식재료의 트리에서 해상, 동물 및 생선류라는 키워드에 숫자 1을 표시할 수 있다. 또 다른 예로서, 프로세서(110)는 소갈비 및 돼지갈비의 조리법에 관한 키워드를 표시하는 경우에는 가열 및 굽기라는 키워드에 숫자 1을 표시할 수 있다. 또 다른 예로서, 프로세서(110)는 생선회의 조리법에 관한 키워드를 표시하는 경우에는 비가열 및 비가공이라는 키워드에 숫자 1을 표시할 수 있다. 다만, 추출된 키워드를 트리에 표시하는 것을 예로 들었으나, 후술하는 바와 같이 트리를 행렬로 변환하여 행렬에 추출된 키워드를 표시할 수 있으며, 이에 한정되지 않는다.
그리고, 프로세서(110)는 트리로부터 음식의 유사도를 연산한다. 구체적으로, 프로세서(110)는 트리를 행렬로 변환하고, 행렬을 1차원 벡터로 변환하고, 1차원 벡터를 이용하여 음식의 유사도를 연산한다.
먼저, 프로세서(110)는 트리를 행렬로 변환한다. 일 예로서, 프로세서(110)는 일반적인 식재료의 트리에 돼지갈비의 식재료에 관한 키워드를 표시하여 하기의 표 1과 같은 행렬로 변환할 수 있다. 다만, 일반적인 식재료의 트리를 하기의 표 2와 같은 행렬로 변환한 후에, 돼지갈비의 식재료에 관한 키워드를 표시할 수 있으며, 이에 한정되지 않는다.
  육상(1)       해상  
  동물(1)     식물 동물   식물
  포유류(1) 가금류 고추 생선류 갑각류 해조류
돼지(1) 오리        
    육상       해상  
  동물     식물 동물   식물
  포유류 가금류 고추 생선류 갑각류 해조류
돼지 오리        
다른 예로서, 프로세서(110)는 소갈비의 식재료에 관한 키워드를 표시하는 경우에 하기의 표 3과 같이 표시할 수 있다.
  육상(1)       해상  
  동물(1)     식물 동물   식물
  포유류(1) 가금류 고추 생선류 갑각류 해조류
소(1) 돼지 오리        
또 다른 예로서, 프로세서(110)는 생선회의 식재료에 관한 키워드를 표시하는 경우에 하기의 표 4와 같이 표시할 수 있다.
육상       해상 (1)  
동물     식물 동물(1)   식물
  포유류 가금류 고추 생선류(1) 갑각류 해조류
돼지 오리        
그리고, 프로세서(110)는 도 6의 일반적인 조리법의 트리를 하기의 표 5와 같은 일반적인 식재료의 행렬로 변환할 수 있다.
또 다른 예로서, 프로세서(110)는 일반적인 조리법의 트리에 돼지갈비 및 소갈비의 조리법에 관한 키워드를 표시하는 경우에 하기의 표 5와 같이 표시할 수 있다. 다만, 전술한 바와 같이 일반적인 조리법의 트리에 하기의 표 6과 같은 행렬로 변환한 후에, 돼지갈비 및 소갈비의 조리법에 관한 키워드를 표시할 수 있으며, 이에 한정되지 않는다.
  가열(1)     비가열  
끓이기 굽기(1) 발효 무치기 비가공
가열 비가열
끓이기 찌기 굽기 발효 무치기 비가공
다른 예로서, 프로세서(110)는 생선회의 조리법에 관한 키워드를 표시하는 경우에 하기의 표 7과 같이 표시할 수 있다.
  가열     비가열(1)  
끓이기 찌기 굽기 발효 무치기 비가공(1)
그리고, 프로세서(110)는 식재료 및 조리법에 관한 키워드를 표시한 행렬을 합산할 수 있다. 다만, 식재료 및 조리법에 관한 키워드를 표시한 트리를 합산한 후에 행렬로 변환할 수 있으며, 이에 한정되지 않는다.
일 예로서, 프로세서(110)는 간장의 식재료를 표시하는 경우가 하기의 표 8과 같다고 할 때, 간장을 첨가하는 돼지갈비의 식재료를 표시하는 경우에는 하기의 표 9와 같이 표시할 수 있다.
    육상(1)       해상  
  동물     식물(1) 동물 식물
  포유류 가금류 고추 콩(1) 생선류 갑각류 해조류
돼지 오리        
  육상(2)       해상  
  동물(1)     식물(1) 동물   식물
  포유류(1) 가금류 고추 콩(1) 생선류 갑각류 해조류
돼지(1) 오리        
다른 예로서, 프로세서(110)는 고추장의 식재료를 표시하는 경우가 하기의 표 10과 같다고 할 때, 고추장을 첨가하는 돼지갈비의 식재료를 표시하는 경우에는 하기의 표 11과 같이 표시할 수 있다.
    육상(1)       해상  
  동물     식물(1) 동물   식물
  포유류 가금류 고추(1) 콩(1) 생선류 갑각류 해조류
돼지 오리        
    육상(2)       해상  
  동물 (1)     식물(1) 동물   식물
  포유류(1) 가금류 고추(1) 콩(1) 생선류 갑각류 해조류
돼지(1) 오리        
또 다른 예로서, 프로세서(110)는 간장 및 고추장의 조리법을 표시하는 경우가 하기의 표 12와 같다고 할 때, 간장 및 고추장을 첨가하는 돼지갈비의 조리법을 표시하는 경우에는 하기의 표 13과 같이 표시할 수 있다.
가열     비가열(1)  
끓이기 찌기 굽기 발효(1) 무치기 비가공
  가열(1)     비가열(1)  
끓이기 찌기 굽기(1) 발효(1) 무치기 비가공
그리고, 프로세서(110)는 행렬을 1차원 벡터로 변환한다. 구체적으로, 프로세서(110)는 v1 내지 vn으로 구성된 행렬 V에 대하여 아래와 같이 변환한다.
1차원 벡터 V = <v1, v2, ... , vn>
여기에서, 프로세서(110)는 각각의 v1 내지 vn에 대하여 정규화(normalization)를 할 수 있다. 일 예로서, 프로세서(110)는 v1 내지 vn 중에서 가장 큰 값으로 각각 v1 내지 vn을 나누어 정규화를 수행할 수 있다.
그리고, 프로세서(110)는 변환된 1차원 벡터를 이용하여 음식의 유사도를 연산할 수 있다. 일 예로서, 프로세서(110)는 아래의 수학식 1에 따라 음식의 유사도를 연산할 수 있다.
Figure 112022078086119-pat00001
(수학식 1은 음식 a 및 b의 유사도를 연산하는 것으로,
A는 임의의 음식 a로부터 획득한 1차원 벡터,
B는 임의의 음식 b로부터 획득한 1차원 벡터,
n은 벡터 내의 원소의 총 개수,
i는 벡터 내의 원소 번호)
수학식 1을 참조하면, 프로세서(110)는 유사도를 연산하고자 하는 두 음식의 1차원 벡터를 이용하여 두 음식의 유사도를 연산할 수 있다. 유사도는 0과 1 사이의 값을 가지며, 0에 가까울수록 유사도가 낮음을 의미하고, 1에 가까울수록 유사도가 높음을 의미한다.
수학식 1을 참조하여 상술한 음식의 유사도는 사용자(30)가 음식의 이름만으로 선호도에 관한 판단이 가능하고, 다양한 카테고리의 음식에 대하여 추천을 받을 수 있도록 돕는다. 여기에서, 카테고리는 외식메뉴, 배달메뉴, 간편메뉴, 야식메뉴, 반찬메뉴, 밀키트메뉴 등이 있으나, 이에 한정되지 않는다.
다른 예로서, 프로세서(110)는 자카드 유사도(Jaccard Similarity)를 이용하여 음식의 유사도를 연산할 수 있다.
도 4는 일 실시예에 따른 트리를 이용하여 음식의 유사도를 측정하는 방법의 다른 예를 설명하기 위한 흐름도이다.
도 4를 참조하면, 410 단계 내지 440 단계는 도 3의 310 단계 내지 330단계에 대응된다. 따라서, 이하에서는, 410 단계 내지 440 단계에 대한 구체적인 설명은 생략한다.
450 단계에서, 프로세서(110)는 유사도를 이용하여 사용자 맞춤형 음식을 추천한다. 프로세서(110)는 딥러닝 알고리즘을 이용하여 사용자 맞춤형 음식을 추천할 수 있다. 일 예로서, 프로세서(110)는 사용자(30)의 선호도가 포함된 문서를 참고하여, 사용자(30)의 선호도가 높은 음식과 유사도가 높은 순으로 사용자 맞춤형 음식을 추천한다. 다른 예로서, 프로세서(110)는 사용자(30)의 선호도가 포함된 문서를 참고하여, 다양한 카테고리의 음식에 대하여 사용자 맞춤형 음식을 추천한다. 여기에서, 카테고리는 외식메뉴, 배달메뉴, 간편메뉴, 야식메뉴, 반찬메뉴, 밀키트메뉴 등이 있으나, 이에 한정되지 않는다.
상술한 바에 따르면, 프로세서(110)는 트리를 이용하여 음식의 유사도를 연산한다. 따라서, 사용자(30)는 다양한 음식에 대한 유용한 정보를 확인할 수 있다.
또한, 프로세서(110)는 음식의 유사도를 이용하여 사용자 맞춤형 음식을 추천한다. 따라서, 사용자(30)는 사용자의 선호에 따른 음식 선택을 할 수 있다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 램, USB, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하며, 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점을 포함하는 것으로 해석되어야 할 것이다.
1: 시스템
10: 사용자 단말
20: 서버
30: 사용자

Claims (9)

  1. 서버가 복수의 음식들에 관한 문서를 획득하는 단계;
    상기 문서로부터 상기 복수의 음식들 각각의 식재료에 관한 키워드들 및 조리법에 관한 키워드들을 추출하는 단계;
    상기 식재료에 관한 키워드들이 노드로 설정된 식재료에 관한 트리 및 상기 조리법에 관한 키워드들이 노드로 설정된 조리법에 관한 트리를 생성하는 단계; 및
    상기 식재료에 관한 트리 및 상기 조리법에 관한 트리에 기초하여, 유사도를 연산할 복수의 음식들 각각에 대응하여 생성된 벡터들을 기준으로 음식의 유사도를 연산하는 단계;를 포함하고,
    상기 생성하는 단계는,
    상기 식재료에 관한 키워드 및 상기 조리법에 관한 키워드 중 적어도 하나에 관한 사용자의 우선순위가 포함된 정보를 획득하는 단계; 및
    상기 우선순위가 포함된 정보에 기초하여, 우선순위가 높은 키워드를 우선순위가 낮은 키워드보다 상위 노드로 설정함으로써 상기 식재료에 관한 트리 및 상기 조리법에 관한 트리 중 적어도 하나를 재구성하는 단계;를 포함하고,
    상기 유사도를 연산하는 단계는,
    상기 유사도를 연산할 복수의 음식들 각각에 관련된 키워드들을 상기 식재료에 관한 트리 및 상기 조리법에 관한 트리에 표시함으로써 상기 유사도를 연산할 복수의 음식들 각각에 대응하는 행렬들을 생성하는 단계; 및
    상기 행렬들 각각에 대응하는 벡터들을 생성하고, 상기 벡터들을 기준으로 음식의 유사도를 연산하는 단계;를 포함하는, 트리를 이용하여 음식의 유사도를 측정하는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 트리를 1차원 벡터로 변환한 후 하기의 [수학식 1]에 따라 유사도를 연산하는 방법
    [수학식 1]
    Figure 112023049068882-pat00002

    (상기 수학식 1은 음식 a 및 b의 유사도를 연산하는 것으로,
    상기 A는 임의의 음식 a로부터 획득한 1차원 벡터,
    상기 B는 임의의 음식 b로부터 획득한 1차원 벡터,
    상기 n은 벡터 내의 원소의 총 개수,
    상기 i는 벡터 내의 원소 번호)
  6. 제 1 항에 있어서,
    상기 유사도를 이용하여 사용자 맞춤형 음식을 추천하는 단계;를 더 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 추천하는 단계는,
    딥러닝 알고리즘을 이용하여 사용자 맞춤형 음식을 추천하는 방법.
  8. 제 1 항에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  9. 적어도 하나의 메모리; 및
    적어도 하나의 프로세서;를 포함하고,
    상기 프로세서는,
    복수의 음식들에 관한 문서를 획득하고,
    상기 문서로부터 상기 복수의 음식들 각각의 식재료에 관한 키워드들 및 조리법에 관한 키워드들을 추출하고,
    상기 식재료에 관한 키워드들이 노드로 설정된 식재료에 관한 트리 및 상기 조리법에 관한 키워드들이 노드로 설정된 조리법에 관한 트리를 생성하고,
    상기 식재료에 관한 트리 및 상기 조리법에 관한 트리에 기초하여, 유사도를 연산할 복수의 음식들 각각에 대응하여 생성된 벡터들을 기준으로 음식의 유사도를 연산하는 것이고,
    상기 생성하는 것은,
    상기 식재료에 관한 키워드 및 상기 조리법에 관한 키워드 중 적어도 하나에 관한 사용자의 우선순위가 포함된 정보를 획득하고,
    상기 우선순위가 포함된 정보에 기초하여, 우선순위가 높은 키워드를 우선순위가 낮은 키워드보다 상위 노드로 설정함으로써 상기 식재료에 관한 트리 및 상기 조리법에 관한 트리 중 적어도 하나를 재구성하는 것이고,
    상기 유사도를 연산하는 것은,
    상기 유사도를 연산할 복수의 음식들 각각에 관련된 키워드들을 상기 식재료에 관한 트리 및 상기 조리법에 관한 트리에 표시함으로써 상기 유사도를 연산할 복수의 음식들 각각에 대응하는 행렬들을 생성하고,
    상기 행렬들 각각에 대응하는 벡터들을 생성하고, 상기 벡터들을 기준으로 음식의 유사도를 연산하는 것인, 컴퓨팅 장치.
KR1020220092418A 2022-07-26 2022-07-26 트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치 KR102540268B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220092418A KR102540268B1 (ko) 2022-07-26 2022-07-26 트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220092418A KR102540268B1 (ko) 2022-07-26 2022-07-26 트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102540268B1 true KR102540268B1 (ko) 2023-06-07

Family

ID=86760726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220092418A KR102540268B1 (ko) 2022-07-26 2022-07-26 트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102540268B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102607701B1 (ko) * 2023-05-03 2023-11-30 주식회사 팜킷 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170098269A1 (en) * 2015-08-12 2017-04-06 ScatterLab Inc. Method for providing necessary information based on chatting documents
KR20200104592A (ko) * 2019-02-27 2020-09-04 주식회사 포트럭테이블 큐레이션엔진을 이용한 추천음식콘텐츠 미디어 제공시스템
KR20210019392A (ko) * 2019-08-12 2021-02-22 주식회사 코너스톤헬스케어랩 온톨로지 기반의 식단 추천 장치 및 그 방법
KR20220026214A (ko) 2020-08-25 2022-03-04 특허법인아이피랩 음식 메뉴 추천 방법 및 음식 메뉴 추천 시스템
KR102415373B1 (ko) * 2021-11-15 2022-07-01 주식회사 팜킷 사용자의 기호에 맞는 음식을 추천하는 방법, 장치 및 컴퓨터 프로그램 제품

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170098269A1 (en) * 2015-08-12 2017-04-06 ScatterLab Inc. Method for providing necessary information based on chatting documents
KR20200104592A (ko) * 2019-02-27 2020-09-04 주식회사 포트럭테이블 큐레이션엔진을 이용한 추천음식콘텐츠 미디어 제공시스템
KR20210019392A (ko) * 2019-08-12 2021-02-22 주식회사 코너스톤헬스케어랩 온톨로지 기반의 식단 추천 장치 및 그 방법
KR20220026214A (ko) 2020-08-25 2022-03-04 특허법인아이피랩 음식 메뉴 추천 방법 및 음식 메뉴 추천 시스템
KR102415373B1 (ko) * 2021-11-15 2022-07-01 주식회사 팜킷 사용자의 기호에 맞는 음식을 추천하는 방법, 장치 및 컴퓨터 프로그램 제품

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Goofcode’s blog, ‘여러 가지 유사도 측정법(Similarity Measure)’. 2018.12.01. (출처: https://goofcode.github.io/similarity-measure)* *
박병석 외 6명. '유저 선호도 기반 내용기반 필터링 및 협력 필터링을 결합한 추천 기법'. 2016년 추계학술대회 논문집 제23권 제2호, 2016.11., pp.693-694. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102607701B1 (ko) * 2023-05-03 2023-11-30 주식회사 팜킷 사용자 음식 프로파일 구축을 위한 설문 리스트를 생성하는 방법 및 장치

Similar Documents

Publication Publication Date Title
Mouritsen et al. Cephalopod gastronomy—a promise for the future
Teixeira et al. Sheep and goat meat processed products quality: A review
Spitze et al. Taurine concentrations in animal feed ingredients; cooking influences taurine content
Matthews Food yields summarized by different stages of preparation
KR102540268B1 (ko) 트리를 이용하여 개인화 음식 추천을 위한 음식의 유사도를 측정하는 방법 및 장치
Bhat et al. Effect of heat treatment at different stages of rigor on the quality of pacific white shrimp (Litopenaeus vannamei)
Çakmak et al. An investigation on the basic contents of the main dishes of the Turkish cuisine
Mulík et al. Culinary uses of Mexican edible flowers: Recipe analysis
Martínez-Maldonado et al. Effect of the cooking process on the gelling properties of whole and minced jumbo lump of blue crab (Callinectes sapidus)
Teye et al. Carcass parameters and sensory characteristics of broiler chicken fed diets containing palm (Elaeis guineensis) kernel oil residue
Singh et al. Development of chicken meat caruncles on the basis of sensory attributes: process optimization using response surface methodology
Adu-Adjei et al. The effect of ‘Prekese’(Tetrapleura tetraptera) pod extract on the sensory and nutritional qualities of pork sausage
KR100920313B1 (ko) 아귀탕수육 제조방법
Duman et al. Chemical and sensory quality changes in fish balls prepared from Alburnus mossulensis Heckel, 1843 during frozen storage
Kasapis et al. Scientific and technological aspects of fish product development. Part I: handshaking instrumental texture with consumer preference in burgers
Polistico Philippine Food, Cooking, & Dining Dictionary
Adikari et al. Cooking conversion factor of commonly consumed Sri Lankan food items
Kumar et al. Study on nuggets prepared from different ratios of spent duck and spent hen meat
Kin et al. Sensory and physicochemical properties of smoked catfish sausages
Redhead Utilization of tropical foods: Animal products
Stankus Ham
Seddon Towards a Geography of Nepalese Cuisine
Zeppieri The African Vegan in Today’s Modern World: Guide to African Vegan
Vilgis Pleasure and Nutrition
Wahlqvist et al. Food Groups and Diets

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant