added some different normalization methods, including tf-idf