Welcome to the Java Recommendation System project! This project is a movie recommendation system built in Java. It demonstrates how to work with data structures, interfaces, and algorithms to deliver personalized movie recommendations.
- Read and Parse Data: Load and analyze movie and ratings data.
- Filter Movies: Apply filters based on genres, years, or other criteria.
- Average Ratings: Calculate and display the average ratings for movies.
- Customizable Recommendations: Generate personalized movie recommendations for users based on their preferences and ratings.
- Java Development Kit (JDK): Version 8 or above.
- Integrated Development Environment (IDE): IntelliJ IDEA, Eclipse, or any other preferred IDE.
- Basic understanding of Java programming and object-oriented principles.
git clone https://github.com/yourusername/java-recommendation-system.git
cd java-recommendation-system
- Movies File: A CSV file containing movie metadata (e.g., title, year, genres).
- Ratings File: A CSV file containing user ratings for movies.
Place these files in the /data
directory. Sample files:
movies.csv
ratings.csv
java-recommendation-system/
├── data/
│ ├── movies.csv
│ └── ratings.csv
├── src/
│ ├── Movie.java
│ ├── Rater.java
│ ├── Filter.java
│ ├── ThirdRatings.java
│ ├── RecommendationRunner.java
│ └── ... (other classes)
├── README.md
└── ...
- Load Data: The program reads movie and rating data from the
movies.csv
andratings.csv
files. - Apply Filters: Use predefined or custom filters to narrow down the movie list.
- Generate Recommendations: Generate a list of recommended movies for a specific user.
- Compile and run the main class (
RecommendationRunner.java
) in your IDE or terminal. - Example command:
javac -d bin src/*.java java -cp bin RecommendationRunner
Top Recommendations for User 1:
1. Movie Title: The Godfather (1972)
Average Rating: 4.8
2. Movie Title: Inception (2010)
Average Rating: 4.7
...
- Filters: Extend the
Filter
class to add new filters (e.g., runtime, director). - Algorithm: Modify
ThirdRatings.java
to experiment with different recommendation algorithms.
This project is licensed under the MIT License. See LICENSE
for details.