Open sdennler opened 3 years ago
In Fuzzywuzzy the processor argument only allows the usage of additional preprocessing. However, it does not provide a way to disable the preprocessing inside the scorer. So when calling
process.extract(query, choices, processor=None)
The string is still preprocessed, since the default scorer fuzz.WRatio
preprocesses strings by default. To disable this you would have to use:
process.extract(query, choices, processor=None, scorer=partial(fuzz.WRatio, full_process=False))
I agree that this is very counter-intuitive, which is why I use the behavior you expected in RapidFuzz.
Great and very helpful tool! Thank you!
One thing I noticed is that even when process.extractOne (and others) have processor set to None, utils.full_process is still executed several times. Probably because of
https://github.com/seatgeek/fuzzywuzzy/blob/88951621d081095359f37fbf6f282f6e54336a14/fuzzywuzzy/process.py#L100
This generates two times the same output:
Output:
Expected would be that without a processor the 1:1 match is better. So some thing like this: