def sub_fn()

in src/substitution_fns.py [0:0]


    def sub_fn(ex: QAExample, wikidata_popularity_bins: typing.List[typing.Dict]):
        """Derive all modified examples from one original example."""
        new_exs = []

        for bin_id in range(len(wikidata_popularity_bins)):
            sub_qid = random.choice(list(wikidata_popularity_bins[bin_id].keys()))
            sub_qid_info = wikidata_popularity_bins[bin_id][sub_qid]

            new_ex = create_new_example(
                ex=ex,
                new_id=f"pop-sub-{bin_id}",
                answer_text=sub_qid_info["label"],
                ner_label=None,
                kb_id=sub_qid,
                wikidata_label=sub_qid_info["label"],
                aliases=sub_qid_info["aliases"],
                wikidata_types=sub_qid_info["entity_types"],
                wikipedia_page=sub_qid_info["wikipedia_page"],
                popularity=sub_qid_info["popularity"],
                answer_type=None,
                replace_every_original_answer=replace_every,
            )
            new_exs.append(new_ex)
        return new_exs