Raggruppamento di punti dati

Raggruppamento di punti dati

Clustering di punti dati

DataPoint, Cluster e ClusterCollection sono un piccolo toolkit generico per il clustering gerarchico-aggregativo fornito con Aspose.PDF FOSS per Python. Sono primitive generiche per il raggruppamento dei dati — un punto con coordinate e etichetta, un gruppo di elementi e una collezione di gruppi — piuttosto che una funzionalità specifica dei documenti PDF; nulla in questo modulo legge o scrive contenuti PDF. Usali quando il tuo codice deve raggruppare valori numerici (ad esempio, misurazioni già estratte da un documento) in cluster e riassumere un cluster con il suo centroide.


Rappresentazione di un punto dati

DataPoint associa un name identificativo a una lista value di coordinate numeriche. Entrambi sono esposti come DataPoint.name e DataPoint.value dopo la costruzione.


Creazione e copia di cluster

Cluster avvolge una lista opzionale di elementi in un unico gruppo. Cluster.count indica quanti elementi contiene attualmente il cluster, Cluster.contains() verifica se un dato elemento è membro, e Cluster.clone() restituisce una copia indipendente supportata dalla propria lista di elementi. Cluster.empty() restituisce un’istanza condivisa, singleton, di cluster vuoto invece di allocarne una nuova ad ogni chiamata.


Raggruppamento di cluster in una collezione

ClusterCollection avvolge un elenco opzionale di istanze Cluster in un’unica collezione, fornendoti un unico oggetto da passare quando una funzione deve accettare o restituire più di un cluster alla volta.


Calcolo del centroide di un cluster

DataPoint.get_centroid() calcola la media delle coordinate di ogni punto dati in un Cluster, posizione per posizione, e restituisce un nuovo DataPoint che rappresenta il centroide. Ogni punto nel cluster deve avere lo stesso numero di dimensioni in DataPoint.value affinché la media abbia senso.


Suggerimenti e migliori pratiche

  • Mantieni ogni elenco DataPoint.value della stessa lunghezza all’interno di un cluster — DataPoint.get_centroid() calcola la media delle coordinate posizione per posizione, quindi dimensioni non corrispondenti producono un centroide fuorviante.
  • Usa Cluster.empty() per un cluster vuoto condiviso e singleton invece di costruire un nuovo cluster vuoto quando ti serve solo un valore segnaposto.
  • Chiama Cluster.clone() prima di modificare un cluster di cui hai ancora bisogno dell’originale altrove — il cloning copia l’elenco degli elementi anziché crearne un alias.
  • Ricorri a ClusterCollection quando una funzione deve accettare o restituire più di un Cluster come valore unico.
  • Queste classi sono utility generiche, non una funzionalità di parsing PDF — abbinale alla tua logica per produrre i valori DataPoint dai dati del documento.

Problemi comuni

ProblemaCauseCorrezione
DataPoint.get_centroid() produce un centroide con un numero di valori inattesoI punti dati nel cluster hanno liste DataPoint.value di lunghezze diverseAssicurati che ogni DataPoint aggiunto a un Cluster abbia la stessa dimensionalità
Cluster.contains() restituisce False per un valore che ti aspetti sia presenteL’appartenenza viene verificata direttamente contro gli oggetti elemento memorizzati, quindi due istanze DataPoint costruite separatamente con lo stesso nome e valore non vengono trattate automaticamente come uguali nelle ricerche basate sull’identitàRiutilizza la stessa istanza di DataPoint, o confronta per DataPoint.name e DataPoint.value prima di presumere l’appartenenza
Modificando un cluster clonato si modifica anche l’originaleCluster.clone() è stato saltato e lo stesso riferimento Cluster è stato condiviso invece di essere copiatoChiama Cluster.clone() per primo ogni volta che un chiamante ha bisogno di una copia indipendente

FAQ

Qual è la differenza tra Cluster e ClusterCollection?

Cluster contiene un elenco di elementi — tipicamente istanze di DataPoint — che appartengono a un gruppo. ClusterCollection contiene un elenco di oggetti Cluster: raggruppa i cluster insieme, non i singoli punti dati.

Il DataPoint.get_centroid() modifica il cluster che gli viene fornito?

No. Legge gli elementi già presenti nel Cluster fornito e restituisce un nuovo DataPoint per il centroide; il cluster di origine e i suoi elementi rimangono invariati.

Questa funzionalità di clustering è specifica per i contenuti PDF?

No. DataPoint, Cluster e ClusterCollection sono primitive di raggruppamento numerico generiche fornite all’interno del pacchetto aspose_pdf. Non leggono pagine, testo o qualsiasi altra struttura PDF da sole — operano esclusivamente sui valori con cui le costruisci.

Perché Cluster.empty() restituisce la stessa istanza ogni volta?

Cluster.empty() restituisce un singleton condiviso in modo che le chiamate ripetute per “no cluster” non allocino un nuovo oggetto ad ogni chiamata.


API Reference Riepilogo

Classe/MetodoDescrizione
DataPointUn punto denominato che contiene una lista di coordinate numeriche
DataPoint.nameIl nome identificativo del punto
DataPoint.valueL’elenco numerico delle coordinate del punto
DataPoint.get_centroid()Restituisce un nuovo DataPoint che media le coordinate di tutti i punti in un cluster
ClusterUn gruppo di elementi, tipicamente istanze di DataPoint
Cluster.empty()Restituisce il singleton del cluster vuoto condiviso
Cluster.contains()Verifica se un elemento è nel cluster
Cluster.clone()Restituisce una copia indipendente del cluster
Cluster.countIl numero di elementi attualmente nel cluster
ClusterCollectionAvvolge un elenco di istanze Cluster in un’unica raccolta

Vedi anche

 Italiano