Skip to content
View JBourton's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report JBourton

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JBourton/README.md
Joshua Bourton, Durham University, Department of Computer Science

LinkedIn Interactive CV Email

Abstract. I'm a First Class Computer Science graduate from Durham University, joining Accenture as a Technical Analyst. My academic work centres on computational methods for political language, using transformer models to quantify rhetoric at a scale that qualitative analysis can't reach. Alongside this, I've built learning agents, generative models and real-time tracking systems under deliberately tight constraints. All the figures on this page are taken directly from that work.

Index Terms. Natural language processing, transformers, reinforcement learning, generative modelling, sensor fusion, data engineering

1  Background

My route into industry ran through a year-long placement at Procter & Gamble, where I worked as an IT project manager on internal data platforms. The role combined directing outsourced developers with hands-on delivery, including an ETL redesign, a Power BI to Databricks migration and application deployment on Azure App Service.

Alongside my degree, I've spent over seven years tutoring GCSE, A-level and IB Maths and Computer Science, which has shaped how I communicate technical work. I also evaluate large language model outputs on tool-calling and code-review tasks, and I'm currently building a fully local, modular AI assistant on self-hosted hardware. Outside of computing I skydive, recording each jump in a logbook app I built for the purpose.

2  Selected Work

2.1  Dissertation · Securitising the Ballot

Computational modelling of securitising rhetoric in UK party manifestos

My dissertation operationalises securitisation theory as a continuous, multi-dimensional regression problem. A shared DeBERTa-v3 encoder feeds three regression heads that score each manifesto sentence for threat, urgency and justification of extraordinary power. Because gold labels are costly to produce, auxiliary heads also learn from roughly 44,000 lexicon-derived pseudo-labels, supplementing 1,500 sentences that I annotated by hand.

The selected model reached a macro Spearman correlation of 0.524 and a macro QWK of 0.623 on held-out data, with 5-fold cross-validation confirming generalisation at 0.487 ± 0.016. Applied across six general elections from 2005 to 2024, it shows that securitising rhetoric diverged between parties. Threat became a shared baseline among the largest parties, urgency distinguished the governing party, and that party legislated most when its own securitising rhetoric was weakest.

Multi-head DeBERTa regression architecture
Fig. 1. Multi-head regression architecture, with auxiliary heads used only in training.
Composite exceedance rate by party and election
Fig. 2. Share of each manifesto's sentences above the composite securitisation threshold, with governing parties outlined.

2.2  Coursework and Projects

TD3 walker clearing hardcore terrain
Fig. 3. Hardcore run clearing stairs, stumps and pits.

The Walking Dead-Ends
YEAR 3 · REINFORCEMENT LEARNING
A TD3 agent that learns bipedal locomotion from scratch, extended for hardcore terrain with n-step returns, action smoothing and an episode-length curriculum. It averages 226 reward over its final 100 easy-mode episodes, whilst hardcore runs reach a median of 207 across the final 500.

PyTorch · Gymnasium · NumPy

Bunny rolling, pitching and yawing
Fig. 4. Roll, pitch and yaw under the complementary filter.

VR Spatial Rotation System
YEAR 3 · VIRTUAL REALITY
Head tracking from raw IMU data, fusing gyroscope, accelerometer and magnetometer readings through quaternion complementary filters to drive a software-rendered Stanford bunny. Accelerometer fusion reduced roll drift at rest from 18.6° to 2.8° RMS.

NumPy · OpenCV · pandas

Class-conditional GAN samples
Fig. 5. Uncurated class-conditional samples from the GAN.

Efficient CIFAR-100 Modelling
YEAR 3 · DEEP LEARNING
A MobileNet-inspired classifier that reaches 62.9% test accuracy within 100k parameters, paired with a projection-based conditional GAN that achieves an FID of 38.0 within 1M parameters. Both were built incrementally, retaining each change only where it measurably helped.

PyTorch · clean-fid · LPIPS

Semantic drift of party public-health framing
Fig. 6. Semantic drift in each party's public-health framing, projected with PCA.

