Closed Zaky7 closed 3 years ago
FuzzyWuzzy features the Ratios as standalone classes, and a set of classes for algorithms.
I think https://github.com/xdrop/fuzzywuzzy/blob/master/src/me/xdrop/fuzzywuzzy/algorithms/TokenSort.java is the one that you are looking for.
@burdoto I am in a situation where the fuzzy match is not giving me acceptable results
val query = "Berry"
val searchKeys = listOf("B", "ARRY", "AGEN", "Abercrombie & Fitch Company", "BlackBerry Limited")
val result = FuzzySearch.extractTop(query, searchKeys, 5)
result.forEach { extractedResult: ExtractedResult ->
println(extractedResult)
}
Output
(string: B, score: 90, index: 0)
(string: BlackBerry Limited, score: 90, index: 4)
(string: Abercrombie & Fitch Company, score: 72, index: 3)
(string: ARRY, score: 67, index: 1)
(string: AGEN, score: 22, index: 2)
I don't know why B has a score of 90. I need to dig deeper, If you have suggestions regarding this, they are welcome
Currently I am thing of tweaking the score to get results
Honestly, B
scoring as much as BlackBerry
for the string Berry
seems very reasonable to me.
Each Ratio
and Algorithm
also implements Applicable
, so you should try using the Extractor
class directly and passing an instance of the TokenSort
algorithm, like this:
var extractor = new Extractor();
Object bestMatch = extractor.extractOne("Berry", values, new TokenSort());
Thanks, man :)
@burdoto can you comment on how much this library is similar to Python Fuzzywuzzy. I have a lot of scorer on fuzzy wuzzy side.
As far as I know, this is an as-perfect-as-it-gets source port of the library. It even features bugs that are inside the original! 🥳 I might be wrong on this though.
In the python fuzzy-wuzzy, we can set the scorer we want to use in extracting the result. How we can do it here?
Do we have any gitter, discord in order to ask such questions?