nw  

Topic Mining in Source Code Repositories

Zusammenfassung

Klassifizierung von Source Code mit Machine Learning.

Schlüsselbegriffe

Python, Machine Learning, Topic Modelling, Git, Bitbucket

Zielsetzung

Das Ziel ist die Entwicklung eines Machine-Learning-Modells, das in einem Bitbucket-Plugin eingesetzt werden kann, um Git-Repositories nach Themen, verwendeten Technologien und Programmiersprachen zu klassifizieren.

Ausgangslage

Firmen, die Software entwickeln haben teilweise sehr viele Git-Repositories. Es wäre aus diversen Gründen hilfreich, diese in verschiedene Kategorien aufzuteilen und Ähnlichkeiten zu finden. Beispielsweise um andere Repositories zu finden, die die gleichen Technologien verwenden oder ähnliche Probleme lösen. Die Repositories von Hand zu labeln, vor allem im Nachhinein, ist oft unrealistisch und wenn sich deren Inhalt ändert können die Labels schnell veralten.

Der Auftraggeber, Mibex Software, ist an der Entwicklung eines Bitbucket-Plugins interessiert, das von grossen Software-Firmen eingesetzt werden kann, um Repositories zu organisieren. Der Inhalt unserer Projektarbeit war die Entwicklung eines Machine-Learning-Modells, das in einem solchen Plugin verwendet werden könnte.

Ergebnisse

Wir haben einen GitHub Repository Miner entwickelt, um Trainingsdaten zu sammeln. Mit diesen Daten haben wir unsere Modelle trainiert, und das meistversprechende ausgewählt. Dieses Modell hat einen F1-Score von 0.56 erreicht.

Projektdaten

Projektdauer: September 2018 bis März 2019

Aufwand in Personenstunden: 360 Stunden pro Person

Teamgrösse: 2 Personen

Projektart: Bachelorthesis

Auftraggeber

Mibex Software

Rautistrasse 60

CH-8048 Zürich

www.mibexsoftware.com

Projektteam

Adrian Hitz

Roland Schmid

Kontakt

Martin Melchior

martin.melchior@fhnw.ch

<< zurück