def setTModel(mtype): (reviews, names) = data.getTrainData() dataset = pandas.DataFrame(data = reviews, columns=names) print ("num train samples " + str(dataset.shape)) # first column of dataset contains ids # the next 10 columns contain the feature vector array=dataset.values I = array[:,0] # in a supervised model the 2nd column is the expected result, else, # column where the result will be populated R = array[:,1] X = array[:,2:] validation_size = 0.20 seed = 7 X_train, X_validation, Y_train, Y_validation = \ cross_validation.train_test_split(X, R, test_size=validation_size, random_state=seed) num_folds = 10 num_instances = len(X_train) scoring = 'accuracy' if (mtype == 1): # do unsupervised Kmeans tmodel = KMeans(n_clusters = 2, random_state = 0).fit(X) data.updateResult(list(zip(tmodel.labels_, I))) data.commit() elif (mtype == 3): # supervised NB tmodel = GaussianNB() tmodel.fit(X_train, Y_train) else: tmodel = () return tmodel
def create_product(): if not request.get_json(force=True) or not 'asin' in request.get_json(force=True): abort(400) prod_id = request.get_json(force=True)['asin'] cat_id = request.get_json(force=True)['cid'] pname = request.get_json(force=True)['title'] url = request.get_json(force=True)['imurl'] price = request.get_json(force=True)['price'] rank = request.get_json(force=True)['rank'] if len(prod_id) == 0: abort(404) # need to check if product is in the product table, if not create it, else throw error if data.existProduct(prod_id): abort(405) product = {'pid': prod_id, 'cid': cat_id, 'pname': pname, 'imurl': url, 'price': price, 'rank': rank} data.insertProductFeatures(product) reviews = request.get_json(force=True)['reviews'] for r in reviews: ret = requests.post(sa_url, data=json.dumps({'review': r, 'product': product})) review = json.loads(ret.text) if data.existReview(prod_id, review['rid']): abort(405) # review with that prod_id and reviewer_id should not exist, but if they # do throw error print(review) data.commit() (uneval_reviews, names) = data.getUnevalReviews(prod_id) print('found some uneval reviews') if uneval_reviews is not None: print(json.dumps({'reviews': uneval_reviews, 'names': names})) r = requests.post(ml_url, data=json.dumps({'reviews': uneval_reviews, 'names': names})) result = json.loads(r.text)['result'] data.updateResult(result) product = data.getProductInfo(prod_id) return jsonify({'product': product[0]})
def post(self, msg, img=None, reply=True, pin=False): reply_id = self.last_status_id() if reply and len(self.status) > 0 else None media_id = None if img: fileim = BytesIO() img.save(fileim, 'png') fileim.seek(0) media_id = self.api.media_post(fileim, mime_type='image/png').id tags = '' for tag in CONFIGS['sns']['hashtags']: tags += '\n#%s' % tag if tags: msg += '\n' + tags status = self.api.status_post(msg, in_reply_to_id=reply_id, media_ids=media_id) SnsStatus(status_id=status.id, sns_api=self.id) commit() if pin: self.pin(status.id) return status.id
def post(self, msg, img=None, reply=True, pin=False): reply_id = self.last_status_id() if reply and len( self.status) > 0 else None media_id = None if img: fileim = NamedTemporaryFile(suffix='.png', delete=False) img.save(fileim, 'png') fileim.close() media = self.api.media_upload(fileim.name) media_id = [media.media_id] os.unlink(fileim.name) tags = '' for tag in CONFIGS['sns']['hashtags']: tags += '\n#%s' % tag if tags: msg += '\n' + tags status = self.api.update_status(msg, in_reply_to_status_id=reply_id, media_ids=media_id) SnsStatus(status_id=status.id, sns_api=self.id) commit() if pin: self.pin(status.id) return status.id
return None #----- create product table cnt = 0 products = [] for line in datautil.parse(product_file): line = datautil.dataCleanup(line) pdata = datautil.dataInJson(line) if pdata is not None: product = extractProductFields(pdata) if product is not None: cnt += 1 products.append(product) data.insertProductFeatures(product) data.commit() #----- create review table cnt = 0 bad_cnt = 0 reviews = [] rff = open(review_feature_file, 'wt') for line in datautil.parse(review_file): print(line) rdata = datautil.dataInJson(line) json.dump(rdata, open('post.txt', 'wt')) if rdata is not None: cnt += 1 pdata = [ product for product in products if product['pid'] == rdata['asin'] ]
def new(cls, battle=None, twitter_api=twitter_api): api = cls(battle=battle) api.set_api(twitter_api) commit() return api
def event(user_id, event_name): sql = "INSERT INTO events (user_id, timestamp, event_value_id) VALUES (%s, %s, %s)" cursor = get_cursor() cursor.execute(sql, (user_id, time.time(), event_value_ids[event_name])) commit() close()
def new(cls, battle=None, mstdn_api=mstdn_api): api = cls(battle=battle) api.set_api(mstdn_api) commit() return api