IMD Inc. Logo 食事分析システムMeal Analysis System

IMD 食事分析システムIMD Meal Analysis System

自然な日本語の「事実」「評価」「指導」と「レコメンド」が、180種類以上の栄養素と食材の両面で、外食からコンビニ新商品までを対象として実現できる日本初の食事分析システムです。Japan’s first meal analysis system that generates natural-language facts, evaluations, guidance, and recommendations—covering 180+ nutrients and ingredients, from restaurant meals to new convenience-store products.

評価と「原因」の提示を実現Show Evaluations and the “Why”

食事分析システム フロー

IMD食品DBの活用により一般的な料理だけでなく、コンビニから外食まで全ジャンルに対応しています。Powered by the IMD Food DB, it supports all categories—from everyday dishes to convenience-store foods and restaurant meals.

出力文章の部分例Sample Output (Excerpt)

〇〇さん、こんにちは。

昨日の糖質量は 〇〇g でした。
先週と比較して今週は糖質量が 〇〇% 増加しています。
糖質量が増えつつあるようで、注意が必要です。

今週の食事で「カレー」「ラーメン」「炒飯」の順に糖質を含んだ料理でしたので、控えてみましょう。
「カレー」の糖質は「ごはん」が多く占めます。「ごはん」を含む料理は〇〇と〇〇もあります。
最も糖質が少なかったのは「ささみ」でした。「ささみ」のようなものを意識しましょう。

今月で最も食物繊維が多い食事はこんにゃくでしたので、意識して続けましょう。
食物繊維には糖質の吸収を抑える効果が期待できます。

来週は「カレー」の「ごはん」を控えるようにしてみましょう。

Hello, [Name].

Your carbohydrate intake yesterday was XX g.
Compared to last week, this week it has increased by XX%.
Your carbohydrate intake seems to be trending upward, so caution is needed.

This week, meals high in carbohydrates were (in order): curry, ramen, and fried rice—so try reducing them.
In curry, most carbs come from rice. Other meals that include rice are XX and XX.
The lowest-carb meal was chicken tender (sasami). Try to choose foods like that.

This month, the meal highest in dietary fiber was konjac—keep it up.
Dietary fiber is expected to help reduce carbohydrate absorption.

Next week, try reducing the rice portion of your curry.

本人や通常の栄養指導では気付けないような情報も、AIにより分析できます。AI can surface insights that individuals—or typical nutrition guidance—may not notice.

分析対応例Example Analyses Supported

一例であり、その他の各種ご要望に可能な限りお応えします。These are examples; we will accommodate other requests as much as possible.

