{"id":17026373,"url":"https://github.com/chrisgrieser/apuz-gender-analyzer","last_synced_at":"2025-10-09T09:37:23.304Z","repository":{"id":216980134,"uuid":"742857259","full_name":"chrisgrieser/apuz-gender-analyzer","owner":"chrisgrieser","description":"Analysis of the genders of the authors at the German journal \"Aus Politik und Zeitgeschichte\" (APuZ)","archived":false,"fork":false,"pushed_at":"2025-06-28T11:21:27.000Z","size":392,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-02T07:56:59.619Z","etag":null,"topics":["data-science","gender-classification"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisgrieser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-01-13T15:23:33.000Z","updated_at":"2025-06-28T11:21:30.000Z","dependencies_parsed_at":"2024-01-14T00:55:50.274Z","dependency_job_id":"2e43e00b-5969-472e-88df-6bec383e244a","html_url":"https://github.com/chrisgrieser/apuz-gender-analyzer","commit_stats":null,"previous_names":["chrisgrieser/apuz-gender-analyzer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chrisgrieser/apuz-gender-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fapuz-gender-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fapuz-gender-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fapuz-gender-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fapuz-gender-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisgrieser","download_url":"https://codeload.github.com/chrisgrieser/apuz-gender-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisgrieser%2Fapuz-gender-analyzer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264519719,"owners_count":23621858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","gender-classification"],"created_at":"2024-10-14T07:32:16.348Z","updated_at":"2025-10-09T09:37:18.285Z","avatar_url":"https://github.com/chrisgrieser.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Name Gender analyzer\nAnalysis of names by gender.\n\n## Table of Content\n\n\u003c!-- toc --\u003e\n\n- [Usage](#usage)\n\t* [Setup](#setup)\n\t* [Technical procedure](#technical-procedure)\n\t* [Technical Implementation](#technical-implementation)\n- [To-do](#to-do)\n\t* [Short list](#short-list)\n\t* [Roadmap (long term)](#roadmap-long-term)\n- [Data](#data)\n\t* [Articles](#articles)\n\t* [Issues](#issues)\n\t* [Annual Registers](#annual-registers)\n\t* [Sitemaps](#sitemaps)\n\n\u003c!-- tocstop --\u003e\n\n## Usage\n\n### Setup\n1. Clone the repo.\n2. Run `make init` in the terminal to set up the virtual environment and install\n   the dependencies\n3. You might need to restart your editor.\n\n### Technical procedure\n1. Scrap names from `APuZ`.\n2. Get list of names.\n3. Parse names into required format.\n4. Assign gender to every name. \u003chttps://genderize.io/\u003e\n5. Calculate percentage of genders.\n6. Display results.\n\n### Technical Implementation\n- Background-Service: [Genderize](https://genderize.io/) to identify gender of names\n- [API rate limit without subscription: 100 calls per day, 10 names per call](https://genderize.io/faq#api-usage)\n\n![database caching](images/database-caching.png)\n\n## To-do\n\n### Short list\n- [ ] Reduce number of API calls by caching first name data\n- [ ] Analyze all Annual Registers (instead of small sample)\n- [ ] Analyze data by year\n- [ ] Plot data in a time series graph\n- [ ] Detect and factor in co-authorship\n- [ ] Investigate correlation between topics and gender of the author\n\n### Roadmap (long term)\n- [ ] Scrape all data before 2011\n- [ ] Publish new data periodically via Mastodon\n- [ ] Describe project results in a blog post\n\n## Data\n\n### Articles\n\n```txt\nhttps://www.bpb.de/shop/zeitschriften/apuz/1953-2023/520827/stalins-tod-und-das-ende-der-allmacht/\nhttps://www.bpb.de/shop/zeitschriften/apuz/1953-2023/520821/editorial/\n```\n\n### Issues\n\n```txt\nhttps://www.bpb.de/shop/zeitschriften/apuz/archiv/524414/apuz-47-1953/\nhttps://www.bpb.de/shop/zeitschriften/apuz/archiv/524422/apuz-49-1953/\nhttps://www.bpb.de/shop/zeitschriften/apuz/archiv/524430/apuz-50-1953/\nhttps://www.bpb.de/shop/zeitschriften/apuz/archiv/524436/apuz-51-1953/\nhttps://www.bpb.de/shop/zeitschriften/apuz/archiv/524443/apuz-1-1954/\nhttps://www.bpb.de/shop/zeitschriften/apuz/archiv/524449/apuz-2-1954/\nhttps://www.bpb.de/shop/zeitschriften/apuz/archiv/525715/aus-politik-und-zeitgeschichte-1959/\n\nhttps://www.bpb.de/shop/zeitschriften/apuz/archiv/531460/apuz-2-1980/\n\n2010\nhttps://www.bpb.de/shop/zeitschriften/apuz/32275/armut-in-deutschland/\n\n2012\nhttps://www.bpb.de/shop/zeitschriften/apuz/151293/weltuntergang/\n\nhttps://www.bpb.de/shop/zeitschriften/apuz/diskurskultur-2023/\n```\n\n### Annual Registers\n*only available for 2011-2022*\n\n```txt\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2011-Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2012-Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2013-Jahresregister_online_0.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2014_Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2015_Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2016_Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2017_Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2018_Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2019_Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2020_Jahresregister_online.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2021_Jahresregister_Umbruch_v3.pdf\nhttps://www.bpb.de/system/files/dokument_pdf/APuZ_2022-Jahresregister_online.pdf\n```\n\n### Sitemaps\nAre apparently incomplete, therefore not using this.\n\n```bash\ncurl \"https://www.bpb.de/sitemap.xml?page=1\" \u003e sitemap1.xml\ncurl \"https://www.bpb.de/sitemap.xml?page=2\" \u003e sitemap2.xml\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisgrieser%2Fapuz-gender-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisgrieser%2Fapuz-gender-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisgrieser%2Fapuz-gender-analyzer/lists"}