From 30f2f250e67718e6a7ae762d405504fdb8938941 Mon Sep 17 00:00:00 2001 From: Jonas Weinz Date: Sat, 4 Jan 2020 13:49:14 +0100 Subject: [PATCH] refactoring scoring, part 1 --- .../EvolutionaryAlgorithm.ipynb | 3404 ++++++----------- 1 file changed, 1264 insertions(+), 2140 deletions(-) diff --git a/EvolutionaryAlgorithm/EvolutionaryAlgorithm.ipynb b/EvolutionaryAlgorithm/EvolutionaryAlgorithm.ipynb index 6519a93..d1e9925 100644 --- a/EvolutionaryAlgorithm/EvolutionaryAlgorithm.ipynb +++ b/EvolutionaryAlgorithm/EvolutionaryAlgorithm.ipynb @@ -200,7 +200,18 @@ "c_act = m_act._csr\n", "c_mix = m_mix._csr\n", "c_base_act = m_base_act._csr\n", - "c_base_mix = m_base_mix._csr\n" + "c_base_mix = m_base_mix._csr" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "c_grouped_mix = m_grouped_mix._csr\n", + "c_grouped_act = m_grouped_act._csr\n", + "c_grouped_base_act = m_grouped_base_act._csr" ] }, { @@ -332,6 +343,22 @@ " return np.sum(get_backward_adjacent(key,m,c)[1])" ] }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "def to_grouped_ingredient(ing:Ingredient):\n", + " groups = set()\n", + " for act in ing._action_set:\n", + " groups.add(AG.groups[act])\n", + " grouped_ingredient = Ingredient(ing._base_ingredient)\n", + " for g in groups:\n", + " grouped_ingredient.apply_action(g)\n", + " return grouped_ingredient" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -461,13 +488,16 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "PREPARE_RATIO_THRESHOLD = 0.35\n", "HEAT_RATIO_THRESHOLD = 0.65\n", "\n", + "PREPARE_SCORE_EPS = 0.05\n", + "HEAT_SCORE_EPS = 0.05\n", + "\n", "def prepare_ratio(ing:str):\n", " keys, values = m_grouped_act.get_backward_adjacent(Ingredient(ing).to_json())\n", " action_dict = dict(zip(keys,values))\n", @@ -490,7 +520,41 @@ "def random_heated(ingredient:str):\n", " ratio = heat_ratio(ingredient)\n", " \n", - " return ratio > np.random.normal(HEAT_RATIO_THRESHOLD,0.15)\n" + " return ratio > np.random.normal(HEAT_RATIO_THRESHOLD,0.15)\n", + "\n", + "def prepare_score(ingredient:Ingredient):\n", + " ing_str = ingredient._base_ingredient\n", + " \n", + " g_ing = to_grouped_ingredient(ingredient)\n", + " \n", + " ratio = prepare_ratio(ing_str)\n", + " \n", + " if ratio > PREPARE_RATIO_THRESHOLD + PREPARE_SCORE_EPS:\n", + " if 'prepare' not in g_ing._action_set:\n", + " return 0\n", + " \n", + " if ratio < PREPARE_RATIO_THRESHOLD - PREPARE_SCORE_EPS:\n", + " if 'prepare' in g_ing._action_set:\n", + " return 0\n", + " \n", + " return 1\n", + "\n", + "def heat_score(ingredient:Ingredient):\n", + " ing_str = ingredient._base_ingredient\n", + " \n", + " g_ing = to_grouped_ingredient(ingredient)\n", + " \n", + " ratio = heat_ratio(ing_str)\n", + " \n", + " if ratio > HEAT_RATIO_THRESHOLD + HEAT_SCORE_EPS:\n", + " if 'heat' not in g_ing._action_set:\n", + " return 0\n", + " \n", + " if ratio < HEAT_RATIO_THRESHOLD - HEAT_SCORE_EPS:\n", + " if 'heat' in g_ing._action_set:\n", + " return 0\n", + " \n", + " return 1\n" ] }, { @@ -845,7 +909,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 53, "metadata": {}, "outputs": [], "source": [ @@ -936,11 +1000,13 @@ " #p2 = sym_p_a_given_b(ing_b.to_json(), ing_a.to_json(), m_mix, c_mix)\n", " #s += 0.5 * p1 + 0.5 * p2\n", " \n", + " grouped_ing_a = to_grouped_ingredient(ing_a)\n", + " grouped_ing_b = to_grouped_ingredient(ing_b)\n", " \n", - " ia = m_mix._label_index[ing_a.to_json()]\n", - " ib = m_mix._label_index[ing_b.to_json()]\n", + " ia = m_grouped_mix._label_index[grouped_ing_a.to_json()]\n", + " ib = m_grouped_mix._label_index[grouped_ing_b.to_json()]\n", " \n", - " if c_mix[ia,ib] > 0 or c_mix[ib,ia] > 0:\n", + " if c_grouped_mix[ia,ib] > 0 or c_grouped_mix[ib,ia] > 0:\n", " s += 1\n", " \n", " \n", @@ -1048,7 +1114,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 127, "metadata": {}, "outputs": [], "source": [ @@ -1093,18 +1159,28 @@ " \n", " return duplicate_actions_score\n", " \n", + " def duplicate_groups_score(self, actions):\n", + " if len(actions) == 0:\n", + " return 1\n", + " groups = [AG.groups[a] for a in actions]\n", + " groups_set = set(groups)\n", + " \n", + " return len(groups_set) / len(groups)\n", + " \n", " def node_score(self):\n", " actions = self.get_actions()\n", " \n", - " if len(actions) == 0:\n", - " if p_ingredient_unprepared(self._name) < 0.2:\n", - " return 0\n", - " else:\n", - " if p_ingredient_unprepared(self._name) > 0.3:\n", - " return 0\n", + " ing = Ingredient(self._name)\n", + " for a in actions:\n", + " ing.apply_action(a)\n", " \n", - " action_number_score = gaussian(len(set(actions)), n_wanted_actions, 1) * gaussian_normalize_factor\n", - " return action_number_score * self.duplicate_actions_score(actions)\n", + " heat = heat_score(ing)\n", + " prepare = prepare_score(ing)\n", + " \n", + " score = (heat + prepare + self.duplicate_groups_score(actions)) / 3\n", + " score *= self.duplicate_actions_score(actions)\n", + " \n", + " return score\n", " \n", " \"\"\"\n", " actions = self.get_actions()\n", @@ -1145,7 +1221,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 128, "metadata": {}, "outputs": [], "source": [ @@ -1243,7 +1319,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 129, "metadata": {}, "outputs": [], "source": [ @@ -1610,7 +1686,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 130, "metadata": {}, "outputs": [], "source": [ @@ -1675,7 +1751,7 @@ " score = (0.5 * np.average(mix_scores) + 0.5 * np.average(act_scores)) * np.average(ing_scores)\n", " # judging also how many actions we have. So far use a gaussian with mean at number of ingredients\n", " \n", - " score *= gaussian(len(act_scores), len(mix_scores), 1)\n", + " score *= gaussian(len(act_scores), len(ing_scores), 1)\n", " return score\n", " \n", " \n", @@ -1712,12 +1788,12 @@ " def run(self, n=50):\n", " for i in tqdm(range(n), desc=\"run evolutionary cycles\"):\n", " self.mutate()\n", - " self.mutate()\n", + " #self.mutate()\n", " self.collect_scores()\n", " \n", - " #self.pairwise_competition()\n", + " self.pairwise_competition()\n", " #self.collect_scores()\n", - " self.hold_best(self._n)\n", + " #self.hold_best(self._n)\n", " \n", " \n", " \n", @@ -1742,7 +1818,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 131, "metadata": {}, "outputs": [], "source": [ @@ -1751,7 +1827,7 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 132, "metadata": {}, "outputs": [], "source": [ @@ -1760,13 +1836,13 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "06b1eddd4d3646d6af4dbca21d5b8d8e", + "model_id": "77d517dcc77745f5ab9bad76c5a154ea", "version_major": 2, "version_minor": 0 }, @@ -1785,7 +1861,35 @@ "version_minor": 0 }, "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=40.0, style=ProgressStyl…" + "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=20.0, style=ProgressStyl…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/lib/python3/dist-packages/numpy/lib/function_base.py:392: RuntimeWarning:\n", + "\n", + "Mean of empty slice.\n", + "\n", + "/usr/lib/python3/dist-packages/numpy/core/_methods.py:85: RuntimeWarning:\n", + "\n", + "invalid value encountered in double_scalars\n", + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=20.0, style=ProgressStyl…" ] }, "metadata": {}, @@ -1799,7 +1903,7 @@ "version_minor": 0 }, "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=40.0, style=ProgressStyl…" + "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=20.0, style=ProgressStyl…" ] }, "metadata": {}, @@ -1813,7 +1917,7 @@ "version_minor": 0 }, "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=40.0, style=ProgressStyl…" + "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=20.0, style=ProgressStyl…" ] }, "metadata": {}, @@ -1827,21 +1931,7 @@ "version_minor": 0 }, "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=40.0, style=ProgressStyl…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=40.0, style=ProgressStyl…" + "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=20.0, style=ProgressStyl…" ] }, "metadata": {}, @@ -1881,7 +1971,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 89, "metadata": {}, "outputs": [ { @@ -1893,220 +1983,88 @@ "\n", "\n", - "\n", - "\n", + "\n", + "\n", "%3\n", - "\n", - "\n", + "\n", + "\n", "\n", - "146\n", - "\n", - " \n", - "mix\n", - "node score: 0.0000\n", + "4307\n", + "\n", + " \n", + "chop\n", + "node score: 0.0000\n", "\n", - "\n", + "\n", "\n", - "144\n", - "\n", - " \n", - "bake\n", - "node score: 1.0000\n", + "4310\n", + "\n", + " \n", + "bake\n", + "node score: 1.0000\n", "\n", - "\n", + "\n", "\n", - "146->144\n", - "\n", - "\n", + "4307->4310\n", + "\n", + "\n", "\n", - "\n", - "\n", - "142\n", - "\n", - " \n", - "boil\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "146->142\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "145\n", - "\n", - " \n", - "mix\n", - "node score: 1.0000\n", + "4308\n", + "\n", + " \n", + "noodle\n", + "node score:0.6667\n", "\n", - "\n", + "\n", "\n", - "144->145\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "137\n", - "\n", - " \n", - "cheese\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "145->137\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "136\n", - "\n", - " \n", - "spaghetti sauce\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "145->136\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "138\n", - "\n", - " \n", - "ricotta cheese\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "145->138\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "143\n", - "\n", - " \n", - "mix\n", - "node score: 0.3333\n", - "\n", - "\n", - "\n", - "142->143\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "140\n", - "\n", - " \n", - "dice\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "143->140\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "141\n", - "\n", - " \n", - "ground beef\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "143->141\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "135\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "143->135\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "139\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "140->139\n", - "\n", - "\n", + "4310->4308\n", + "\n", + "\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 47, + "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "d = p.population[1].root().dot()\n", + "d = p.population[2].root().dot()\n", "d" ] }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**Ingredients**:\n", - " * cheese\n", - " * ground beef\n", - " * onion\n", - " * spaghetti sauce\n", - " * ricotta cheese\n", " * noodle\n", + " * cheese\n", "\n", "\n", "**Instructions**:\n", "\n", "| Step | Instruction |\n", "| ----:|:----------- |\n", - "| 1 | Mix cheese, spaghetti sauce and ricotta cheese. Then bake it. |\n", - "| 2 | dice onion and mix it with ground beef and noodle. Then boil it. |\n", - "| 3 | Mix together the results of step 1 and step 2. |\n" + "| 1 | Mix noodle and cheese. Then cook it. |\n" ], "text/plain": [ "" ] }, - "execution_count": 48, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -2117,9 +2075,32 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 134, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, description='evaluate population scores', max=10.0, style=ProgressStyl…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.2792595962810029" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "image/svg+xml": [ @@ -2129,392 +2110,117 @@ "\n", "\n", - "\n", - "\n", + "\n", + "\n", "%3\n", - "\n", - "\n", + "\n", + "\n", "\n", - "2513\n", - "\n", - " \n", - "mix\n", - "node score: 0.2000\n", + "6950\n", + "\n", + " \n", + "cook\n", + "node score: 0.6667\n", "\n", - "\n", + "\n", "\n", - "2507\n", - "\n", - " \n", - "cheese\n", - "node score:0.0000\n", + "6951\n", + "\n", + " \n", + "mix\n", + "node score: 1.0000\n", "\n", - "\n", + "\n", "\n", - "2513->2507\n", - "\n", - "\n", + "6950->6951\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "2506\n", - "\n", - " \n", - "noodle\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2513->2506\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2511\n", - "\n", - " \n", - "heat\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2513->2511\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2503\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2513->2503\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2512\n", - "\n", - " \n", - "mix\n", - "node score: 0.3333\n", - "\n", - "\n", - "\n", - "2511->2512\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2505\n", + "6954\n", "\n", - " \n", - "slice\n", + " \n", + "bake\n", "node score: 1.0000\n", "\n", - "\n", + "\n", + "\n", + "6951->6954\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6953\n", + "\n", + " \n", + "spaghetti sauce\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "6951->6953\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6957\n", + "\n", + " \n", + "cook\n", + "node score: 1.0000\n", + "\n", + "\n", "\n", - "2512->2505\n", - "\n", - "\n", + "6951->6957\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2501\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", + "\n", + "\n", + "6955\n", + "\n", + " \n", + "mozzarella cheese\n", + "node score:0.8333\n", "\n", - "\n", - "\n", - "2512->2501\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2508\n", - "\n", - " \n", - "olive oil\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2512->2508\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2510\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2512->2510\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2504\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2505->2504\n", + "\n", + "\n", + "6954->6955\n", "\n", "\n", "\n", - "\n", - "\n", - "2500\n", - "\n", - " \n", - "bacon\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2501->2500\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2509\n", - "\n", - " \n", - "salt\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2510->2509\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2502\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2503->2502\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "%3\n", - "\n", - "\n", - "\n", - "2526\n", - "\n", - " \n", - "mix\n", - "node score: 0.8333\n", - "\n", - "\n", - "\n", - "2518\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2526->2518\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2522\n", - "\n", - " \n", - "salt\n", - "node score:0.1353\n", - "\n", - "\n", - "\n", - "2526->2522\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2524\n", - "\n", - " \n", - "cook\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2526->2524\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2523\n", - "\n", - " \n", - "cheese\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2526->2523\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2517\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2518->2517\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2525\n", - "\n", - " \n", - "mix\n", - "node score: 0.3333\n", - "\n", - "\n", - "\n", - "2524->2525\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "2520\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", + "6952\n", + "\n", + " \n", + "noodle\n", + "node score:0.4167\n", "\n", - "\n", + "\n", "\n", - "2525->2520\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2521\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2525->2521\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2516\n", - "\n", - " \n", - "slice\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2525->2516\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2519\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2520->2519\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2515\n", - "\n", - " \n", - "bacon\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2516->2515\n", - "\n", - "\n", + "6957->6952\n", + "\n", + "\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.06631790227561707" ] }, "metadata": {}, @@ -2529,834 +2235,103 @@ "\n", "\n", - "\n", - "\n", + "\n", + "\n", "%3\n", - "\n", - "\n", + "\n", + "\n", "\n", - "2547\n", - "\n", - " \n", - "mix\n", - "node score: 0.0000\n", + "7194\n", + "\n", + " \n", + "cut\n", + "node score: 0.3333\n", "\n", - "\n", + "\n", "\n", - "2545\n", - "\n", - " \n", - "bake\n", - "node score: 0.8889\n", + "7196\n", + "\n", + " \n", + "mix\n", + "node score: 0.6667\n", "\n", - "\n", + "\n", "\n", - "2547->2545\n", - "\n", - "\n", + "7194->7196\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2542\n", - "\n", - " \n", - "brush\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2547->2542\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "2546\n", - "\n", - " \n", - "mix\n", - "node score: 0.3611\n", - "\n", - "\n", - "\n", - "2545->2546\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2534\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2546->2534\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2538\n", - "\n", - " \n", - "beat\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2546->2538\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2531\n", - "\n", - " \n", - "slice\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2546->2531\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2536\n", - "\n", - " \n", - "salt\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2546->2536\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2533\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2546->2533\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2544\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2546->2544\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2540\n", - "\n", - " \n", - "cut\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2546->2540\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2535\n", - "\n", - " \n", - "olive oil\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2546->2535\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2529\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2546->2529\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2537\n", - "\n", - " \n", - "cheese\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2538->2537\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2530\n", - "\n", - " \n", - "tomato\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2531->2530\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2532\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2533->2532\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2543\n", - "\n", - " \n", - "spinach\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2544->2543\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2539\n", - "\n", - " \n", - "garlic clove\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2540->2539\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2528\n", - "\n", - " \n", - "bacon\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2529->2528\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2541\n", - "\n", - " \n", - "egg\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2542->2541\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "%3\n", - "\n", - "\n", - "\n", - "2558\n", - "\n", - " \n", - "mix\n", - "node score: 0.0000\n", - "\n", - "\n", - "\n", - "2556\n", - "\n", - " \n", - "simmer\n", - "node score: 0.3333\n", - "\n", - "\n", - "\n", - "2558->2556\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2552\n", - "\n", - " \n", - "cut\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2558->2552\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2557\n", - "\n", - " \n", - "mix\n", - "node score: 0.3333\n", - "\n", - "\n", - "\n", - "2556->2557\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2555\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2557->2555\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2554\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2557->2554\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2550\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2557->2550\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2553\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2554->2553\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2549\n", - "\n", - " \n", - "bacon\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2550->2549\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2551\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2552->2551\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "%3\n", - "\n", - "\n", - "\n", - "2570\n", - "\n", - " \n", - "mix\n", - "node score: 0.1111\n", - "\n", - "\n", - "\n", - "2567\n", - "\n", - " \n", - "salt\n", - "node score:0.1353\n", - "\n", - "\n", - "\n", - "2570->2567\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2563\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2570->2563\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2568\n", - "\n", - " \n", - "bake\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2570->2568\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2561\n", - "\n", - " \n", - "cut\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2570->2561\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2562\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2563->2562\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2569\n", - "\n", - " \n", - "mix\n", - "node score: 0.0000\n", - "\n", - "\n", - "\n", - "2568->2569\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2566\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2569->2566\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2565\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2569->2565\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2564\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2565->2564\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2560\n", - "\n", - " \n", - "bacon\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2561->2560\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "%3\n", - "\n", - "\n", - "\n", - "2586\n", - "\n", - " \n", - "mix\n", - "node score: 0.0000\n", - "\n", - "\n", - "\n", - "2582\n", - "\n", - " \n", - "boil\n", - "node score: 0.8000\n", - "\n", - "\n", - "\n", - "2586->2582\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2584\n", - "\n", - " \n", - "cook\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2586->2584\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2575\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2586->2575\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2583\n", - "\n", - " \n", - "mix\n", - "node score: 0.4000\n", - "\n", - "\n", - "\n", - "2582->2583\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2573\n", + "7197\n", "\n", " \n", - "chop\n", + "bake\n", "node score: 1.0000\n", "\n", - "\n", - "\n", - "2583->2573\n", - "\n", - "\n", + "\n", + "\n", + "7196->7197\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2578\n", + "\n", + "\n", + "7200\n", "\n", " \n", "noodle\n", - "node score:0.6065\n", + "node score:0.3333\n", "\n", - "\n", - "\n", - "2583->2578\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2580\n", - "\n", - " \n", - "olive oil\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2583->2580\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2579\n", - "\n", - " \n", - "salt\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2583->2579\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2577\n", - "\n", - " \n", - "slice\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2583->2577\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2572\n", - "\n", - " \n", - "bacon\n", - "node score:1.0000\n", - "\n", - "\n", + "\n", "\n", - "2573->2572\n", + "7196->7200\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7199\n", + "\n", + " \n", + "spaghetti sauce\n", + "node score:0.3333\n", + "\n", + "\n", + "\n", + "7196->7199\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7198\n", + "\n", + " \n", + "mozzarella cheese\n", + "node score:0.6667\n", + "\n", + "\n", + "\n", + "7197->7198\n", "\n", "\n", "\n", - "\n", - "\n", - "2576\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2577->2576\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2581\n", - "\n", - " \n", - "cheese\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2584->2581\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2574\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2575->2574\n", - "\n", - "\n", - "\n", "\n", "\n" ], "text/plain": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.1411495893028336" ] }, "metadata": {}, @@ -3371,462 +2346,131 @@ "\n", "\n", - "\n", - "\n", + "\n", + "\n", "%3\n", - "\n", - "\n", + "\n", + "\n", "\n", - "2604\n", - "\n", - " \n", - "mix\n", - "node score: 0.0000\n", + "7283\n", + "\n", + " \n", + "knead\n", + "node score: 0.0000\n", "\n", - "\n", + "\n", "\n", - "2589\n", - "\n", - " \n", - "slice\n", - "node score: 1.0000\n", + "7284\n", + "\n", + " \n", + "mix\n", + "node score: 1.0000\n", "\n", - "\n", + "\n", "\n", - "2604->2589\n", - "\n", - "\n", + "7283->7284\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2591\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2604->2591\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2602\n", - "\n", - " \n", - "bake\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2604->2602\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "2588\n", - "\n", - " \n", - "bacon\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2589->2588\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2590\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2591->2590\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2603\n", - "\n", - " \n", - "mix\n", - "node score: 0.4286\n", - "\n", - "\n", - "\n", - "2602->2603\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2600\n", - "\n", - " \n", - "olive oil\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2603->2600\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2599\n", - "\n", - " \n", - "peel\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2603->2599\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2597\n", - "\n", - " \n", - "salt\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2603->2597\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2601\n", - "\n", - " \n", - "tomato sauce\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2603->2601\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2593\n", - "\n", - " \n", - "dice\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2603->2593\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2596\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2603->2596\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2594\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2603->2594\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2598\n", - "\n", - " \n", - "garlic clove\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2599->2598\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2592\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2593->2592\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2595\n", - "\n", - " \n", - "cheese\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2596->2595\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "%3\n", - "\n", - "\n", - "\n", - "2620\n", - "\n", - " \n", - "mix\n", - "node score: 0.0667\n", - "\n", - "\n", - "\n", - "2618\n", - "\n", - " \n", - "simmer\n", - "node score: 0.5000\n", - "\n", - "\n", - "\n", - "2620->2618\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2609\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2620->2609\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2617\n", - "\n", - " \n", - "cheese\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2620->2617\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2616\n", - "\n", - " \n", - "crack\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2620->2616\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2619\n", - "\n", - " \n", - "mix\n", - "node score: 0.3333\n", - "\n", - "\n", - "\n", - "2618->2619\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2607\n", + "7285\n", "\n", - " \n", - "chop\n", + " \n", + "heat\n", "node score: 1.0000\n", "\n", - "\n", - "\n", - "2619->2607\n", - "\n", - "\n", + "\n", + "\n", + "7284->7285\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2611\n", + "\n", + "\n", + "7289\n", "\n", - " \n", - "cut\n", + " \n", + "bake\n", "node score: 1.0000\n", "\n", - "\n", - "\n", - "2619->2611\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2612\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2619->2612\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2614\n", - "\n", - " \n", - "salt\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2619->2614\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2606\n", - "\n", - " \n", - "bacon\n", - "node score:1.0000\n", - "\n", - "\n", + "\n", "\n", - "2607->2606\n", + "7284->7289\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7287\n", + "\n", + " \n", + "cook\n", + "node score: 1.0000\n", + "\n", + "\n", + "\n", + "7284->7287\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7286\n", + "\n", + " \n", + "spaghetti sauce\n", + "node score:0.6667\n", + "\n", + "\n", + "\n", + "7285->7286\n", "\n", "\n", "\n", - "\n", - "\n", - "2610\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", + "\n", + "\n", + "7290\n", + "\n", + " \n", + "mozzarella cheese\n", + "node score:0.6667\n", "\n", - "\n", - "\n", - "2611->2610\n", + "\n", + "\n", + "7289->7290\n", "\n", "\n", "\n", - "\n", - "\n", - "2608\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", + "\n", + "\n", + "7288\n", + "\n", + " \n", + "noodle\n", + "node score:0.6667\n", "\n", - "\n", - "\n", - "2609->2608\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2615\n", - "\n", - " \n", - "egg\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2616->2615\n", - "\n", - "\n", + "\n", + "\n", + "7287->7288\n", + "\n", + "\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.1745372476756268" ] }, "metadata": {}, @@ -3841,178 +2485,548 @@ "\n", "\n", - "\n", + "\n", "\n", "%3\n", - "\n", - "\n", + "\n", + "\n", "\n", - "2633\n", - "\n", - " \n", - "mix\n", - "node score: 0.6000\n", + "7086\n", + "\n", + " \n", + "mix\n", + "node score: 0.3333\n", "\n", - "\n", + "\n", "\n", - "2625\n", - "\n", - " \n", - "chop\n", - "node score: 1.0000\n", + "7096\n", + "\n", + " \n", + "slice\n", + "node score: 0.0000\n", "\n", - "\n", + "\n", "\n", - "2633->2625\n", - "\n", - "\n", + "7086->7096\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2631\n", - "\n", - " \n", - "cook\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2633->2631\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2624\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2625->2624\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "2632\n", - "\n", - " \n", - "mix\n", - "node score: 0.7000\n", + "7089\n", + "\n", + " \n", + "heat\n", + "node score: 0.3333\n", "\n", - "\n", + "\n", "\n", - "2631->2632\n", - "\n", - "\n", + "7086->7089\n", + "\n", + "\n", "\n", - "\n", + "\n", + "\n", + "7087\n", + "\n", + " \n", + "beat\n", + "node score: 1.0000\n", + "\n", + "\n", + "\n", + "7096->7087\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7088\n", + "\n", + " \n", + "ricotta cheese\n", + "node score:0.5000\n", + "\n", + "\n", + "\n", + "7087->7088\n", + "\n", + "\n", + "\n", + "\n", "\n", - "2627\n", + "7090\n", + "\n", + " \n", + "place\n", + "node score: 1.0000\n", + "\n", + "\n", + "\n", + "7089->7090\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7091\n", + "\n", + " \n", + "mix\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "7090->7091\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7093\n", + "\n", + " \n", + "sausage\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7091->7093\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7094\n", + "\n", + " \n", + "noodle\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7091->7094\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7092\n", + "\n", + " \n", + "cheese\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7091->7092\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.13123551100656317" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "%3\n", + "\n", + "\n", + "\n", + "7262\n", + "\n", + " \n", + "mix\n", + "node score: 0.3333\n", + "\n", + "\n", + "\n", + "7266\n", + "\n", + " \n", + "heat\n", + "node score: 0.3333\n", + "\n", + "\n", + "\n", + "7262->7266\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7263\n", + "\n", + " \n", + "slice\n", + "node score: 1.0000\n", + "\n", + "\n", + "\n", + "7262->7263\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7267\n", + "\n", + " \n", + "place\n", + "node score: 1.0000\n", + "\n", + "\n", + "\n", + "7266->7267\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7268\n", + "\n", + " \n", + "mix\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "7267->7268\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7269\n", + "\n", + " \n", + "sausage\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7268->7269\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7270\n", + "\n", + " \n", + "noodle\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7268->7270\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7271\n", + "\n", + " \n", + "cheese\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7268->7271\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7265\n", + "\n", + " \n", + "ricotta cheese\n", + "node score:0.6667\n", + "\n", + "\n", + "\n", + "7263->7265\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.1637783329847165" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "%3\n", + "\n", + "\n", + "\n", + "7216\n", + "\n", + " \n", + "cook\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "7217\n", + "\n", + " \n", + "mix\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "7216->7217\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7220\n", + "\n", + " \n", + "spaghetti sauce\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7217->7220\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7222\n", + "\n", + " \n", + "noodle\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7217->7222\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7218\n", + "\n", + " \n", + "bake\n", + "node score: 1.0000\n", + "\n", + "\n", + "\n", + "7217->7218\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7219\n", + "\n", + " \n", + "mozzarella cheese\n", + "node score:0.8333\n", + "\n", + "\n", + "\n", + "7218->7219\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.14652509681410644" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "%3\n", + "\n", + "\n", + "\n", + "7085\n", + "\n", + " \n", + "cut\n", + "node score: 0.0000\n", + "\n", + "\n", + "\n", + "7078\n", + "\n", + " \n", + "cook\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "7085->7078\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7079\n", + "\n", + " \n", + "mix\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "7078->7079\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7082\n", "\n", " \n", - "chop\n", + "bake\n", "node score: 1.0000\n", "\n", - "\n", - "\n", - "2632->2627\n", - "\n", - "\n", + "\n", + "\n", + "7079->7082\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2629\n", + "\n", + "\n", + "7081\n", "\n", - " \n", - "cheese\n", - "node score:0.6065\n", + " \n", + "spaghetti sauce\n", + "node score:0.6667\n", "\n", - "\n", - "\n", - "2632->2629\n", - "\n", - "\n", + "\n", + "\n", + "7079->7081\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2630\n", - "\n", - " \n", - "salt\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2632->2630\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2623\n", - "\n", - " \n", - "slice\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2632->2623\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2628\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2632->2628\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "2626\n", - "\n", - " \n", - "onion\n", - "node score:1.0000\n", + "7080\n", + "\n", + " \n", + "noodle\n", + "node score:0.6667\n", "\n", - "\n", + "\n", "\n", - "2627->2626\n", + "7079->7080\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7083\n", + "\n", + " \n", + "mozzarella cheese\n", + "node score:0.5556\n", + "\n", + "\n", + "\n", + "7082->7083\n", "\n", "\n", "\n", - "\n", - "\n", - "2622\n", - "\n", - " \n", - "bacon\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2623->2622\n", - "\n", - "\n", - "\n", "\n", "\n" ], "text/plain": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.19357657961531471" ] }, "metadata": {}, @@ -4027,220 +3041,330 @@ "\n", "\n", - "\n", - "\n", + "\n", + "\n", "%3\n", - "\n", - "\n", + "\n", + "\n", "\n", - "2649\n", - "\n", - " \n", - "mix\n", - "node score: 0.1818\n", + "7234\n", + "\n", + " \n", + "place\n", + "node score: 0.3333\n", "\n", - "\n", + "\n", "\n", - "2640\n", - "\n", - " \n", - "cut\n", - "node score: 1.0000\n", + "7235\n", + "\n", + " \n", + "cook\n", + "node score: 1.0000\n", "\n", - "\n", + "\n", "\n", - "2649->2640\n", - "\n", - "\n", + "7234->7235\n", + "\n", + "\n", "\n", - "\n", - "\n", - "2647\n", - "\n", - " \n", - "cook\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2649->2647\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2638\n", - "\n", - " \n", - "cut\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2649->2638\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2642\n", - "\n", - " \n", - "cheese\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2649->2642\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2646\n", - "\n", - " \n", - "rinse\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2649->2646\n", - "\n", - "\n", - "\n", - "\n", + "\n", "\n", - "2639\n", - "\n", - " \n", - "onion\n", - "node score:0.6065\n", + "7236\n", + "\n", + " \n", + "mix\n", + "node score: 1.0000\n", "\n", - "\n", + "\n", "\n", - "2640->2639\n", - "\n", - "\n", + "7235->7236\n", + "\n", + "\n", "\n", - "\n", + "\n", + "\n", + "7237\n", + "\n", + " \n", + "noodle\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7236->7237\n", + "\n", + "\n", + "\n", + "\n", "\n", - "2648\n", - "\n", - " \n", - "mix\n", - "node score: 0.3333\n", + "7240\n", + "\n", + " \n", + "mozzarella cheese\n", + "node score:1.0000\n", "\n", - "\n", + "\n", "\n", - "2647->2648\n", - "\n", - "\n", + "7236->7240\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "2641\n", - "\n", - " \n", - "noodle\n", - "node score:0.6065\n", + "7238\n", + "\n", + " \n", + "spaghetti sauce\n", + "node score:1.0000\n", "\n", - "\n", + "\n", "\n", - "2648->2641\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2636\n", - "\n", - " \n", - "dice\n", - "node score: 1.0000\n", - "\n", - "\n", - "\n", - "2648->2636\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2644\n", - "\n", - " \n", - "olive oil\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2648->2644\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2643\n", - "\n", - " \n", - "salt\n", - "node score:0.0000\n", - "\n", - "\n", - "\n", - "2648->2643\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2635\n", - "\n", - " \n", - "bacon\n", - "node score:1.0000\n", - "\n", - "\n", - "\n", - "2636->2635\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2637\n", - "\n", - " \n", - "tomato\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2638->2637\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2645\n", - "\n", - " \n", - "spinach\n", - "node score:0.6065\n", - "\n", - "\n", - "\n", - "2646->2645\n", - "\n", - "\n", + "7236->7238\n", + "\n", + "\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.1637783329847165" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "%3\n", + "\n", + "\n", + "\n", + "6904\n", + "\n", + " \n", + "cook\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "6905\n", + "\n", + " \n", + "mix\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "6904->6905\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6907\n", + "\n", + " \n", + "noodle\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "6905->6907\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6908\n", + "\n", + " \n", + "spaghetti sauce\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "6905->6908\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6910\n", + "\n", + " \n", + "bake\n", + "node score: 1.0000\n", + "\n", + "\n", + "\n", + "6905->6910\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6906\n", + "\n", + " \n", + "mozzarella cheese\n", + "node score:0.8333\n", + "\n", + "\n", + "\n", + "6910->6906\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.23690276157171494" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "%3\n", + "\n", + "\n", + "\n", + "7172\n", + "\n", + " \n", + "place\n", + "node score: 0.3333\n", + "\n", + "\n", + "\n", + "7165\n", + "\n", + " \n", + "cook\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "7172->7165\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7166\n", + "\n", + " \n", + "mix\n", + "node score: 0.6667\n", + "\n", + "\n", + "\n", + "7165->7166\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7167\n", + "\n", + " \n", + "noodle\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7166->7167\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7168\n", + "\n", + " \n", + "spaghetti sauce\n", + "node score:1.0000\n", + "\n", + "\n", + "\n", + "7166->7168\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7169\n", + "\n", + " \n", + "bake\n", + "node score: 1.0000\n", + "\n", + "\n", + "\n", + "7166->7169\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7170\n", + "\n", + " \n", + "mozzarella cheese\n", + "node score:0.8889\n", + "\n", + "\n", + "\n", + "7169->7170\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" ] }, "metadata": {}, @@ -4248,7 +3372,7 @@ } ], "source": [ - "p.plot_population(collect_scores=False)" + "p.plot_population(collect_scores=True)" ] }, {