第三章 研究方法
3.1. 資料來源
3.1.4 Cook's Thesaurus
國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
入二個長度大於二字元之食材名稱,使用者可對該食譜寫下最少一百字元之評論 或給予一至五分的評分。會員認為其他人的評論有助益時,可按下[like]鍵,也 可針對該評論給予[不實/和食譜無關/不適當]三種標記;食譜評論可選擇按[最新/
最有助益]二種排序方式列示。
圖 3-4 Yummly.com 食譜標示示意圖 Retrieved August 3, 2015,
http://www.yummly.com/recipe/Chicago-Chicken-822419?columns=4&position=11%
2F37
3.1.4 Cook's Thesaurus
Cook's Thesaurus 是一個烹飪百科全書的網站,1995 年成立,由 UC Davis 經濟學博士 Lori Alden 創立,涵蓋數以千計的食材成分及廚房工具,內容包括 圖片、描述、同義詞、發音及替代食材,圖 3-5 為 Cook's Thesaurus 綱站食材同 義詞示意圖。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
圖 3-5 Cook's Thesaurus 綱站食材同義詞示意圖 Retrieved August 6, 2015, http://www.foodsubs.com
3.2 資料前處理與同義詞處理
在資料探勘的過程中,為了確保得到高品質的探勘結果,資料前處理是重要 的步驟。檢視我們由網站取回的資料中,少數食譜只包含單一食材。針對這種現 象,Yummly.com 網站就限制新食譜應輸入至少二樣食材。故本實驗將單一食材 的食譜過濾。此外,對於取回之資料,單一食譜內若有食材重複出現,經過資料 前處理後,在該食譜內僅計一次。
分析網站食譜之食材名稱有多元化的情形。不同的食材名稱卻屬於相同的食 材,因此在分析食譜資料前,必須先針對食材的多元化情形做前處理。食材的多 元化有下列幾種情形:
(1) 大小寫: 例如 Parmesan cheese 和 parmesan cheese
(2) 單複數: 例如 allspice berry 和 allspice berries,及 frogs legs 和 frog's leg (3) 句型不同: 例如 juice of lemon 和 lemon juice,例如 anchovy packed in oil 和
oil packed anchovies,baby back pork ribs 和 pork baby back rib;jell-o instant
‧
vanilla pudding mix 和 vanilla instant pudding mix (such as jell-o) (4) 同義詞: 例如 star fruit、starfruit、carambola 同樣是楊桃的名稱。
分析網站食譜時,如未注意同義詞問題,會將 starfruit 及 carambola 視為不 網站 Cook's Thesaurus。以 Cook's Thesaurus 的食材同義詞為例,例如 star fruit = starfruit = carambola,本實驗將以 Cook's Thesaurus 取回之同義詞資料,作為第 一個同義詞來源。
但在處理此種網站對照表時,我們同時也注意到一詞多義的現象,如 kiwi fruit = kiwi = kiwifruit = Chinese gooseberry = monkey peach = yang-tao(參考圖 3-6),楊桃 漢語拼音亦為 yangtao;再如 papaya = lechosa = tree melon,而 carambola = five-angled fruit = five corners = Chinese star fruit = tree melon,papaya 及 carambola 都是 tree melon。
運用食譜網站整理的食材資訊
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
部份食譜網站有針對食材賦予對應編號之功能,如由 AllRecipes.com 下載之食譜 含有食材編號欄位。不同名稱的同樣食材會對應到相同的食材編號。舉例來說,
在 AllRecipes.com 中,食材編號 16284 對應到的食材名稱包括 non-fat milk, nonfat milk, skim milk,fat-free milk, fat free milk。但這類型資訊也會有 noise。例如 AllRecipes.com 中,一個食材名稱也會出現多個食材編號。例如食材編號 6328(參 考表 3-1),對應到的食材名稱有 margarine,softened, margarine, margarine, melted, butter or margarine, softened, milk。但 milk 對應的食材編號幾乎都是 16278。這筆 記錄應視為 noise。
圖 3-6 Cook's Thesaurus 食材資料示意圖 Retrieved August 6, 2015, http://www.foodsubs.com/
表 3-1 AllRecipes.com 內含食材編號 16284 之部份食材名稱
食材編號 食材名稱 出現的食譜次數
6328 margarine, softened 48
6328 margarine 10
6328 Margarinee,melted 1 6328 butter or margarine,
softened
1
6328 milk 1
‧
(1) Part-Of-Speech Tagger (POS Tagger): 判斷食材名稱中的每個單詞的詞性,如 名詞,動詞,形容詞等。
(2) Stemming :將字詞還原為能表達完整語義的原形(lemma),以處理單複數、形 容詞比較級及最高級或動詞不同時態的變化。
(3) 停用詞(Stop Words)移除:移除 in, of 等單詞。
(4) 產生 BoW (Bag-of-Words):保留詞性為名詞或動詞的單詞,將食材名稱以單 詞組成的集合,也就是 BoW 來表示。
以 anchovy packed in oil 和 oil packed anchovies 為例,經過 POS Tagger 之處 理結果如圖 3-7 及圖 3-8 所示:
‧
anchovy packed in oil 和 oil packed anchovies 是同義食材。因此,本研究針對食譜的食材名稱先進行自然語言處理,經過 Stemming 及 停用詞移除程序後,僅保留名詞及形容詞,形成不分順序之詞袋。BoW 相同者 視為相同的食材。
運用 Connected Component Labeling 解決遞移性的問題
經過 Cook's Thesaurus、AllRecipes.com 的食材編號及自然語言技術處理後,
我們可以分別產生相同食材的不同名稱,但這些名稱具備遞移性(Transitivity)的 關係。例如由Cook’s Thesaurus 得出食材 A=C, AllRecipes.com 得出 D=B=A,那 麼 A, B, C, D 都是相同食材的不同名稱。
因此我們運用 Graph 中 Connected Component Labeling 演算法來整合各資料 來源的同義詞組。在此 Graph 中,每個節點(Vertex)代表食材名稱。兩個名稱若 屬於 相 同食材, 則 其對應 的 兩節點 存 在有邊 (Edge)連結。彼此 有間接連通 (Connected)的一群節點稱為一個連通單元(Connected Component)。 舉例而言,
假設資料來源 1 指出食材 A=C,資料來源 2 指出食材 D=B=A,資料來源 3 指出 斷詞:
oil/NN
packed/VBD anchovies/NNS (ROOT
(S
(NP (NN oil) (VP (VBD packed)
(NP (NNS anchovies)))))
‧
二個 connected components。一個是{A, B, C, D},另一個是{E,F}。表 3-2 食材名稱之同義詞組範例
為了尋找圖形中所有 的 Connected Components, Connected Component Labeling 演算法為深度優先搜尋法(Depth-First Search)的圖形搜尋演算法[8]。深 度優先搜尋法以某一節點為出發點,不斷地透過連結的邊前進拜訪未曾被拜訪過
‧
計算出所有的 Connected Component 後,我們將得到同樣食材的同義詞組。
接著,必須決定同義詞組的代表名稱。我們先計算每項食材名稱在三個網站食譜
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
中式料理中頻繁被使用,而在其他料理類別中出現機率不高,代表食材A在中式 料理的重要性較在其他類別料理高,食材A很可能是中式料理的特色食材之一,
唯本論文嘗試找尋另一種探勘特色食材的方法。
以Food.com食譜網站中之印度料理料理為例,我們的實驗方法探勘得到的前 十大常用食材和特色食材有明顯不同(參考圖3-11及圖3-12)。
圖 3-11 印度料理前十大常用食材
圖 3-12 印度料理前十大特色食材
本論文探勘特色食材的方法為兼顧食材重要性及獨特性,分別計算重要性分
數及食材獨特性權重,再合併重要性及獨特性權重得到「食材特色值」。特色食
材值越高,越能代表該類料理,亦即食材在該類料理出現之頻率高,並且在其他
‧
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
3.4 食材搭配
食材搭配得宜,可以讓料理風味提升。知道那些食材適合互相搭配後,還可以此 為出發點,進而產生新食譜。因此食材搭配一直是料理的重要課題。例如網站 ingredientpairings.com 提供食材配對查詢,如圖 3-13,當使用者輸入查詢的食 材,系統就會自動產生適合搭配的食材。但此系統沒有考慮到不同料理的食材,
搭配關係也不同。
圖 3-13 www.ingredientpairings.com 示意圖,Retrieved August 8, 2015, http:// www.ingredientpairings.com
本研究想要找到常見的配對食材,也要找出不同料理類別的食材配對樣式。
我 們利用統計的方法包 括 支持度 (Support)、Phi 相關係數 (Phi coefficient)、
Pointwise Mutual Information(PMI)及資料探勘的關聯規則(Association Rules),來 找出經常搭配在一起之食材組合。
‧
頻繁出現在資料集合中的樣式,即頻繁樣式(Frequent Itemset)。
(2) Phi 相關係數 多落在「非對角線」(off-diagonal:主對角線之外的位置)欄位,對應於 2×2 列 聯表,亦即觀察值大多為(A,B)=(0,1)及(1,0)這兩種組合,則這兩個食材 A、B 呈
‧
(3) Pointwise Mutual Information
相互資訊(mutual information)是統計的一種方法,用來評估兩個事件集合之 間的相關程度;而 PMI 是點對點之相互資訊[13],評估的是兩個事件之間相關的
‧
項目,稱之為 k-項目集(k-itemsets)。關聯性法則的產生有兩個參數:支持度及 可信度(confidence)。支持度代表事件的發生機率,亦即為項目集在資料庫中所出‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
之中心度(Centrality)[5],即位居一個社群網路的中心位置,是最基礎的課題。中 心節點普遍被認為在社群網絡中扮演重要的角色,其中較常見的三種中心度指標 分別為 Degree centrality、Betweenness Centrality 及 Closeness Centrality。Degree Centrality 定義擁有愈多鄰居的節點是中心節點,Degree Centrality 愈高者表示其 在網絡中和較多的成員有關連。Closeness Centrality 定義與其他節點之平均距離 越短的節點為中心節點,與他人的平均距離越短,Closeness Centrality 則愈高,
表示較能快速取得資訊。Betweenness Centrality 定義為其他節點間之最短路徑常 經過的節點為中心節點[15],網絡中每兩兩成員的互動必須透過中介成員介紹,
Betweenness Centrality 越高的成員中介資訊流通的機會也越多,亦即該成員佔有 資訊流通的關鍵性位置。
圖 3-14 Food.com 核心食材
如果把全部食譜看成一個網絡,同一食譜中的食材和食材間的搭配關係為 邊,和最多不同食材搭配,即擁有愈多鄰居的食材,也就是 Degree Centrality 高 的食材,位居在一個食譜網絡的中心重要位置,我們稱之為核心食材(參考圖
‧
Machine(SVM)、C4.5 及 Random Forests 演算法進行理類別自動分類。食材特徵值的使用有以權重表示食材用量或以布林值來代表食材的有無
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
表 3-5 多多開伙網站提供的「番茄炒蛋」食譜
基於上述說明的困難有待解決,本研究所採用的方法為 Boolean model,亦 即特徵值只標示該食材是否出現在食譜中,而不表示食材用量多寡。實驗將使用 下列資料探勘演算法進行料理自動分類:
(1)
Support Vector MachineSVM 通常用在機器學習[30],是一種監督式學習(Supervised Learning)的方
法,可廣泛地應用於統計分類以及回歸分析。SVM 核心思想可以概括分為: (1) 將訓練資料視為多維的向量資料,針對線性可分條件下進行資料分析,對於非線 性可分之原始資料,使用非線性轉換演算法來升維,使得在高維度空間可使用線 性演算法來分析;(2)在特徵空間中找出最優分割超平面(hyper-plane),使得分隔 兩邊的邊界(margin)越寬越好。圖 3-15 為 SVM 分割示意圖。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
圖 3-15 SVM 分割示意圖,Retrieved August 5, 2015, https://en.wikipedia.org/wiki/Support_vector_machine
(2)
C4.5決策樹是透過集合論方式將已知資料(即訓練資料)中的各屬性資訊建構成樹 狀結構,再對未知資料分類,可視為一連串的邏輯判斷組合,即某種條件成立,
就會發生某種特定事件。決策樹分析可概括分為建立樹狀模型和修剪樹狀結構兩 個步驟。前者需根據各屬性或因子的不純程度(Degree of Impurity)先後分割成節 點,後者則是避免過度遷就(Over-Fitting)或雜訊。
C4.5 演算法是 Quinlan 於 1993 年提出[16],它是 ID3 演算法的擴充。C4.5 與 ID3 都是利用計算屬性的 Information Gain,由上而下遞迴地建構決策樹。在 每一回合中,選擇目前的訓練資料中 Information Gain 最高的屬性作為目前子樹 的樹根,也就是決策節點。C4.5 與 ID3 主要差異在於連續屬性(Continuous Attribute) 的處理、遺失資料(Missing Value)的處理及樹狀結構的修剪。
(3) Random Forests
Random Forests 屬於合議分類法(Ensemble Classification),是一種包含多個
Random Forests 屬於合議分類法(Ensemble Classification),是一種包含多個