Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Information needed for searching #260

Open
eozd opened this issue Nov 16, 2017 · 0 comments
Open

Information needed for searching #260

eozd opened this issue Nov 16, 2017 · 0 comments

Comments

@eozd
Copy link
Contributor

eozd commented Nov 16, 2017

Issue description

  • We need to discuss what types of information will be needed for searching, and how we can use this information. I have several suggestions and questions. What are your opinions on these issues?

Time

A cultural heritage item may not correspond to a single date, but rather may be relevant with different time spans such as 1900-1950, 1000-1800, etc. Later, we need to decide how to use this representation efficiently for our search purposes. Further, we will definitely use this information for recommendation, as well.

Location

How to use location for searching?

  1. Simply string matching algorithms are not going to be any use in this case, since we want to do semantic location search, i.e. if we search for Denizli, results related to Mugla may also be relevant, although names are very different.
  2. Using APIs might be a cheap solution.
    1. One possible solution is to get information about a location using Google Maps API, and compare lattitudes/longtitudes with locations of items in our system.
    2. However, this solution will create an external dependency for one of the core features of our system. If this API stops working, our system is going to fall apart, as well.

Tags

  1. A first simple solution is that, when we search for a tag, we might simply return all the items that have those tags (at least one, or all of them).
  2. We might try to build a semantic tag system that will return a given number relevant tags, sorted with respect to the degree of relatedness, when queried with a tag. This is going to be a pretty advanced solution that may work really well in our system; but, it will also need a lot of effort.

Title

  1. Again, a first simple solution is simply return similar tags. One well-known algorithm for finding a similarity measure between strings is Levenshtein distance. We might use this algorithm as a subroutine when finding similar topics.
  2. Building a semantic system for titles would be harder than building one for tags, since a query string can be anything, whereas a query tag must already be in our system.

Content-Based Recommendation and Searching

Similarity

One important realization is that, searching and content-based recommendation systems are going to have lots of common functionality. If we build a semantic tagging system, this is going to be used by both of these systems. We might even say that, content-based recommendation is a special case of searching, where we search with all the available information such as title, tags, description, etc. This is, of course, relevant for only content-based recommendation. Our final recommendation system is going to take into account user behaviour and preferences as well, such as previously visited items, liked and commented items, etc. Therefore, it will be a mix of content-based and collaborative filtering models.

Use Recommender System for Searching

After having a working recommender system, we might add a feature to our where we can search with a cultural heritage item. In the background, this will simply request a recommendation list for the given item. So, we can immediately add this feature after implementing "See Also" tab in the item view page.

What else can we use for searching?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant