def compute_para_ops_replace_phrase(phrase): """ Returns the required para operations for given substitute phrase. """ sm = Counter() break_before = is_break_before_actual(phrase=phrase) break_after = is_break_after_actual(phrase=phrase) sm["num_para_splits"] += (not break_before) sm["num_para_splits"] += (not break_after) sm["num_para_merges"] += (not break_before and not break_after) phrase.num_para_ops_split_merge = sm phrase.num_para_ops = Counter({ "num_para_deletes": 1, "num_para_inserts": 1 }) phrase.num_para_ops_abs = Counter({ "num_para_deletes": len(phrase.words_actual), "num_para_inserts": len(phrase.words_target) }) # Compute visualization. sm_str = "(#S:%s,#M:%s)" % (sm["num_para_splits"], sm["num_para_merges"]) sm_vis = vis.gray(sm_str) vis2_str = "%s%s" % (get_text(phrase.words_actual).strip(), sm_vis) vis2_str += phrase.last_word_actual.whitespaces vis1_str = get_text(phrase.words_target).strip() vis1_str += phrase.last_word_target.whitespaces phrase.vis_para_ops = vis.red_bg(vis2_str) + vis.green_bg(vis1_str) return break_before and break_after
def compute_para_ops_rearrange_phrase(phrase): """ Returns the required para operations for given insert phrase. """ sm = phrase.num_para_ops_split_merge = Counter() # break_before = is_break_before(phrase.first_word_target) # break_after = is_break_after(phrase.last_word_target) # sm["num_para_splits"] += (not break_before and not break_after) # sm["num_para_merges"] += (not break_before) # sm["num_para_merges"] += (not break_after) break_before = is_break_before_actual(phrase=phrase) break_after = is_break_after_actual(phrase=phrase) sm["num_para_splits"] += (not break_before) sm["num_para_splits"] += (not break_after) sm["num_para_merges"] += (not break_before and not break_after) sub_num_ops = phrase.sub_diff_result.num_ops phrase.num_para_ops = sub_num_ops + Counter({ "num_para_rearranges": 1 }) phrase.num_para_ops_abs = Counter({ "num_para_rearranges": len(phrase.words_actual) }) # Create visualization. sm_str = "(#S:%s,#M:%s)" % (sm["num_para_splits"], sm["num_para_merges"]) sm_vis = vis.gray(sm_str) vis_str = "%s%s" % (phrase.sub_diff_result.vis, sm_vis) phrase.vis_para_ops = vis.blue_bg(vis_str) return break_before and break_after
def compute_word_ops_replace_phrase(phrase): """ Returns the required word operations for given substitute phrase. """ num_words_target = len(phrase.words_target) phrase.num_word_ops = Counter({ "num_word_replaces": num_words_target }) phrase.num_word_ops_abs = Counter(phrase.num_word_ops) vis_word_ops = [] vis_word_ops.append(vis.gray("[")) vis_word_ops.append(vis.red(get_text(phrase.words_actual).strip())) vis_word_ops.append(vis.gray("/")) vis_word_ops.append(vis.green(get_text(phrase.words_target).strip())) vis_word_ops.append(vis.gray("]")) vis_word_ops.append(phrase.last_word_target.whitespaces) phrase.vis_word_ops = "".join(vis_word_ops)
def compute_word_ops_ignore_phrase(phrase): phrase.num_word_ops = Counter() phrase.num_word_ops_abs = Counter() phrase.vis_word_ops = vis.gray(get_text(phrase.words_target))