Agrupamento de Pontos de Dados

Agrupamento de Pontos de Dados

Agrupamento de Pontos de Dados

DataPoint, Cluster, e ClusterCollection são um pequeno kit de ferramentas de agrupamento hierárquico-aglomerativo de uso geral incluído no Aspose.PDF FOSS para Python. Eles são primitives genéricos de agrupamento de dados — um ponto de coordenada e rótulo, um grupo de itens e uma coleção de grupos — ao invés de um recurso de documento específico de PDF; nada neste módulo lê ou grava conteúdo PDF por si só. Use-os quando seu próprio código precisar agrupar valores numéricos (por exemplo, medições que você já extraiu de um documento) em clusters e resumir um cluster com seu centróide.


Representando um Ponto de Dados

DataPoint associa um name identificador a uma lista value de coordenadas numéricas. Ambos são expostos como DataPoint.name e DataPoint.value após a construção.


Construindo e Copiando Clusters

Cluster encapsula uma lista opcional de itens em um único grupo. Cluster.count relata quantos itens o cluster contém atualmente, Cluster.contains() verifica se um determinado item é membro, e Cluster.clone() devolve uma cópia independente sustentada por sua própria lista de itens. Cluster.empty() devolve uma instância vazia de cluster única e compartilhada em vez de alocar uma nova a cada chamada.


Agrupando Clusters em uma Coleção

ClusterCollection encapsula uma lista opcional de instâncias Cluster em uma única coleção, fornecendo um objeto para ser passado quando uma função precisa aceitar ou retornar mais de um cluster de cada vez.


Calculando o centróide de um cluster

DataPoint.get_centroid() calcula a média das coordenadas de cada ponto de dados em um Cluster, posição por posição, e devolve um novo DataPoint que representa o centróide. Cada ponto no cluster deve ter o mesmo número de dimensões em DataPoint.value para que a média seja significativa.


Dicas e boas práticas

  • Mantenha todas as listas DataPoint.value com o mesmo comprimento dentro de um cluster — DataPoint.get_centroid() calcula a média das coordenadas posição por posição, portanto dimensões incompatíveis produzem um centróide enganoso.
  • Use Cluster.empty() para um cluster vazio único e compartilhado em vez de criar um novo cluster vazio quando você só precisa de um valor placeholder.
  • Chame Cluster.clone() antes de mutar um cluster do qual ainda precisa da versão original em outro lugar — clonar copia a lista de itens ao invés de criar um alias.
  • Recorra a ClusterCollection quando uma função precisar aceitar ou retornar mais de um Cluster como um único valor.
  • Essas classes são utilitários genéricos, não um recurso de análise de PDF — combine-as com sua própria lógica para gerar os valores DataPoint a partir dos dados do documento.

Problemas comuns

ProblemaCausaCorreção
DataPoint.get_centroid() produz um centróide com um número inesperado de valoresOs pontos de dados no cluster têm listas de DataPoint.value com comprimentos diferentesGaranta que cada DataPoint adicionado a um Cluster tenha a mesma dimensionalidade
Cluster.contains() retorna False para um valor que você espera que esteja presenteA associação é verificada diretamente contra os objetos de item armazenados, de modo que duas instâncias de DataPoint construídas separadamente com o mesmo nome e valor não são tratadas automaticamente como iguais em buscas baseadas em identidadeReutilize a mesma instância de DataPoint, ou compare por DataPoint.name e DataPoint.value antes de assumir a pertinência
Modificar um cluster clonado também altera o originalCluster.clone() foi ignorado e a mesma referência de Cluster foi compartilhada em vez de copiadaChame Cluster.clone() primeiro sempre que um chamador precisar de uma cópia independente

FAQ

Qual é a diferença entre Cluster e ClusterCollection?

Cluster contém uma lista de itens — tipicamente instâncias de DataPoint — que pertencem a um grupo. ClusterCollection contém uma lista de objetos Cluster: ela agrupa clusters juntos, não pontos de dados individuais.

O DataPoint.get_centroid() modifica o cluster que lhe é fornecido?

Não. Ele lê os itens já presentes no Cluster fornecido e retorna um novo DataPoint para o centróide; o cluster de origem e seus itens permanecem inalterados.

Essa funcionalidade de clustering é específica para conteúdo PDF?

N.º DataPoint, Cluster e ClusterCollection são primitivas genéricas de agrupamento numérico enviadas dentro do pacote aspose_pdf. Elas não leem páginas, texto ou qualquer outra estrutura PDF por si mesmas — operam puramente sobre os valores com os quais você as constrói.

Por que Cluster.empty() retorna a mesma instância toda vez?

Cluster.empty() retorna um singleton compartilhado para que chamadas repetidas de “no cluster” não aloque um novo objeto a cada chamada.


API Reference Resumo

Classe/MétodoDescrição
DataPointUm ponto nomeado que contém uma lista de coordenadas numéricas
DataPoint.nameO nome identificador do ponto
DataPoint.valueA lista de coordenadas numéricas do ponto
DataPoint.get_centroid()Retorna um novo DataPoint com a média das coordenadas de cada ponto em um cluster
ClusterUm grupo de itens, tipicamente instâncias de DataPoint
Cluster.empty()Retorna o singleton de cluster vazio compartilhado
Cluster.contains()Verifica se um item está no cluster
Cluster.clone()Retorna uma cópia independente do cluster
Cluster.countO número de itens atualmente no cluster
ClusterCollectionEnvolve uma lista de instâncias de Cluster em uma única coleção

Ver também

 Português