項目Item 内容Description Example
期間別 絶対値Absolute totals by period今日/昨日/今週/先週/今月/先月の栄養や食材の期間摂取量
※全栄養素対応可
Totals of nutrients/ingredients for today/yesterday/this week/last week/this month/last month
* Supports all nutrients
「今月の野菜摂取量は〇gです」“Your vegetable intake this month is XX g.”
期間別 平均値Averages by period栄養や食材の期間平均
※全栄養素対応可
Average nutrients/ingredients within the period
* Supports all nutrients
「今月は1日あたり野菜を〇g 食べています」“This month you eat XX g of vegetables per day.”
期間別 平均増減比較Average increase/decrease栄養や食材の期間内平均差傾向
※全栄養素対応可
Trend of differences in period averages for nutrients/ingredients
* Supports all nutrients
「今月は先月より野菜が20%増えています」“Vegetables are up 20% vs. last month.”
期間別 充足率Adequacy by period栄養や食材の期間内平均充足率
※充足率定義があるもののみ
Average adequacy within the period
* Only for items with defined adequacy
「今週はビタミンCが十分補えていますね」“You’re getting enough vitamin C this week.”
栄養素 最大/最小摂取料理Max/min meals by nutrient指定栄養素の観点で指定期間内で含有量の最大・最小料理の抽出
※標準で上位3種まで提示
Find meals with maximum/minimum amounts of a specified nutrient within the period
* Up to top 3 by default
「今月で糖質が最も多かったのは『カレー』で、カレーで糖質が多いのは『ご飯』です。」“This month, curry had the most carbs—and most of the carbs in curry come from rice.”
食材 最大/最小摂取料理Max/min meals by ingredient指定食材の観点で指定期間内で含有量の最大・最小料理の抽出
※食材は食品標準成分表区分ベースで分類化
Find meals with maximum/minimum amounts of a specified ingredient within the period
* Ingredients are grouped based on the Standard Tables of Food Composition categories
「先月で最も酢が多かった料理はワカメの酢和えでしたね」“Last month, the meal with the most vinegar was wakame vinegar salad.”
カテゴリ別 総量Totals by category指定カテゴリに属する料理の個数や重量、比率を提示Show counts/weights/ratios of meals belonging to a specified category「先月は中華料理が半分を占めていますね」“Last month, Chinese cuisine accounted for half.”
区分別 総量Totals by source外食・商品・テイクアウト区分毎料理の個数や重量、比率を提示Show counts/weights/ratios by source: restaurant / product / takeout「先月は外食が30%を占めていますね」“Last month, restaurant meals were 30%.”
時間帯別 指定Time-of-day filter全評価において、朝昼晩間食の指定がある食事の限定Limit analyses to meals tagged as breakfast/lunch/dinner/snack「今週の朝食での糖質は、先週の朝食の糖質と比較して10%減少していますね」“Breakfast carbs this week are down 10% vs. last week’s breakfasts.”
未来体重®の算出Projected weight changeエネルギー換算 7,200kcl-8,000kcl 程度を 1kg として、体重増減予測を算出Estimate weight change using ~7,200–8,000 kcal per 1 kg as an energy conversion「来月には約 2kg の減量が期待できますね」“By next month, you may lose about 2 kg.”

分析ルール設定Analysis Rule Configuration

指導者や組織のポリシーに合わせてルールを選択・設定可能Select and configure rules to match your organization’s policy

栄養指導やアドバイスにガイドラインはあっても「定型フォーマット」はありません。そこで本分析APIは、食事内容さえわかれば、指針となる「お手本」指導&アドバイスのメッセージが瞬時に提示されるよう設計されています。
「事実」をご用意した上で、どのような指導フローで、何を主眼に、どのような動機付けで総括するかを、幾つかのルールとして「選択式」に分析ルール設定できます。
Even when guidelines exist for nutrition guidance, there is rarely a single fixed format. This Analytics API is designed so that once meal contents are provided, it can instantly generate best-practice guidance and advice messages as a reference template.
After preparing the “facts,” you can choose rule sets that define the guidance flow, focus areas, and motivational framing used to summarize and advise.

分析ルール設定の操作イメージ

指定URLから貴社専用IDとパスワードでログインします。ご契約別に、複数ルールを設定できます。ルール編集にはオリジナルエディタをご用意していますが、ルールは JSON で定義されていますので、他のアプリなどで編集して、インポートすることもできます。Log in via your dedicated URL using your company-specific ID and password. You can configure multiple rule sets per contract. We provide an editor, but rules are defined in JSON, so you can also edit them externally and import.

システム構成と連携System Architecture & Integration

全体構成イメージOverall Architecture (Diagram)
全体構成イメージ

お客様のアプリサーバーやクラウドなどから、弊社「食事分析API」にエンドユーザさまの食事内容などを送信頂くと、弊社分析エンジンが「分析ルール」をもとに、分析を実施して、リアルタイムに分析結果(自然な日本語)を返信いたします。
分析ルールは、予め弊社管理栄養士監修のものから選ぶこともできますし、お客様が設定頂くこともでき、そのためのWeb入力システムなどで構成された一式となります。
When your app server or cloud system sends end-user meal data to our Meal Analysis API, our engine analyzes it using the configured rules and returns results in real time (natural language).
Rules can be selected from templates supervised by our registered dietitians or configured by you using the provided web-based rule configuration system.

