예제 #1
0
파일: main.py 프로젝트: crumudgin/grocer
    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)
예제 #2
0
파일: main.py 프로젝트: crumudgin/grocer
    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
예제 #3
0
파일: main.py 프로젝트: crumudgin/grocer
    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