Пример #1
0
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
Пример #2
0
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]})
Пример #3
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
Пример #4
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 = 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
Пример #5
0
        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']
        ]
Пример #6
0
 def new(cls, battle=None, twitter_api=twitter_api):
     api = cls(battle=battle)
     api.set_api(twitter_api)
     commit()
     return api
Пример #7
0
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()
Пример #8
0
 def new(cls, battle=None, mstdn_api=mstdn_api):
     api = cls(battle=battle)
     api.set_api(mstdn_api)
     commit()
     return api