Skip to content

feat (tag-generation): tag generation for the clusters#23

Merged
HahaBill merged 3 commits into
masterfrom
feat/cluster-postprocess
Jul 3, 2026
Merged

feat (tag-generation): tag generation for the clusters#23
HahaBill merged 3 commits into
masterfrom
feat/cluster-postprocess

Conversation

@Harsh16gupta

@Harsh16gupta Harsh16gupta commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

This PR implements a lightweight, dependency-free TF-IDF tag extraction system to auto-generate the top 5 most descriptive tags for note clusters.

TF-IDF Engine: Added a custom TfidfExtractor that accurately computes terms across clusters with a 60% max-DF threshold to filter generic terms.

Screenshot:
image

@Harsh16gupta Harsh16gupta self-assigned this Jun 25, 2026
@Harsh16gupta Harsh16gupta marked this pull request as ready for review June 25, 2026 14:39
@HahaBill HahaBill requested review from HahaBill and Copilot June 25, 2026 15:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds automatic, dependency-free TF‑IDF tag extraction for clustering results and surfaces those tags in the webview cluster UI (and in the testEmbed diagnostics), enabling clusters to be labeled with top descriptive keywords.

Changes:

  • Added a TF‑IDF-based post-processing step to enrich clustering benchmark results with top-K tags per cluster.
  • Updated result types and webview UI to pass and render cluster tags.
  • Added styling for tag “pills” within cluster headers.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/webview/panel.css Adds layout/styling for displaying tag pills under the cluster title.
src/webview/pages/DashboardPage.tsx Passes per-cluster tags from the selected strategy into each ClusterCard.
src/webview/components/ClusterCard.tsx Renders tag pills in the cluster header when tags are present.
src/types/cluster.ts Extends BenchmarkResult with an optional tags map keyed by cluster ID.
src/pipeline/runPipeline.ts Enriches benchmark results with TF‑IDF tags before returning results to the UI.
src/pipeline/clustering/postProcess.ts Introduces stop-word filtering, tokenization, TF‑IDF extraction, and results enrichment.
src/commands/testEmbed.ts Enriches and logs tags alongside cluster assignments for diagnostics.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/pipeline/clustering/postProcess.ts
Comment thread src/pipeline/clustering/postProcess.ts Outdated
Comment thread src/webview/components/ClusterCard.tsx
@Harsh16gupta

Harsh16gupta commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator Author

Hey @HahaBill, I'm about to start working on auto-naming the note clusters. Since this new feature relies on the TF-IDF tag extraction which is this PR and the pipeline/caching updates from the feat/native-embeddings-hybrid PR (the other opened PR), it needs to be built on top of both.

If they look good to you, could we merge this PR first?

@Harsh16gupta

Copy link
Copy Markdown
Collaborator Author

I was going through my proposal and our discussion, and realized I had accidentally missed n-grams support in the initial implementation. I just pushed a commit to address that.

@HahaBill HahaBill left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good for now, merging :)

@HahaBill HahaBill merged commit 8bb29bb into master Jul 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants