/** * Pattern Clustering * * Group similar patterns together for: * - Pattern discovery * - Automatic categorization * - Identifying recurring themes */ import { Pattern } from './similarity.js'; export interface Cluster { id: number; name: string; patterns: number[]; centroid?: Pattern; avgSimilarity: number; tags: string[]; } export interface ClusteringOptions { minSimilarity?: number; maxClusters?: number; minClusterSize?: number; } export declare class PatternClusterer { private similarity; constructor(); /** * Cluster patterns using hierarchical clustering */ cluster(patterns: Pattern[], options?: ClusteringOptions): Cluster[]; /** * Find cluster for a new pattern */ findClusterForPattern(pattern: Pattern, clusters: Cluster[], allPatterns: Pattern[]): number | null; /** * Build similarity matrix */ private buildSimilarityMatrix; /** * Hierarchical clustering algorithm (agglomerative) */ private hierarchicalClustering; /** * Calculate similarity between two clusters (average linkage) */ private clusterSimilarity; /** * Calculate average similarity within cluster */ private avgClusterSimilarity; /** * Find centroid pattern (most representative) */ private findCentroid; /** * Generate cluster name from patterns */ private generateClusterName; /** * Extract common tags from cluster */ private extractClusterTags; /** * Tokenize text */ private tokenize; } /** * Create pattern clusterer */ export declare function createPatternClusterer(): PatternClusterer; //# sourceMappingURL=clustering.d.ts.map