There is not easy way to exclude zoos and botanical gardens entirely. You can get close with a few filters.
I would have a look at the R function CoordinateCleaner::cc_inst().
You can also filter by the establishmentMeans column removing records with “MANAGED”. Keep in mind that this can often be left empty, so probably good to keep empty values as well.
This will not remove all of the zoo and botanical garden records, but it will get you very close. You could also try to do some outlier analysis.
There is also basisOfRecord = LIVING_SPECIMEN, which you know about from reading the previous article probably.
This blog post might give you more filtering idea: