Similarità coseno tra testi e frequenze delle parole
Misuri quanto due testi usano le stesse parole, da 0 quando non ne condividono nessuna a 1 quando il loro uso delle parole è proporzionalmente identico, e veda quali termini hanno in comune. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo a
- The quick brown fox jumps over the dog.
- Testo b
- A quick brown dog jumps over the fox.
- Similarità del coseno
- 0,894427191
- Prodotto scalare
- 8
- Modulo di a
- 3,1622776602
- Modulo di b
- 2,8284271247
Questa calcolatrice trasforma ogni brano in un vettore di frequenze delle parole e misura l’angolo tra i vettori. Il punteggio va da 0, senza termini conteggiati in comune, a 1, quando i modelli puntano nella stessa direzione. Mostra inoltre conteggi, vocabolario, moduli, prodotto scalare e termini condivisi con un calcolo deterministico e verificabile.
Come ogni testo diventa un elenco di conteggi
Il calcolatore porta entrambi i testi in minuscolo, isola le parole fatte di lettere o cifre e conserva gli apostrofi interni alle parole. Punteggiatura e spazi non contano. Ogni parola distinta presente in uno dei due testi diventa una dimensione di un vocabolario comune, e il numero di volte in cui compare in ciascun testo diventa la coordinata di quel testo: una parola usata tre volte vale tre, non soltanto «presente». Il prodotto scalare dei due elenchi viene poi diviso per il prodotto delle loro lunghezze. In questo modo il risultato dipende meno dalla lunghezza dei testi rispetto a un semplice conteggio delle parole condivise.
Che cosa dice il punteggio e che cosa no
Un punteggio di 1 significa che i due testi usano le parole nelle stesse proporzioni, anche se uno ripete tutto più volte; 0 significa che non hanno alcuna parola in comune. Non ci sono sinonimi, radici né eliminazione delle parole più comuni: «correre» e «correva» contano come parole diverse, e l'ordine delle parole non entra nel calcolo. La misura offre una base rapida e spiegabile per confrontare bozze, descrizioni brevi o esempi in classe, ma non prova l'autore, una copia né che i testi dicano la stessa cosa. Accanto al punteggio vede quante parole ha ciascun testo, la dimensione del vocabolario e l'elenco dei termini condivisi.
Trasformi due brani in vettori confrontabili
Incolli un brano in ciascun campo. Lo strumento converte il testo in minuscolo, estrae sequenze Unicode di lettere o numeri e conserva gli apostrofi interni. Ogni termine distinto diventa una dimensione e il numero di occorrenze ne definisce la coordinata.
Lei può così esaminare i termini comuni e capire il risultato.
Interpreti correttamente il punteggio
La similarità coseno divide il prodotto scalare per il prodotto dei moduli. Il valore 1 indica modelli relativi uguali; 0 indica nessun termine comune. Non esiste una soglia universale: ne stabilisca una con documenti rappresentativi.
La misura descrive la struttura lessicale, ma non prova paternità, copia o equivalenza semantica.
Scelga un confronto lessicale trasparente
Usi questa metrica come riferimento spiegabile per confrontare bozze, insegnare modelli vettoriali o analizzare descrizioni. Diversamente dalla distanza di modifica ignora l’ordine; diversamente dagli embedding premia solo corrispondenze reali.
Casi d'uso
Insegnare la similarità vettoriale
Mostri come frequenze, prodotto scalare e moduli generano un punteggio riproducibile.
Confrontare bozze di documenti
Misuri se due revisioni conservano un lessico simile ed esamini i termini condivisi.
Creare un riferimento lessicale
Ottenga una base trasparente prima di valutare metodi semantici più complessi.
Domande frequenti
Che cosa significa il punteggio?
Va da 0, senza termini comuni, a 1, per vettori con la stessa direzione; i valori intermedi indicano sovrapposizione parziale.
Maiuscole e punteggiatura incidono?
Le maiuscole non incidono. La punteggiatura separa i termini, salvo gli apostrofi interni.
Rileva sinonimi o significati simili?
No. Confronta termini esatti in minuscolo e le rispettive frequenze.
Considera l’ordine delle parole?
No. Il vettore registra quante volte appare ogni termine, non la sua posizione.
Quale punteggio indica che due testi sono abbastanza simili?
Non esiste una soglia universale. I valori tra 0 e 1 indicano una sovrapposizione parziale delle parole: fissi la sua soglia con esempi rappresentativi dei suoi documenti e la applichi sempre allo stesso modo.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/edu/cosine-text-similarity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text_a":"The quick brown fox jumps over the dog.","text_b":"A quick brown dog jumps over the fox."}'const res = await fetch("https://api.kit.forhosting.com/edu/cosine-text-similarity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text_a": "The quick brown fox jumps over the dog.",
"text_b": "A quick brown dog jumps over the fox."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/cosine-text-similarity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text_a": "The quick brown fox jumps over the dog.",
"text_b": "A quick brown dog jumps over the fox."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/cosine-text-similarity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text_a":"The quick brown fox jumps over the dog.","text_b":"A quick brown dog jumps over the fox."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text_a":"The quick brown fox jumps over the dog.","text_b":"A quick brown dog jumps over the fox."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/cosine-text-similarity", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text_a": "The quick brown fox jumps over the dog.",
"text_b": "A quick brown dog jumps over the fox."
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.cosine_text_similarity",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars_per_text | 100000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Scelga un confronto lessicale trasparente
Le richieste API costano $0.002, senza rete, casualità o modelli esterni.
Domande tecniche
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002; non occorrono modelli o servizi esterni.