File size: 540 Bytes
ebc3bf5
 
 
c4cbe0b
 
 
 
 
ebc3bf5
c4cbe0b
 
ebc3bf5
 
39003c5
ebc3bf5
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np
from models.model_loader import get_embedder

try:
    import spaces
    _gpu = spaces.GPU
except ImportError:
    _gpu = lambda fn: fn  # no-op when running locally without the spaces package


@_gpu
def semantic_score(original: str, compressed: str) -> float:
    embedder = get_embedder()
    vecs = embedder.encode([original, compressed], convert_to_numpy=True)
    cos = float(
        np.dot(vecs[0], vecs[1]) / (np.linalg.norm(vecs[0]) * np.linalg.norm(vecs[1]))
    )
    return round(max(0.0, min(1.0, cos)), 4)