Analyse visual compare (TranscriptX alignment)¶
Problem¶
Published Analyse results often looked like “ready” chips or Advanced JSON
dumps. Several Overview / Summaries extractors looked for top-level keys the
modules never emit (e.g. type_token_ratio vs document.ttr).
TranscriptX inspiration¶
TX lexical_diversity drew bar charts by speaker (TTR / MTLD / hapax).
Transcribe has no speakers. The spiritual analogue is:
this notebook vs peer notebooks — entire corpus average, or a period the
user selects (year / date range), using each notebook’s diary date_start /
date_end (same period language as Library / Search).
What shipped¶
Layer |
Role |
|---|---|
|
Extract comparable metrics; average published payloads across projects with period filter |
|
Period controls + grouped bar charts |
|
Pure payload → chart/table rows (all modules) |
|
Per-module product visuals + summaries field fixes + compare wiring |
|
Entity tone (entity_sentiment) on People & places |
Visual intent by module¶
Module |
User visual |
Corpus/period compare? |
|---|---|---|
|
chips + tokens/page bars; compare chart scales tokens÷1k / chars÷10k so pages stay visible |
yes |
|
chips + TTR line |
yes |
|
chips + Flesch line |
yes |
|
Basic static cloud or Advanced interactive explorer (TX controls) |
no |
|
type mix + top surfaces; Places map |
no |
|
entity mean-sentiment bars + table |
no |
|
compound line + tone mix |
yes |
|
category bars + hedge/booster by page |
yes |
|
phrase list + score bars |
no |
|
topic weight bars + terms |
no |
|
motif similarity bars + pairs |
no |
|
adjacent-similarity line + boundaries |
no |
|
label totals + intensity line |
yes |
|
dominant-label counts + intensity |
no |
|
same when payload exists |
no |
|
tension line |
yes |
|
score bars + quote list; Moments Jump to page → Reading |
no |
|
prose / grouped lists |
no |
|
grouped action / decision / question |
no |
|
Ask answer + evidence |
no |
Click-to-page: within-notebook page-order series (tokens, TTR, Flesch, sentiment,
emotion / tension / intensity, hedges vs boosters, topic-shift similarity, ink
coverage) use Altair + Streamlit on_select and jump to Reading via the same
open_page_context path as Moments (shared jump_to_reading; Back returns to
the source View page). Categorical charts stay non-clickable.
Comparable modules: stats, lexical_diversity, understandability,
sentiment, emotion, affect_tension, epistemic_markers.
Within-notebook visuals (not corpus compare): token/TTR/Flesch series, sentiment / emotion / tension lines, topic-shift similarity line, keyphrase / motif / topic bars, entity tone, action-item groups.
Intentional divergences from TX¶
Peers, not speakers — notebook domain.
Streamlit charts — no Plotly/matplotlib chart registry or viz_id artifacts.
Read-model only — never re-runs modules; averages published envelopes.
Exclude current notebook from the average so deltas are vs peers.
Undated notebooks included for “Entire corpus”, excluded for year/range.
Word clouds in the UI — TX renders a static PNG via
wordcloudand an interactive explorer HTML (wordcloud2.js+ search / top N / min value / sort / CSV). Transcribe Overview offers the same Basic / Advanced choice: Basic usesWordCloud.to_image()(Pillow); Advanced embeds a TX-shaped explorer with vendoredwordcloud2.js(offline; TX uses a CDN). Analysis module still emits onlytokens[].wordcloudis a default package dependency so Basic clouds work on a plainpip install -e .; Analyse still falls back to token-weight bars if import fails.
Do not¶
Import TranscriptX at runtime.
Port the TX chart registry / Folium / speaker timelines.
Treat Advanced JSON as the primary product path.