C3MD / utils_prompt.py
utils_prompt.py
Raw
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time    : 2023/12/5 22:13
# @Author  : yebulk

def get_target_text(data):
    target = data['Target']
    return target

def get_source_text(data):
    target = data['Source']
    return target

def get_text(data):
    target = data['Text']
    return target

def get_propose(data):
    propose = data['Propose']
    return propose

def build_train_pair(data, test_qid, args, curr_le_data=None):
    examples = []

    # test example
    target = get_target_text(data[test_qid])
    source = get_source_text(data[test_qid])
    text = get_text(data[test_qid])
    propose = ""
    exception = ""
    type = ""
    # 获取目的
    # propose = get_propose_text(data[test_qid])


    question, answer = create_one_example(args.prompt_format, target, source, text, propose, exception, type,  WithOutput = True, test_example=False)

    examples.append(question)
    return question, answer

def build_pair(data, test_qid, args, curr_le_data=None):
    examples = []

    # test example
    target = get_target_text(data[test_qid])
    source = get_source_text(data[test_qid])
    text = get_text(data[test_qid])
    propose = ""
    exception = ""
    type = ""
    # 获取目的
    # propose = get_propose_text(data[test_qid])

    question, answer = create_one_example(args.prompt_format, target, source, text, propose, exception, type,
                                          WithOutput=True, test_example=False)

    examples.append(question)

    return question, answer

def create_one_example(prompt_format, target, source, text, propose, exception, type, WithOutput = False, test_example=True):
    if len(propose) > 30:
        propose = ""
    if prompt_format == "Stage_One":
        if test_example:
            # question = f"图片的文本是{text},这是一张{type}图片, 目的是{propose}, 目标域:"
            question = f"图片的文本是{text},这是一张{type}图片, 目的是{propose}, 目标域:"
            print(question)
            answer = f"目标域:"

        else:
            # question = f"这是一张{type}图片, 目的是{propose}, 目标域是什么"
            # question = f"图片的文本是{text},这是一张{type}图片, 目的是{propose}, 目标域:"
            question = f"目标域?"
            answer = f"{target}"
    else:
        if test_example:
            question = f"图片的文本是{text}{exception},源域:"
            answer = f"源域:"
        else:
            # question = f"图片的文本是{text},{exception},源域:"
            question = f"源域?"
            answer = f"{source}"
    return question, answer