Name Adviser

Content-based recommendation system that ranks Hungarian first names by their similarity to a chosen name, built with WPF and LINQ

This project was the final homework for the university’s Artificial intelligence course. Recommendation systems are a kind of information filtering system: they build models that predict which items are likely to be relevant to a user. Our task was to design a content-based recommendation system for Hungarian first names. The heart of the program is the algorithm that assigns a similarity score to every name in the database relative to the chosen one, so a simple sort produces the recommended order for any combination of a selected name and parameter weighting.

The adviser’s interface is split into three columns. In the first one you search the database and pick the name you want to find similar names for. In the middle column you weight the similarity properties with sliders: gender, name day, origin, syllable count, vowel harmony, and matching first and last letters. The third column shows the ranked result; hovering over a name reveals its properties and the partial scores the algorithm computed for it. The program is written in C# on the then-latest Microsoft stack, with WPF for the GUI and LINQ for wrangling the lists, and the code stayed short and clean thanks to extension methods, lambda expressions and implicit typing.

Gallery

Similar projects

Classic tower defense game set in the world of The Lord of the Rings, implemented in Java

Tower Defense

2014

Classic tower defense game set in the world of The Lord of the Rings, implemented in Java

Desktop University
Read the project →
Application with a graphical programming interface to assemble and run simple programs for various IoT devices

Visual IoT Programmer

2017

Application with a graphical programming interface to assemble and run simple programs for various IoT devices

Web Desktop University Video
Read the project →