File size: 804 Bytes
b8989d2
2c3dd0c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# agents/tools/similarity.py

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

def is_similar(text1, text2, threshold=0.85):
    """
    Сравнивает два текста и возвращает True, если их сходство выше порога.
    
    :param text1: Первый текст
    :param text2: Второй текст
    :param threshold: Порог сходства (по умолчанию 0.85)
    :return: bool
    """
    if not text1 or not text2:
        return False

    texts = [text1.strip(), text2.strip()]
    vectorizer = TfidfVectorizer().fit(texts)
    tfidf = vectorizer.transform(texts)
    similarity = cosine_similarity(tfidf[0], tfidf[1])[0][0]

    return similarity >= threshold