Reputation: 8654
Is there an algorithm, webservice or technique which is able to search through a list of words, returning these that fit a given subject?
Practical example:
There is a Software which allows me to create a task and select an icon for it. There are hundreds of icons, >95% of them do not fit the given task.
My idea now is to tag these icons:
An icon with a letter would get the tags mail
, communication
, message
, ...
The user then adds a task which is called Write email
. The algorithm searches the icons and their tags and returns a list of presumably fitting icons (Perhaps the 20 most fitting icons). The user then can select from this list.
I think this could be useful in different areas. In a time where google is able to predict what the user wants to search for it must be possible in any way.
Upvotes: 1
Views: 113
Reputation: 4313
Probably not the greatest solution but giving it a shot.
If the terms in the input which would match against the icon is limited, consider a inverted index of terms against the icon label.
Say,
mail -> mailicon
email -> mailicon
On the similar line, hold a dictionary of a single term against icon label.
mail -> mailicon
message -> chaticon
communication ->lanicon
And when the terms "Write an email" comes from the user, you could explode the term as synonyms using something like a SynExpand and look up the entire map for possible icons.
Say, email gets exploded into mail, message, communication etc. and you would get the suggestions as three icons.
I am sure you should be able to play with the synonym values based on your need.
Also refer to Full Text Search
Upvotes: 1