Public Health Rhetoric Before and After COVID-19
YEAR 3 · NATURAL LANGUAGE PROCESSING
Measures how four UK parties reframed public health between their 2019 and 2024 manifestos, combining bootstrapped VADER sentiment, SBERT semantic drift and POS-bigram stylistic analysis. Labour diverged most strongly, whilst the other three parties converged semantically.

sentence-transformers · spaCy · scikit-learn

Lumiere Festival Planner gameplay
Fig. 7. Placing light installations as visitors arrive, at roughly 4× speed.

Lumiere Festival Planner
YEAR 3 · GAME DEVELOPMENT
A browser-based management game set in Durham, in which autonomous visitors navigate using congestion-aware A* pathfinding. The player balances magic, staffing and crowd frustration through interlocking feedback loops, supported by a live congestion heatmap and accessibility features.

JavaScript · Plotly · HTML/CSS

X-ray cleaning pipeline stages
Fig. 8. Each pipeline stage applied to a single scan.

Image Cleaning for Pneumonia Diagnosis
YEAR 2 · COMPUTER VISION
A classical computer vision pipeline that repairs noisy, warped and occluded chest X-rays before classification. Across 100 scans, cleaning raised a pre-trained classifier's accuracy from 55% to 93%.

OpenCV · NumPy

3  Toolkit

Languages Python
Python
JavaScript
JavaScript
TypeScript
TypeScript
SQL
SQL
C
C
HTML5
HTML5
CSS3
CSS3
LaTeX
LaTeX
Machine learning PyTorch
PyTorch
Hugging Face
Hugging Face
scikit-learn
scikit-learn
spaCy
spaCy
OpenCV
OpenCV
Gymnasium
Gymnasium
Data and statistics pandas
pandas
NumPy
NumPy
SciPy
SciPy
PySAL
PySAL
Matplotlib
Matplotlib
seaborn
seaborn
Plotly
Plotly
Cloud and DevOps Microsoft Azure
Azure
Azure App Service
App Service
Docker
Docker
GitHub Actions
Actions
Git
Git
Analytics and tooling Databricks
Databricks
Power BI
Power BI
Jupyter
Jupyter
Google Colab
Colab
VS Code
VS Code

4  GitHub Activity

GitHub stats Top languages

Pinned Loading

  1. Securitising-the-Ballot-Computational-Modelling-of-Securitising-Rhetoric-in-UK-Party-Manifestos Securitising-the-Ballot-Computational-Modelling-of-Securitising-Rhetoric-in-UK-Party-Manifestos Public

    Semi-supervised multi-head transformer regression model quantifying securitisation intensity in political discourse across three theory-derived dimensions (threat, urgency, justification). Combines…

    Jupyter Notebook 1

  2. Clustering-Analysis-of-Contraceptive-Method-Choices-in-Indonesia Clustering-Analysis-of-Contraceptive-Method-Choices-in-Indonesia Public

    This analysis uses a subset of the 1987 National Indonesia Contraceptive Prevalence Survey donated by Lim (1997) to identify distinct sociodemographic groups with varying degrees of contraceptive n…

    Jupyter Notebook 1

  3. An-NLP-Analysis-of-Parliamentary-Attitudes-to-Public-Health-Pre-and-Post-Pandemic An-NLP-Analysis-of-Parliamentary-Attitudes-to-Public-Health-Pre-and-Post-Pandemic Public

    By employing various established NLP techniques, this project aims to identify the extent to which framing and attitudes around public health has shifted since the COVID-19 pandemic occured, alongs…

    Jupyter Notebook 1

  4. Image-Cleaning-For-Pneumonia-Diagnosis Image-Cleaning-For-Pneumonia-Diagnosis Public

    This repository contains code to clean up poor-quality images of patient medical scans. The idea behind the code is to prepare the images for use in a machine learning program that classifies each …

    Python 1

  5. Lumiere-Game Lumiere-Game Public

    A 2d grid-based game honouring Durham Lumiere Festival. Set in Durham, you'll take on the role of a panicked intern repsonsible for decorating the city to keep visitors happy. Good luck!

    JavaScript 1

  6. vr-spatial-rotation-system vr-spatial-rotation-system Public

    Coursework project investigating rotation algorithms and spatial manipulation techniques in VR environments.

    Python 1