CoolFace
Datasetpublic

Lucius-Morningstar/enron-correspondence-dedup

Enron Correspondence Deduplicated (Enriched GT, Agent-Blind Default) The deduplicated, ground-truth-enriched Enron correspondence benchmark: exact-duplicate bodies removed from the cleaned CMU Enron corpus (517,390 rows in → 247,523 unique-text rows out, 269,867 duplicates dropped; first occurrence wins on maildir-path order; empty bodies never deduped against each other). This dataset is the core evaluation corpus for the LLM Mailroom agent-sorting stack. ⚠️… See the full description on the dataset page: https://huggingface.co/datasets/Lucius-Morningstar/enron-correspondence-dedup.

sourceHugging Faceotherupdated 27d agoView on Hugging Face
1likes198downloads
Dataset Card

Enron Correspondence Deduplicated (Enriched GT, Agent-Blind Default)

The deduplicated, ground-truth-enriched Enron correspondence benchmark: exact-duplicate bodies removed from the cleaned CMU Enron corpus (517,390 rows in → 247,523 unique-text rows out, 269,867 duplicates dropped; first occurrence wins on maildir-path order; empty bodies never deduped against each other). This dataset is the core evaluation corpus for the LLM Mailroom agent-sorting stack.

⚠️ Two-config layout: agents get NO answers by default

This dataset ships TWO configs. `default` is agent-blind — it carries the email content plus routing metadata and ZERO ground-truth columns. The answer keys live in the separate ground_truth config, keyed 1:1 on filename.

python
from datasets import load_dataset

# what a sorting/extraction agent may see:
blind = load_dataset("Lucius-Morningstar/enron-correspondence-dedup")

# what the scorer joins against (explicit opt-in):
gt = load_dataset("Lucius-Morningstar/enron-correspondence-dedup",
                  "ground_truth", split="test")
configsplitscolumns
defaulttrain 222,572 / test 24,951filename, subject, text, split, metadata
ground_truthtrain 222,572 / test 24,951filename, expected, expectedsubclass, labelevidence, contenttopic, topicevidence, sentimentscore, sentimentlabel, sentiment_evidence, split

Ground truth is hidden from the default config so automated agents cannot be tipped off; humans can still audit every label in the viewer by switching to the ground_truth config. This is separation of concerns, NOT encryption — the Hub is public and any deliberate download can fetch both configs.

File layout

Both configs point at pre-sharded parquet (parquet/<config>/<split>/*.parquet, zstd). The original blind/*.jsonl and ground_truth/*.jsonl files remain in the repo unchanged — row-for-row identical to the parquet shards (same order, same schema; verified 2026-08-23) — for pipelines that prefer line-delimited JSON. The single-file 548 MB blind/train.jsonl crashed the Dataset Viewer's conversion worker (JobManagerCrashedError); serving parquet directly removes that conversion step entirely.

A machine-readable build manifest (manifest.txt) records schema version, row counts, and the dedup/enrichment provenance chain.

Ground-truth dimensions

  1. 1.doc_type / subclass (expected, expected_subclass, label_evidence) — heuristic form taxonomy from the shared `correspondence_subclasses` labeler: attorneydemand, demand, email, letter, meetingrequest, memo, notice, press_release.
  2. 2.content_topic (content_topic, topic_evidence) — WHAT the message body is about: an 11-key priority-scored marker taxonomy (`content_topics.py`): legalcontracts, regulatory, financeearnings, energymarket, hrpersonnel, itsystems, travellogistics, marketing_clients, announcements, scheduling.
  3. 3.sentiment (sentiment_score ∈ [-1, 1], sentiment_label ∈ negative/neutral/positive, sentiment_evidence) — deterministic lexicon polarity over the subject + forwarded-tail-stripped body (`sentiment_scorer.py`), negation/intensifier-aware, politeness-formula controlled.

All three dimensions are HEURISTIC ground truth (deterministic pure functions, human-reviewed via spot checks where noted) — not hand annotations. Honest gaps: single-topic assignment for multi-topic emails; head-window scanning (~2000 chars); lexicon sentiment cannot read sarcasm or long-range context — treat scores as weak labels/routing priors. Attorney detection relies on domain/name lists; voicemail cannot occur in this text-only corpus.

Splits

Per-row split follows the family rule md5(filename) % 10 == 0 -> test (~10%), recomputed and asserted row-by-row at build time. Filename-keyed, so dedup/enrichment cannot change any surviving row's split. Coverage: train 222,572 / test 24,951.

Source data & original download

All content derives from the CMU Enron Email Dataset — Bryan Klimt and Yiming Yang, Carnegie Mellon University, 2004. Original public download source: https://www.cs.cmu.edu/~enron/

  • —Roughly 500,000 messages from ~150 Enron employees, released by the Federal Energy Regulatory Commission during the fraud investigation and cleaned and published for research by CMU.
  • —We ingest the cleaned maildir variant; each row preserves its provenance in metadata.source (cmu_enron_maildir), metadata.custodian, metadata.folder, and metadata.message_id.
  • —The full-corpus export step (sha256-verified, 517,390 rows) was produced by `publish_enron_correspondence.py`; dedup uses body_hash from `scripts/dedupe.py` in Enron-Evaluation-Environment.

Licensing and appropriate use

  • —Released for research use, consistent with the original CMU Enron release terms (recorded per-row in metadata.license: "Enron corpus — released for research use"). Hub license badge: research-only-enron-corpus (custom, license: other).
  • —The corpus contains real personally identifying information (names, addresses, phone numbers) of Enron employees and correspondents. Treat all rows as sensitive research data: no redistribution of raw PII outside research contexts, and no use in production or consumer-facing systems.
  • —Label columns are deterministic heuristics (see honest-gaps notes above), suitable as routing priors and weak supervision — not as gold human annotation.
  • —Provided as-is, with no warranty of any kind. Downstream users are responsible for complying with the original CMU/FERC terms.

Related projects

Note: an earlier companion repo Lucius-Morningstar/enron-correspondence (the pre-dedup full corpus) is no longer published on the Hub; reproduce it with publish_enron_correspondence.py instead.

Citation

If you use this dataset, please cite both the dataset and the underlying corpus:

bibtex
@misc{morningstar2026enroncorrespondencededup,
  title        = {Enron Correspondence Deduplicated (Enriched GT, Agent-Blind Default)},
  author       = {Lucius-Morningstar},
  year         = {2026},
  month        = {August},
  howpublished = {\url{https://huggingface.co/datasets/Lucius-Morningstar/enron-correspondence-dedup}},
}

@inproceedings{klimt2004enron,
  title     = {The Enron Corpus: A New Dataset for Email Classification Research},
  author    = {Klimt, Bryan and Yang, Yiming},
  booktitle = {European Conference on Machine Learning (ECML 2004)},
  pages     = {217--226},
  year      = {2004}
}

Provenance

Built by `llm-entity-extraction` scripts/datasets/publish_enron_correspondence_dedup.py (KANBAN-079, 2026-08-23T18:52:37+00:00) from the sha256-verified full-corpus export (LFS 0554a5973935…). Labelers and dedup rule: Enron-Evaluation-Environment scripts/ (correspondence_subclasses.py, content_topics.py, sentiment_scorer.py, dedupe.py). Source: CMU Enron Email Dataset (cleaned maildir). Parquet shards added 2026-08-23 (same-day viewer fix, verified row-for-row against the JSONL originals).

Maintenance

Issues and fixes: llm-entity-extraction issues or contact @Lucius-Morningstar on the Hub.