NLP enables machines to understand, interpret, and generate human language. Large-scale Language Models (LLMs) like GPT-3, trained on extensive text data, have revolutionized NLP by generating coherent and relevant responses for various applications. Combatting fake news is crucial in our information-rich society, as it distorts public opinion, erodes trust, and fosters societal divisions. Traditional methods like rule-based systems and manual fact-checking are inefficient. Advancements in NLP and LLMs present opportunities for automated and scalable fake news detection.
This project’s significance lies in addressing the challenge of adaptable trading strategies for changing market conditions and risk management using Reinforcement Learning (RL). By harnessing RL’s ability to optimize decision-making through learning and experience, it offers a more intelligent approach to trading. The potential benefits extend to investors, financial institutions, and the economy, improving capital allocation, risk reduction, and returns. Exploring RL in stock trading could revolutionize decision-making by uncovering imperceptible insights. The project focuses on RL’s foundational framework in stock trading, with an autonomous agent interacting in the dynamic stock market environment, making learned actions within distinct states and gaining rewards tied to outcomes. Understanding these elements is vital to grasp the project’s depth and significance.
I designed and implemented a pipeline that transforms unstructured data into a structured format by extracting relevant features from Jupyter notebooks. The pipeline reads notebooks containing source code and metadata, processes them, and creates a structured dataframe. Additionally, I developed several modules to extract code-related features from these projects, such as the number of functions, imported libraries, and code length, all represented within the generated dataframes. This structured representation enables easier analysis and further processing for downstream tasks.
I implemented various machine learning models—covering both classification (Naive Bayes, K-Nearest Neighbors, Support Vector Machine, and Multi-Layer Perceptron) and clustering (K-Means, Gaussian Mixture Model, and Hierarchical Clustering)—for information retrieval tasks. Using libraries such as NumPy, Pandas, scikit-learn, Seaborn, and Matplotlib, I prepared and visualized the data by applying tasks like PCA and dimensionality reduction, and also implemented score functions to optimize the models’ performance.
I developed a search engine for a movie dataset by first preprocessing the text—lemmatizing, stemming, and removing stop words—then creating a positional index with features like add/delete entries and compression methods for storage. I also implemented spell correction to suggest alternatives for misspelled queries, a configurable scoring function to highlight results, and various evaluation metrics to measure performance. This work used libraries such as NumPy, Pandas, NLTK, Seaborn, and Matplotlib.
In this project, I implemented a web crawler to gather research papers from Microsoft Academic, then applied PageRank to evaluate their importance and HITS to rank the publishers. I also built a recommender system on the crawled graph, using both content-based and collaborative filtering methods. Libraries like Selenium, NumPy, and JSON were used throughout the process.
In this project, I compared the performance of Factorization Machines (FM) against traditional classification models—Support Vector Machine (SVM), Random Forest, and Logistic Regression—for predicting ad clicks. Utilizing a dataset from Sharif DataDays 2020, which records user interactions with online advertisements, I conducted extensive exploratory data analysis to clean and preprocess the data. This included handling missing values, addressing class imbalances, and encoding categorical variables. Despite the large and sparse nature of the dataset posing challenges for conventional models like SVM, the FM model demonstrated superior performance by effectively capturing feature interactions, highlighting its suitability for such complex prediction tasks.
This project focuses on designing and implementing a handwritten digit recognition system using convolutional neural networks (CNNs). The goal is to accurately classify digits from images, such as those in the MNIST dataset, by training a CNN model to automatically learn relevant features. The system takes grayscale images of digits as input and outputs the predicted class (0–9). By leveraging the power of deep learning, especially convolutional layers, the model achieves high accuracy in recognizing handwritten numbers with minimal preprocessing.