def METHOD_NAME(paths):
    src, tgt, hypos, log_probs = {}, {}, {}, {}
    for path in paths:
        with open(path) as f:
            for line in f:
                line = line.rstrip()
                # S: source
                # T: target
                # D: detokenized system output
                if line.startswith(("S-", "T-", "D-")):
                    i = int(line[line.find("-") + 1 : line.find("\t")])
                    if line.startswith("S-"):
                        src[i] = line.split("\t")[1]
                    if line.startswith("T-"):
                        tgt[i] = line.split("\t")[1]
                    if line.startswith("D-"):
                        if i not in hypos:
                            hypos[i] = []
                            log_probs[i] = []
                        hypos[i].append(line.split("\t")[2])
                        log_probs[i].append(float(line.split("\t")[1]))
    return dictolist(src), dictolist(tgt), dictolist(hypos), dictolist(log_probs)