{"id":19162912,"url":"https://github.com/centre-for-humanities-computing/dutch-chronicles","last_synced_at":"2025-10-06T01:38:39.540Z","repository":{"id":41967858,"uuid":"464853365","full_name":"centre-for-humanities-computing/dutch-chronicles","owner":"centre-for-humanities-computing","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-01T13:30:34.000Z","size":73237,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-09T23:59:29.616Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","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/centre-for-humanities-computing.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}},"created_at":"2022-03-01T10:48:01.000Z","updated_at":"2023-06-02T11:49:45.000Z","dependencies_parsed_at":"2025-01-03T21:51:19.921Z","dependency_job_id":null,"html_url":"https://github.com/centre-for-humanities-computing/dutch-chronicles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/centre-for-humanities-computing/dutch-chronicles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centre-for-humanities-computing%2Fdutch-chronicles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centre-for-humanities-computing%2Fdutch-chronicles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centre-for-humanities-computing%2Fdutch-chronicles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centre-for-humanities-computing%2Fdutch-chronicles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/centre-for-humanities-computing","download_url":"https://codeload.github.com/centre-for-humanities-computing/dutch-chronicles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centre-for-humanities-computing%2Fdutch-chronicles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278547771,"owners_count":26004772,"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","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-09T09:13:31.708Z","updated_at":"2025-10-06T01:38:39.513Z","avatar_url":"https://github.com/centre-for-humanities-computing.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chronicling Crises: Event Detection in Early Modern Chronicles from the Low Countries\n\n[Paper](https://ceur-ws.org/Vol-3290/short_paper4697.pdf)\n\n## Abstract\nBetween the Middle Ages and the nineteenth century, many middle-class Europeans kept a handwritten chronicle, in which they reported on events they considered relevant. Discussed topics varied from records of price fluctuations to local politics, and from weather reports to remarkable gossip. What we do not know yet, is to what extent times of conflict and crises influenced the way in which people dealt with information. We have applied methods from information theory -- dynamics in word usage and measures of relative entropy such as _novelty_ and _resonance_ -- to a corpus of early modern chronicles from the Low Countries (1500--1820) to provide more insight in the way early modern people were coping with information during impactful events. We detect three peaks in the novelty signal, which coincide with times of political uncertainty in the Northern and Southern Netherlands. Topic distributions provided by Top2Vec show that during these times, chroniclers tend to write more and more extensively about an increased variation of topics. \n\n![](output/dutch_chronicles_overview.png)\n\n\u003cbr\u003e\n\n## Project Organization\nThe organization of the project is as follows:\n\n```\n├── lda/                \u003c- trained top2vec model\n│   └── ...\n├── notebooks/          \u003c- jupyter notebooks with exploratory analyses\n│   └── ...\n├── output/             \u003c- examples for the paper\n│   └── ...\n│\n├── src/                \u003c- analysis scripts\n│   ├── chronicles/         \u003c- reusable\n│   │   ├── entropies/          \u003c- calculating indicator variables (incl. novelty)\n│   │   ├── misc/               \u003c- handling dates, etc.\n│   │   ├── parser/             \u003c- xml parsing, document segmentation\n│   │   └── representation/     \u003c- finding prototypes\n│   │\n|   └── application/         \u003c- ad hoc scripts\n│       ├── config/             \u003c- yaml files specifying parameters for experiments\n│       ├── topics/             \u003c- training the top2vec model\n│       ├── visualization/      \u003c- some more complicated publication plots (the less complicated are in notebooks/)\n│       ├── convert_from_xml.sh \u003c- shell script for running XML parsing\n│       └── novelty_signal.py   \u003c- pipeline for fitting the novelty signal\n│\n└── requirements.txt      \u003c- install this \n```\n\n## Usage\nClone, create a virtual environment, install dependencies (assumes you have `virtualenv` installed)\n```  \ngit clone https://github.com/centre-for-humanities-computing/dutch-chronicles.git\ncd dutch-chronicles/\nvirtualenv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n\nSource code of the experiment is organized into has three main steps:  \n    1) parsing XML chronicle files, segment into documents  \n    2) train a top2vec model  \n    3) fit the novelty signal, which includes prototype picking  \n\n### Parsing XML files\n```\ncd src/application/\nbash convert_from_xml.sh\n```\n\n### Train a top2vec model\n```\ncd src/application/\npython topics/top2vec_training.py\n```\n\n### Novelty signal\n```\ncd src/application/\npython novelty_signal.py --yml config/220815_prototypes_day.yml\n```\n\nAlternatively, you can specify your own config file, following the instructions in [novelty_signal](https://github.com/centre-for-humanities-computing/dutch-chronicles/blob/main/src/application/novelty_signal.py).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcentre-for-humanities-computing%2Fdutch-chronicles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcentre-for-humanities-computing%2Fdutch-chronicles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcentre-for-humanities-computing%2Fdutch-chronicles/lists"}