Initialization done, Recipe to text
This commit is contained in:
parent
b4aae0ba02
commit
82507a2b89
File diff suppressed because it is too large
Load Diff
@ -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:
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user