Fuzzy Match
Category: Analysis
Status: Registered and callable in the CyberChef 11.3.0 compatibility inventory.
Input / output: string → html
Background: https://wikipedia.org/wiki/Fuzzy_matching_(computer-assisted_translation)
What it does
Conducts a fuzzy search to find a pattern within the input based on weighted criteria. e.g. A search
for dpan will match on Don't Panic
Note
Status here means the operation name is implemented and callable. It does not by itself promise byte-for-byte parity for every upstream option. See Compatibility and current status for the verified scope and known boundaries.
Arguments and options
Arguments are positional. Keep their order when using bake() or
Pipeline.then().
Index |
Name |
UI type |
PyChef default |
Accepted values / format |
|---|---|---|---|---|
|
Search |
|
|
|
|
Sequential bonus |
|
|
A Python integer or floating-point value |
|
Separator bonus |
|
|
A Python integer or floating-point value |
|
Camel bonus |
|
|
A Python integer or floating-point value |
|
First letter bonus |
|
|
A Python integer or floating-point value |
|
Leading letter penalty |
|
|
A Python integer or floating-point value |
|
Max leading letter penalty |
|
|
A Python integer or floating-point value |
|
Unmatched letter penalty |
|
|
A Python integer or floating-point value |
Recipe template
Important
This is a call template built from the documented defaults. Replace placeholder values such as empty keys, paths, patterns, or lookup data before running it.
from pychef import bake
input_value = "example"
args = ['', 'DEFAULT_WEIGHTS.sequentialBonus', 'DEFAULT_WEIGHTS.separatorBonus', 'DEFAULT_WEIGHTS.camelBonus', 'DEFAULT_WEIGHTS.firstLetterBonus', 'DEFAULT_WEIGHTS.leadingLetterPenalty', 'DEFAULT_WEIGHTS.maxLeadingLetterPenalty', 'DEFAULT_WEIGHTS.unmatchedLetterPenalty']
result = bake(input_value, [{"op": 'Fuzzy Match', "args": args}])
print(result)
Pipeline example
from pychef import Pipeline
args = ['', 'DEFAULT_WEIGHTS.sequentialBonus', 'DEFAULT_WEIGHTS.separatorBonus', 'DEFAULT_WEIGHTS.camelBonus', 'DEFAULT_WEIGHTS.firstLetterBonus', 'DEFAULT_WEIGHTS.leadingLetterPenalty', 'DEFAULT_WEIGHTS.maxLeadingLetterPenalty', 'DEFAULT_WEIGHTS.unmatchedLetterPenalty']
transform = Pipeline().then('Fuzzy Match', *args)
result = transform("example")
Dedicated operation module
The registered entry point lives in
pychef.operations.by_operation.fuzzy_match. Direct calls
receive the input value and a positional argument tuple:
from pychef.operations.by_operation.fuzzy_match import run
result = run("example", tuple(['', 'DEFAULT_WEIGHTS.sequentialBonus', 'DEFAULT_WEIGHTS.separatorBonus', 'DEFAULT_WEIGHTS.camelBonus', 'DEFAULT_WEIGHTS.firstLetterBonus', 'DEFAULT_WEIGHTS.leadingLetterPenalty', 'DEFAULT_WEIGHTS.maxLeadingLetterPenalty', 'DEFAULT_WEIGHTS.unmatchedLetterPenalty']))
- pychef.operations.by_operation.fuzzy_match.run(value, args)
Run this operation using its shared internal implementation.
- Parameters:
value (str | bytes)
args (Sequence[Any])
- Return type:
str | bytes