全体接続イメージOverall Connectivity (Diagram)
全体接続イメージ

お客様に関係する箇所については、概ね JSON 形式にて連結されたシステム構成となっております。APIへのアクセスとレスポンス、そしてルール設定についても全て JSON で記述でき開発が容易となっております。

分析APIに送信する食事内容については、分析に必要な情報を毎回送信頂く基本設定となっており、弊社にてエンドユーザさまの識別はできません。そのため、プライバシー保護を考慮されているお客様でも安心してご利用頂けます。

一方で、より正確な分析に必要なエンドユーザさまの性別や年齢等の属性情報については、(同情報に基づき、基礎代謝や生活代謝、栄養充足率を自動計算致します)任意で送信して頂くことで、その情報を加味した分析結果をご提供いたします。
Integration is primarily JSON-based, making development straightforward for API requests/responses and rule configuration.

By default, required meal information is sent with each request, and we cannot identify end users—helpful for privacy-sensitive use cases.

Optionally, you can also send profile attributes such as sex and age (used to automatically calculate basal metabolism, activity metabolism, and adequacy rates) to improve analysis accuracy.

ルール設定とエミュレーターRule Config & Emulator
ルール設定とエミュレーター

分析ルールをお客様が新規に作成された場合、その動作確認についても簡単にできるよう「分析API Webエミュレーター」をご用意しております。ルール設定も、エミュレーターもWebだけでご利用いただけるので、開発が容易になっております。If you create new rules, you can verify behavior easily using the “Meal Analysis API Web Emulator.” Both rule setup and the emulator are web-based, streamlining development.

分析API Webエミュレーターの利用例
シンプルな分析から、高度な分析までFrom Simple to Advanced Analytics
分析ルール

一般的な家庭料理だけでなく、商品や外食まで、その食材構成情報までフォローしたデータベースは日本で弊社が唯一、ご提供しております。(※弊社調べ)

そして本分析システムでは、栄養成分だけでなく、約 40 万件の弊社全食品データにおいて「食材構成情報」や、世界の研究所や公的機関などが定義した「スコア」や「分類」(例:Nutri-score, SV値, 6分類カテゴリコード等) などを分析の評価基準としてご利用頂くことができます。

そのため、他に類をみない、実現できない「圧倒的な分析力」を、お客様のサービスにご提供致します。
In Japan, we are the only provider (per our research) of a database that covers ingredient composition not only for home-cooked dishes, but also for products and restaurant meals.

Beyond nutrients, you can use ingredient composition data across ~400,000 foods, as well as global “scores” and “classifications” defined by research institutes and public bodies (e.g., Nutri-Score, SV, 6-category codes) as evaluation criteria.

This enables unmatched analytical power for your service.

API仕様API Specifications

ご利用条件Prerequisites

✅ 弊社食品検索APIをご利用になっているお客様(食事内容の指定に弊社食品識別子が必要です)
※分析エンジンにおいて、ご契約する検索APIを利用しますので、分析できる栄養素等はご契約内容と同じになります
✅ Customers who use our Food Search API (you need our food identifiers to specify meal contents)
* The analytics engine uses your contracted Search API, so analyzable nutrients depend on your contract.

