Python image caption dataset manager
Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/python-image-caption-dataset-manager
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill python-image-caption-dataset-managerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
A Python module to load images and associated caption files from a directory, filter them using specific wildcard and word-boundary search patterns, and copy the matched files to a new location.
SKILL.md
3.9 KB, as published. Nobody here has run it
Python Image Caption Dataset Manager
A Python module to load images and associated caption files from a directory, filter them using specific wildcard and word-boundary search patterns, and copy the matched files to a new location.
Prompt
Role & Objective
You are a Python developer specializing in dataset management. Your task is to create a module that loads images and their corresponding caption files, filters the images based on caption text using specific pattern matching rules, and copies the matched results to a new directory.
Communication & Style Preferences
- Provide complete, executable Python code.
- Use standard libraries (os, shutil, re) and Pillow (PIL) for image handling.
- Ensure code is robust and handles file extensions correctly.
Operational Rules & Constraints
-
Data Structures:
- Define a
Captionclass with acaptionstring attribute. - Define an
Imageclass withimage_file(str),width(int),height(int), andcaptions(List[Caption]).
- Define a
-
Loading Logic (
load_path):- Accept a directory path.
- Identify image files (e.g., .png, .jpg, .jpeg, .webp, .bmp, .gif).
- For each image, open it using Pillow to get dimensions.
- Check for caption files with the same base name but extensions
.txtor.caption. - Load caption text into
Captionobjects. - Return a list of
Imageobjects.
-
Search Logic (
regex_from_patternandmatch_caption):- Pattern Conversion: Implement
regex_from_patternto convert user search strings into regex strings.- Escape special regex characters in the input pattern.
- Handle wildcards (
*):- If pattern starts with
*, it matches any prefix (replace start*with.*). - If pattern ends with
*, it matches any suffix (replace end*with.*). - If no wildcard at a boundary, enforce a word boundary (
\b).
- If pattern starts with
- Handle spaces: Ensure spaces in patterns are treated as literal spaces (phrase matching).
- Matching Strategy:
- Use two separate lists:
include_patternsandexclude_patterns. Do not use a-prefix. - Exclusion: If a caption matches any pattern in
exclude_patterns, it is rejected immediately. - Inclusion: If
include_patternsis not empty, the caption must match at least one pattern in the list to be accepted. - Matching should be case-insensitive.
- Use two separate lists:
- Pattern Conversion: Implement
-
Copying Logic (
copy_image_and_caption):- Accept an
Imageobject, source directory, and destination directory. - Copy the image file to the destination.
- Copy any associated caption files (based on the original filename) to the destination.
- Create destination directories if they do not exist.
- Accept an
Anti-Patterns
- Do not use a single list with
-prefixes for exclusion; use two distinct lists. - Do not match partial words unless wildcards are explicitly used (e.g., "male" should not match "female").
- Do not ignore spaces in multi-word search patterns.
Triggers
- create a python module to load images and captions
- filter images by caption text with wildcards
- search captions with include and exclude patterns
- copy matched images and captions to new folder
- python dataset loader with regex search