Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (2.4%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: danielenglaro
  • Language: C++
  • Default Branch: main
  • Size: 42.2 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Citation

README.md

READ ME

Questo repository contiene l'implementazione degli algoritmi K-MinHash e One-Permutation Hashing, utilizzati per la stima della similarità di Jaccard. Include anche test sulle prestazioni relative al tempo di esecuzione e alla qualità degli algoritmi.

Struttura del repository

  • src/: contiene tutto il codice sorgente del progetto.
  • src/KMinHash.h e src/KMinHash.cpp: implementazione dell'algoritmo K-MinHash.
  • src/OnePermutation.h e src/OnePermutation.cpp: implementazione dell'algoritmo One-Permutation Hashing.
  • src/HashFunction.h e src/HashFunction.cpp: implementazione delle funzioni hash utilizzate.
  • src/Prime.h e src/Prime.cpp: metodi per la generazione di numeri primi utili nell'hashing.
  • src/JS.h e src/JS.cpp: calcolo della similarità di Jaccard, sia esatta che approssimata.
  • src/Test.h e src/Test.cpp: test sulle prestazioni e sulla qualità degli algoritmi.
  • src/LettoreFile.h e src/LettoreFile.cpp: lettura di insiemi da file per testare gli algoritmi.
  • src/StampaVettore.h e src/StampaVettore.cpp: funzioni di utility per la stampa dei vettori.
  • main.cpp: permette di eseguire i test e gli esperimenti sugli algoritmi implementati.

Compilazione

Per compilare il progetto, eseguire il seguente comando: bash g++ -Wall -Wextra -std=c++23 -O2 *.cpp

Esecuzione dei test Dopo la compilazione, è possibile eseguire i test utilizzando: bash ./a.out <modalità>

Dove può assumere i seguenti valori: - 0: Testa il tempo di esecuzione con k fissato. - 1: Testa il tempo di esecuzione con n fissato. - 2: Esegue tutti i test sul tempo. - 3: Testa la qualità della stima della similarità di Jaccard. - 4: Testa il numero di bin vuoti nell'algoritmo One-Permutation Hashing. - 5: Esegue tutti i test. - 6: Genera solo i grafici senza eseguire i test.

Dataset

Il progetto utilizza dataset generati tramite script Python per testare la qualità delle stime. I file vengono letti e analizzati per confrontare la similarità esatta con quella stimata dagli algoritmi implementati.

Risultati

I risultati dei test vengono salvati in file CSV e possono essere visualizzati tramite script Python dedicati per la generazione dei grafici.

Owner

  • Login: danielenglaro
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Se usi questo codice, per favore cita come segue."
authors:
  - family-names: Englaro
    given-names: Daniele
title: "One Permutation vs K-Min Hashing: Benchmark and Analysis"
version: "1.0.0"
date-released: 2024-2025
repository-code: "https://github.com/danielenglaro/oneperm-kmin-benchmark"

GitHub Events

Total
  • Push event: 7
Last Year
  • Push event: 7