Difference between revisions of "Artificial Intelligence/Robotoff/Adding new detections"
Jump to navigation
Jump to search
Line 5: | Line 5: | ||
https://github.com/openfoodfacts/robotoff/tree/master/robotoff/insights/ocr | https://github.com/openfoodfacts/robotoff/tree/master/robotoff/insights/ocr | ||
+ | === Add a function to add the desired match === | ||
+ | |||
+ | # Choose the relevant file within the insights/ocr directory (in this case: https://github.com/openfoodfacts/robotoff/blob/master/robotoff/insights/ocr/packager_code.py) | ||
+ | |||
+ | # Write the function | ||
+ | <pre> | ||
+ | def process_fsc_match(match) -> str: | ||
+ | fsc_code = match.group(1) | ||
+ | return "FSC-{}".format(fsc_code).upper() | ||
+ | </pre> | ||
+ | |||
+ | # Add the function to the processing pipeline | ||
+ | |||
+ | <pre> | ||
+ | PACKAGER_CODE: Dict[str, OCRRegex] = { | ||
+ | "fr_emb": OCRRegex( | ||
+ | re.compile(r"emb ?(\d ?\d ?\d ?\d ?\d) ?([a-z])?(?![a-z0-9])"), | ||
+ | field=OCRField.text_annotations, | ||
+ | lowercase=True, | ||
+ | processing_func=process_fr_emb_match, | ||
+ | ), | ||
+ | "fsc": OCRRegex( | ||
+ | re.compile(r"fsc.? ?(c\d{6})"), | ||
+ | field=OCRField.text_annotations, | ||
+ | lowercase=True, | ||
+ | processing_func=process_fsc_match, | ||
+ | ), | ||
+ | "eu_fr": OCRRegex( | ||
+ | re.compile( | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | # Grab yourself a sandwich | ||
+ | |||
+ | === Plug it to Robotoff === | ||
== Using Flashtext == | == Using Flashtext == | ||
https://github.com/openfoodfacts/robotoff/tree/master/data/ocr | https://github.com/openfoodfacts/robotoff/tree/master/data/ocr |
Revision as of 13:36, 3 August 2020
Finding opportunities
- Download the OCR JSONL
grep -o '\<WORD\>' | wc -l
Using REGEXes
https://github.com/openfoodfacts/robotoff/tree/master/robotoff/insights/ocr
Add a function to add the desired match
- Choose the relevant file within the insights/ocr directory (in this case: https://github.com/openfoodfacts/robotoff/blob/master/robotoff/insights/ocr/packager_code.py)
- Write the function
def process_fsc_match(match) -> str: fsc_code = match.group(1) return "FSC-{}".format(fsc_code).upper()
- Add the function to the processing pipeline
PACKAGER_CODE: Dict[str, OCRRegex] = { "fr_emb": OCRRegex( re.compile(r"emb ?(\d ?\d ?\d ?\d ?\d) ?([a-z])?(?![a-z0-9])"), field=OCRField.text_annotations, lowercase=True, processing_func=process_fr_emb_match, ), "fsc": OCRRegex( re.compile(r"fsc.? ?(c\d{6})"), field=OCRField.text_annotations, lowercase=True, processing_func=process_fsc_match, ), "eu_fr": OCRRegex( re.compile(# Grab yourself a sandwichPlug it to Robotoff
Using Flashtext
https://github.com/openfoodfacts/robotoff/tree/master/data/ocr