Alexander Ryan

BSc (Hons) Computer Science (1st Class)

2015-2020

Bio

I'm a recent 1st class computer science graduate from the University of Sheffield. Each year I had new exciting challenges and eye-opening subjects, such as bio-inspired computing and cognitive and biomimetic robotics that would draw my attention entirely.

With all of the resources and guidance available, I studied multiple programming languages, algorithms, ideologies, practical teamwork, higher-level maths and much more. University has developed my ability to learn programming languages fast and hone my problem-solving techniques.

My career goal is to be developing software that challenges current ideas, enhances my programming abilities further and utilise neural networks.

Languages & Tooling

  • Python
  • NLP
  • Java
  • IoT Update
  • C++
  • NodeJs
  • Ajax
  • Socket io
  • Jogl
  • Neural Networking
  • Java
  • Javascript

Dissertation

Detecting offensive language on Twitter

The social interactions we would have face-to-face have become screen-to-screen through social media. Due to social media’s impact on the world, people around the world have been organising shared tasks to study the offensive language through the use of natural language processing.

The purpose of this project is to build a model that will detect and classify offensive lan-guage within Twitter inc. posts in the Offensive Language Identification Dataset (OLID) annotated for three classes; offensive or not, targeted or not and who the target is. An extended version of OLID will also be used in this project. This project will be detecting whether a tweet is offensive or not, task A. The current problems with detecting offensive language is the variety of offensive words and their uses. Meanwhile, humour and sarcasm blur the lines of classification. This report will look into different types of abusive language, natural language processing, a collection of artificial neural networks, and previous research carried out within this field. Tensorflow and Keras’ libraries in addition to the GloVe word embeddings will be the building blocks of this report's models.

A deep learning approach has been chosen due to the wide variety of offensive language and the complexity that exists with sarcasm. Due to the mechanics of a CNN, the convoluting of sections, a contextual understanding is viable without the need for a linguistic expertise inoffensive language. This project will analyse a stacked CNN and a simple RNN. The stacked CNN has two convolutional layers and a reduction stage consisting of a flatten, dropout and dense layers. The RNN consists of a gated recurrent unit and a simple RNN layer.

This report has shown that choosing the right model for a specific problem is key, as seen by the time taken to run the RNN when compared to the CNN. Meanwhile showing that an increased dataset can improve the performance of a model. Concluding that a stacked CNN model achieved a macro F1 of 0.778, ranking it against OffensEval 2019’s participants retroactively, between 24th and 27th,out performing the MLP baseline developed for this project and later ranking retroactively between 9th and 15th for the OffensEval 2020.

The project was coded in Python with the use of Pandas, NumPy, Spacy, SkLearn, Pickle, GloVe, Tensorflow, Keras, PyCharm and Uni. of Sheffield’s high performance cloud computing cluster - ShARC.

Projects

Fire simulation

Text classification

Image to text classification

Chess game

Thermal imaging Camera

Website

Engineering You're Hired

Global Engineering Challenge

Software hut

Final Year Modules

Text Processing

Computer Graphics

The Intelligent Web

The Internet of Things

Bio Inspired Computing

Cognitive & Biomimetic Robotics

Dissertation Project

Managing Projects & Teams

Finance & Law for Engineers

Second Year Modules

Data Driven Computing

Systems Design & Security

Human-Machine Interaction & Robotics

Logic in Computer Science

Functional Programming

Automata, Computation and Complexity

First Year Modules

Introduction to Software Engineering

Foundations of Computer Science

Java Programming

Machines & Intelligence

Devices & Networks

Web & Internet Technology

Introduction to Algorithms & Data Structures