# Danske Grammatik-, Kuriositets- og Ordklasselister (fra COR & COR.SOEGEHJAELP) / Danish Grammar, Curiosities & Part-of-Speech Lists

[![Kilde](https://img.shields.io/badge/kilde-COR%20%7C%20Dansk%20Sprogn%C3%A6vn-blue.svg)](https://ordregister.dk/)
[![Licens](https://img.shields.io/badge/licens-CC0%201.0-brightgreen.svg)](https://creativecommons.org/publicdomain/zero/1.0/)

[🇩🇰 Dansk](#dansk) | [🇬🇧 English](#english)

---

<a name="dansk"></a>
## 🇩🇰 Dansk

Dette datasæt udvider [Det Centrale Ordregister (COR)](https://ordregister.dk/) med en række specialiserede, sproglige og grammatiske lister til lingvister, spiludviklere, stavekontroller og ord-entusiaster.

Data er udgivet under **CC0 1.0 Universal (Public Domain Dedication)** af Dansk Sprognævn og er her struktureret, renset og kategoriseret.

### 📂 Mappestruktur og Lister

Listerne er organiseret i fire hovedkategorier:

#### 1. `grammatik/` (Grammatiske specialiteter)
- **`uregelmaessige_verber`** [`JSON`](grammatik/uregelmaessige_verber.json) [`CSV`](grammatik/uregelmaessige_verber.csv) (784 verber): Verber med stærk/uregelmæssig bøjning (vokalskifte i datid/førnutid, fx *komme* -> *kom*, *rive* -> *rev*, *bide* -> *bed*). Kolonner: `infinitiv`, `præsens`, `præteritum`, `perfektum_participium`.
- **`substantiver_valgfrit_koen`** [`TXT`](grammatik/substantiver_valgfrit_koen.txt) [`JSON`](grammatik/substantiver_valgfrit_koen.json) [`CSV`](grammatik/substantiver_valgfrit_koen.csv) (847 ord): Navneord der ifølge Retskrivningsordbogen officielt kan have **både** fælleskøn (*en*) og intetkøn (*et*), fx *en/et cirkus*, *en/et ton*, *en/et virus*, *en/et aerosol*.
- **`plurale_tantum_kun_flertal`** [`TXT`](grammatik/plurale_tantum_kun_flertal.txt) [`JSON`](grammatik/plurale_tantum_kun_flertal.json) [`CSV`](grammatik/plurale_tantum_kun_flertal.csv) (261 ord): Ord der udelukkende optræder i flertal (fx *penge*, *kopper*, *trompetbukser*, *fagter*).
- **`singulare_tantum_kun_ental`** [`TXT`](grammatik/singulare_tantum_kun_ental.txt) [`JSON`](grammatik/singulare_tantum_kun_ental.json) [`CSV`](grammatik/singulare_tantum_kun_ental.csv) (6.581 ord): Navneord der kun har entalsformer (utællelige stoffer, abstrakte begreber m.m.).
- **`ordklasse_kamaeleoner`** [`JSON`](grammatik/ordklasse_kamaeleoner.json) [`CSV`](grammatik/ordklasse_kamaeleoner.csv) (1.463 ord): Opslagsord der fungerer i to eller flere forskellige ordklasser (fx *for*, *før*, *ved*, *tro*, *stille*).

#### 2. `kuriositeter/` (Ordfænomener & Nørderier)
- **`semordnilaps_venderord`** [`JSON`](kuriositeter/semordnilaps_venderord.json) [`CSV`](kuriositeter/semordnilaps_venderord.csv) (471 par): Ord der stavet bagfra danner et **andet** gyldigt ord (fx *agil* <-> *liga*, *koma* <-> *amok*, *skab* <-> *baks*).
- **`isogrammer_uden_gentagne_bogstaver`** [`TXT`](kuriositeter/isogrammer_uden_gentagne_bogstaver.txt) [`JSON`](kuriositeter/isogrammer_uden_gentagne_bogstaver.json) [`CSV`](kuriositeter/isogrammer_uden_gentagne_bogstaver.csv) (2.457 ord): Lange ord (10+ bogstaver) hvor intet bogstav optræder mere end én gang (fx *specialforbund*, *filmproducent*).
- **`konsonanter_5_plus_i_traek`** [`JSON`](kuriositeter/konsonanter_5_plus_i_traek.json) [`CSV`](kuriositeter/konsonanter_5_plus_i_traek.csv) (3.225 ord): Ord med ekstreme konsonantklynger på 5 eller 6 konsonanter i træk (fx *fangstkrog*, *grundvandsstand*, *angstfuldt*).
- **`vokaler_3_plus_i_traek`** [`JSON`](kuriositeter/vokaler_3_plus_i_traek.json) [`CSV`](kuriositeter/vokaler_3_plus_i_traek.csv) (2.299 ord): Ord med 3, 4 eller 5 vokaler i træk (fx *prisniveauet*, *plateauer*, *yoyoerne*).
- **`tre_ens_bogstaver_i_traek`** [`TXT`](kuriositeter/tre_ens_bogstaver_i_traek.txt) [`JSON`](kuriositeter/tre_ens_bogstaver_i_traek.json) [`CSV`](kuriositeter/tre_ens_bogstaver_i_traek.csv) (14 ord): Ord med trippel-bogstaver (fx *watttime*, *kilowatttime*).
- **`paafolgende_dobbeltkonsonanter`** [`TXT`](kuriositeter/paafolgende_dobbeltkonsonanter.txt) [`JSON`](kuriositeter/paafolgende_dobbeltkonsonanter.json) [`CSV`](kuriositeter/paafolgende_dobbeltkonsonanter.csv) (244 ord): Ord med to eller tre på hinanden følgende bogstavpar (fx *irreelle*, *snobbeeffekt*).
- **`scrabble_svaere_korte_ord`** [`TXT`](kuriositeter/scrabble_svaere_korte_ord.txt) [`JSON`](kuriositeter/scrabble_svaere_korte_ord.json) [`CSV`](kuriositeter/scrabble_svaere_korte_ord.csv) (161 ord): Korte ord (<= 4 bogstaver) med de sjældne og pointtunge bogstaver **C, X, Z, Q, W** (uundværlige i Scrabble og Wordfeud).
- **`q_uden_u`** [`TXT`](kuriositeter/q_uden_u.txt) [`JSON`](kuriositeter/q_uden_u.json) [`CSV`](kuriositeter/q_uden_u.csv) (22 ord): Samtlige godkendte ord i dansk med 'q', hvor der **ikke** følger et 'u' (fx *iq*, *niqab*, *qatar*).

#### 3. `ordklasser/` (Fuld ordklasseopdeling & statistik)
Rene grundformsudtræk (lemmaer) opdelt på de enkelte ordklasser:
- **`substantiver_navneord_grundformer`** [`TXT`](ordklasser/substantiver_navneord_grundformer.txt) [`JSON`](ordklasser/substantiver_navneord_grundformer.json) [`CSV`](ordklasser/substantiver_navneord_grundformer.csv): 42.493
- **`adjektiver_tillaegsord_grundformer`** [`TXT`](ordklasser/adjektiver_tillaegsord_grundformer.txt) [`JSON`](ordklasser/adjektiver_tillaegsord_grundformer.json) [`CSV`](ordklasser/adjektiver_tillaegsord_grundformer.csv): 10.646
- **`verber_udsnagnsord_grundformer`** [`TXT`](ordklasser/verber_udsnagnsord_grundformer.txt) [`JSON`](ordklasser/verber_udsnagnsord_grundformer.json) [`CSV`](ordklasser/verber_udsnagnsord_grundformer.csv): 7.018
- **`adverbier_biord_grundformer`** [`TXT`](ordklasser/adverbier_biord_grundformer.txt) [`JSON`](ordklasser/adverbier_biord_grundformer.json) [`CSV`](ordklasser/adverbier_biord_grundformer.csv): 784
- **`udraabsord_interjektioner_grundformer`** [`TXT`](ordklasser/udraabsord_interjektioner_grundformer.txt) [`JSON`](ordklasser/udraabsord_interjektioner_grundformer.json) [`CSV`](ordklasser/udraabsord_interjektioner_grundformer.csv): 129
- **`talord_numeralier_grundformer`** [`TXT`](ordklasser/talord_numeralier_grundformer.txt) [`JSON`](ordklasser/talord_numeralier_grundformer.json) [`CSV`](ordklasser/talord_numeralier_grundformer.csv): 113
- **`praepositioner_forholdsord_grundformer`** [`TXT`](ordklasser/praepositioner_forholdsord_grundformer.txt) [`JSON`](ordklasser/praepositioner_forholdsord_grundformer.json) [`CSV`](ordklasser/praepositioner_forholdsord_grundformer.csv): 93
- **`konjunktioner_bindeord_grundformer`** [`TXT`](ordklasser/konjunktioner_bindeord_grundformer.txt) [`JSON`](ordklasser/konjunktioner_bindeord_grundformer.json) [`CSV`](ordklasser/konjunktioner_bindeord_grundformer.csv): 60
- **`pronominer_stedord_grundformer`** [`TXT`](ordklasser/pronominer_stedord_grundformer.txt) [`JSON`](ordklasser/pronominer_stedord_grundformer.json) [`CSV`](ordklasser/pronominer_stedord_grundformer.csv): 36
- **`lydord_onomatopoietika_grundformer`** [`TXT`](ordklasser/lydord_onomatopoietika_grundformer.txt) [`JSON`](ordklasser/lydord_onomatopoietika_grundformer.json) [`CSV`](ordklasser/lydord_onomatopoietika_grundformer.csv): 34
- **`ordklasse_statistik`** [`JSON`](ordklasser/ordklasse_statistik.json) [`CSV`](ordklasser/ordklasse_statistik.csv): Samlet optælling over antal grundformer og bøjede former for hver ordklasse.

#### 4. `stavefejl/` (COR.SOEGEHJAELP)
- **`typiske_stavefejl_og_rettelser`** [`JSON`](stavefejl/typiske_stavefejl_og_rettelser.json) [`CSV`](stavefejl/typiske_stavefejl_og_rettelser.csv) (8.923 rækker): Officielt udtræk af Dansk Sprognævns registrerede tastefejl, forvekslinger og fonetiske stavefejl koblet direkte til den korrekte autoriserede form (fx *inklusiv* -> *inklusive*, *tredve* -> *tredive*, *foer* -> *for*).

### 🔄 Genberegning
Alle lister i dette katalog kan genskabes ved at køre:
```bash
python build_extra_lists.py
```

### 📜 Licens og Kilde
- **Kilde**: [Det Centrale Ordregister (COR & COR.SOEGEHJAELP)](https://ordregister.dk/) administreret af Dansk Sprognævn og Slots- og Kulturstyrelsen.
- **Licens**: [CC0 1.0 Universal (Public Domain Dedication)](https://creativecommons.org/publicdomain/zero/1.0/).

---

<a name="english"></a>
## 🇬🇧 English

This dataset expands on [Det Centrale Ordregister (COR)](https://ordregister.dk/) with specialized linguistic and grammatical word lists designed for linguists, game developers, spell-check engines, and language enthusiasts.

The data is published under the **CC0 1.0 Universal (Public Domain Dedication)** by the Danish Language Council (*Dansk Sprognævn*) and has been structured, cleaned, and categorized here.

### 📂 Directory Structure and Lists

The lists are organized into four primary categories:

#### 1. `grammatik/` (Grammar Peculiarities)
- **`uregelmaessige_verber`** [`JSON`](grammatik/uregelmaessige_verber.json) [`CSV`](grammatik/uregelmaessige_verber.csv) (784 verbs): Verbs with irregular or strong conjugations (vowel shifts across tenses, e.g. *komme* -> *kom*, *rive* -> *rev*, *bide* -> *bed*). Columns: `infinitiv`, `præsens`, `præteritum`, `perfektum_participium`.
- **`substantiver_valgfrit_koen`** [`TXT`](grammatik/substantiver_valgfrit_koen.txt) [`JSON`](grammatik/substantiver_valgfrit_koen.json) [`CSV`](grammatik/substantiver_valgfrit_koen.csv) (847 words): Nouns officially allowed with **either** common gender (*en*) or neuter gender (*et*) according to *Retskrivningsordbogen* (e.g. *en/et cirkus*, *en/et ton*, *en/et virus*, *en/et aerosol*).
- **`plurale_tantum_kun_flertal`** [`TXT`](grammatik/plurale_tantum_kun_flertal.txt) [`JSON`](grammatik/plurale_tantum_kun_flertal.json) [`CSV`](grammatik/plurale_tantum_kun_flertal.csv) (261 words): Nouns occurring exclusively in plural forms (e.g. *penge*, *kopper*, *trompetbukser*, *fagter*).
- **`singulare_tantum_kun_ental`** [`TXT`](grammatik/singulare_tantum_kun_ental.txt) [`JSON`](grammatik/singulare_tantum_kun_ental.json) [`CSV`](grammatik/singulare_tantum_kun_ental.csv) (6,581 words): Nouns occurring exclusively in singular forms (uncountable substances, abstract concepts, etc.).
- **`ordklasse_kamaeleoner`** [`JSON`](grammatik/ordklasse_kamaeleoner.json) [`CSV`](grammatik/ordklasse_kamaeleoner.csv) (1,463 words): Headwords that belong to two or more distinct parts of speech (e.g. *for*, *før*, *ved*, *tro*, *stille*).

#### 2. `kuriositeter/` (Linguistic Curiosities & Word Phenomena)
- **`semordnilaps_venderord`** [`JSON`](kuriositeter/semordnilaps_venderord.json) [`CSV`](kuriositeter/semordnilaps_venderord.csv) (471 pairs): Reversible words that form a **different** valid word when spelled backwards (e.g. *agil* <-> *liga*, *koma* <-> *amok*, *skab* <-> *baks*).
- **`isogrammer_uden_gentagne_bogstaver`** [`TXT`](kuriositeter/isogrammer_uden_gentagne_bogstaver.txt) [`JSON`](kuriositeter/isogrammer_uden_gentagne_bogstaver.json) [`CSV`](kuriositeter/isogrammer_uden_gentagne_bogstaver.csv) (2,457 words): Long words (10+ characters) with no repeating letters (e.g. *specialforbund*, *filmproducent*).
- **`konsonanter_5_plus_i_traek`** [`JSON`](kuriositeter/konsonanter_5_plus_i_traek.json) [`CSV`](kuriositeter/konsonanter_5_plus_i_traek.csv) (3,225 words): Words featuring extreme consonant clusters of 5 or 6 consecutive consonants (e.g. *fangstkrog*, *grundvandsstand*, *angstfuldt*).
- **`vokaler_3_plus_i_traek`** [`JSON`](kuriositeter/vokaler_3_plus_i_traek.json) [`CSV`](kuriositeter/vokaler_3_plus_i_traek.csv) (2,299 words): Words with 3, 4, or 5 consecutive vowels (e.g. *prisniveauet*, *plateauer*, *yoyoerne*).
- **`tre_ens_bogstaver_i_traek`** [`TXT`](kuriositeter/tre_ens_bogstaver_i_traek.txt) [`JSON`](kuriositeter/tre_ens_bogstaver_i_traek.json) [`CSV`](kuriositeter/tre_ens_bogstaver_i_traek.csv) (14 words): Words with triple consecutive identical letters (e.g. *watttime*, *kilowatttime*).
- **`paafolgende_dobbeltkonsonanter`** [`TXT`](kuriositeter/paafolgende_dobbeltkonsonanter.txt) [`JSON`](kuriositeter/paafolgende_dobbeltkonsonanter.json) [`CSV`](kuriositeter/paafolgende_dobbeltkonsonanter.csv) (244 words): Words containing two or three consecutive letter pairs (e.g. *irreelle*, *snobbeeffekt*).
- **`scrabble_svaere_korte_ord`** [`TXT`](kuriositeter/scrabble_svaere_korte_ord.txt) [`JSON`](kuriositeter/scrabble_svaere_korte_ord.json) [`CSV`](kuriositeter/scrabble_svaere_korte_ord.csv) (161 words): High-value short words (<= 4 letters) containing rare letters **C, X, Z, Q, W** (essential for competitive Scrabble and Wordfeud).
- **`q_uden_u`** [`TXT`](kuriositeter/q_uden_u.txt) [`JSON`](kuriositeter/q_uden_u.json) [`CSV`](kuriositeter/q_uden_u.csv) (22 words): All approved Danish words containing the letter 'q' without an immediately following 'u' (e.g. *iq*, *niqab*, *qatar*).

#### 3. `ordklasser/` (Part-of-Speech Breakdowns & Statistics)
Headwords (lemmas) categorized by part of speech:
- **`substantiver_navneord_grundformer`** [`TXT`](ordklasser/substantiver_navneord_grundformer.txt) [`JSON`](ordklasser/substantiver_navneord_grundformer.json) [`CSV`](ordklasser/substantiver_navneord_grundformer.csv): 42,493 nouns
- **`adjektiver_tillaegsord_grundformer`** [`TXT`](ordklasser/adjektiver_tillaegsord_grundformer.txt) [`JSON`](ordklasser/adjektiver_tillaegsord_grundformer.json) [`CSV`](ordklasser/adjektiver_tillaegsord_grundformer.csv): 10,646 adjectives
- **`verber_udsnagnsord_grundformer`** [`TXT`](ordklasser/verber_udsnagnsord_grundformer.txt) [`JSON`](ordklasser/verber_udsnagnsord_grundformer.json) [`CSV`](ordklasser/verber_udsnagnsord_grundformer.csv): 7,018 verbs
- **`adverbier_biord_grundformer`** [`TXT`](ordklasser/adverbier_biord_grundformer.txt) [`JSON`](ordklasser/adverbier_biord_grundformer.json) [`CSV`](ordklasser/adverbier_biord_grundformer.csv): 784 adverbs
- **`udraabsord_interjektioner_grundformer`** [`TXT`](ordklasser/udraabsord_interjektioner_grundformer.txt) [`JSON`](ordklasser/udraabsord_interjektioner_grundformer.json) [`CSV`](ordklasser/udraabsord_interjektioner_grundformer.csv): 129 interjections
- **`talord_numeralier_grundformer`** [`TXT`](ordklasser/talord_numeralier_grundformer.txt) [`JSON`](ordklasser/talord_numeralier_grundformer.json) [`CSV`](ordklasser/talord_numeralier_grundformer.csv): 113 numerals
- **`praepositioner_forholdsord_grundformer`** [`TXT`](ordklasser/praepositioner_forholdsord_grundformer.txt) [`JSON`](ordklasser/praepositioner_forholdsord_grundformer.json) [`CSV`](ordklasser/praepositioner_forholdsord_grundformer.csv): 93 prepositions
- **`konjunktioner_bindeord_grundformer`** [`TXT`](ordklasser/konjunktioner_bindeord_grundformer.txt) [`JSON`](ordklasser/konjunktioner_bindeord_grundformer.json) [`CSV`](ordklasser/konjunktioner_bindeord_grundformer.csv): 60 conjunctions
- **`pronominer_stedord_grundformer`** [`TXT`](ordklasser/pronominer_stedord_grundformer.txt) [`JSON`](ordklasser/pronominer_stedord_grundformer.json) [`CSV`](ordklasser/pronominer_stedord_grundformer.csv): 36 pronouns
- **`lydord_onomatopoietika_grundformer`** [`TXT`](ordklasser/lydord_onomatopoietika_grundformer.txt) [`JSON`](ordklasser/lydord_onomatopoietika_grundformer.json) [`CSV`](ordklasser/lydord_onomatopoietika_grundformer.csv): 34 onomatopoeic words
- **`ordklasse_statistik`** [`JSON`](ordklasser/ordklasse_statistik.json) [`CSV`](ordklasser/ordklasse_statistik.csv): Overall frequency counts of lemmas and inflected forms per word class.

#### 4. `stavefejl/` (COR.SOEGEHJAELP Spelling Corrections)
- **`typiske_stavefejl_og_rettelser`** [`JSON`](stavefejl/typiske_stavefejl_og_rettelser.json) [`CSV`](stavefejl/typiske_stavefejl_og_rettelser.csv) (8,923 rows): Official extract of typos, confusable words, and phonetic spelling mistakes mapped to their authorized standard forms (e.g. *inklusiv* -> *inklusive*, *tredve* -> *tredive*, *foer* -> *for*).

### 🔄 Reproduction
All lists in this directory can be regenerated using the included script:
```bash
python build_extra_lists.py
```

### 📜 License and Source
- **Source**: [Det Centrale Ordregister (COR & COR.SOEGEHJAELP)](https://ordregister.dk/) administered by Dansk Sprognævn and the Agency for Culture and Palaces.
- **License**: [CC0 1.0 Universal (Public Domain Dedication)](https://creativecommons.org/publicdomain/zero/1.0/).
