Skip to content

Compliant data tool, built for Hasan

A Turkish complaint text dataset, built the clean way

ŞikayetVeri collects 50 texts from each of 20 Turkish complaint and message categories - target 1,000 in total. It works from your own exports by default, masks personal data with a human review queue, reports every shortfall honestly, and throttles so hard it refuses to work around any site's access controls.

The compliance line, up front

This tool never bypasses Cloudflare or other WAFs, CAPTCHAs, login walls, robots.txt, rate limits, or terms of service. Fetching is disabled until you turn it on for URLs you explicitly authorize with confirmed rights, and even then it stops the instant it sees a 403 or 429. It never invents text to meet a count - deficits are reported, not filled. This page is not legal advice and does not guarantee legal compliance.

What it does

Local exports first

Point it at CSV or JSON files you already own or export. Network fetching is off by default.

Honest deficits

Counts unique texts per category, flags duplicates, and reports every shortfall. No fabricated filler.

PII masking + review queue

Emails, phones, TC numbers, IBANs, cards are masked; names and uncertain content are flagged for a human.

Conservative by design

Robots.txt respected, per-domain throttling, and an immediate halt on HTTP 403 or 429.

20 canonical categories

Each record is mapped to one of these keys; unmappable labels go to the review queue. Default target is 50 per category = 1,000 total.

  • telekomTelekom / internet servis saglayici
  • mobilMobil operator
  • bankacilikBankacilik
  • sigortaSigorta
  • kredi_kartKredi karti
  • ecommerceInternetten alisveris
  • kargoKargo ve teslimat
  • beyaz_esyaBeyaz esya
  • elektronikElektronik
  • marketMarket ve perakende
  • gidaGida ve restoran
  • havayoluHavayolu
  • otelOtel ve konaklama
  • turizmTurizm acentasi
  • saglikSaglik ve hastane
  • kamuKamu ve belediye hizmetleri
  • elektrikElektrik dagitim
  • dogalgazDogalgaz dagitim
  • suSu dagitim
  • otomotivOtomotiv

Quick start

Runs on plain Python 3.10+ - no packages to install. Full instructions are in the Windows PowerShell setup guide.

Windows PowerShell
cd C:\path\to\python-project

# 1. Write a starter config, then edit config.json with YOUR data
.\run.ps1 -Init

# 2. Run with your local exports (safe, no network)
.\run.ps1
# results: output\records.csv + deficit_report.json, review\ for the review queue
Plain Python (also works)
python main.py --init-config
python main.py
python main.py --list-categories
python main.py --categories kargo telekom --target 40
python -m unittest discover -s tests -v   # run the test suite

Honest limitations

Fetch mode extracts only simple text and JSON - it is not a general scraper and deliberately does not handle sites behind access controls.

Name detection uses a modest built-in name list, not full named-entity recognition. Missed names get flagged for review, not silently masked.

robots.txt handling and rate limiting are best-effort heuristics, not legal guarantees. You must confirm your right to process every source, every time.