Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 L13-14. Term project (期末課題) A recipe recommendation system (レシピお勧めシステム) ( 満点: 30 点 ) RecipeRecommendation.java recipes.data materialsWm.data.

Similar presentations


Presentation on theme: "1 L13-14. Term project (期末課題) A recipe recommendation system (レシピお勧めシステム) ( 満点: 30 点 ) RecipeRecommendation.java recipes.data materialsWm.data."— Presentation transcript:

1 1 L13-14. Term project (期末課題) A recipe recommendation system (レシピお勧めシステム) ( 満点: 30 点 ) RecipeRecommendation.java recipes.data materialsWm.data

2 2 期末課題(1) レシピお勧めシステム – 冷蔵庫にある素材  facts in wm (materialsWM.data) – レシピは rule である http://www.ajinomoto.co.jp/recipe/ http://www.ajinomoto.co.jp/recipe/ 例: オムライス (ご飯、玉ねぎ、ハム、卵、トマトケチャップ、グリンピース) 、 オムライスカレーソース添え (オムライス、カレールートマト、パセリ) )  rules in a rule base (recipes.data)

3 3 期末課題(2) レシピお勧めシステム – 個人の好き嫌いによっておすすめする – メニューの情報や個人の健康状態によって おすすめする

4 期末課題 (30p) CheckPoint Ⅰ (15p) – レシピは 10 個以上 ( 調味料は含まない ) – メニューを2個以上生成 CheckPoint Ⅱ (15p) – 好き嫌いによっておすすめメニューをラン キング表示する

5 Check Point Ⅰ ~ メニューを2個以上完成させる ~ Rule だけでなく、 WorkingMemory ファ イルも別に作り読み込む – 今回は loadRules(“recipe.data”) だけではなく 、 loadWm(“materialsWm.data”) といったも のが必要となってくる キーワード –FileReader

6 Check Point Ⅱ ~ 好き嫌いによっておすすめをランキング表示 ~ 好きなものランキングのリストを自由 につくり、それに応じて出来上がった メニューをランキング形式で並び替え る キーワード –Hashtable –Vector

7 Appendix - 付録 - (参照用) Hashtable Ex4 RuleBaseSystem Ex11-12

8 8 import java.util.Hashtable; import java.util.Vector; import java.util.Collections; import java.util.Enumeration; public class SortHashtable { public static void main(String[] args) { // Create and populate hashtable Hashtable ht = new Hashtable(); ht.put("ABC", "abc"); ht.put("XYZ", "xyz"); ht.put("MNO", "mno"); // Sort hashtable. Vector v = new Vector(ht.keySet()); Collections.sort(v); // Display (sorted) hashtable. for (Enumeration e = v.elements(); e.hasMoreElements();) { String key = (String)e.nextElement(); String val = (String)ht.get(key); System.out.println("Key: " + key + " Val: " + val); } } } An example: Sort Hashtable KeyValue ABCabc XYZxyz MNOmno static voidsort(List list) Sorts the specified list into ascending order,sortList according to the natural ordering of its elements Output: Key: ABC Val: abc Key: MNO Val: mno Key: XYZ Val: xyz import java.util.*;

9 9 Rule-base System Examples rule "CarRule1" if "?x is inexpensive" then "?x is made in Japan" rule "CarRule4" if "?x is big" "?x needs a lot of gas" then "?x is a foreign car" class RuleBase { String fileName; WorkingMemory wm; Vector rules; RuleBase(){ fileName = “ex10/CarShop.data"; wm = new WorkingMemory(); wm.addAssertion("my-car is inexpensive"); wm.addAssertion("my-car is a wagon"); rules = new Vector(); loadRules(fileName); } class WorkingMemory { Vector assertions; WorkingMemory(){ assertions = new Vector(); } ……. class Rule { String name; Vector antecedents; String consequent; Rule(String theName,Vector theAntecedents, String theConsequent){ this.name = theName; this.antecedents = theAntecedents; this.consequent = theConsequent; } name antecedents consequent public void addAssertion(String theAssertion){ System.out.println("ADD:"+theAssertion); assertions.addElement(theAssertion); }

10 10 193: private void loadRules(String theFileName){ 194: String line; 195: try{ 196: int token; 197: f = new FileReader(theFileName); 198: st = new StreamTokenizer(f); 199: while((token = st.nextToken())!= StreamTokenizer.TT_EOF){ 200: switch(token){ 201: case StreamTokenizer.TT_WORD: 202: String name = null; 203: Vector antecedents = null; 204: String consequent = null; 205: if("rule".equals(st.sval)){ 206: if(st.nextToken() == '"'){ 207: name = st.sval; 208: st.nextToken(); 209: if("if".equals(st.sval)){ 210: antecedents = new Vector(); 211: st.nextToken(); 212: while(!"then".equals(st.sval)){ 213: antecedents.addElement(st.sval); 214: st.nextToken(); 215: } 216: if("then".equals(st.sval)){ 217: st.nextToken(); 218: consequent = st.sval; 219: } 220: } 221: } 222: } 223: rules.addElement( 224: new Rule(name,antecedents,consequent)); 225: break; 226: default: 227: System.out.println(token); 228: break; 229: } 230: } 231: } catch(Exception e){ 232: System.out.println(e); 233: } 234: for(int i = 0 ; i < rules.size() ; i++){ 235:System.out.println(((Rule)rules.elementAt(i)).toString()); 236: } 237: } 238:} loadRules method

11 11 Term Project A recipe recommendation system –Materials in a refrigerator  facts in wm (materialsWM.data) –Recipes as rules http://www.ajinomoto.co.jp/recipe/ http://www.ajinomoto.co.jp/recipe/ e.g. * Omelet rice ( Rice, Onion, Ham, Egg, Tomato, Green peas) * Curry sauce omelet rice ( Omelet Rice, Curry root, Tomato, Parsely)  rules in a rule base (recipe.data) –Personal preference (like, dislike food)


Download ppt "1 L13-14. Term project (期末課題) A recipe recommendation system (レシピお勧めシステム) ( 満点: 30 点 ) RecipeRecommendation.java recipes.data materialsWm.data."

Similar presentations


Ads by Google