from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity import numpy as np # A small collection of descriptions documents = [ "Machine learning algorithms learn patterns from data", "Deep learning uses neural networks with many layers", "Natural language processing handles text and speech", "Computer vision processes images and video", "Neural networks are inspired by the human brain" ] # Fit and transform vectorizer = TfidfVectorizer() tfidf_matrix = vectorizer.fit_transform(documents) # A search query query = ["neural networks and deep learning"] query_vector = vectorizer.transform(query) # Calculate similarity between query and all documents similarities = cosine_similarity(query_vector, tfidf_matrix).flatten() # Rank documents by similarity ranked = np.argsort(similarities)[::-1] print("Most similar documents:") for i in ranked: print(f" {similarities[i]:.3f} — {documents[i]}")