Inverse-Rezeptsuche/migrate.py

48 lines
1.2 KiB
Python
Raw Normal View History

2020-04-15 10:54:02 +00:00
import json
import cv2
import base64
import nltk as nltk
from nltk.corpus import stopwords
from application.db import Session, Recipe, Ingredient, Trunk
def stemWord(word):
arr = []
stopset = set(stopwords.words('german'))
stopset |= set("(),")
snowball = nltk.SnowballStemmer(language='german')
for token in nltk.word_tokenize(word):
if token in stopset or len(token) < 4:
continue
stemmed = snowball.stem(token)
arr.append(stemmed)
return arr
2020-04-15 10:54:02 +00:00
def migrate(path):
recs = ""
with open(path, encoding="utf-8") as file:
recs = json.load(file)
dbSession = Session()
counter = 0
leng = len(recs)
2020-04-15 10:54:02 +00:00
for key, value in recs.items():
name=key
resString=value[0]
link=value[2]
img=value[3].encode()
r = Recipe(name=name, instructions=resString, url=link, img=img)
2020-04-15 10:54:02 +00:00
for x, y in value[1].items():
a = Ingredient(name=x, ingredient_amount=y)
2020-04-15 10:54:02 +00:00
r.ingredient.append(a)
for x in stemWord(a.name):
t = Trunk(name=x)
r.trunk.append(t)
2020-04-15 10:54:02 +00:00
dbSession.add(r)
dbSession.commit()
counter+=1
print(counter/leng)
2020-04-15 10:54:02 +00:00
migrate('./data/recs.json')