CoolFace
Datasetpublic

Rapscallion123/anomaly-characteristic-layer

The Anomaly Network characteristic layer A derived dataset over 43,684 first-hand accounts of experiences people could not explain, drawn from two public archives (NUFORC, 38,663 accounts; BFRO, 5,021). Live record: theanomalynetwork.com · Dataset page: /data · GitHub · Zenodo · Kaggle What makes it useful Every account is coded for which of 63 recurring characteristics it contains, and every characteristic carries an inverse document frequency. That IDF column… See the full description on the dataset page: https://huggingface.co/datasets/Rapscallion123/anomaly-characteristic-layer.

sourceHugging Facecc-by-4.0updated 1mo agoView on Hugging Face
0likes17downloads
Dataset Card

The Anomaly Network characteristic layer

![DOI](https://doi.org/10.5281/zenodo.22037108)

A derived dataset over 43,684 first-hand accounts of experiences people could not explain, drawn from two public archives (NUFORC, 38,663 accounts; BFRO, 5,021).

Live record: theanomalynetwork.com · Dataset page: /data · GitHub · Zenodo · Kaggle

What makes it useful

Every account is coded for which of 63 recurring characteristics it contains, and every characteristic carries an inverse document frequency.

That IDF column is the point. Two accounts both mentioning a light means nothing, because nearly everything in a sky archive mentions a light. Two accounts both mentioning three knocks means a great deal. The IDF is that difference expressed as a number, and it is what lets a match between two accounts be explained rather than asserted.

Configurations

configrowswhat it holds
accounts43,684One row per account: source, the id it carries in that archive, date, hour, coordinates, place, and its characteristics.
characteristics63The vocabulary: plain-English name, family, frequency, percentage of corpus, IDF.
clusters263Same-date, same-one-degree-cell groups of three or more accounts, scored and cross-referenced.
python
from datasets import load_dataset

accounts = load_dataset("Rapscallion123/anomaly-characteristic-layer", "accounts")
chars    = load_dataset("Rapscallion123/anomaly-characteristic-layer", "characteristics")
clusters = load_dataset("Rapscallion123/anomaly-characteristic-layer", "clusters")

The three columns worth reading first

  • `idf` (characteristics) — how informative a shared detail is.
  • `wording_independence` (clusters) — one minus the largest vocabulary overlap between any two accounts in a cluster. Near 1, everyone described it in their own words. Low, at least two accounts substantially repeat each other, which usually means a common source rather than a common experience. This measure exists because twenty-five copies of one news story are not twenty-five witnesses.
  • `ordinary_causes_found` (clusters) — how many candidate mundane explanations the public record offers for that night: fireball, earthquake, full moon, Venus, or a date when lanterns and fireworks are common.

184 of the 263 clusters have no ordinary cause on the public record. That number is computed, not asserted. Read the coverage caveat below before quoting it.

What is deliberately not here

The account text. The narratives belong to NUFORC, to BFRO, and to the people who wrote them, so republishing tens of thousands of them as a bulk download is not ours to do. Every row carries source and source_ref, so the original is one lookup away at the archive that holds it.

This is worth knowing before you plan a use for it: this is metadata, not a text corpus. There is nothing here to train a language model on.

Honest limits

  • Characteristics are extracted by curated regular expressions, not a model. Every match is explainable and every miss is silent. Recall is not measured; precision was checked by sampling.
  • The corpus is two archives, one about lights in the sky and one about something in the woods. It is North America heavy, and it holds effectively nothing about sleep paralysis, the hat man, or shared false memory, which are among the most searched and least collected experiences there are.
  • Clusters use a one-degree cell and an exact date match. Multi-night events fragment, and a correspondence across years cannot be a cluster by construction.
  • ordinary_causes_found reflects what public catalogues cover. Fireball data begins in 2015 and historical earthquake coverage is uneven, so a zero on an old night partly reflects a thinner catalogue rather than only a stranger event.

Licence and citation

CC BY 4.0.

bibtex
@dataset{clouthier_2026_anomaly,
  author    = {Clouthier, Kyle},
  title     = {The Anomaly Network characteristic layer},
  year      = {2026},
  version   = {1.0.0},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.22037108},
  url       = {https://doi.org/10.5281/zenodo.22037108}
}

Method

How characteristics are extracted, how clusters are detected, and how the engine was blind-tested against famous documented mass sightings, is written up at theanomalynetwork.com/method.