def singleStore(self, lst): targLst = [] wallLst = [] a = heap.heap(1) b = heap.heap(2) for i in lst: print(i.data) # print(i.data) if i.data[3] == "target": targLst.append(i) self.cursor.execute("SELECT * FROM search_type WHERE id = %s", (i.data[5],)) searchTerm = self.cursor.fetchone()[1] c = bayesFilter.naivebayes(bayesFilter.getwords, searchTerm, self.database, self.cursor) self.cursor.execute("SELECT * FROM search_type WHERE search = %s", (searchTerm,)) results = self.cursor.fetchall() for j in results: if j[3] == "walmart": pass else: toup = (j.data[0], j.data[1], j.data[2], j.data[3], c.prob(j.data[0], 1), j.data[4]) a.push(toup) targLst.append(a.sort()[0]) else: wallLst.append(i) self.cursor.execute("SELECT * FROM search_type WHERE id = %s", (i.data[5],)) searchTerm = self.cursor.fetchone()[1] c = bayesFilter.naivebayes(bayesFilter.getwords, searchTerm, self.database, self.cursor) self.cursor.execute("SELECT * FROM search_type WHERE search = %s", (searchTerm,)) results = self.cursor.fetchall() # print(results) for j in results: self.cursor.execute("SELECT * FROM food WHERE id = %s", (j[0],)) r = self.cursor.fetchone() if r[3] == "target": pass else: toup = (r[0], r[1], r[2], r[3], c.prob(r[0], 1), r[4]) a.push(toup) wallLst.append(a.sort()[0]) targTot = 0 wallTot = 0 for i in targLst: targTot += i.data[4] for i in wallLst: wallTot += i.data[4] print(targTot) print(wallTot) return (targLst,wallLst)
def training(self, item): lst = self.search(item,5,2) for i in lst: print(i.data) c = bayesFilter.naivebayes(bayesFilter.getwords, item, self.database, self.cursor) print("\nbegin input\n") for i in lst: print(i.data) yn = input("y/n") if(yn == 'y'): print("yay") c.train(i.data[0],1) elif(yn =='n'): print("boo") c.train(i.data[0], 0) else: for k in lst: print(k.data) print(str(c.prob(k.data[0],"good"))) # print(c.prob(k.data[0], "good")) # print(k.data[0] + " : " + str(c.prob(k.data[0], "good")) + " : " + str(c.classify(k.data[0]))) try: # print(k.data[0]) # print(str(k.data[0]) + " : " + str(c.prob(k.data[0],"good"))) pass # print(k.data[0] + " : " + str(c.prob(k.data[0], "good")) + " : " + str(c.classify(k.data[0]))) except: print("aww man I suck") print(k.data) return # print(i.data[0] + " : " + str(c.prob(i.data[0], "good")) + " : " + str(c.classify(i.data[0]))) return
def search(self, searchTerm, glst, quantity): c = bayesFilter.naivebayes(bayesFilter.getwords, searchTerm, self.database, self.cursor) querySearchTerm = ("SELECT * FROM search WHERE name = %s") self.cursor.execute(querySearchTerm, (searchTerm,)) results = self.cursor.fetchall() if len(results) == 0: self.buildData(searchTerm) self.search(searchTerm,glst, quantity) return querySearch = ("SELECT * FROM search_type WHERE search = %s") self.cursor.execute(querySearch, (searchTerm,)) curs1 = self.cursor.fetchall() # results = cursor.fetchall() lst = [] for i in curs1: queryItem = ("SELECT * FROM food WHERE id = %s") self.cursor.execute(queryItem, (i[0],)) r = self.cursor.fetchone() # print(r) toup = (r[0], r[1], r[2], r[3], r[1]/r[2], r[4]) lst.append(toup) h = heap.heap(1) # print("hi") for i in lst: h.push(i) finalForm = h.sort() for i in finalForm: print(i.data) yn = input("is this the item you are looking for? y/n") if yn == "y": c.train(i.data[0],1) self.cursor.execute("INSERT INTO list_items " "(food_id, list_id, quantity) " "VALUES (%s,%s,%s)",(i.data[5],glst,quantity)) self.database.commit() self.cursor.execute("UPDATE search_type SET points = points + 1 WHERE id = %s", (i.data[5],)) self.database.commit() # print(finalForm) return finalForm c.train(i.data[0],0) return finalForm