Skip to main content
Inspiring
Feb 24, 2023 7:49 PM UTC
Solved

Search for Homophones

Out of curiosity - has anyone implemented Search capabilities in Appian for Homophones?

E. g. searching for a user in a database field for names, typing in 'Fill', Appian will search also for 'Phil'.

Thanks

    stefanhelzle0001
    Brainy
    Feb 24, 2023 8:45 PM UTC

    Did you consider the soundex algorithm? You could create a dictionary of all your words + soundex value and where it is used. This "can" be done in MariaDB.

    Or just use a search engine like Azure Search etc. You can tell it to use a Levenshtein distance of choice. Levenshtein calculates the number of character mutations required to get from one word to the other.

    4 replies

    mikes0011
    Brainy
    Feb 24, 2023 8:28 PM UTC

    That sounds like it would be a SIRIUS undertaking, without maybe just looping in an outside integration to an external system which specializes in such a thing.  Do you have a particular use case in mind?

    The Expression Guru
    Inspiring
    Feb 24, 2023 8:43 PM UTC

    Ha, ha, 
    good example. We are looking for such kind of a search in database fields. For search in documents Solr is already offering capabilities. 
    It shouldn't be so bad - according to sources, there are ~ 1200 Homophones in the English language. According to Wikipedia
    there are concerning groups of homophones (excluding proper nouns), there are approximately 88 triplets, 24 quadruplets, 2 quintuplets, 1 sextet, 1 septet, and 1 questionable octet (possibly a second septet). 

    Meaning if a user types in one of the search phrase which met one of the items in the octet:
    raise, rays, rase, raze, rehs, res, reais, [race]
    Appian will automatically search for all other ones - but maybe only if the user has check marked the box 'Include Homophones'

    stefanhelzle0001
    Brainy
    Feb 24, 2023 8:45 PM UTC

    Did you consider the soundex algorithm? You could create a dictionary of all your words + soundex value and where it is used. This "can" be done in MariaDB.

    Or just use a search engine like Azure Search etc. You can tell it to use a Levenshtein distance of choice. Levenshtein calculates the number of character mutations required to get from one word to the other.

    Inspiring
    Feb 27, 2023 2:50 PM UTC

    Hi Stefan,

    thanks for the hints. That is very helpful. 

    Best,
    Juergen