Negar "Niki" Mirgati

M.Sc Graduate @ University of Alberta | Interested in AI & Software Development

Data Science and AI Projects

Relation Aware Joint Entity Relation and Extraction

Relation Aware Joint Extraction

In this project, we address the challenge of joint entity and relation extraction from unstructured text, focusing on the issue of overlapping relational triples—instances where multiple relationships share common entities. Building upon the CASREL framework, we introduce a relation-aware model that incorporates both relation semantics and interactions to enhance extraction accuracy. Our approach leverages the inherent meanings of relations and their co-occurrence patterns to improve the identification of entities and their relationships. Experimental evaluations on the WebNLG dataset demonstrate that our model achieves a notable improvement, with an absolute gain of 0.96 in F1-score over the original CASREL framework. This advancement underscores the effectiveness of integrating relation-aware mechanisms in complex information extraction tasks.

Topics:
Natural Language Processing (NLP) Deep Learning Entity and Relation Extraction BERT Encoder
Programming Language:
Python
Libraries and Frameworks:
Pytorch NumPy

Exploring Linear Regression: Closed-Form Solutions and Gradient Descent Optimization

In this project, I implemented the closed-form solution to linear regression from scratch, utilizing matrix-vector representations for data handling and engaging in data visualization techniques. The project involved generating data through specific transformations, followed by performing linear regressions to predict variables in both directions. This approach provided insights into the phenomenon of "regression to the mean." Additionally, I explored the application of mini-batch gradient descent optimization for linear regression, specifically applied to the Boston housing dataset. This included normalizing features and outputs, implementing a train-validation-test framework, and experimenting with non-linear features and regularization techniques to prevent overfitting. Through this comprehensive exercise, I gained practical experience in linear regression, optimization methods, and the importance of feature engineering in predictive modeling.
Also, I investigated the application of linear and logistic regression models for binary classification tasks. By training both models on two distinct datasets, I observed that linear regression, typically used for continuous outcomes, is not well-suited for classification problems due to its assumptions and output range. In contrast, logistic regression, designed for binary outcomes, provided more accurate and reliable classifications. This comparison underscored the importance of selecting appropriate models based on the nature of the prediction task.

Topics:
Machine Learning Linear Regression Logistic Regression Regularization Techniques Gradient Descent Data Visualization
Programming Language:
Python
Libraries and Frameworks:
NumPy SciPy Matplotlib

Data Compression and Error Correction Techniques

This project showcases my implementation of Huffman coding, convolutional coding, and the Viterbi algorithm, key techniques in data compression and error correction. Huffman coding optimizes data storage by reducing redundancy, while convolutional coding enhances the reliability of transmitted data. The Viterbi algorithm is employed for efficient error detection and correction. Through Python-based implementations, this project demonstrates my ability to apply fundamental concepts in data communication, signal processing, and algorithm optimization. It highlights my expertise in developing efficient, real-world solutions for encoding and error detection in digital systems.

Topics:
Data Compression Error Correction Huffman Coding Convolutional Coding Viterbi Algorithm
Programming Language:
Python

Software Development Projects

Full-Stack Job Marketplace Platform

JobOonja

This project is a full-stack web platform designed as a job marketplace for developers, where freelancers can bid on projects based on their skills and qualifications. The frontend was initially built using HTML, CSS, and Bootstrap, then transitioned to React for a more dynamic and interactive user experience. The backend was developed with Java, using JSP for server-side rendering before migrating to a RESTful API architecture. The system includes authentication with JWT, database integration with MySQL, and real-time project updates. The project also incorporates Docker for containerization, ensuring deployment efficiency in production environments. With features like automated auctions, skill endorsements, and API standardization, this project showcases my ability to design and implement a scalable, secure, and high-performance web application from concept to deployment.

Topics:
Full-Stack Development Web Application Job Marketplace Freelancing Platform Authentication Real-Time Updates API Development Containerization
Frontend Technologies:
HTML CSS Bootstrap React
Backend Technologies:
Java JSP RESTful API
Database:
MySQL
Other Technologies:
JWT Docker

SmartPlanter: Autonomous Intelligent Mobile Planter

Smart Planter

In this project, we designed and implemented an intelligent mobile planter system to automate plant care through sensor-driven decision-making. The system integrates moisture sensors to monitor soil conditions and adjusts watering accordingly using an automated pump. Additionally, light sensors and ultrasonic distance sensors enable the planter to reposition itself toward optimal lighting conditions while avoiding obstacles. The project was developed using Arduino with C++, incorporating hardware components like MPU6050 for angle measurement, HC-05 Bluetooth module for user interaction, and L298N motor drivers for mobility control. This project highlights my ability to work with embedded systems, robotics, and sensor-based automation, showcasing a practical application of cyber-physical systems (CPS) for smart agriculture.

Topics:
Real-Time Embedded Systems Arduino Hardware Components
Technologies:
C++

MAPVIS: Maximum A Posteriori Rule Visualization

MAPVIS

The MAP Visualizer project is an interactive web-based tool designed for statistical data visualization, primarily focusing on probability distributions and decision boundaries. The tool leverages jStat for statistical calculations, Google Charts for dynamic plotting, and Bootstrap for responsive design. At its core, it generates probability density functions (PDFs) for normal distributions, computes key statistical values, and visualizes them in an interactive chart. Users can manipulate parameters such as mean, standard deviation, and probability values, dynamically updating the visualization to reflect changes in statistical models. The project showcases expertise in frontend development, data visualization, and interactive web applications, making it a valuable tool for statistical analysis, signal processing, or decision theory applications.

Topics:
Data Communication Statistical Analysis Probability Distributions Interactive Web Application
Technologies:
Javascript jStat MathJax HTML/CSS Bootstrap Google Charts API

Hardware Development Projects

An Implementation of MIPS (Microprocessor without Interlocked Pipelined Stages)

MIPS

This project is a five-stage pipelined MIPS processor designed in Verilog, implementing key components such as Instruction Fetch (IF), Instruction Decode (ID), Execution (EXE), Memory Access (MEM), and Write-Back (WB). Modules like IFID, IDEXE, EXEMEM, and MEMWB ensure proper instruction flow across pipeline stages. To enhance performance and avoid pipeline hazards, the processor includes a Forwarding Unit and a Hazard Detection Unit (HDU), which handle data and control hazards by forwarding values and stalling execution when necessary. The Controller module manages instruction execution, while ConditionCheck handles branching and decision-making. Additionally, the cache controller and address mapping modules optimize memory access efficiency. This project highlights advanced digital design skills, including pipelined architecture, memory hierarchy, and hazard resolution techniques, making it a strong demonstration of hardware-level computer architecture and processor design expertise.

Topics:
MIPS Architecture Processor Simulation Digital Design Hardware Architecture Pipelined Processor
Programming Language:
Verilog
Tools:
ModelSim Quartus