I have logs from an autocomplete form, which I would like to leverage to increase the intelligence of the results it returns.
I have a project that revolves around users selecting opera characters from a database of ~15,000 unique characters. My difficulty is that each character appears in the database as only one name but it may also be known to the public by any number of other colloquial names.
I have had been lucky enough to receive a modest amount of traffic and currently have ~20,000 rows of logs of strings which my users have typed and the opera character they ended up selecting.
If a user doesn't find the character they are searching for with their first string, they will often try the character by another name. When they are successful, this data correlates the characters' colloquial names with the character itself. I am hoping to leverage this data to enable my autocomplete form to match against these colloquial names.
Unfortunately along with the useful correlations there are many (perhaps more) random correlations. Often when a user's attempt(s) do not return the result they are looking for, instead of trying the character by another name, they simply try (and locate) a completely different character.
I have read a number of scholarly papers on the subject of using search logs to improve natural language search queries, but none of the methods seem to have much application in this narrow case.
Are there known methods that would be useful for this application?
My project can be viewed at http://fachme.com