Files
enginex-bi_series-vc-cnn/scripts/debug_detailcase.py
zhousha 55a67e817e update
2025-08-06 15:38:55 +08:00

57 lines
1.5 KiB
Python

import json
import sys
from schemas.dataset import QueryData
from schemas.stream import StreamDataModel
from utils.evaluator_plus import evaluate_editops
def main(detailcase_file: str):
with open(detailcase_file) as f:
d = json.load(f)[0]
preds = d["preds"]
preds = list(map(lambda x: StreamDataModel(**x), preds))
preds = list(filter(lambda x: x.final_result, preds))
label = d["label"]
label = QueryData(**label)
print(evaluate_editops(label, preds))
def evaluate_from_record(detailcase_file: str, record_path: str):
with open(detailcase_file) as f:
d = json.load(f)[0]
label = d["label"]
label = QueryData(**label)
with open(record_path) as f:
record = json.load(f)
tokens_pred = record["tokens_pred"]
tokens_label = record["tokens_label"]
recognition_results = record["recognition_results"]
recognition_results = list(
map(lambda x: StreamDataModel(**x), recognition_results)
)
a, b = [], []
for i, rr in enumerate(recognition_results):
if rr.final_result:
a.append(tokens_pred[i])
b.append(rr)
tokens_pred = a
recognition_results = b
print(
evaluate_editops(
label,
recognition_results,
tokens_pred,
tokens_label,
)
)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("请指定 detailcase 文件路径")
sys.exit(1)
main(sys.argv[1])
# evaluate_from_record(sys.argv[1], sys.argv[2])