AI Entity Visualiser
Use cases
Uses OpenAI GPT models with JSON response formatting to extract entities from text.
Segments content into token-based batches via tiktoken for longer documents.
Builds three-level hierarchy: spaCy-style labels → descriptive tags → entities with occurrence counts.
Renders interactive D3.js circle packing visualisation with Jinja2 HTML templating.
Platform
Browser-based (no installation required)
Input
OpenAI API key
Text content to analyse
Model: gpt-4o-mini (default) or gpt-4o
Max tokens: 500-2000 (default: 1000)
Output
Interactive entity visualisation and CSV
Features
- GPT-4o-mini or GPT-4o model selection
- Tiktoken batch processing for long documents
- Three-level hierarchy: labels → tags → entities
- Regex context extraction (5-word window)
- D3.js zoomable circle packing via Jinja2
- Wikipedia URL linking per entity
- stqdm progress tracking for batch processing
How to use
- 1 Enter your OpenAI API key
- 2 Select model (gpt-4o-mini or gpt-4o)
- 3 Configure max tokens (500-2000); this sets the batch size per API call
- 4 Paste text content and click Process Text
- 5 Explore the interactive D3 circle packing hierarchy
- 6 Download the entity CSV or the standalone HTML chart
Frequently asked questions
- What does the Maximum Tokens slider actually control?
- The batch size, not the response length. Your text is tokenised with tiktoken and split into chunks of that many tokens (500 to 2,000), and each chunk becomes one OpenAI call. A lower value means more, smaller calls, which the app notes can improve extraction fidelity on long texts, but entities that straddle a chunk boundary can be missed.
- Are the Wikipedia links reliable?
- No, treat them as suggestions. The model is asked to include a Wikipedia URL per entity and whatever it returns is written straight to the CSV without any validation, so links can 404 or point to the wrong article. Likewise the spacy_label is the model's guess at a spaCy-style label; spaCy itself is never run.
- How are the occurrence counts calculated?
- After extraction the app counts each entity in your original text with a whole-word, case-insensitive regex, processing the longest entity names first and removing matches as they are counted. So mentions of New York City are not also counted towards New York. The flip side: if the model returned an entity in a form that never appears verbatim in your text (an expanded acronym, a corrected spelling), its count is 0 and its context shows as not found.
- What happens when the same entity appears in several batches?
- The first occurrence wins: the label, descriptive tag and Wikipedia URL from the earliest batch are kept and later duplicates are discarded, so the hierarchy never double-counts an entity across batches.
- Can I use the downloaded chart offline?
- Not fully. The downloadable HTML file loads the D3 library from the d3js.org CDN, so the circle packing chart only renders with an internet connection. The entity data itself is embedded in the file.
Want me to run this for you?
I run this tool as a managed service, or build something custom around your data. You get the insights without touching the code.
Related Tools
Extract n-grams and title keywords from SERP content for content optimisation.
Find duplicate and near-duplicate content using TF-IDF similarity matching.
Extract main text content and H1 headings from URLs.
Analyse content readability from sitemaps or URLs using Flesch scores.
Use OpenAI to classify page intent and expected user actions.
Calculate CPC, total spend, or clicks from any two values.
Need something built for your business?
This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.
Tell Me What You Need