|
from sklearn.feature_extraction.text import TfidfVectorizer |
|
from sklearn.metrics.pairwise import cosine_similarity |
|
|
|
def compute_similarity(text1, text2): |
|
""" |
|
Calcola la similarità del coseno tra due testi usando TF-IDF. |
|
|
|
Parametri: |
|
text1 (str): Primo testo. |
|
text2 (str): Secondo testo. |
|
|
|
Ritorna: |
|
float: Valore di similarità (0 a 1). |
|
""" |
|
try: |
|
|
|
if not text1.strip() or not text2.strip(): |
|
raise ValueError("Uno o entrambi i testi sono vuoti.") |
|
|
|
|
|
vectorizer = TfidfVectorizer(stop_words='english') |
|
tfidf_matrix = vectorizer.fit_transform([text1, text2]) |
|
|
|
|
|
similarity_matrix = cosine_similarity(tfidf_matrix[0:1], tfidf_matrix[1:2]) |
|
|
|
return similarity_matrix[0][0] |
|
|
|
except Exception as e: |
|
print(f"Errore durante il calcolo della similarità: {e}") |
|
return None |
|
|
|
|