Gene function prediction based on genomic context clustering and discriminative learning: an application to bacteriophages