Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vishvamporwal/funcgram

Character-level bigram language model for intuitive function names. Using deep learning, it predicts sequential character patterns to propose relevant function identifiers. Enhance code readability with smart function naming.
https://github.com/vishvamporwal/funcgram

Last synced: 3 months ago
JSON representation

Character-level bigram language model for intuitive function names. Using deep learning, it predicts sequential character patterns to propose relevant function identifiers. Enhance code readability with smart function naming.

Awesome Lists containing this project

README

        

# FuncGram: Character-Level Bigram Language Model for Function Names

FuncGram is an open-source project that showcases a character-level bigram language model designed to generate intuitive and relevant function names. Leveraging a simplistic neural network, FuncGram takes into account the sequential nature of characters in function names and predicts appropriate bigram combinations to propose functional identifiers.

# Evaluation Metric:

In assessing the model's efficacy, FuncGram employs the Average Negative Log Likelihood.
Achieved 2.26 loss.

# Data Exploration:
Character Pair Analysis in Function Names:
![Pair Matrix](data/pair_matrix.png)

# Model Architectures:
Gradient-based approach(neural_approach.py):
![Model Architecture](data/NN.png)

# Key Features:

1. Character-Level Modeling: FuncGram operates at the character level, analyzing the intricacies of function name composition.
2. Bigram Analysis: The model focuses on the relationship between consecutive pairs of characters, capturing patterns and sequences in function names.
3. Intuitive Suggestions: FuncGram proposes function name suggestions that align with established programming conventions, making the naming process more streamlined.

# Contributions:

Contributions to FuncGram are welcomed and encouraged. If you have ideas for improvement or want to extend the capabilities of the Bigram language model, feel free to fork the repository and submit a pull request.

Note: This project is intended to showcase the technical aspects of character-level bigram modeling for function names.