16-Ads-Searching-System

Introduction

Ads Searching is a multi-billion dollar business. In this project, we will implement a simplified search ads stack which selects ads for a given query and returns sorted ads based on some ranking criteria.

Basic process flow: Query understanding -> Select Ads Candidates -> Rank Ads ->Filter Ads -> Pricing -> Allocate Ads

*This is an open-ended challenge. Do your best to come up with your own implementation

Project Description

Instructions:

First stage: Build query understanding module using a basic Natural Language Processing algorithm[1]: query cleaning, tokenize. Second stage: Build an index for Ads Data including an inverted index[2] and a forward index[3]. We may use a key value store such as memcached. Schema of reverted index -- Key: word, Value: list Schema of forward index Third stage: Implement Ads selection and rank logic

Suggested Prerequisite Knowledge

Basic Java Basic knowledge of key value storage[3]

Submission Instructions

Please upload your final code to your Github account Please record a video explaining the design choices you made including: the overall structure of the application, how you chose to index and retrieve ads, and any other features you would like to highlight. Please keep the video under 5 minutes.

References

[1]NLP: https://en.wikipedia.org/wiki/Natural_language_processing [2]Inverted Index: https://en.wikipedia.org/wiki/Inverted_index [3]Key Value Storage: https://en.wikipedia.org/wiki/Key-value_database

results matching ""

    No results matching ""