Management system for software incidents
A method comprises receiving an incident report comprising a textual description of an incident; generating a regularized incident report in which out-of-vocabulary terms in the received incident report are replaced with in-vocabulary terms; determining importance measures for a plurality of incident report terms, wherein each of the incident report terms is in the regularized incident report; generating an incident matrix in which similarity values are defined for combinations of terms in the incident report and terms in a predetermined term set; generating an incident vector based on the incident matrix and the importance measures for the terms in the incident report; applying one or more machine learning (ML) models that identify, based on the incident vector, relevant software support records and/or software modules, wherein the relevant software support records and the software modules are potentially relevant to the incident; and outputting data identifying relevant software support records and/or software modules.
1 . A computer-implemented method performed by a computing system, the computer-implemented method comprising:
storing, by one or more processors, a corpus of software support records;
receiving, by the one or more processors, an incident report comprising a textual description of an incident involving a software system;
generating, by the one or more processors, a regularized incident report in which out-of-vocabulary terms in the incident report are replaced with in-vocabulary terms;
determining, by the one or more processors, importance measures for a plurality of incident report terms, wherein each of the incident report terms is in the regularized incident report, wherein determining the importance measures comprises weighting parts of speech of the regularized incident report, and wherein the importance measures are determined based on weightings of the parts of speech;
generating, by the one or more processors, an incident matrix in which similarity values are defined for combinations of the incident report terms in the incident report and terms in a predetermined term set;
generating, by the one or more processors, an incident vector based on the incident matrix and the importance measures for the plurality of incident report terms in the regularized incident report;
applying, by the one or more processors, one or more machine learning (ML) models that identify, based on the incident vector, one or more relevant software support records in the corpus of software support records, wherein the one or more relevant software support records are potentially relevant to the incident;
identifying, by the one or more processors, a cluster of neighboring incident report vectors in an n-dimensional space of a plurality of neighboring incident vectors that each correspond to an incident report for a software module;
determining, by the one or more processors, one or more relevant software modules based on the identification of the cluster of the neighboring incident report vectors; and
outputting, by the one or more processors, data identifying the one or more relevant software support records and the one or more relevant software modules.
2 . The computer-implemented method of claim 1 , wherein determining the importance measures for the plurality of incident report terms comprises, for each incident report term of the plurality of incident report terms, determining the importance measure for the incident report term based on (1) a frequency of the incident report term in the regularized incident report, and (2) an inverse frequency of a total number of incident reports in an incident report dataset relative to a quantity of the incident reports in the incident report dataset that contain the incident report term.
3 . The computer-implemented method of claim 1 , wherein the one or more relevant software support records include one or more of one or more bug fix records or one or more records of one or more resolutions of one or more incidents similar to the incident.
4 . The computer-implemented method of claim 1 , wherein identifying the one or more relevant software support records comprises:
generating a plurality of incident vectors for the corpus of the software support records;
calculating a plurality of cosine similarity scores for the incident vector and the plurality of incident vectors for the corpus of software support records; and
identifying the one or more relevant software support records based on the plurality of cosine similarity scores.
5 . The computer-implemented method of claim 1 , wherein applying the one or more ML models comprises applying a k-nearest neighbor (KNN) ML model that identifies the one or more relevant software modules.
6 . The computer-implemented method of claim 1 , wherein generating the incident matrix comprises, for each respective incident report term in the plurality of incident report terms in the regularized incident report, applying one or more neural network models that take the respective incident report term as input and that output a similarity value for each term in the predetermined term set.
7 . The computer-implemented method of claim 1 , wherein the plurality of terms in the predetermined term set comprises a plurality of predefined terms, and wherein generating the incident vector comprises, for each respective predefined term in the plurality of predefined terms:
for each respective combination of the respective predefined term and an incident report term in the regularized incident report, determining an intermediate value for the respective combination based on a similarity value for the respective combination and the importance measure for the incident report term;
calculating a cumulative value for the respective predefined term as a sum of the intermediate values for combinations of the respective predefined terms and the incident report terms; and
including the cumulative value for the respective predefined term in the incident vector.
8 . The computer-implemented method of claim 1 , wherein:
the one or more ML models comprise a plurality of ML models,
applying the one or more ML models further comprises applying each ML model of the plurality of ML models to identify a software module that is potentially relevant to the incident, and
determining the one or more relevant software modules comprises identifying one or more most-identified software modules as the one or more relevant software modules.
9 . A system comprising:
one or more processors; and
one or more storage devices configured to store an incident report comprising a textual description of an incident involving a software system and processor-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
storing a corpus of software support records;
generating a regularized incident report in which out-of-vocabulary terms in the regularized incident report are replaced with in-vocabulary terms;
determining importance measures for a plurality of incident report terms, wherein each of the incident report terms is in the regularized incident report, wherein determining the importance measures comprises weighting parts of speech of the regularized incident report, and wherein the importance measures are determined based on weightings of the parts of speech;
generating an incident matrix in which similarity values are defined for combinations of the incident report terms in the incident report and terms in a predetermined term set;
generating an incident vector based on the incident matrix and the importance measures for the plurality of incident report terms in the incident report;
applying one or more machine learning (ML) models that identify, based on the incident vector, one or more relevant software support records in the corpus of software support records, wherein the one or more relevant software support records are potentially relevant to the incident;
identifying a cluster of neighboring incident report vectors in an n-dimensional space of a plurality of neighboring incident vectors that each correspond to an incident report for a software module;
determining one or more relevant software modules based on the identification of the cluster of the neighboring incident report vectors; and
outputting data identifying the one or more relevant software support records and the one or more relevant software modules.
10 . The system of claim 9 , wherein determining the importance measures for the plurality of incident report terms comprises, for each incident report term of the plurality of incident report terms, determine the importance measure for the incident report term based on (1) a frequency of the incident report term in the regularized incident report, and (2) an inverse frequency of a total number of incident reports in an incident report dataset relative to a quantity of the incident reports in the incident report dataset that contain the incident report term.
11 . The system of claim 9 , wherein the one or more relevant software support records include one or more of one or more bug fix records or one or more records of one or more resolutions of one or more incidents similar to the incident.
12 . The system of claim 9 , wherein identifying the one or more relevant software support records comprises:
generating a plurality of incident vectors for the corpus of the software support records;
calculating a plurality of cosine similarity scores for the incident vector and the plurality of incident vectors for the corpus of the software support records; and
identifying the one or more relevant software support records based on the plurality of cosine similarity scores.
13 . The system of claim 9 , wherein applying the one or more ML models comprises applying a k-nearest neighbor (KNN) ML model that identifies the one or more relevant software modules.
14 . The system of claim 9 , wherein generating the incident matrix comprises for each respective incident report term in the plurality of incident report terms in the regularized incident report, applying a neural network model that takes the respective incident report term as input and that outputs a similarity value for each term in the predetermined term set.
15 . The system of claim 9 , wherein the plurality of terms in the predetermined term set comprise a plurality of predefined terms, and wherein generating the incident vector comprises for each respective predefined term in the plurality of predefined terms:
for each respective combination of the respective predefined term and an incident report term in the regularized incident report, determining an intermediate value for the respective combination based on a similarity value for the respective combination and the importance measure for the incident report term;
calculating a cumulative value for the respective predefined term as a sum of the intermediate values for combinations of the respective predefined terms and the incident report terms; and
including the cumulative value for the respective predefined term in the incident vector.
16 . One or more non-transitory computer-readable storage media comprising processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
storing a corpus of software support records;
receiving an incident report comprising a textual description of an incident involving a software system;
generating a regularized incident report in which out-of-vocabulary terms in the received incident report are replaced with in-vocabulary terms;
determining importance measures for a plurality of incident report terms, wherein each of the incident report terms is in the regularized incident report, wherein determining the importance measures includes weighting parts of speech of the regularized incident report, and wherein the importance measures are determined based on weightings of the parts of speech;
generating an incident matrix in which similarity values are defined for combinations of incident report terms in the incident report and terms in a predetermined term set;
generating an incident vector based on the incident matrix and the importance measures for the incident report terms in the incident report;
applying one or more machine learning (ML) models that identify, based on the incident vector, relevant software support records in the corpus of software support records, wherein the relevant software support records are potentially relevant to the incident;
identifying a cluster of neighboring incident report vectors in an n-dimensional space of a plurality of neighboring incident vectors that each correspond to an incident report for a software module;
determining relevant software modules based on the identification of the cluster of the neighboring incident report vectors; and
outputting data identifying the relevant software support records and the relevant software modules.
17 . The one or more non-transitory computer-readable storage media of claim 16 ,
wherein generating the incident matrix comprises for each respective incident report term in the plurality of incident report terms in the regularized incident report, applying one or more neural network models that take the respective incident report term as input and that output a similarity value for each term in the predetermined term set,
wherein the plurality of terms in the predetermined term set comprises a plurality of predefined terms, and
wherein generating the incident vector comprises for each respective predefined term in the plurality of predefined terms:
for each respective combination of the respective predefined term and an incident report term in the regularized incident report, determining an intermediate value for the respective combination based on a similarity value for the respective combination and the importance measure for the incident report term;
calculating a cumulative value for the respective predefined term as a sum of the intermediate values for combinations of the respective predefined terms and the incident report terms; and
including the cumulative value for the respective predefined term in the incident vector.