annotating_by_label : automatically make label groups.

master
Sébastien Miquel 2026-03-10 15:40:14 +01:00
parent 4584993106
commit b0d814af4b
1 changed files with 23 additions and 5 deletions

View File

@ -102,16 +102,34 @@ def main():
root_dir = args.input_path root_dir = args.input_path
results = annotating.make_dictionary(root_dir) results = annotating.make_dictionary(root_dir)
labels_file = os.path.join(root_dir, "label_groups") label_groups = os.path.join(root_dir, "label_groups")
all_labels = os.path.join(root_dir, "labels")
if not os.path.exists(labels_file): if not os.path.exists(label_groups):
print(f"Error: Labels file '{labels_file}' not found.") print(f"Warning: Labels file '{label_groups}' not found, making it out of '{all_labels}' (do check it…)")
sys.exit(1) if not os.path.exists(all_labels):
print(f"Error: {all_labels} not found.")
sys.exit(1)
with open(labels_file, "r") as f: with open(all_labels, 'r') as f:
lines = [l.strip() for l in f if l.strip()]
groups = {}
for line in lines:
# Key is the part before the colon, or the whole line if no colon
key = line.split(' : ')[0] if ' : ' in line else line
groups.setdefault(key, []).append(line)
with open(label_groups, 'w') as f:
for items in groups.values():
f.write(",".join(items) + "\n")
with open(label_groups, "r") as f:
lines = [line.strip() for line in f if line.strip()] lines = [line.strip() for line in f if line.strip()]
bgnot_dir = os.path.join(root_dir, "BGnot") bgnot_dir = os.path.join(root_dir, "BGnot")
if args.overwrite and os.path.exists(bgnot_dir):
shutil.rmtree(bgnot_dir)
os.makedirs(bgnot_dir, exist_ok=True) os.makedirs(bgnot_dir, exist_ok=True)
for line in lines: for line in lines: