1
resposta

Função de vetorização

Bom dia . eu fiz esta função

teste_palavras_virtuais = PacoteDePalavras()
teste_palavras_virtuais.gerar_dicionario(descritor)
histograma_caracteristica = teste_palavras_virtuais.histograma_de_frequencia(descritor)
print(histograma_caracteristica)

e deu o seguinte erro : ValueError: could not broadcast input array from shape (512,32) into shape (512)

sera que esse erro tem relação com o erro anterior (pontos_chave)? Pois não converti em np array e sim tupla

Obrigada

1 resposta

Oii Anne, espero que você esteja bem ^⁻^

Peço desculpas pela demora em obter uma resposta.

É incerto dizer o exato motivo que está gerando o erro sem ter acesso ao código completo. Sobre o erro anterior, te respondi em sua outra postagem. Deixo abaixo o código da classe PacoteDePalavras e suas respectivas chamadas:

QUANTIDADE_PALAVRAS_VIRTUAIS = 512

class PacoteDePalavras:

  def gerar_dicionario(self, lista_descritores):
    kmeans = KMeans(n_clusters=QUANTIDADE_PALAVRAS_VIRTUAIS)
    kmeans = kmeans.fit(lista_descritores)
    self.dicionario = kmeans.cluster_centers_

  def histograma_de_frequencia(self, descritor):
    algoritmo_knn = NearestNeighbors(n_neighbors= 1)
    algoritmo_knn.fit(self.dicionario)
    mais_proximos = algoritmo_knn.kneighbors(descritor, return_distance=False).flatten()

    histograma_caracteristicas = np.histogram(mais_proximos, bins=np.arange(self.dicionario.shape[0] + 1))[0]

    return histograma_caracteristicas
teste_palavras_virtuais = PacoteDePalavras()
teste_palavras_virtuais.gerar_dicionario(descritor)
histograma_caracteristicas = teste_palavras_virtuais.histograma_de_frequencia(descritor)
print(histograma_caracteristicas)

Caso o erro ainda persista, peço que compartilhe seu notebook para que eu possa avaliar o código e ser mais assertiva quanto ao erro de incompatibilidade no tamanho dos arrays.

Qualquer dúvida fique a vontade para retornar aqui.

Grande abraço!