La vitrine de diffusion des mémoires et thèses de l'ÉTS
RECHERCHER

Summarizing code entities discussed in stack overflow using unsupervised learning

Téléchargements

Téléchargements par mois depuis la dernière année

Harirpoosh, Andisheh (2022). Summarizing code entities discussed in stack overflow using unsupervised learning. Mémoire de maîtrise électronique, Montréal, École de technologie supérieure.

[thumbnail of HARIRPOOSH_Andisheh_v2.pdf]
Prévisualisation
PDF
Télécharger (1MB) | Prévisualisation

Résumé

Automated source code summarization is an approach that generates natural language descriptions that describe the code entities such as methods and classes to better understand the code and to optimize the time and effort of software developers. There are two ways to summarize code: extractive way as well as abstractive way. Multiple methods and algorithms including Information Retrieval techniques and supervised learning have been applied to generate automatic summaries for code entities. Their common shortcoming is that very little to none of those works has offered a completely automated way, without human intervention, to provide accurate summaries for code entities discussed in informal documentation such as emails exchanged between developers, Stack Overflow, etc. In addition, very little research has investigated informal documentation when summarizing code entities discussed in code summarization. In this thesis, I leverage unsupervised learning, i.e., TextRank to extract relevant sentences that should be part of the summary produced for Android methods mentioned in Stack Overflow. In addition, I use Natural Language Processing (NLP) techniques, in particular, Term Frequency-Inverse Document Frequency (TF-IDF) and Stack Overflow’s word embedding, which are used as text vectorization techniques, as two separate techniques for text vectorization, and I show how different vectorization affect the quality of the produced summaries. To evaluated my research work, I conducted an empirical study that involves 3,084,143 Stack Overflow posts from Stack Overflow tagged between 2009 and April 2020 and 20 Android methods. The results of our investigation show that we can produce automatic summaries for code entities discussed in informal documentation using TextRank and that applying a word embedding vectorization provides more stable results than the TF-IDF when applied with TextRank algorithms.

Titre traduit

Synthétiser les entités de code discutées dans le Stack Overflow en utilisant l’apprentissage non-supervisé

Résumé traduit

La synthèse des entités de code a été proposée pour une meilleure compréhension des entités de code et pour optimiser le temps et l’effort des développeurs tout en fournissant des descriptions exactes du code. Les synthèses du code produites sont connues d’être soit du type extractive ou abstractive en génie logiciel. De multiples méthodes et algorithmes tels que les techniques de recherche d’information ou d’apprentissage machine ont été appliquées pour générer automatiquement les synthèses des entités de code. Leur défi commun est que très peu d’entre eux ont proposé des façons complétement automatiques pour la génération des synthèses du code sans intervention humaine. En plus, la plupart ont traité les entités de code faisant partie du code et non pas de la documentation informelle et ne mettent pas l’emphase nécessairement sur l’usage des entités de code. Dans ce mémoire, je fais appel à l’apprentissage machine et en particulier à la technique TextRank pour extraire les phrases pertinentes qui doivent faire partie des synthèses produites pour les méthodes Android discutées dans le Stack Overflow. En plus, j’utilise les techniques du traitement de langage naturel en particulier les techniques Term Frequency-Inverse Document Frequency (TF-IDF) et word embedding qui sont des techniques de vectorisation, comme deux techniques de prétraitement du texte. En outre, je montre à quel degré ces deux techniques affectent la qualité des synthèses produites. Pour évaluer mon travail de recherche, j’ai mené une étude empirique faisant intervenir 3084143 discussions de Stack Overflow de la période de 2009 au Avril 2020. et 20 méthodes de la plateforme Android. Les résultats de cette étude ont démontré que nous pouvons générer des synthèses de façon complètement automatique pour les entités de code discutées en Stack Overflow en utilisant l’apprentissage machine. Ils ont indiqués aussi que la technique de vectorisation word embedding a un effet plus positif que TF-IDF lorsqu’appliquée à la technique d’apprentissage machine TextRank.

Type de document: Mémoire ou thèse (Mémoire de maîtrise électronique)
Renseignements supplémentaires: "Thesis presented to École de technologie supérieure in partial fulfillment of a master’s degree with thesis in electrical engineering". Comprend des références bibliographiques (pages 91-96).
Mots-clés libres: synthèse du code, entités de code, stackoverflow, apprentissage non supervisé, traitement du langage naturel, documentation informelle
Directeur de mémoire/thèse:
Directeur de mémoire/thèse
Guerrouj, Latifa
Programme: Maîtrise en ingénierie > Génie électrique
Date de dépôt: 12 août 2022 16:56
Dernière modification: 12 août 2022 16:56
URI: https://espace.etsmtl.ca/id/eprint/3037

Gestion Actions (Identification requise)

Dernière vérification avant le dépôt Dernière vérification avant le dépôt