Finding the intersect between two lists of text

I am having trouble trying to compare two lists to generate the number of matching keywords.

I have created two data types. The first is “Project” and it has a field named skills that is a list of texts. The second is “Keywords” which has a field Keywords that is a return of the main keywords summarized in a paragraph of text.


My thought was that I would want to search for projects in a repeating group, then use an advanced filter to intersect that project’s skills with the keywords. When I do that though, it’s coming back empty. Do the keyword/project skills have to match exactly? If so, can I expand that to just match words from each list?

Any help is appreciated!

Hi there,

In your ‘keywords’ datatype, you mentioned a summarization in paragraph form. For the intersect to work, the words will need to each be a line in the list of texts. And yes, the words used in keyword & project skills will need to match exactly to be found in an intersect. Do you have a way of controlling these words by creating an option set of choices, so you know these will always match?

1 Like

Thanks for your help! I will try creating a list of options, then running those against the summarized keywords to generate them as 1:1 matches. Will report back :slight_smile:

1 Like

Using option sets I am able to get a list of the matching keywords. The results look like this:
image

The problem I am running into now is I don’t know how to convert this text into a number or some way to rank how many keywords match each project to get the project relevance. Any ideas?

It will depend on how you structured your data, how you plan on displaying it, and if you plan on saving it to the database (which based on your screenshot, it looks like you are).

What I would recommend doing is in the repeating group you’re using to pull the intersection, add a text element of type number. Have this element do a count of the number of times current cell’s thing is in the list of keywords.

Another approach is the Intersect function itself can offer a :Count when appended to the end of the expression (in your case you’d have to set it up as a separate but similar expression to what you’re using to pull up the list)

Seeing that you’re trying to convert a block into a list of text I would try

This project’s Skills: Split by:( )

You should put a space where those parenthesis are. Which would result in a list of words where every space denotes a new item in the list.

Then (:intersect with) the list you are trying to compare it to. Now this would only work where every keyword is separated by a space, but it’s a decent workaround if you’re having issues extracting the individual words.

2 Likes