# How did you do it? First of all, congratulations to the winners! Now a question for all participants: How did you do it? Which methods and tools did you use? What worked? What did not work? I started with Foxtrot's Python-based solution, which basically does some normalization and suggests the most popular items for the given query, with the overall most popular items as fallback. Thank you for that contribution -- I think I would not have even entered the competition without reading this blog post ... I then added some functionality for cross-validation to the script, and started playing around. My last submission used weighted kNN based on the Jaro-Winkler "distance", with some smoothing applied before to the frequency statistics, and some category-specific changes to the query normalization function. The public leaderboard MAP@5 was 0.75717. Jaro-Winkler worked better for me than Jaro or normalized Levenshtein. Before that, I tried the most popular items for the given query, extended by the queries up to a certain Levenshtein distance threshold, which also gave decent results. Within this method, I tried out query normalization based on Soundex, Double Metaphon, and NYSIIS, but that was worse than the basic normalization. Coding was done in Python, using the Levenshtein, jellyfish, and fuzzy libraries. Details and source code will follow. How about you?