Go back ↩

January 2024

Project 1 - Development of a Classification AI

Expertise

Développement Back-end

Bachelor Skills

Skills 1 & 2

Skill 1: Developing simple computer applications

Skill 2: Understanding and constructing algorithms

Language

Java

Report

Download pdf

Github

Take a look
image projet

Project Overview

We developed an artificial intelligence to classify press articles based on their categories (Politics, Sports, Culture, etc.) in Java using the Intellij JetBrains IDE without user interfaces. We used GitHub for group collaboration.

image representative


To achieve this, we had to apply several algorithmic principles (Binary and sequential search, Merge sort) learned at the beginning of the year, ensure code quality to work effectively as a group and adhere to performance and energy cost constraints to optimize our application's performance.

image representative

Personally, I worked on developing methods such as generating a lexicon for a given category. I also took care of the majority of the required report.

Results

We can conclude that the number of comparisons and the execution time is highly variable depending on the method you choose, so it's important to carefully consider your needs before making a decision. We have optimized our 'artificial intelligence' to the best of our abilities and conducted extensive testing to achieve the highest possible detection performance. Our system has demonstrated satisfactory results with a detection rate of over 50% for a list of 21 daily news articles. However, it is important to note that our system is still far from perfect.

We documented entirely our project in English in a complete report that we submitted to the associated modules professors.

We have received a grade of 17/20 for this project, which reflects the quality and effort we put into its development.

To further improve the speed of our Java code, we could consider using HashMaps instead of ArrayLists. HashMaps allow us to associate a keyword with a value, which can be more efficient for certain operations.

Overall, I've learned that it's crucial to carefully analyze and consider different approaches before starting the coding process to ensure the selection of the most suitable methods and achieve optimal results.