iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0

如何把飲食習慣這種零散的內容,拆解成可使用的資料?

還記得最前面說到專案的特色嗎? 希望可以盡可能貼近使用者需求,但飲食這件事非常個人化,例如早餐習慣吃什麼、口味偏好、有沒有忌口,這些都是生活的一部分,只靠計算是設計不出來的,還得先了解使用者的需求、生活、習慣。

問題是,這部分的知識是零散的,跟前面那些可以用公式邏輯化的計算性質不同,該如何透過技術來達成呢? 好在這正是 AI 相對擅長的地方。比起精確計算,AI 更擅長理解情境與語意、做歸納統整。此次專案正好可以善用 AI 的這個特性,幫助我們更了解使用者,進而設計出更人性化的飲食建議。

由於實作的細節會在後面的篇章分享,因此這邊先分享概要

  1. 介面設計 >>如何收集使用者資訊
  2. 輸入設計 >>AI該如何統整資訊,轉化成後續好使用的資料型態

介面設計:文字框+勾選項目並存

有些飲食敘述的範圍很小,能夠馬上做判斷,例如飲食禁忌、外食頻率等等,這類問題直接讓使用者勾選/小範圍的輸入框,會比較簡單,也比較不容易出錯,如果改成讓每個人自己打字描述,AI還要再去判斷他真正的意思,反而徒增不必要的麻煩。

但像「早餐幾乎都在超商買」、「常常晚上十一點吃消夜」這種敘述情境,就很難全部做成選項,因為每個人的生活習慣不同,敘述的情境範圍也很大,不可能把所有的項目都列出來。因此像這種比較細、生活化的資訊,就適合讓使用者直接用文字描述,再交給 AI 去理解。

簡單來說,兩種輸入方式各自負責不同的事情:

  • 勾選/小範圍輸入:適合答案比較固定,而且系統需要直接拿來做判斷的資訊,例如飲食禁忌、外食比例。
  • 自由文字:適合每個人差異很大、很難事先列成選項的資訊,例如平常在哪裡吃、幾點吃、常吃什麼。

輸入設計:自由文字最終會變成什麼樣態

決定哪些資訊要讓使用者自由輸入之後,下一個問題就是 : AI 看完這段自由文字之後,要整理成什麼格式,才有利後續設計菜單?

我的做法是把它整理成一個叫 DietaryAnalysis 的資料結構,裡面分成四類:

  • mealPattern:主要跟餐次有關,例如記錄一天大概吃幾餐、會不會不吃早餐、有沒有吃消夜,以及平常大概幾點吃飯
  • recallObservations:AI 幫忙整理出的重點觀察,例如「早餐通常在超商解決」
  • eatingOutPattern:描述平常外食的習慣,例如常吃便當、超商,還是外送。外食比例雖然已經用”勾選”的方式拿到大方向,但哪一餐外食、吃什麼類型,只有自述才看得出來,所以還是有讓 AI 針對這部份去做處理。
  • preferences:記錄飲食偏好,例如會不會喝含糖飲料、吃不吃辣、口味重不重,以及喜歡或不喜歡哪些食物

也就是說,使用者原本輸入的可能是一大段很生活化的描述,AI 的工作就是把這些零散資訊整理成固定的欄位,讓後面的系統比較好使用。至於為什麼是決定這四種類別呢? 主要跟營養師在判斷飲食時會觀察的點有關,不過這裡並沒有在計算營養,而是讓AI看懂「使用者平常的飲食習慣」。


上一篇
Day7 - 營養學基礎(下)
下一篇
Day9 - 為什麼要上雲端?這次專案用了哪些 AWS 服務?
系列文
營養師想做一個飲食建議產品10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言