Keyphrases (keyphrases)

Language & Meaning module (B16) for method-separated keyphrase ranking. Visual clouds are owned by wordclouds (optional consumer).

What it is

  • Authoritative payload: schema_id=transcriptx.keyphrases.v1, semantics_version=keyphrases_v1.

  • Method-separated ranks under global_by_method / speakers_by_methodnot a fused cross-method leaderboard.

  • Product primary method: noun_chunks (spaCy noun chunks on insight_eligibility.filtered_segments only; no cross-segment phrases).

  • Optional sibling methods: YAKE, KeyBERT (failure-isolated; skip with typed skipped_methods reason codes).

  • Each phrase carries raw_score, score_direction, non-negative rank_weight in [0, 1], occurrence/support evidence.

What it is not

  • Not a second topic model (topic_modeling / bertopic).

  • Not NER entities (ner / entity_sentiment).

  • Not filler/tics lists.

  • Wordclouds do not re-rank; they render normalised rank_weight from this module when present.

Language

Noun-chunks path follows spaCy / eligibility language behaviour. YAKE defaults to yake_lan=en. KeyBERT uses the configured embedding model (default MiniLM). Unsupported / missing optional packages soft-skip that method only; usable reflects the noun_chunks primary path.

Config

Owned subtree analysis.keyphrases (Pydantic pilot keyphrases):

Knob

Default (summary)

enabled_methods

noun_chunks, yake, keybert

max_phrases

40

min_phrase_tokens / max_phrase_tokens

1 / 6

min_occurrences_global / min_occurrences_speaker

2 / 1

diversity_jaccard_threshold

0.85

evidence_max_per_phrase / evidence_snippet_max_chars

3 / 120

keybert_model_id

sentence-transformers/all-MiniLM-L6-v2

yake_lan / yake_n / yake_top / yake_window_size

en / 3 / 40 / 2

min_member_sessions

2 (group pool gate)

Outputs

  • {base}_keyphrases.json (+ CSV where emitted)

  • Insights / Overview extractor for primary noun_chunks block

  • Charts Gallery wordcloud variants when wordclouds runs with upstream payload (wordcloud.*.keyphrases_*)

  • Group: session rows + keyphrases_pooled → chart keyphrases.phrases.global; pooled noun-chunk cloud via keyphrase_noun_chunk_pool into run_group_wordclouds

Core / extras

  • Noun-chunks works without the [keyphrases] extra (needs spaCy / NLP path as for other language modules).

  • YAKE / KeyBERT: pip install -e ".[keyphrases]" (also included in .[full]). Missing packages → skipped_methods with missing_package; module remains usable if noun_chunks scored.

  • Offline / air-gap: disable downloads for KeyBERT Hub fetch; YAKE is local after install.