<aside> 🤖 This code implements a profile-matching system designed to connect students with mentors based on their interests and expertise. The system employs natural language processing (NLP) and linear programming to facilitate accurate matches.

</aside>

Functionality Overview

Student Input: The system begins by prompting the student to input a brief description of themselves. This input is stored in the variable student_input.

Keyword Extraction: The extract_keywords function is invoked to extract relevant keywords from the student's input. Utilizing the NLTK library, this function tokenizes the input text and removes stopwords, isolating significant keywords.

Mentor Data Reading: The system reads data from a CSV file, which contains mentor profiles. Each row in the CSV file corresponds to a mentor and includes two columns: name and keywords. The keywords column lists the mentor's areas of expertise in a comma-separated format.

Mentor Matching: The match_mentor function is used to match the student with a mentor. This function calculates the similarity between the student's keywords and each mentor's keywords using the Jaccard similarity coefficient, which is defined as the number of common keywords divided by the total number of unique keywords.

Optimization Using Linear Programming: The system employs linear programming to maximize the matches between students and mentors, ensuring that each mentor is assigned to at most one student. The pywraplp library is used to construct a linear programming model for this purpose.

Solving the Model: The linear programming model is solved using the Solve method, which provides the optimal assignment of mentors to students.

Output: Finally, the system prints the name of the matched mentor to the console. If no suitable match is found, it prints a message indicating the absence of a mentor match.

Screen Recording 2024-08-02 at 6.36.19 PM.mov

Key Functions

This profile matcher leverages NLP and linear programming to effectively pair students with mentors based on shared interests and expertise. Through extracting keywords from student inputs and comparing them with mentor profiles, the system ensures accurate and optimal mentor-student matches, facilitating meaningful mentorship connections.

screen_shot_2024-08-02_at_6.41.24_pm_480.jpg

screen_shot_2024-08-02_at_6.42.55_pm_480.jpg

screen_shot_2024-08-02_at_6.41.37_pm_720.jpg

Link to Code: https://github.com/aravM23/Hackathon1/blob/main/mentormatch.py