クエリ概要(サンプルとコメント)Query Overview (Sample + Comments)
{
    "ver": 1,	// バージョン指定
    "type": "nutranalyze",	// タイプ指定
    "analyzer": "testrule1",	// ルール設定指定
    "authkey": "password0",	// パスワードキー設定
    "callbackdata": {			// レスポンス連携コールバック設定
        "user-defined-data1": "ABCDEFG",
        "user-defined-data2": "9876543"
    },
    "profile": {				// エンドユーザさまのプロフィール設定
        "type": "profile",
        "data": {
            "name": "エンドユーザーの呼称",
            "age": 25,			// 年齢
            "sex": "male",		// 性別
            "height": 165,		// 身長
            "weight": 60,			// 体重
            "intensity": 1.3		// 生活強度
        }
    },
    "meals": {				// 食事内容
        "type": "meals",		
        "data": [
            {
                "type": "meal",
                "date": "2020/07/22 11:00:00",	// 食事時間
                "data": [
                    {
                        "type": "food",
                        "data": {
                            "objectid": "FO7de5bd6a4cec65c8213902c7",	// OID指定
                            "quantity": 1.5	// 分量指定(1.0が1食分指定)
                        }
                    }
                ]
            }
        ]
    }
}
{
    "ver": 1,	// version
    "type": "nutranalyze",	// request type
    "analyzer": "testrule1",	// rule set
    "authkey": "password0",	// auth key
    "callbackdata": {			// optional callback payload
        "user-defined-data1": "ABCDEFG",
        "user-defined-data2": "9876543"
    },
    "profile": {				// end-user profile
        "type": "profile",
        "data": {
            "name": "User display name",
            "age": 25,			// age
            "sex": "male",		// sex
            "height": 165,		// height
            "weight": 60,			// weight
            "intensity": 1.3		// activity intensity
        }
    },
    "meals": {				// meal data
        "type": "meals",		
        "data": [
            {
                "type": "meal",
                "date": "2020/07/22 11:00:00",	// meal time
                "data": [
                    {
                        "type": "food",
                        "data": {
                            "objectid": "FO7de5bd6a4cec65c8213902c7",	// object ID (OID)
                            "quantity": 1.5	// portion (1.0 = one serving)
                        }
                    }
                ]
            }
        ]
    }
}
レスポンス概要(サンプルとコメント)Response Overview (Sample + Comments)
{
    "analyzer": {
        "analyzerid": "testrule1",			// 設定ルール
        "name": "テストデータ",				// ルールの名称
        "comment": "開発用"					// ルールの概説
    },
    "callbackdata": {						// コールバック設定(クエリで設定されたもの)
        "user-defined-data1": "ABCDEFG",
        "user-defined-data2": "9876543"
    },
    "analyze": {
        "steps": 10,						// 分析ステップ数
        "text": "ユーザーの名前さんの基礎代謝は1543kcalで、分析スコアは 3.7 でした" // テキスト例 改行は \\n
    },
    "result": true						// 正しくレスポンスできたかの確認
}
{
    "analyzer": {
        "analyzerid": "testrule1",			// rule set
        "name": "Test data",				// rule name
        "comment": "For development"		// description
    },
    "callbackdata": {						// callback payload (as set in query)
        "user-defined-data1": "ABCDEFG",
        "user-defined-data2": "9876543"
    },
    "analyze": {
        "steps": 10,						// number of analysis steps
        "text": "User’s BMR is 1543 kcal and the analysis score was 3.7" // example text; line breaks are \\n
    },
    "result": true						// whether the response succeeded
}

その他Notes

  • ルール設定については、別途:ルール設定手順書をご確認下さい。For rule configuration, please refer to the separate Rule Configuration Manual.
  • ルール設定及クエリー、レスポンスのフォーマットは変更される場合があります。※提供運用中にお客様へご連絡なく突然変更することは当然ありません。Rule configuration and the query/response formats may change.* We will not make sudden changes without notifying customers during operation.
  • Webエミュレーターについても、別途:ルール設定手順書をご確認下さい。※ログイン先はご契約毎に異なります。For the Web Emulator, please refer to the same manual.* Login URLs differ by contract.
  • 今後、グラフ生成用のレスポンスも検討致しておりますので、お客様担当へお問合せ下さい。We are also considering responses suitable for graph generation; please contact your account representative.

お問い合わせContact

食事分析システムに関するご質問・お見積りは、お気軽にお問い合わせください。For questions or quotes about the Meal Analysis System, feel free to contact us.

Webでお問い合わせContact (Web)

電話: 03-6809-6108 (音声自動認識システム)Phone: 03-6809-6108 (automated voice recognition system)