| 166 | return [neg_item_hist, neg_cate_hist, neg_shop_hist, neg_node_hist, neg_product_hist, neg_brand_hist] |
| 167 | |
| 168 | def gen_neg_hist2(self, length): |
| 169 | if len(self.neg_hist_catch.get(length, [1])) == self.max_catch_num: |
| 170 | index = int(random.random()*self.max_catch_num) |
| 171 | return self.neg_hist_catch[length][index] |
| 172 | else: |
| 173 | #generate a new neg hist |
| 174 | neg_item_hist = [] |
| 175 | neg_cate_hist = [] |
| 176 | neg_shop_hist = [] |
| 177 | neg_node_hist = [] |
| 178 | neg_product_hist = [] |
| 179 | neg_brand_hist = [] |
| 180 | item_idx = [int(random.random()*self.num_items) for i in range(length)] |
| 181 | neg_item = self.all_items[item_idx] |
| 182 | neg_info = self.item_info[neg_item] |
| 183 | neg_cate = self.map_cate(neg_info[0]) |
| 184 | neg_cate_hist.append(neg_cate) |
| 185 | neg_shop = self.map_shop(neg_info[1]) |
| 186 | neg_shop_hist.append(neg_shop) |
| 187 | neg_node = self.map_node(neg_info[2]) |
| 188 | neg_node_hist.append(neg_node) |
| 189 | neg_product = self.map_product(neg_info[3]) |
| 190 | neg_product_hist.append(neg_product) |
| 191 | neg_brand = self.map_brand(neg_info[4]) |
| 192 | neg_brand_hist.append(neg_brand) |
| 193 | neg_item_id = self.map_item(neg_item)#map origin item to item_id |
| 194 | neg_item_hist.append(neg_item_id) |
| 195 | self.neg_hist_catch[length] = self.neg_hist_catch.get(length, []) # do not understand TODO |
| 196 | self.neg_hist_catch[length].append([neg_item_hist, neg_cate_hist, neg_shop_hist,\ |
| 197 | neg_node_hist, neg_product_hist, neg_brand_hist]) |
| 198 | return [neg_item_hist, neg_cate_hist, neg_shop_hist, neg_node_hist, neg_product_hist, neg_brand_hist] |
| 199 | |
| 200 | def fill_ndarray(self, hist): |
| 201 | nd_his = np.ones(self.maxlen) * -1 |