Fuzzy lookup

I need to perform a fuzzy lookup from one list against another. That said, I noticed that the data table activity includes the ability to filter, but no threshold for matches or fuzzy lookup. Perhaps an idea? I do not have access to post ideas.

Hi
Welcome to UiPath community
kindly elaborate the scenario pls like what kind of fuzzy lookup want to be done and between what kind of variables
Cheers @JohnK

Two lists, each have names, and I want to do a compare of the two lists and return any matches against a threshold.

Fine
–lets take like we have two list variables named list1 and list2 both having values of type string
–now use a for each activity and pass the variable list1 as input and change the variable name from item to item1 and the type argument property in the property panel as string

–similarly inside this loop use another for each activity with input as list2 and change the variable name from item to item2 and the type argument property in the property panel as string

–now inside the inner for each loop use a if condition with expression like this
item1.ToString.Equals(item2.ToString)
if true it will go to THEN part where we can use a BREAK activity to avoid looping even after finding the match
or
if the above condition fails it will go to ELSE part where we can get the value that doesnt match with a writeline activity like this
item1.ToString

hope this would help you
Cheers @JohnK

That process would only match exact matches I can do that no problem. A fuzzy compare / lookup uses an algorithm to perform a comparison with a threshold for matching. i.e. 1 would match exact, 0.8 would match similar ones, etc.

1 Like

“fuzzy lookup” is itself a “fuzzy” term. You need tell us what exactly that means. Are you talking about measuring the Levenshtein Distance between 2 strings? Or what exactly is used to determine an approximate match vs a non-match?

I know that there are a variety of algorithms, so the Levenshtein Distance is one of them.

My point was moreso that you need to elaborate more on what you mean by “fuzzy lookup”. If you mean the levenshtein difference and anything > x% match should be a “fuzzy match” then you could utilize this user-built activity here: https://go.uipath.com/component/levenshtein-distance-algorithm-string-comparison-f2ec21 to get the percentage match, then only match it if it is > x% (you define the percentage yourself).

You can also utilize the inline code in your workflow if you don’t want to use it as a custom activity as mentioned here: Matching a string based on similarity i.e. not exact match

Ok, to me a fuzzy match is comparing two strings and producing some result, a fuzzy lookup is taking a list of strings and comparing them all to another list of strings and pulling out the results. Based on your response, the best way would be to loop the lists of strings using the fuzzy match.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.