Technology
Smart Contract Analysis with NLP
An NLP system learns from Siemens' legal team's past contract revisions, flags the same clauses in a new contract, and proposes the edit that was made before.
The challenge
At Siemens' scale contracts arrive constantly, and every one passes through the legal team before signature. The team corrects the same clauses for the same reasons over and over: liability caps, payment terms, penalties, jurisdiction. That knowledge exists in the organisation - but only in a few experienced heads and in old files.
The result is two risks, both bad: slowness and inconsistency. Reading a new contract end to end takes hours, and whether a clause gets caught depends on who happened to review it that day.
The challenge was to move that accumulated judgement out of individuals and into a system.
The approach
I built a contract review system that learns from the organisation's own contract history. The idea is simple: instead of hand-coding the policy, look at what the legal team actually changed in the past.
- I extracted a memory from past revisions. Five real contract sets were read in both their original draft and revised form (Word documents with tracked changes). The two versions were compared sentence by sentence to identify exactly what changed, building a corpus of "original clause → corrected clause" pairs.
- Matching by meaning, not by words. Each clause was converted into a vector using a sentence-embedding model, so the system also catches a clause written in different words that carries the same risk - in legal text, the same provision is rarely written the same way twice.
- New contracts are read against that memory. When a document is uploaded it is split into sentences, each compared against the revision corpus, and close matches are flagged - alongside the edit previously made to that clause, offered as a suggestion.
- An interface built for the reviewer. A Streamlit app with document upload, flagged clauses in a sortable table, and a diff view of the proposed change. Reviewers focus on what the system surfaces instead of reading the whole contract.
- A classical comparison line. To show the semantic approach was genuinely needed, results were compared against classical word-count classifiers (logistic regression, SVM).
What emerges is not a rule list but the organisation's contract memory: decisions the team made over years become automatically reusable on new contracts. The judgement stays with the lawyer - the system only says "we've looked at this before, and here's how."
Stack: Python, python-docx, NLTK sentence tokenisation, difflib, sentence-transformers (MiniLM) embeddings, cosine similarity, scikit-learn, Streamlit.
Want similar results for your project?
Every project above started with a conversation. Let's figure out what yours needs.
Keep exploring
More projects.
Rail catenary pole placement automation
Weeks of expert engineering work, reduced to seconds.
D-Risk - MedTech Marketplace with AI Company Profiling
A three-sided marketplace linking medtech startups with investors and specialist freelancers - matched through AI document profiling.
Integrated LoRa Sensor Monitoring & Analytics System
Turning raw LoRa telemetry from tree-mounted sensors into live dashboards that answer watering and growth questions - built in one week.
Revenue Administration MCP Server
An assistant that reads Turkish tax legislation from its official source at the moment you ask and answers with the article behind it - a system a certified acc
Reliability of LLMs in Safety-Critical Requirements Engineering
A controlled experiment measuring what an ungrounded, off-the-shelf chatbot contributes to safety-critical engineering.
DSGENAI - AI Safety Requirements Engineering Platform
Stabilising and modernising an AI-driven safety-requirements platform - Flask to Streamlit, GPT-5.1, and critical data-leak fixes.
Retrieval-Augmented Generation (RAG) Documentation Assistant
A RAG assistant that turns stacks of PDFs into a searchable knowledge base where every answer traces back to the source document.
LLM Prompt Optimization for Legal-Clause Classification
Comparative research that lifted F1 from 0.62 to 0.76 on Terms-of-Service clause classification through automatic prompt optimisation alone - without retraining
Football Player Potential Prediction Model
A classification model predicting whether a player will be marked "highlighted" from 39 scout attribute scores - ROC-AUC 0.86 under 10-fold cross-validation.
Football Player Ranking System
A scoring engine that ranks players not by total score, but by how many attributes they exceed the statistical average for their own position.
Football Player Position Recommender System
A recommender that compares a player's attribute profile against the profiles of other positions and finds players could be more valuable in a different role.
Automated Connecting-Flight Optimization
A tool that recalculates every connection possible through the hub - day by day, with passenger volumes - when a single flight's time is shifted.
Flight Passenger-Count Prediction
A demand model predicting booked passengers on one-stop routes from a flight's own characteristics, selected by comparing eleven regression models.
Turkish Image-Captioning Benchmark on MS COCO 2014
A human-verified Turkish caption dataset covering all of MS COCO, plus five models trained on it - a new reference point for Turkish image captioning.
ESG Diversity & Sentiment Solution - CFA Poland Hackathon
An ESG prototype scoring gender diversity and news sentiment - 2nd place among 44 teams from 28 universities.
Automated ESG Scoring System - HackBogazici
An automated ESG scoring engine built from four scraped data sources - 2nd place among 14 hackathon teams.