1b22a0ab by 周伟奇

fix card bug

1 parent 123530e2
...@@ -244,6 +244,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -244,6 +244,7 @@ class Command(BaseCommand, LoggerMixin):
244 return date_res 244 return date_res
245 245
246 def merge_card(self, bs_summary): 246 def merge_card(self, bs_summary):
247 classify_info = {}
247 merged_bs_summary = {} 248 merged_bs_summary = {}
248 sorted_card = sorted(bs_summary.keys(), key=lambda x: bs_summary[x]['count'], reverse=True) 249 sorted_card = sorted(bs_summary.keys(), key=lambda x: bs_summary[x]['count'], reverse=True)
249 for main_card in sorted_card: 250 for main_card in sorted_card:
...@@ -266,10 +267,13 @@ class Command(BaseCommand, LoggerMixin): ...@@ -266,10 +267,13 @@ class Command(BaseCommand, LoggerMixin):
266 merge_cards.append(card) 267 merge_cards.append(card)
267 for card in merge_cards: 268 for card in merge_cards:
268 del bs_summary[card] 269 del bs_summary[card]
269 merged_bs_summary[main_card]['classify'] = self.get_most(merged_bs_summary[main_card]['classify']) 270 most_classify = self.get_most(merged_bs_summary[main_card]['classify'])
271 classify_count = classify_info.get(most_classify, 0)
272 classify_info[most_classify] = classify_count + 1
273 merged_bs_summary[main_card]['classify'] = most_classify
270 merged_bs_summary[main_card]['role'] = self.get_most(merged_bs_summary[main_card]['role']) 274 merged_bs_summary[main_card]['role'] = self.get_most(merged_bs_summary[main_card]['role'])
271 del bs_summary 275 del bs_summary
272 return merged_bs_summary 276 return merged_bs_summary, classify_info
273 277
274 def prune_bs_summary(self, bs_summary): 278 def prune_bs_summary(self, bs_summary):
275 for summary in bs_summary.values(): 279 for summary in bs_summary.values():
...@@ -341,15 +345,16 @@ class Command(BaseCommand, LoggerMixin): ...@@ -341,15 +345,16 @@ class Command(BaseCommand, LoggerMixin):
341 if len(bs_summary) == 1: 345 if len(bs_summary) == 1:
342 merged_bs_summary = self.prune_bs_summary(bs_summary) 346 merged_bs_summary = self.prune_bs_summary(bs_summary)
343 one_card = True 347 one_card = True
348 classify_info = {}
344 # 多卡号 349 # 多卡号
345 else: 350 else:
346 merged_bs_summary = self.merge_card(bs_summary) 351 merged_bs_summary, classify_info = self.merge_card(bs_summary)
347 352
348 for card_summary in merged_bs_summary.values(): 353 for card_summary in merged_bs_summary.values():
349 merge_role = [] 354 merge_role = []
350 classify_summary = unknown_summary.get(card_summary['classify'], {}) 355 classify_summary = unknown_summary.get(card_summary['classify'], {})
351 for role, summary in classify_summary.items(): 356 for role, summary in classify_summary.items():
352 if one_card or role in card_summary['role_set']: 357 if one_card or classify_info.get(card_summary['classify'], 0) == 1 or role in card_summary['role_set']:
353 merge_role.append(role) 358 merge_role.append(role)
354 # card_summary['confidence'].extend(summary['confidence']) 359 # card_summary['confidence'].extend(summary['confidence'])
355 card_summary['sheet'].extend(summary['sheet']) 360 card_summary['sheet'].extend(summary['sheet'])
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!