From Context to Distance: Learning Dissimilarity for Categorical Data Clustering