A probabilistic machine learning model is generated to identify potential bugs in a source code file. Source code files with and without bugs are analyzed to find features indicative of a pattern of the context of a software bug, wherein the context is based on a syntactic structure of the source code. The features may be extracted from a line of source code, a method, a class and/or any combination thereof. The features are then converted into a binary representation of feature vectors that train a machine learning model to predict the likelihood of a software bug in a source code file.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A system, comprising: a memory and at least one processor; the at least one processor configured to: obtain a plurality of source code statements from at least one source code file, at least one of the plurality of source code statements having a software bug, at least one of the plurality of source code statements not having a software bug; transform the plurality of source code statements into a plurality of features, at least one of the feature representing a context of a software bug, at least one other feature representing a context not having a software bug; transform the plurality of features into a plurality of feature vectors; train a machine learning model using the feature vectors to recognize patterns in a source code file indicative of a software bug; and generate a probability of a software bug in a target source code file using the machine learning model. 2. The system of claim 1, wherein the at least one processor transforms the plurality of source code statements into a plurality of features by converting each source code statement of the plurality of source code statements into a sequence of tokens, wherein a token is associated with a syntactic element associated with a grammar of the source code file. 3. The system of claim 2, wherein the machine learning model is a long short term memory (LSTM) model. 4. The system of claim 1, wherein the at least one processor transforms the plurality of source code statements into a plurality of features by converting and/or concatenating at least one element in at least one source code statement of the plurality of source code statements into a token, wherein a token is associated with a syntactic element associated with a grammar of the source code file. 5. The system of claim 4, wherein the machine learning model is a recurrent neural network (RNN). 6. The system of claim 1, wherein the at least one processor transforms the plurality of source code statements into a plurality of features by converting each source code statement of the plurality of source code statements into a sequence of metrics, wherein a metric is associated with a measurement of a syntactic element of a source code statement. 7. The system of claim 6, wherein the machine learning model is an artificial neural network (ANN). 8. The system of claim 1, wherein the at least one processor is further configured to: visualize one or more source code statements from a target source code file with a corresponding probability for at least one of the one or more source code statements. 9. The system of claim 8, wherein the visualization of the one or more source code statements includes at least one of: highlighting a source code statement in accordance with a probability; altering a font size or text color of a source code statement in accordance with a probability; annotating a source code statement with a numeric probability value; and/or annotating a source code statement with an icon representing a probability value; 10. The system of claim 8, wherein the visualization is displayed when a probability of the one or more source code statements exceeds a threshold value. 11. A method, comprising: obtaining a plurality of source code files, at least one source code file of the plurality of source code files having a software bug, at least one source code file of the plurality of source code files not having a software bug; converting at least one portion of a source code file of the plurality of source code files into a sequence of metrics, a metric representing a measurement of a syntactic element; and using the sequence of metrics to train a machine learning model to predict a likelihood of a software bug in a portion of a target source code file. 12. The method of claim 11, wherein the portion of the target source code file includes a source code statement, a method, and/or a class. 13. The method of claim 11, wherein obtaining a plurality of source code files further comprises: mining change records of a source code repository for source code files having been changed to fix a software bug. 14. The method of claim 11, wherein the sequence of metrics includes one or more of a number of variables, a number of mathematical operations, a number of a particular data type of elements referenced, a number of loop constructs, a usage of a particular method, and a usage of a particular data type. 15. A device, comprising: a memory and at least one processor; a data mining engine including instructions that when executed on the at least one processor searches a source code repository for a plurality of source code files; a code analysis engine including instructions that when executed on the at least one processor converts a portion of at least one source code file having a software bug into a sequence of syntactic elements that represent a context in which a software bug exists and converts a portion of at least one source code file not having a software bug into a sequence of syntactic elements that represent a context in which a software bug fails to exist; and a training engine including instructions that when executed on the at least one processor uses the sequence of syntactic elements that represent a context in which a software bug exists and the sequence of syntactic elements that represent a context in which a software bug fails to exist to train a machine learning model to predict a likelihood of a software bug in a target source code file. 16. The device of claim 15, wherein the training engine includes further instructions that when executed on the at least one processor aggregates a contiguous set of sequences of syntactic elements into a window to generate a feature vector. 17. The device of claim 16, wherein the contiguous set of sequences includes an amount of sequences of syntactic elements preceding a select sequence and an amount of sequences of syntactic element following the select sequence. 18. The device of claim 15, wherein the portion of the at least one source code file includes one or more lines of source code and/or classes of the at least one source code file. 19. The device of claim 15, further comprising: a visualization engine that generates a visualization identifying at least one portion of a target source code file having a likelihood of a software bug. 20. The device of claim 19, wherein the visualization includes the at least one portion of the target source code and probabilities associated with the at least one portion of the target source code.