SEO – The best way to remove bad pages?

We have a website with about 5000 pages.

1000 of them have quality content.
The other part is pretty bad: they are essentially just pages with categories that contain basic "generated" content. We have about 20 different descriptions (150 words with a few variables), so their similarities are very high.

We created these pages in 2013-2014 and we believe that they could help us get a long tail. It worked somehow, as these sites today attract about 20% of our users.

However, we recognize that these pages may be the reason why the website does not rank as well on the "high quality" pages as it should: Compared to our competitors, we have good metrics in terms of "technical" SEO aspects. We also have good internal linking (not more than 4 levels deep) and very good backlinks with high authority. But we're on page 2, or at the bottom of page 1, at best.

We're considering removing these pages, but we're not sure how to do that:

  • Go hardcore and remove all pages. 404 everywhere. Or even 410 for those who do not want to create content in the future?
  • Remove only the pages that are less than x Visits per month with 404/410.
  • Only remove pages that Googlebot has visited less than x once a month 404/410.
  • We could redirect all these pages to their "parent" category. Either all or only those who have no rank, or only those who Googlebot does not visit often.
  • Keep all pages, but with "noindex" (but that would still use the crawl budget?)
  • Kill the pages bit by bit: instead of removing 80% of our pages at once, we can remove them x% every week for a few months?

Do you think that removing the pages will help? If so, what do you think is the best way?