Initialization done, Recipe to text
This commit is contained in:
		| @ -9,7 +9,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 1, | ||||
|    "execution_count": null, | ||||
|    "metadata": {}, | ||||
|    "outputs": [], | ||||
|    "source": [ | ||||
| @ -61,7 +61,8 @@ | ||||
|     "import settings\n", | ||||
|     "import AdjacencyMatrix\n", | ||||
|     "from tqdm.autonotebook import tqdm\n", | ||||
|     "from Recipe import Ingredient" | ||||
|     "from Recipe import Ingredient\n", | ||||
|     "from ActionGroups import groups" | ||||
|    ] | ||||
|   }, | ||||
|   { | ||||
| @ -186,12 +187,12 @@ | ||||
|     { | ||||
|      "data": { | ||||
|       "application/vnd.jupyter.widget-view+json": { | ||||
|        "model_id": "2db5dd15c87740729f16f5c258707db2", | ||||
|        "model_id": "6b079a15f1b94d9e9ebce8ad6eb82058", | ||||
|        "version_major": 2, | ||||
|        "version_minor": 0 | ||||
|       }, | ||||
|       "text/plain": [ | ||||
|        "HBox(children=(IntProgress(value=0, max=741659), HTML(value='')))" | ||||
|        "HBox(children=(FloatProgress(value=0.0, max=527544.0), HTML(value='')))" | ||||
|       ] | ||||
|      }, | ||||
|      "metadata": {}, | ||||
| @ -220,7 +221,7 @@ | ||||
|     "    \n", | ||||
|     "    grouped_act = groups[act]\n", | ||||
|     "    \n", | ||||
|     "    m_grouped_act.add_entry(grouped_act, grouped_ing.to_json(),1)\n", | ||||
|     "    m_grouped_act.add_entry(grouped_act, grouped_ing.to_json(),c[i_act, j_ing])\n", | ||||
|     "    " | ||||
|    ] | ||||
|   }, | ||||
| @ -232,12 +233,12 @@ | ||||
|     { | ||||
|      "data": { | ||||
|       "application/vnd.jupyter.widget-view+json": { | ||||
|        "model_id": "1d3f802944654954a6abbf8cb70f116e", | ||||
|        "model_id": "b5b6c8ff52d1407495ef7fcd3ff409a8", | ||||
|        "version_major": 2, | ||||
|        "version_minor": 0 | ||||
|       }, | ||||
|       "text/plain": [ | ||||
|        "HBox(children=(IntProgress(value=0, max=4472620), HTML(value='')))" | ||||
|        "HBox(children=(FloatProgress(value=0.0, max=2123892.0), HTML(value='')))" | ||||
|       ] | ||||
|      }, | ||||
|      "metadata": {}, | ||||
| @ -268,7 +269,7 @@ | ||||
|     "    for a in ing_b._action_set:\n", | ||||
|     "        grouped_ing_b.apply_action(groups[a])\n", | ||||
|     "        \n", | ||||
|     "    m_grouped_mix.add_entry(grouped_ing_a.to_json(), grouped_ing_b.to_json(),1)" | ||||
|     "    m_grouped_mix.add_entry(grouped_ing_a.to_json(), grouped_ing_b.to_json(),c[i_ing, j_ing])" | ||||
|    ] | ||||
|   }, | ||||
|   { | ||||
| @ -279,12 +280,12 @@ | ||||
|     { | ||||
|      "data": { | ||||
|       "application/vnd.jupyter.widget-view+json": { | ||||
|        "model_id": "92548999e3a6427bb33af20d3e53d9ef", | ||||
|        "model_id": "d4064d730bd34f49946f54b845738585", | ||||
|        "version_major": 2, | ||||
|        "version_minor": 0 | ||||
|       }, | ||||
|       "text/plain": [ | ||||
|        "HBox(children=(IntProgress(value=0, max=114804), HTML(value='')))" | ||||
|        "HBox(children=(FloatProgress(value=0.0, max=78714.0), HTML(value='')))" | ||||
|       ] | ||||
|      }, | ||||
|      "metadata": {}, | ||||
| @ -309,7 +310,7 @@ | ||||
|     "    \n", | ||||
|     "    grouped_act = groups[act]\n", | ||||
|     "    \n", | ||||
|     "    m_grouped_base_act.add_entry(grouped_act, base_ing,1)" | ||||
|     "    m_grouped_base_act.add_entry(grouped_act, base_ing,c[i_act,j_ing])" | ||||
|    ] | ||||
|   }, | ||||
|   { | ||||
|  | ||||
| @ -75,7 +75,7 @@ | ||||
|     { | ||||
|      "data": { | ||||
|       "text/plain": [ | ||||
|        "<db.database_connection.DatabaseConnection at 0x7f5d9469c550>" | ||||
|        "<db.database_connection.DatabaseConnection at 0x7fbc4c131510>" | ||||
|       ] | ||||
|      }, | ||||
|      "execution_count": 2, | ||||
| @ -101,8 +101,8 @@ | ||||
|      "name": "stdout", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "CPU times: user 8.17 s, sys: 632 ms, total: 8.8 s\n", | ||||
|       "Wall time: 8.84 s\n" | ||||
|       "CPU times: user 8.68 s, sys: 778 ms, total: 9.46 s\n", | ||||
|       "Wall time: 12.5 s\n" | ||||
|      ] | ||||
|     } | ||||
|    ], | ||||
| @ -181,18 +181,18 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 8, | ||||
|    "execution_count": 7, | ||||
|    "metadata": {}, | ||||
|    "outputs": [ | ||||
|     { | ||||
|      "data": { | ||||
|       "application/vnd.jupyter.widget-view+json": { | ||||
|        "model_id": "96abe66e3b4340ea8031c54333c28431", | ||||
|        "model_id": "70396063ce4140b48105751d0ece88c9", | ||||
|        "version_major": 2, | ||||
|        "version_minor": 0 | ||||
|       }, | ||||
|       "text/plain": [ | ||||
|        "HBox(children=(IntProgress(value=0, max=100000), HTML(value='')))" | ||||
|        "HBox(children=(FloatProgress(value=0.0, max=100000.0), HTML(value='')))" | ||||
|       ] | ||||
|      }, | ||||
|      "metadata": {}, | ||||
| @ -202,28 +202,10 @@ | ||||
|      "name": "stdout", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "warning: recipe 7a6657f1be has no ingredient! skipping it\n", | ||||
|       "warning: recipe 985bf99cb0 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 7b06b89a00 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 5d99d73716 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 5ea97ce121 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 219c14975a has no ingredient! skipping it\n", | ||||
|       "warning: recipe 312dab2c6e has no ingredient! skipping it\n", | ||||
|       "warning: recipe 9847df394d has no ingredient! skipping it\n", | ||||
|       "warning: recipe c456eca29f has no ingredient! skipping it\n", | ||||
|       "warning: recipe 63809adf7d has no ingredient! skipping it\n", | ||||
|       "warning: recipe d8097248d7 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 4f6df45cbe has no ingredient! skipping it\n", | ||||
|       "warning: recipe fa8ffd2e9f has no ingredient! skipping it\n", | ||||
|       "warning: recipe 1274925e80 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 780a3bfa7f has no ingredient! skipping it\n", | ||||
|       "warning: recipe 2f58557f49 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 6e0201877c has no ingredient! skipping it\n", | ||||
|       "warning: recipe 4be587da96 has no ingredient! skipping it\n", | ||||
|       "warning: recipe b4fc8f359d has no ingredient! skipping it\n", | ||||
|       "warning: recipe 83dc617c2a has no ingredient! skipping it\n", | ||||
|       "warning: recipe fe406ab97d has no ingredient! skipping it\n", | ||||
|       "an error occured : 'NoneType' object is not subscriptable\n" | ||||
|       "warning: recipe 0a14762efd has no ingredient! skipping it\n", | ||||
|       "warning: recipe 361b00dc50 has no ingredient! skipping it\n", | ||||
|       "warning: recipe e3b081a317 has no ingredient! skipping it\n", | ||||
|       "an error occured : 'NoneType' object has no attribute 'lower'\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
| @ -244,27 +226,39 @@ | ||||
|       "    return [word2features(sent, i) for i in range(len(sent))]\n", | ||||
|       "  File \"../Tagging/crf_data_generator.py\", line 87, in <listcomp>\n", | ||||
|       "    return [word2features(sent, i) for i in range(len(sent))]\n", | ||||
|       "  File \"../Tagging/crf_data_generator.py\", line 19, in word2features\n", | ||||
|       "    'word[-3:]=' + word[-3:],\n", | ||||
|       "TypeError: 'NoneType' object is not subscriptable\n" | ||||
|       "  File \"../Tagging/crf_data_generator.py\", line 54, in word2features\n", | ||||
|       "    '+1:word.lower=' + word1.lower(),\n", | ||||
|       "AttributeError: 'NoneType' object has no attribute 'lower'\n" | ||||
|      ] | ||||
|     }, | ||||
|     { | ||||
|      "name": "stdout", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "warning: recipe 83e51c3bc6 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 4178a59023 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 37711ac6d0 has no ingredient! skipping it\n", | ||||
|       "warning: recipe f93a2bfa73 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 5f02077e4c has no ingredient! skipping it\n", | ||||
|       "warning: recipe 3cb76a27d1 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 4c786ec3d6 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 90d70c93c3 has no ingredient! skipping it\n", | ||||
|       "warning: recipe a5f6838027 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 80dd4d10ab has no ingredient! skipping it\n", | ||||
|       "warning: recipe ac1ab87418 has no ingredient! skipping it\n", | ||||
|       "warning: recipe fa5b33cadc has no ingredient! skipping it\n", | ||||
|       "warning: recipe 80eb0385d0 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 2dfb05c466 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 7b372faa16 has no ingredient! skipping it\n", | ||||
|       "warning: recipe f53fe916f2 has no ingredient! skipping it\n", | ||||
|       "warning: recipe b4ff30e1de has no ingredient! skipping it\n", | ||||
|       "warning: recipe cf2300c7ac has no ingredient! skipping it\n", | ||||
|       "warning: recipe d09e7e82f9 has no ingredient! skipping it\n", | ||||
|       "warning: recipe edbdc9c52f has no ingredient! skipping it\n", | ||||
|       "warning: recipe 4db0dadfce has no ingredient! skipping it\n", | ||||
|       "warning: recipe d9933872c6 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 37af7ba84f has no ingredient! skipping it\n", | ||||
|       "warning: recipe cfc02f6bd7 has no ingredient! skipping it\n", | ||||
|       "warning: recipe fac985c58f has no ingredient! skipping it\n", | ||||
|       "warning: recipe 91308ac1b2 has no ingredient! skipping it\n", | ||||
|       "warning: recipe d3ff2bf3f9 has no ingredient! skipping it\n", | ||||
|       "warning: recipe ed9a0d0d51 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 52f19fe220 has no ingredient! skipping it\n", | ||||
|       "warning: recipe 6fa7839c14 has no ingredient! skipping it\n", | ||||
|       "\n", | ||||
|       "CPU times: user 2h 14min 8s, sys: 42.9 s, total: 2h 14min 51s\n", | ||||
|       "Wall time: 2h 15min 40s\n" | ||||
|       "CPU times: user 1h 57min 25s, sys: 36.8 s, total: 1h 58min 2s\n", | ||||
|       "Wall time: 1h 58min 41s\n" | ||||
|      ] | ||||
|     } | ||||
|    ], | ||||
| @ -288,7 +282,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 9, | ||||
|    "execution_count": 8, | ||||
|    "metadata": {}, | ||||
|    "outputs": [ | ||||
|     { | ||||
| @ -297,7 +291,7 @@ | ||||
|        "99999" | ||||
|       ] | ||||
|      }, | ||||
|      "execution_count": 9, | ||||
|      "execution_count": 8, | ||||
|      "metadata": {}, | ||||
|      "output_type": "execute_result" | ||||
|     } | ||||
| @ -308,7 +302,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 10, | ||||
|    "execution_count": 9, | ||||
|    "metadata": {}, | ||||
|    "outputs": [], | ||||
|    "source": [ | ||||
| @ -324,7 +318,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 11, | ||||
|    "execution_count": 10, | ||||
|    "metadata": {}, | ||||
|    "outputs": [], | ||||
|    "source": [ | ||||
| @ -336,7 +330,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 12, | ||||
|    "execution_count": 11, | ||||
|    "metadata": {}, | ||||
|    "outputs": [], | ||||
|    "source": [ | ||||
| @ -348,7 +342,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 14, | ||||
|    "execution_count": 12, | ||||
|    "metadata": {}, | ||||
|    "outputs": [], | ||||
|    "source": [ | ||||
| @ -360,7 +354,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 39, | ||||
|    "execution_count": 13, | ||||
|    "metadata": {}, | ||||
|    "outputs": [], | ||||
|    "source": [ | ||||
| @ -379,7 +373,7 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 13, | ||||
|    "execution_count": 14, | ||||
|    "metadata": {}, | ||||
|    "outputs": [], | ||||
|    "source": [ | ||||
| @ -398,10 +392,10 @@ | ||||
|      "name": "stdout", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "(65, 378992) (428558, 428558)\n", | ||||
|       "43498 74724\n", | ||||
|       "(65, 17533) (22178, 22178)\n", | ||||
|       "15465 42881\n" | ||||
|       "(65, 272623) (293753, 293753)\n", | ||||
|       "30381 42885\n", | ||||
|       "(65, 11807) (13603, 13603)\n", | ||||
|       "10725 19775\n" | ||||
|      ] | ||||
|     } | ||||
|    ], | ||||
| @ -414,15 +408,15 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 35, | ||||
|    "execution_count": 16, | ||||
|    "metadata": {}, | ||||
|    "outputs": [ | ||||
|     { | ||||
|      "name": "stdout", | ||||
|      "output_type": "stream", | ||||
|      "text": [ | ||||
|       "(65, 384445) (433582, 433582)\n", | ||||
|       "749954 4526723\n" | ||||
|       "(65, 272623) (293753, 293753)\n", | ||||
|       "30381 42885\n" | ||||
|      ] | ||||
|     } | ||||
|    ], | ||||
| @ -433,16 +427,16 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 16, | ||||
|    "execution_count": 18, | ||||
|    "metadata": {}, | ||||
|    "outputs": [ | ||||
|     { | ||||
|      "data": { | ||||
|       "text/plain": [ | ||||
|        "43498" | ||||
|        "30381" | ||||
|       ] | ||||
|      }, | ||||
|      "execution_count": 16, | ||||
|      "execution_count": 18, | ||||
|      "metadata": {}, | ||||
|      "output_type": "execute_result" | ||||
|     } | ||||
| @ -453,26 +447,9 @@ | ||||
|   }, | ||||
|   { | ||||
|    "cell_type": "code", | ||||
|    "execution_count": 99, | ||||
|    "execution_count": null, | ||||
|    "metadata": {}, | ||||
|    "outputs": [ | ||||
|     { | ||||
|      "data": { | ||||
|       "text/plain": [ | ||||
|        "array([[1, 1, 0, ..., 0, 0, 0],\n", | ||||
|        "       [0, 0, 1, ..., 0, 0, 0],\n", | ||||
|        "       [0, 0, 0, ..., 0, 0, 0],\n", | ||||
|        "       ...,\n", | ||||
|        "       [0, 0, 0, ..., 0, 0, 0],\n", | ||||
|        "       [0, 0, 0, ..., 0, 0, 0],\n", | ||||
|        "       [0, 0, 0, ..., 0, 0, 0]], dtype=int64)" | ||||
|       ] | ||||
|      }, | ||||
|      "execution_count": 99, | ||||
|      "metadata": {}, | ||||
|      "output_type": "execute_result" | ||||
|     } | ||||
|    ], | ||||
|    "outputs": [], | ||||
|    "source": [] | ||||
|   }, | ||||
|   { | ||||
|  | ||||
| @ -344,7 +344,7 @@ | ||||
|     "    def copy(self):\n", | ||||
|     "        return RecipeState([ing.copy() for ing in self._ingredients])\n", | ||||
|     "    \n", | ||||
|     "    def apply_action(self, action: str, ing: Ingredient, instruction_number=0, sim_threshold = 0.6):\n", | ||||
|     "    def apply_action(self, action: str, ing: Ingredient, instruction_number=0, sim_threshold = 0.6, add_new_if_not_similar=True):\n", | ||||
|     "        # find most similar ingredient to the given one and apply action on it\n", | ||||
|     "        sim_val, best_ing = ing.most_similar_ingredient(self._ingredients)\n", | ||||
|     "        \n", | ||||
| @ -360,7 +360,7 @@ | ||||
|     "                self._seen_applied_actions.add((action, best_ing.to_json()))\n", | ||||
|     "            best_ing.apply_action(action, instruction_number)\n", | ||||
|     "            self._seen_ingredients.add(best_ing.to_json())\n", | ||||
|     "        else:\n", | ||||
|     "        elif add_new_if_not_similar:\n", | ||||
|     "            self._ingredients.append(ing)\n", | ||||
|     "            if action not in actions.stemmed_mixing_cooking_verbs:\n", | ||||
|     "                self._seen_actions.add(action)\n", | ||||
| @ -1284,7 +1284,7 @@ | ||||
|     "                        actions_used.add(action['lemma'])\n", | ||||
|     "                        ingredients_used.add(ing_str)\n", | ||||
|     "                        # apply action on state\n", | ||||
|     "                        current_state.apply_action(action['lemma'], ing, instruction_number=instruction_number)\n", | ||||
|     "                        current_state.apply_action(action['lemma'], ing, instruction_number=instruction_number, add_new_if_not_similar=False)\n", | ||||
|     "                        if debug:\n", | ||||
|     "                            print(f\"\\tapply {action['lemma']} on {ing}\")\n", | ||||
|     "            \n", | ||||
| @ -1302,7 +1302,7 @@ | ||||
|     "                            actions_used.add(act_token['lemma'])\n", | ||||
|     "                            ingredients_used.add(ing_str)\n", | ||||
|     "                            ing = Ingredient(ing_str)\n", | ||||
|     "                            current_state.apply_action(act_token['lemma'], ing, instruction_number=instruction_number)\n", | ||||
|     "                            current_state.apply_action(act_token['lemma'], ing, instruction_number=instruction_number, add_new_if_not_similar=False)\n", | ||||
|     "                            if debug:\n", | ||||
|     "                                print(f\"\\tapply {act_token['lemma']} on {ing}\")\n", | ||||
|     "                            break\n", | ||||
| @ -1339,7 +1339,7 @@ | ||||
|     "                print(\"mixing all ingredients in this instruction:\")\n", | ||||
|     "            \n", | ||||
|     "            for ing_str in clustered_ingredients:\n", | ||||
|     "                current_state.apply_action(\"mix\", Ingredient(ing_str), instruction_number=instruction_number)\n", | ||||
|     "                current_state.apply_action(\"mix\", Ingredient(ing_str), instruction_number=instruction_number, add_new_if_not_similar=False)\n", | ||||
|     "        \n", | ||||
|     "            for ing in current_state.get_combined_ingredients():\n", | ||||
|     "                if debug:\n", | ||||
|  | ||||
| @ -234,7 +234,7 @@ class RecipeState(object): | ||||
|     def copy(self): | ||||
|         return RecipeState([ing.copy() for ing in self._ingredients]) | ||||
|      | ||||
|     def apply_action(self, action: str, ing: Ingredient, instruction_number=0, sim_threshold = 0.6): | ||||
|     def apply_action(self, action: str, ing: Ingredient, instruction_number=0, sim_threshold = 0.6, add_new_if_not_similar=True): | ||||
|         # find most similar ingredient to the given one and apply action on it | ||||
|         sim_val, best_ing = ing.most_similar_ingredient(self._ingredients) | ||||
|          | ||||
| @ -250,7 +250,7 @@ class RecipeState(object): | ||||
|                 self._seen_applied_actions.add((action, best_ing.to_json())) | ||||
|             best_ing.apply_action(action, instruction_number) | ||||
|             self._seen_ingredients.add(best_ing.to_json()) | ||||
|         else: | ||||
|         elif add_new_if_not_similar: | ||||
|             self._ingredients.append(ing) | ||||
|             if action not in actions.stemmed_mixing_cooking_verbs: | ||||
|                 self._seen_actions.add(action) | ||||
| @ -1150,7 +1150,7 @@ class Recipe(object): | ||||
|                         actions_used.add(action['lemma']) | ||||
|                         ingredients_used.add(ing_str) | ||||
|                         # apply action on state | ||||
|                         current_state.apply_action(action['lemma'], ing, instruction_number=instruction_number) | ||||
|                         current_state.apply_action(action['lemma'], ing, instruction_number=instruction_number, add_new_if_not_similar=False) | ||||
|                         if debug: | ||||
|                             print(f"\tapply {action['lemma']} on {ing}") | ||||
|              | ||||
| @ -1168,7 +1168,7 @@ class Recipe(object): | ||||
|                             actions_used.add(act_token['lemma']) | ||||
|                             ingredients_used.add(ing_str) | ||||
|                             ing = Ingredient(ing_str) | ||||
|                             current_state.apply_action(act_token['lemma'], ing, instruction_number=instruction_number) | ||||
|                             current_state.apply_action(act_token['lemma'], ing, instruction_number=instruction_number, add_new_if_not_similar=False) | ||||
|                             if debug: | ||||
|                                 print(f"\tapply {act_token['lemma']} on {ing}") | ||||
|                             break | ||||
| @ -1205,7 +1205,7 @@ class Recipe(object): | ||||
|                 print("mixing all ingredients in this instruction:") | ||||
|              | ||||
|             for ing_str in clustered_ingredients: | ||||
|                 current_state.apply_action("mix", Ingredient(ing_str), instruction_number=instruction_number) | ||||
|                 current_state.apply_action("mix", Ingredient(ing_str), instruction_number=instruction_number, add_new_if_not_similar=False) | ||||
|          | ||||
|             for ing in current_state.get_combined_ingredients(): | ||||
|                 if debug: | ||||
|  | ||||
		Reference in New Issue
	
	Block a user