Code Monkey home page Code Monkey logo

newsreel-template's Introduction

JAVA IMPLEMENTATION FOR THE CLEF CHALLENGE

This is a short description of the Java implementation for the News Recommender Systems challenge hosted by plista. We outline the essential components. Additionally, we emphasise on how to incorporate your own recommender.

OVERVIEW CLASSES

  • Client.java
  • ContestHandler.java
  • RecommendedItem.java
  • RecommenderItemTable.java
  • DirtyRingBuffer.java

COMMUNICATION WITH THE PLISTA CHALLENGE SERVER

The communication is handled by Client.java and ContestHandler.java. The Client.java receives the messages and forwards their contents to the ContestHandler.java who delegates the messages to the suited methods. There are four basic types of messages:

  • Item updates
  • Recommendation Request
  • Notifications (impressions, clicks)
  • Errors

Those message types are encoded as HTTP-POST-Parameter. The Client.java extracts the type information. Subsequently, the ContestHandler.java initiates the pre-defined way to handle the request.

RECOMMENDER BASELINE

The implementation includes a baseline recommender. Considering recency as the most important factor represents the basic idea of the baseline. Each publisher (identified by context.simple.27) is assigned a list of fixed size. As new items arrive - either by updates/creates or through notifications (clicks/impressions) - the item Ids (identified by context.simple.25) are added to the list. Upon incoming recommendation requests, the DirtyRingBuffer.java returns the N most recent items. N refers to the number of items requested. As soon as the list capacity is exceeded, the least recent items are dropped.

ITEM REPRESENTATION

We represent items as instances of RecommenderItem.java. Those instances provide access to data encoded in the JSON. When creating the RecommenderItem.java, the JSON is parsed and essential information such as item Id, publisher Id, and timestamp. The RecommenderItem.java instances are subsequently gathered in an array representation - RecommenderItemTable.java.

REQUIRED ADAPTIONS

If you want to use this template to write your own recommender, you can use the item representations. Both Client.java and ContestHandler.java offer the opportunity to include a recommender. Those recommenders must return a List in order to create an adequate response. Note that you have to adjust the properties file to support the port used to communicate with the server. Further information can be found in http://orp.plista.com.

Licence

MIT License, (c) 2014, TU Berlin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.