An automation framework is a way to organize your code in meaningful manner so that any person who is working with you can understand what each file contains.
Automation frameworks differ based on how you organize your code – it can be organized based on your data, so that any person who wants to use or edit data files such as an excel sheet can do so easily. These types of frameworks are known as data-driven frameworks.
Keyword-driven frameworks are those which can be written with keyword functions such as: Login, ClickButton, SearchList etc. These enable automation engineers to work within the framework easily, without ambiguity in function or code.
The combination of the above is called a Hybrid framework. There are some other frameworks which are named according to their usage such as Modular frameworks, structural frameworks etc.