Better search interface
November 17, 2012 12:49 PM   Subscribe

I'm currently working on an app that does search in a limited domain (travel). The current interface is via a dialog textbox, where the user enters sentences or phrases as queries. While natural language offers lots of flexibility I'm realizing this kind of interface is inherently problematic. First, parsing the natural language can be tricky as there are many possibilities. Second, and probably more important, it's a blind interface. We have various types of data and functionality on how to search and present it. It becomes a kind of guessing game whether the user can form a search query that will hit our data and search capabilities. Unless they happen to hit pay dirt it becomes frustrating for the user. At the same time it feels like the user isn't seeing the best of what we can do for them. I'm sure I'm not the first to run into this. Do you have experience/ideas/research on how to improve/replace such an interface? Thanks
posted by blueyellow to Computers & Internet (10 answers total)
For the second problem, I'd suggest taking a look at Wolfram Alpha, which is a freeform text-entry field that uses examples and a wide range of interpretations of the input to partially overcome the same kind of problem you're facing.

As for the first... well, I hate to be snide or dismissive-sounding, but yes, that's the problem with NLP. It's hard. Very, very hard. If you don't have formal education on the topic, I'd strongly suggest looking into classes or at least deep-diving some textbooks, because it's an entire subfield of computer science with a lot of research and work being done that you'll want to be able to leverage. Your limited domain may help a lot in cutting out the ambiguity problems, but NLP in general isn't something I'd want to just start trying to re-invent from the ground up.
posted by Tomorrowful at 12:59 PM on November 17, 2012 [1 favorite]

Response by poster: I've got some background in NLP (eg, read the Manning book, etc). The issue we would have is more coverage. It's very hard to cover the many ways people can express something. Especially if they aren't relevant or something we had thought of.

For the second problem, are there smart gui/wizards/query builders that can supplement the textbox?
posted by blueyellow at 1:13 PM on November 17, 2012

It becomes a kind of guessing game whether the user can form a search query that will hit our data and search capabilities.

Why are you guessing instead of testing? You can get useful data from task-oriented user testings of a very small number of people, and these kinds of tests are pretty inexpensive to run.
posted by DarlingBri at 1:18 PM on November 17, 2012 [2 favorites]

Can you guide their behavior with eg example queries, and offer some kind of autocomplete feature or suggestions of related searches?
posted by LobsterMitten at 2:18 PM on November 17, 2012

Or guide them with a fill-in-the-blanks set of pre-made queries? eg:

I want to see ___[transport mode]_____ from ____[city]_____ to _____[city].
(each blank gives a dropdown list of possibilities - eg flights, buses, trains.

I want to depart on _[date or range]____ and return on ___[date or range]___.
posted by LobsterMitten at 2:23 PM on November 17, 2012

This is a case where you should design the interface to showcase the functionality your product offers, not the other way around. It's not really possible for us to suggest what fields will let the user hit paydirt for the same reason your users can't do it with a blind NLP field: we don't know what sort of queries your app supports.

NLP is borderline usable for dates at this point, as long as your userbase is not international or you at least have enough geographical information on the user to be able to parse whether 1/5/12 is in January or May. Supplement this with calendar popups for users who will be stumped by a blank field (and for confirmation for the ones who do get it.) For the rest use traditional data entry fields, with autocomplete where possible...

...which is pretty generic and not necessarily useful advice, I'm realizing... But without knowing your app's particular capabilities I dont know that I can do much better than that. A well designed interface ideally guides the user towards using your app in the ways most suited to the app's strengths but I don't know what those are in your case.

I think what I'm coming down to here is to suggest that instead of looking for an out of the box GUI or wizard or high tech algorithm to solve your interface design problem, consider hiring an interface designer (of the UI/UX variety, not the pixels-and-icons flavor) for at least a few hours because this is pretty much what they are for.

Alternatively, the time honored technique of "see what your competitors are doing and try to incrementally improve it" is far from the worst approach you could take.
posted by ook at 5:21 PM on November 17, 2012

Response by poster: Thanks for the good advice. I agree the key is to design the interface to showcase our functionality. Any good recommendations on how to find a competent interface designer that might specialize in something like this?
posted by blueyellow at 9:36 PM on November 17, 2012

Response by poster: We do have some example queries. They don't seem to be enough though. I like the fill in the blanks idea.
posted by blueyellow at 9:39 PM on November 17, 2012

Maybe guide them down probability trees?
posted by anon4now at 10:15 PM on November 17, 2012

While doing comprehensive NLP is hard, you should also have a pretty good idea when it misses. When someone searches and your NP engine has low confidence do some variations on Google's "Did you mean…?" suggesting searches that will hit. People will ignore suggested searches on the front page, but they'll pay more attention when they've given it a shot first. And don't be afraid to add a few suggestion

If I had the time and inclination I'd add a variation on autocomplete. Have someone sit down and look through some of the most common failed searches, pull some common terms and constructions out, and suggest an array of alternate (more likely to hit) wordings for the autocomplete. This should be much easier than tweaking the NLP.
posted by Ookseer at 10:41 PM on November 17, 2012

« Older poetry causes the best kind of headache.   |   Twelve-bar blues minus the blues Newer »
This thread is closed to new comments.