Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for system modernization using machine learning are disclosed. In one aspect, a method includes the actions of generating training data. The actions include generating a first model, a second model, and a third model. The actions include receiving data that is related to technological capabilities of an application and data that is related to business priorities of the application. The actions include applying the first model to the data that is related to the technological capabilities of the application and the second model to the data that is related to business priorities of the application. The actions include generating a modification recommendation for the application. The actions further include providing, for output, the modification recommendation for the application. The actions include receiving feedback data that indicates a level of acceptance of the modification recommendation for the application.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A computer-implemented method comprising: generating training data; based on the training data and using supervised machine learning, generating a first model, a second model, and a third model; receiving data that is related to technological capabilities of an application and data that is related to business priorities of the application; applying the first model to the data that is related to the technological capabilities of the application and the second model to the data that is related to business priorities of the application; based on applying the first model and the second model, generating a modification recommendation for the application; providing, for output, the modification recommendation for the application; receiving feedback data that indicates a level of acceptance of the modification recommendation for the application; and based on the feedback data that indicates the level of acceptance of the modification recommendation for the application, modifying, using unsupervised machine learning, the third model. 2. The method of claim 1, wherein generating training data comprises: analyzing a plurality of applications; generating modification recommendations for each of the plurality of applications; and generating, independent of any feedback data, training data based on analyzing the plurality of applications and generating the modification recommendations for each of the plurality of applications. 3. The method of claim 1, comprising: determining technical debt for the application, wherein the technical debt is based on one or more of cyclomatic complexity, coupling factor, lack of cohesion of methods, attribute hiding factor, method hiding factor, lines of code, or number of classes or files, wherein the modification recommendation for the application is further based on the technical debt for the application. 4. The method of claim 1, wherein receiving data that is related to technological capabilities of an application and data that is related to business priorities of the application comprises: providing, for output, one or more technological capabilities prompts that are configured to elicit a technical function response from a user; and providing, for output, one or more business priorities prompts that are configured to elicit a business goal response from the user. 5. The method of claim 1, wherein: the first model is a technology capabilities model that is configured to provide recommendations based on technical functions of the application, the second model is a business priorities model that is configured to provide recommendations based on business goals of the application, and the third model is a ratings model that is configured to modify recommendations based on prior feedback. 6. The method of claim 5, wherein the technical capabilities of the application comprise elasticity, scalability, extensibility, interoperability, ease of data access, accessibility, availability, security, currency, or vendor reliance. 7. The method of claim 5, wherein the business goals of the application comprise time to market, omni channel, data informed decision making, compliance, greater available functionality and mash ups, capture market share, improved client experience, increase share of wallet, accelerate client onboarding, or self-service features. 8. The method of claim 1, comprising: receiving data that is related to technological capabilities of an additional application and data that is related to business priorities of the additional application; applying the first model to the data that is related to the technological capabilities of the additional application and the second model to the data that is related to business priorities of the additional application; based on applying the first model and the second model, generating an additional modification recommendation for the additional application; generating an adjusted additional modification recommendation by applying the third model to the additional modification recommendation for the additional application; providing, for output, the adjusted additional modification recommendation for the additional application; receiving additional feedback data that indicates an additional level of acceptance of the adjusted additional modification recommendation for the additional application; and based on the additional feedback data that indicates the additional level of acceptance of the adjusted additional modification recommendation for the additional application, modifying, using unsupervised machine learning, the third model. 9. A system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: generating training data; based on the training data and using supervised machine learning, generating a first model, a second model, and a third model; receiving data that is related to technological capabilities of an application and data that is related to business priorities of the application; applying the first model to the data that is related to the technological capabilities of the application and the second model to the data that is related to business priorities of the application; based on applying the first model and the second model, generating a modification recommendation for the application; providing, for output, the modification recommendation for the application; receiving feedback data that indicates a level of acceptance of the modification recommendation for the application; and based on the feedback data that indicates the level of acceptance of the modification recommendation for the application, modifying, using unsupervised machine learning, the third model. 10. The system of claim 9, wherein generating training data comprises: analyzing a plurality of applications; generating modification recommendations for each of the plurality of applications; and generating, independent of any feedback data, training data based on analyzing the plurality of applications and generating the modification recommendations for each of the plurality of applications. 11. The system of claim 9, wherein the operations further comprise: determining technical debt for the application, wherein the technical debt is based on one or more of cyclomatic complexity, coupling factor, lack of cohesion of methods, attribute hiding factor, method hiding factor, lines of code, or number of classes or files, wherein the modification recommendation for the application is further based on the technical debt for the application. 12. The system of claim 9, wherein receiving data that is related to technological capabilities of an application and data that is related to business priorities of the application comprises: providing, for output, one or more technological capabilities prompts that are configured to elicit a technical function response from a user; and providing, for output, one or more business priorities prompts that are configured to elicit a business goal response from the user. 13. The system of claim 9, wherein: the first model is a technology capabilities model that is configured to provide recommendations based on technical functions of the application, the second model is a business priorities model that is configured to provide recommendations based on business goals of the application, and the third model is a ratings model that is configured to modify recommendations based on prior feedback. 14. The system of claim 13, wherein the technical capabilities of the application comprise elasticity, scalability, extensibility, interoperability, ease of data access, accessibility, availability, security, currency, or vendor reliance. 15. The system of claim 13, wherein the business goals of the application comprise time to market, omni channel, data informed decision making, compliance, greater available functionality and mash ups, capture market share, improved client experience, increase share of wallet, accelerate client onboarding, or self-service features. 16. The system of claim 9, wherein the operations further comprise: receiving data that is related to technological capabilities of an additional application and data that is related to business priorities of the additional application; applying the first model to the data that is related to the technological capabilities of the additional application and the second model to the data that is related to business priorities of the additional application; based on applying the first model and the second model, generating an additional modification recommendation for the additional application; generating an adjusted additional modification recommendation by applying the third model to the additional modification recommendation for the additional application; providing, for output, the adjusted additional modification recommendation for the additional application; receiving additional feedback data that indicates an additional level of acceptance of the adjusted additional modification recommendation for the additional application; and based on the additional feedback data that indicates the additional level of acceptance of the adjusted additional modification recommendation for the additional application, modifying, using unsupervised machine learning, the third model. 17. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising: generating training data; based on the training data and using supervised machine learning, generating a first model, a second model, and a third model; receiving data that is related to technological capabilities of an application and data that is related to business priorities of the application; applying the first model to the data that is related to the technological capabilities of the application and the second model to the data that is related to business priorities of the application; based on applying the first model and the second model, generating a modification recommendation for the application; providing, for output, the modification recommendation for the application; receiving feedback data that indicates a level of acceptance of the modification recommendation for the application; and based on the feedback data that indicates the level of acceptance of the modification recommendation for the application, modifying, using unsupervised machine learning, the third model. 18. The medium of claim 17, wherein generating training data comprises: analyzing a plurality of applications; generating modification recommendations for each of the plurality of applications; and generating, independent of any feedback data, training data based on analyzing the plurality of applications and generating the modification recommendations for each of the plurality of applications. 19. The medium of claim 17, wherein the operations further comprise: determining technical debt for the application, wherein the technical debt is based on one or more of cyclomatic complexity, coupling factor, lack of cohesion of methods, attribute hiding factor, method hiding factor, lines of code, or number of classes or files, wherein the modification recommendation for the application is further based on the technical debt for the application. 20. The medium of claim 17, wherein the operations further comprise: receiving data that is related to technological capabilities of an additional application and data that is related to business priorities of the additional application; applying the first model to the data that is related to the technological capabilities of the additional application and the second model to the data that is related to business priorities of the additional application; based on applying the first model and the second model, generating an additional modification recommendation for the additional application; generating an adjusted additional modification recommendation by applying the third model to the additional modification recommendation for the additional application; providing, for output, the adjusted additional modification recommendation for the additional application; receiving additional feedback data that indicates an additional level of acceptance of the adjusted additional modification recommendation for the additional application; and based on the additional feedback data that indicates the additional level of acceptance of the adjusted additional modification recommendation for the additional application, modifying, using unsupervised machine learning, the third model.