fix card bug
Showing
1 changed file
with
9 additions
and
4 deletions
... | @@ -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']) | ... | ... |
-
Please register or sign in to post a comment