Projects


Fairness Classification and Obligation Detection in ToS
Natural Language Processing

In the digital era which runs on online services, it is very important for a user to be informed of the implications of the usage of various services on the Internet as well as the liability that it creates. Hence all the services that are consumes now a days have a form of terms of services to be agreed to before starting to use the service. The main idea of the project is to classify the `terms of services` that the user agrees without reading as fair and unfair. On top of that we also aim to detect clauses that imply obligation on the users part.

  • Python
  • PyTorch
  • RNN
  • LSTM
  • Bi-LSTM
  • Transformers
  • Dependency Parsing
Natural Language Processing Projects
Fall'22: CSCI-544 Natural Language Processing @ USC

As a part of the coursework in CSCI-544 Applied Natural Language Processing, I implemented models to perform multi-class classification of Amazon Product Reviews including Sentiment Analysis and Truthfulness Classification. To perform this classification, various work embeddings like TF-IDF, Word2Vec, and GloVE were used along with SVM, NN, and RNN. I also implemented a POS tagger for a surprise language from scratch.

  • Python
  • NLTK
  • PyTorch
  • Sentiment Analysis
  • POS Tagging
  • Viterbi Algorithm
  • Word2Vec
  • GloVe
A.I. Projects
Fall'22: CSCI-561 Foundations of Artificial Intelligence @ USC

As a part of the coursework in CSCI-561 Foundations of Artificial Intelligence, I implemented a genetic algorithm to solve the 3D travelling salesman problem (TSP) using only NumPy. I also implemented a Go game playing agent based on alpha-beta pruning. The game playing agent was in the top 5% amongst the class. An artificial neural network was also implemented from scratch using only NumPy for classification on guassian, XOR, spiral and circle datasets.

  • Genetic Algorithm
  • Go: Game Playing Agent
  • Artificial Neural Network
Ontology Mediated Attention
Natural Language Processing

The BigBird model uses sparse attention mechanism over full attention which is used by BERT to reduce computation time as well as overcome the limit of sequence length of 512. The main idea of the project is to use informed attention instead of random attention in the BigBird Model.The target domain of the project was biomedical domains has it has predefined ontologies which provides information for attention. QuickUMLS was used to provide informed attention. Contrary to expectation, no significant improvement was found compared the original BigBird model major reason being the model was not trained extensively and relied on pre-trained model(s).

  • Python
  • PyTorch
  • Transformers
  • BigBird
Deep Learning Projects
Spring'22: CSCI-566 Deep Learning and its Applications @ USC

As a part of the course CSCI-566 Deep Learning and its Applications at the University of Southern California in Spring'22, I implemented Convolutional Neural Network from scratch using NumPy. The implementation used the concept of broadcasting heavily to make the code efficient. Moreover, I also implemented Variational AutoEncoder and used Transformers for Sentiment Analysis using PyTorch.

  • Python
  • NumPy
  • PyTorch
  • ANN
  • MNIST
  • CNN
  • VAE
  • Transformers
  • Sentiment Analysis
Machine Learning
Fall'21: CSCI-576 Machine Learning @ USC

As a part of the course CSCI-576 Machine Learning at the University of Southern California in Fall'21, I implemented following algorithms from scratch - Regression, Regression with Regularization, Linear Classifier, K-Means, Viterbi Algorithm and Neural Network for MNIST classification.

  • Python
  • NumPy
  • Regression
  • Multiclass Classification
  • Linear Classifier
  • K-Means
  • HMM
  • ANN
  • MNIST
Exploratory Data Analysis
Data Analysis

This project explores the following datasets: Iris Dataset, Boston Housing Price Dataset, and Wine dataset from the scikit-learn library. As a part of this analysis, various graphing tools were tried along with understand and usage of different types of graphs. The insights were documented in the Jupyter Notebooks.

  • Python
  • Jupyter Notebook
  • matplotlib
  • seaborn
  • scikit-learn
Data and Price Scrapper
Command Line Tool

I had created a huge database schema around the concept of building a custom computer by gathering parts from a wide variety of manufacturers. The only thing missing was obviously the data in it. Rather than manually picking the data and putting it into the database, I coded a few python scripts that would fetch data from the company's websites and store into the database. To spice up the things I built a terminal application on top of the scrappers that would fetch the price of a product from a few selected places like Amazon, eBay, theitdepot, theitwares, primeabgb and hardwire, given the list of products from the database.

  • Python 3.5
  • BeautifulSoup
  • Selenium
  • Amazon Product Advertising API
  • eBay Finding API
Data and Price Scrapper
PC Maker and Services
Android Application

Having made a perfect database, I created a full fledged working RESTful service on top of it. A well sorted and clean data, with a flexible RESTful service on top allowed me to make an Android app, to help users browse various computer hardware components and even compare them. Users could also select various components to build a complete computer. They could even compare prices from varied places and generate an estimate of their build. To make the ends meet, a section was created for third party companies to register into the system, add stock and prices, and would also allow them to serve users having trouble with their computers, by adding the services and users could browse for technicians or related services and could reach them without putting in much effort.

  • Android
  • SQLite
  • Glide
  • JSON
  • PHP 7.0
  • Slim
  • RESTful Service
  • MySQL
PC Maker and Services

Ready to take the next step and work together?

,